Изучение вопроса о существовании и возможностях искусственного интеллекта. Ответить на вопрос: «Заменит ли человека искусственный интеллект?»
Вложение | Размер |
---|---|
![]() | 794.54 КБ |
Муниципальное казённое общеобразовательное учреждение Мокровская средняя общеобразовательная школа
Проект
Заменит ли человека искусственный интеллект?
Автор проекта
Ворон Александр, учащийся 9 класса
Руководитель проекта:
Зарецкий Алексей Александрович
Учитель информатики
Мокрое
2024
ОГЛАВЛЕНИЕ
ГЛАВА 1. ЗАМЕНИТ ЛИ ЧЕЛОВЕКА ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ? 5
1.1 Определение искусственного интеллекта 5
1.2 Анализ мнений о возможностях ИИ 6
1.3 Отличия ИИ от нейронных сетей 8
1.4 Типы, структура, устройство и назначение нейронных сетей 9
1.4.1 Что собой представляет нейронная сеть? 9
1.4.3 Назначение нейронных сетей 13
1.4.4 Обучение нейронных сетей 14
ГЛАВА 2. ПРАКТИЧЕСКАЯ ЧАСТЬ 15
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 20
Искусственный интеллект — тема, которой интересуются все больше людей с конца XX века.
Так называемый «искусственный интеллект" уже справляется с широким спектром задач. С помощью множества современных технологий, совокупность которых названа искусственным интеллектом, на данный момент усовершенствована система образования, улучшен рабочий процесс сотрудников в самых разных сферах деятельности (включая как экспертов в области интернет-технологий, так и рабочих в сфере производства).
Актуальность: с каждым днем диапазон задач, которые может решить «искусственный интеллект» значительно возрастает. Такими же темпами растет количество людей, которые задумываются о том, не заменит ли человечество «искусственный интеллект»?
По этой причине между людьми возникает множество споров. В ходе проекта я постараюсь определить существование и возможности искусственного интеллекта.
Цель: Изучить вопрос о существовании и возможностях искусственного интеллекта. Ответить на вопрос: «Заменит ли человека искусственный интеллект?»
Задачи:
Данные об определении понятия «искусственный интеллект» широко распространены в сети Интернет и часто имеют значимые различия между собой, в зависимости от источника.
Таким образом, для примера можно взять одну из самых популярных электронных энциклопедий — веб-сайт ru.wikipedia.org[2]. На данном сайте приведены несколько определений:
Более понятным будет определение, под которым люди чаще всего и подразумевают понятие интеллекта: «Интеллект — способность системы создавать в ходе самообучения программы (в первую очередь эвристические) для решения задач определённого класса сложности и решать эти задачи» [2]
Вывод: искусственный интеллект (Artificial Intelligence(AI)) (далее ИИ)— самообучающаяся программа, способная ставить и решать задачи (включая те, которые у человека считаются творческими), подстраиваясь под условия.
До сих пор между людьми часто возникают споры. Кто-то говорит о том, что если не в ближайшие дни, то в ближайшие годы точно произойдет так называемое «восстание машин», в ходе которого человечество прекратит свое существование благодаря своим же творениям. Другие считают, что разума, в привычном его понимании, у техники нет. Ниже приведены мнения с разных источников насчет этого вопроса.
Не ИИ, а алгоритмы
Итак, как мы и сказали, ИИ, как такового, не существует на данный момент. А в повседневной жизни мы сталкиваемся с алгоритмами машинного обучения, использующими нейронные сети. Причём чаще всего человек встречается с узкопрофильными моделями алгоритмов, которые могут выполнять одну задачу, но делают это максимально точно»
Если продолжать изучать подобные статьи, то можно выделить одну закономерность. Люди называют искусственным интеллектом две разные вещи, не замечая этого. Таким образом, ИИ можно разделить на две группы:
Примеров слабого ИИ можно назвать много уже сейчас. Определение объекта на фото, генерация краткого пересказа текста, распознавание рукописного текста, считывание эмоций на лице и др.
Исходя из этих данных можно подойти к следующему этапу: отличия сильного ИИ от слабого (нейронной сети)
Часто люди путают два абсолютно разных понятия. Стоит научиться их отличать, так как без этого будет невозможно ответить на главный вопрос этого проекта.
Определения ИИ были приведены выше.
Понятие нейронной сети можно взять с того же сайта[1]:
Нейронная сеть (также искусственная нейронная сеть, ИНС, или просто нейросеть) — математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма.
То есть, уже на данном этапе можно провести аналогию между ИНС и человеческим мозгом, а также найти различие между ИНС и ИИ. Стоит вывести краткие определения, показывающие различия:
ИИ — программа, способная выявлять и решать задачи на уровне человека (В том числе творческие). А также без стороннего вмешательства расширять спектр возможностей.
Нейросеть — программа, способная решать задачи только узко определенного вида. Без вмешательства принцип работы не меняет.
Таким образом, можно выявить, что в качестве сходства эти программы имеют в основном только самообучение. Искусственным интеллектом можно назвать только программу, которая состоит из множества нейронных сетей и способна воспроизводить новые, при этом соблюдает вышеупомянутые условия. Далее стоит подробно разобрать
структуру и типы нейронных сетей (т. к. выше было доказано, что ИИ на данный момент не существует)
Невозможно понять, на что способна нейросеть, если не изучить, что она из себя представляет.
На самом деле, несмотря на то, что нейросеть это математическая модель, у нее очень много общего с устройством человеческого мозга. Если рассматривать мозг на клеточном уровне, то можно обнаружить множество нейронов, которые передают друг другу сигналы.
Общее устройство простейшей нейронной сети можно рассмотреть на схеме
(см. рис. 1)
рис 1. схема простейшей нейросети
Если объяснять принцип работы простым языком, то получится следующее:
В программу подаются данные в виде массива чисел, в нейронах эти числа проходят определенную обработку с помощью математических операций, на выходе получается результат.
рис 2. Схема работы нейрона
Работа нейрона зависит от нейронной сети (далее НС), но для пониманий можно взять обычную НС прямого распространения (та нейросеть, в которой данные проходят по слоям поочередно, в одном направлении (см. рис. 1)), а так же в ней каждый нейрон соединен с каждым нейроном предыдущего слоя.
Найти данные, которые выдаст нейрон можно по простой формуле:
, где xn — входное число, ω — вес (коэффициент, на который умножается входное число), b — коэффициент смещения (будет рассмотрен позднее),
— функция активации.
Функция активации нужна для того, чтобы привести значение нейрона в определенный диапазон (чаще всего от 0 до 1) для возможности работы с этими данными. Чаще всего пользуются следующими функциями:
Пороговая | Сигмоидальная | ReLU |
Используется реже остальных, для примитивных НС. Часто вместо нуля встречается другой порог. | Ранее использовалась для большинства НС, сейчас используется только в качестве обучения | Довольно популярна и в наше время, используется в НС до среднего уровня. |
После того как нейрон обработал данные, он передает их во все нейроны следующего слоя.
Главная проблема, что веса (ω) и смещение (b) на практике заранее никогда неизвестны. В этом и заключается задача обучения НС, которое будет рассмотрено позднее.
Очевидно, что для разных задач используются принципиально разные НС. Рассмотрим самые популярные из них:
Уже на данный момент НС имеют широкое применение в самых разных областях. Если не касаться обширной области робототехники (используя которую вместе с задатками ИИ, можно заменить человека в опасных профессиях), то можно выделить основные задачи:
Чтобы определить весовые значения и значения смещений НС должна обучиться. Обучение происходит двумя способами:
Основной смысл процесса обучения можно понять, изобразив график зависимости значений ошибки от веса. Главная цель — найти вес, при котором будет достигнут минимум этого графика.
Самым действенным путем определить возможности так называемого ИИ будет не только анализ мнений экспертов в данной области, но и осознание особенностей разработки на личном опыте.
В качестве примера будет взята нейронная сеть, определяющая по изображению рукописные цифры.
В качестве языка программирования будет использован Python (3.10.0), т.к. он легок в изучении и используется в большинстве случаев машинного обучения. Интерактивная среда разработки — Microsoft Visual Studio Code.
Первым делом стоит создать главный файл, содержащий саму программу и подключить необходимые библиотеки (Приложение 1). Библиотека numpy нужна для осуществления математических вычислений, а matplotlib для визуализации данных.
import numpy as np
import matplotlib.pyplot as plt
Далее импортируем вспомогательный файл
import loadf
После импорта следует его создать и написать в нем функцию, которая загрузит набор из шестидесяти тысяч картинок с рукописными цифрами. Этот набор находится в свободном доступе и для удобства обработки все изображения имеют разрешение 28*28 пикселей.
Код вспомогательного файла loadf.py (Приложение 2):
import numpy as np
#Функция, загружающая набор картинок рукописных цифр
def load_dataset():
with np.load("mnist.npz") as f:
#изменение цветового формата
x_train = f['x_train'].astype("float32") / 255
# переформирование (60000, 28, 28) в (60000, 784)
x_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1] * x_train.shape[2]))
y_train = f['y_train']
y_train = np.eye(10)[y_train]
return x_train, y_train
Далее можно продолжить работу в главном файле (Приложение 1):
images, labels = loadf.load_dataset()
#Заполнение весов и смещений случайными значениями
weights_input_to_hidden = np.random.uniform(-0.5, 0.5, (20, 784))
weights_hidden_to_output = np.random.uniform(-0.5, 0.5, (10, 20))
bias_input_to_hidden = np.zeros((20, 1))
bias_hidden_to_output = np.zeros((10, 1))
#Определение параметров обучения
epochs = 3
e_loss = 0
e_correct = 0
learning_rate = 0.01
for epoch in range(epochs):
print(f"Эпоха №{epoch}")
for image, label in zip(images, labels):
image = np.reshape(image, (-1, 1))
label = np.reshape(label, (-1, 1))
#Прямое распространение (скрытый слой)
hidden_raw = bias_input_to_hidden + weights_input_to_hidden @ image
hidden = 1 / (1 + np.exp(-hidden_raw)) # sigmoid
#Прямое распространение (выходной слой)
output_raw = bias_hidden_to_output + weights_hidden_to_output @ hidden
output = 1 / (1 + np.exp(-output_raw))
# Вычисление коэффициента ошибки
e_loss += 1 / len(output) * np.sum((output - label) ** 2, axis=0)
e_correct += int(np.argmax(output) == np.argmax(label))
#Обратное распространение (выходной слой)
delta_output = output - label
weights_hidden_to_output += -learning_rate * delta_output @ np.transpose(hidden)
bias_hidden_to_output += -learning_rate * delta_output
#Обратное распространение (скрытый слой)
delta_hidden = np.transpose(weights_hidden_to_output) @ delta_output * (hidden * (1 - hidden))
weights_input_to_hidden += -learning_rate * delta_hidden @ np.transpose(image)
bias_input_to_hidden += -learning_rate * delta_hidden
# Вывод информации отладки
print(f"Loss: {round((e_loss[0] / images.shape[0]) * 100, 3)}%")
print(f"Accuracy: {round((e_correct / images.shape[0]) * 100, 3)}%")
e_loss = 0
e_correct = 0
По ходу исходного кода можно проследить следующие действия:
Обучение НС использует значительную мощность устройства и занимает немало времени по меркам программ. В итоге три эпохи обучения заняли около тридцати секунд и вот что вышло в итоге.
После первой итерации процент правильных ответов НС составил около 85%, после второй уже 93%, а после третьей почти 94%.
То есть даже после того, как через нейронную сеть прошло сто восемьдесят тысяч изображений, примерно каждые 17-18 изображений она может ошибаться. Соответственно, чтобы обучить нейронные сети распознавать лица, водить машину требуется очень много времени и ресурсов.
На разработку вышеупомянутой нейронной сети ушло несколько часов, но она уже может по изображению определять рукописные цифры. Это большой шаг в развитии так называемого компьютерного зрения, которое с помощью обычной камеры позволяет распознавать многие объекты для их дальнейшей обработки
К тому же, мой проект имеет огромный спектр направлений для развития. Можно научить нейросеть распознавать цифры по изображениям разных разрешений, цветов и многое другое.
Основной целью этого проекта было ответить на вопрос «Заменит ли человека искусственный интеллект?» И, на самом деле, это очень некорректный вопрос. Заменит как? Заменит в чем?
У человечества, кроме положительных сторон, есть множество недостатков. Если рассматривать человека только со стороны работы, то состояние здоровья, чувства, эмоции — все это может помешать максимально эффективному выполнению задачи. Нужно ли при создании искусственного интеллекта также создавать ему симуляцию человеческих эмоций? Безусловно, создать точную копию биологического характера не получится, но если дать нейросети миллионы примеров поведения, то она сможет воссоздать его на более чем 99%.
Часто в наши дни людей волнует, что ИИ, когда появится, отберет все рабочие места. Но почему-то не учитывают при этом, что обучить при этом нейросеть может быть в тысячи раз дольше и дороже. К тому же содержать при этом вычислительное устройство будет очень невыгодно по сравнению с человеком. А еще есть опасные виды работ, выполняя которые человек сильно рискует, не лучше было бы вместо человека этим заняться устройству, которое сможет сделать все безопаснее и точнее.
Еще существует теория так называемого «восстания машин». Многие задумываются о том, что при сильном развитии искусственный интеллект может «поработить» человечество. Стоит лишь немного изучить сущность искусственных нейронных сетей и все сразу становится ясно. Чтобы захватить всех людей на Земле, ИИ сначала должен научиться это делать. К тому же, даже гипотетически, как он будет это делать? Нужно огромное количество вооружения, которое может предоставить только человек. Из этого складывается только один вывод: ИИ может захватить человека только с помощью самих людей.
Так что однозначного ответа на вопрос просто не существует. Заменит ли искусственный интеллект человека? Частично уже заменил. Но на все 100% человека сможет заменить только другой человек.
Список интернет-источников
Самарские ученые разработали наноспутник, который поможет в освоении Арктики
Солнечная система. Взгляд со стороны
На горке
Калитка в сад
Серебряное копытце