Содержание:
- Как появилась концепция нейросетей
- Перцептрон — первая нейросеть
- Метод обратного распространения ошибки
- Современный этап: развитие глубокого обучения (Deep Learning)
- Как работает современная нейросеть
- Какие бывают нейросети
Нейросеть, еще называемая искусственной нейронной сетью или ИНС, – это математическая модель, программа или устройство, построенные по принципу биологической сети нейронов. Другими словами – по тому же принципу, по которому работает человеческий мозг. В основе каждой нейросети – огромное количество простых процессоров, представляющих собой искусственные нейроны. И, хотя по отдельности каждый процессор очень простой в сравнении с привычными компьютерами, их общая сеть с управляемым взаимодействием позволяет решать сложные задачи.
Рассмотрим, как развивались нейросети – от первой модели до современного чат-бота.
Как появилась концепция нейросетей
В 1943 году нейрофизиолог Уоррен Мак-Калок и логик Уолтер Питтс предложили первую модель искусственного нейрона – так называемый формальный нейрон. Фактически это было математическое описание работы клеток мозга.
Основатели нейросетей Уоррен Мак-Калок и Уолтер Питтс
Ученые описали модель нейсети на основе формальных нейронов и предположили, что она в состоянии обучаться, распознавать образы и делать обобщения, то есть фактически представляет собой искусственный интеллект.
В 1949 году физиолог Дональд Хебб высказал гипотезу, что обучение в мозге человека происходит за счет изменения силы синаптических связей между нейронами. Именно идея Хебба позволила создать самообучающиеся сети. Аналогом силы синоптических связей в них стали разные массы искусственных синапсов. Практическое воплощение концепция нейросетей получила в 1958 году, когда нейрофизиолог Фрэнк Розенблатт создал перцептрон – компьютерную программу, а также физическое устройство, которое можно считать первой нейросетью.
Перцептрон — первая нейросеть
Перцептрон представлял собой устройство с «глазами» – камерами, с помощью которых прибор мог считывать информацию. К ним подносили карточки с буквами и машина научилась распознавать некоторые из них.
Фрэнк Розенблатт с одной из версий перцептрона
Принцип работы перцептрона был прост: в него загружали определенный набор правил для распознавания информации, а затем показывали карточку, например, с буквой «А». Если устройство давало верный ответ, то переходили к следующей карточке, если же происходил сбой, то в правила вручную вносились коррективы, и обучение продолжалось.
На этом этапе искусственный нейрон мог оперировать только с бинарными сигналами (ноль и единица), то есть мало отличался от обычного компьютера. Тогда ученые пришли к выводу, что нужно «научить» нейросети обрабатывать не только бинарные, но и аналоговые, непрерывные сигналы. Так появился новый вид обучения – градиентный спуск по поверхности ошибки. Позднее он лег в основу метода обратного распространения ошибки, который используется до сих пор.
Метод обратного распространения ошибки
В 1969 году вышла книга «Перцептроны» Марвина Минского и Сеймура Паперта, в которой устройства Розенблатта подвергались закономерной критике. Дело в том, что в перцептроне использовалась однослойная нейронная сеть, а потому он не мог выполнять логическую операцию XOR (исключающее ИЛИ). А также на данном этапе компьютеры не обладали достаточной вычислительной мощностью и не могли обработать большой объем данных, который требовался для обучения нейронных сетей.
Сеймур Паперт и Марвин Минский – авторы книги «Перцептроны», на время остановившей развитие нейросетей
Однако в 1974 году независимо друг от друга Александр Галушкин и Пол Вербос описали метод обратного распространения ошибки. Он подразумевает, что сигнал об ошибке идет не от входов, а от выходов сети. Это позволяло решить задачу обучения многослойных сетей. К тому же теперь они могли совершать операцию «исключающее ИЛИ».
Например, нейросеть должна распознать рукописные цифры от 0 до 9. Для этого сначала ей дают обучающие примеры, затем она переходит к самообучению. Сеть выдает предположение о том, какая цифра сейчас демонстрируется, затем анализирует этот вариант и вычисляет разницу между реальной цифрой и своей версией. Это значение используется для корректировки нейронов внутри сети до тех пор, пока распознавание не станет максимально точным.
В 1980 году Кунихико Фукусима создал одну из первых многослойных нейронных сетей – неокогнитрон. В нем уже учитывался метод обратного распространения ошибки, но информация передавалась только в одном направлении.
Кунихико Фукусима – создатель многослойной нейронной сети
Но уже в 1982 году в так называемой сети Хопфилда удалось реализовать двустороннюю передачу информации между нейронами. Так появились нелинейные функции активации, которые обеспечивают сложные взаимосвязи между входными и выходными нейронами. На этом этапе все было готово для глубокого или глубинного обучения, также известного как. Но прошло еще более 10 лет, прежде чем концепция получила полноценное воплощение.
Современный этап: развитие глубокого обучения (Deep Learning)
Толчком для развития глубокого обучения в начале 2000-х стало распространение интернета. До этого для полноценного обучения нейросетей ученым банально не хватало объема информации в открытом доступе. Чтобы сеть могла самообучаться и выполнять сложные задачи, ей нужны огромные массивы данных.
В наше время благодаря сочетанию метода обратного распространения ошибки, многослойных сетей и больших данных, современные нейросети могут обрабатывать даже такую сложную вещь, как естественный язык.
Самое любопытное в новом этапе развития нейросетей – они перестали быть явлением только научного мира и стали частью жизни современного общества. Нейросети создают произведения искусства, пишут музыку и тексты, выступают в качестве собеседника и помощника, заменяют поисковые системы и голосовых ассистентов.
Рассмотрим подробнее, как работает технология в современных нейросетях. Что происходит, когда вы отправляете свою подсказку в ChatGPT?
Как работает современная нейросеть
В составе актуальных нейросетей есть три слоя нейронов: входной, выходной и скрытый. Первый нейронов располагает только входными данными (например, вашим запросом в чат). На последующие слои уже попадает информация со всех предыдущих слоев. Затем с помощью функции активации удаляются все значения, которые выпадают из требуемого диапазона (не соответствуют вашему запросу). Наконец, на выходных нейронах появляется итоговый результат.
Нейронная сеть прямого распространения, состоящая из трех слоев
При этом для всех процессов большее значение имеют даже не сами нейроны, а синапсы, то есть связь между ними. Каждый из синапсов имеет свой вес, выставленный в случайном порядке, и во время обработки данные, переданные синапсом с большим весом, становятся преобладающими.
В самом базовом виде работа нейронов выглядит так:
1. На слой входных нейронов поступают внешние данные (текст, картинка, код и т.п.).
2. Через синапсы информация передается следующему слою, причем у каждого свой вес, а внутренние нейроны могут иметь несколько входящих синапсов.
3. Внутренний слой получает сумму всех данных сети, перемноженную на коэффициенты весов синапсов.
4. Это значение попадает в функцию активации, с помощью которой отсеиваются неверные данные.
5. Итоговая информация передается на выходные нейроны — и вы видите ответ нейросети.
Конечно, принцип работы слегка отличается для разных видов сетей.
Какие бывают нейросети
Нейронные сети бывают однослойными (например, перцептрон) и многослойными, как мы это уже выяснили. Подавляющее большинство современных сетей состоит из нескольких слоев, ведь это позволяет решать более сложные задачи.
Также нейросети различаются по направлению распределения в них информации между нейронами. Это сети прямого распространения, сверточные и рекуррентные. Рассмотрим каждый из типов.
Сети прямого распространенияеще называют однонаправленными. Сигнал в них передается от входного нейрона к выходному, а обратное движение в принципе невозможно. Сами по себе такие сети ограничены в функциях и потому редко используются, но на их основе создаются более сложные сверточные сети.
Сверточные нейронные сети —вариант однонаправленных сетей, но в них заложено пять слоев: входной, свертывающий, объединяющий, подключенный и выходной. Такие сети частично имитируют зрительную кору головного мозга и используется для классификации объектов, распознавания изображений и естественного языка, а также для прогнозирования.
Например, Google Lens использует для идентификации изображений сверточную сеть из 27 слоев GoogleLeNet. Похожая сеть есть в сервисе распознавания текста Yandex Vision и в видеоувеличителе Transformer-OCR, который способен определять текст на изображениях.
Видеоувеличитель Transformer OCR с возможностью преобразования текста в речь
Рекуррентные сети имеют обратную связь. То есть информация с выходного слоя может возвращаться обратно на входной. Причем это может происходить неоднократно – и каждый раз данные будут пополняться за счет предыдущих выходов. Потому рекуррентные нейросети могут ненадолго запоминать и дополнять информацию, то есть обладают кратковременной памятью.
Рекуррентные нейросети нужны для языкового моделирования, создания текстов, автоматического перевода, распознавания речи и других задач. Именно они применяются в большинстве популярных чат-ботов: например, в ChatGPT и его российском аналоге SistemmaGPT. Также на базе таких сетей работают сервисы для создания текстов вроде Балабобы и генераторы изображений Midjourney, DALL-E, Dream и Kandinsky 2.1.
Есть и более любопытные варианты использования рекуррентных сетей: например, Gnod рекомендует пользователю музыку, книги и фильмы, Deep Nostalgia анимирует фотографии и может заставить людей на изображении моргать или двигаться. А проект Imaginary Soundscape дополняет панорамные снимки Google Maps звуками улицы, морского шума и другими, чтобы по ним можно было «прогуляться» почти как в реальности.
Существуют менее распространенные виды нейросетей: сеть радиально-базисных функций и самоорганизующиеся карты. К последним относится, например, самоорганизующаяся карта Кохонена, применяемая для моделирования, прогнозирования и в разработке компьютерных игр.
Также имеются иные классификации нейросетей, например, по типу нейронов, характеру настройки синапсов, модели обучения и др.
———————-
Длинная история развития нейросетей подошла к этапу, когда они не только имитируют работу человеческого мозга. Фактически теперь они не ограничены ни в мощностях (количестве процессоров-нейронов), ни в объеме информации. Это дает им огромное преимущество перед людьми и компьютерами, в том числе суперкомпьютерами.
И хотя в обычной жизни мы воспринимаем чат-боты и сервисы на основе ИИ скорее как развлечение, нейросети уже играют огромную роль в науке, прогнозировании, моделировании, в сфере безопасности и многих других. Без нейросетей были бы недоступны многие вычисления. Так изобретение 1940-х гг. значительно влияет на жизнь людей начала XXI века.