Нейронная сеть — компьютерная система, которая работает на основе алгоритмов, имитирующих работу человеческого мозга. Благодаря этой технологии сервисы могут быстрее и качественнее обрабатывать информацию, создавать новые данные и т. д.
Отметим, что нейросеть — слишком широкое название. Разработчики используют разные архитектуры для достижения лучших результатов. В этой статье разберем, какие есть нейросети, как они работают и приведем примеры рабочих проектов.
Table of contents
Как работает нейросеть
Если не углубляться в тонкости, то работа нейросетей заключается в обучении на поступающей информации путем детально точной настройки связей между нейронами. Когда система получает новые данные, она автоматически корректирует параметры для минимизации ошибок. Со временем программа станет способна быстро и качественно обрабатывать информацию.
В общем виде работу нейросетей можно разделить на несколько этапов:
- Пользователь создает запрос.
- Нейросеть обрабатывает входящую информацию через слои нейронов и анализирует с помощью весов и смещений. Если в запросе есть определенные паттерны, система активирует подходящие нейроны.
- Сигнал передается сквозь скрытые слои.
- Каждый нейрон в сети применяет параметры к входящей информации и выдает результат.
- Нейросеть обрабатывает данные и выдает пользователю готовый результат.
Часто с первой попытки не получается тот результат, который нужен. Современные нейросети имеют память, поэтому пользователь может уточнить запрос, а ИИ доработает картинку или текст с опорой на новые инструкции.
Типы задач, которые решают нейронные сети
Хотя функциональность нейросетей огромна, все виды нейронных сетей выполняют 5 основных задач:
- Классификация — распространенная задача, с которой отлично справляется искусственный интеллект. Пример функций — распознавание лиц, проверка типа огурца на картинке. Занимаясь классификацией, нейросеть должна отнести полученные данные к одной из заложенных разработчиком категорий.
- Регрессия — получение конкретного числа, а не класса. Примеры — определение возраста человека, прогнозирование стоимости криптовалюты.
- Прогнозирование временных рядов — сложная задача, которая близка к регрессии. Суть аналитики заключается в том, что компьютерный интеллект должен определить дальнейшее движение значений в ряде. Примеры — прогнозирование курса акций, анализ объема энергопотребления в городе.
- Кластеризация — анализ массива данных и выделение категорий на основе типичных характеристик. Эта задача сложнее классификации, поскольку нейросеть сама определяет параметры для разделения. Примеры — выявление классов фолловеров, анализ содержания картинки и т. д.
- Генерация — это машинное творчество. Генеративно состязательные нейросети (GAN) создают новый контент, основываясь на изученных материалах. Они могут генерировать тексты, картинки, аудио, раскрашивать черно-белое кино, редактировать фотографии и т. д.
На них функциональность нейросетей не заканчивается. Разработчики создают новые способы обработки данных, которые были бы эффективнее и сложнее.
Типы нейросетей
Существует 12 видов нейросетей, которые различаются сложностью архитектуры и принципом работы.
Сеть прямого распространения (FFNN)
Нейронные сети прямого распространения — системы, в которых не узлы не создают циклы. Данные внутри искусственного интеллекта перемещаются только вперед. Во время обработки информации входные узлы получают новые сведения и пропускают их вперед. В сети нет механизмов для возврата данных ни при каких условиях.
Перцептрон
Механизм прямой трансляции в 2023 году используют только в простых сервисах. К примеру, Google Фото применяет нейросеть для обнаружения объектов на снимке.
Перцептрон — простейший вид нейронных сетей, идею которого создал Фрэнк Розенблатт. Первый нейрокомпьютер «Марк-1» работал на базе этой технологии.
В основе прямой нейронной сети лежит математическая модель восприятия информации мозгом. Принцип работы:
- Сигналы от S-элементов передаются A-элементам. Одному А может соответствовать несколько S
- Сигналы, которые произвели возбужденные А, переходят к сумматору. Если R после сложения взвешенных сигналов и получает значение выше порога, то генерирует 1. В противном случае выдает -1.
Таким образом, перцептрон позволяет создать ассоциации между входными стимулами и требующимися реакциями на выходе. Если сравнивать с человеком, то этот способ работы с данными соответствует преобразованию зрительной информации в ответ двигательных нейронов.
Данный вариант нейросети не используют в современных нейросетях из-за их предельной простоты и ограниченной функциональности.
Сеть радиальных базисных функций (RBFN)
Radial basis functions — набор методов строгой интерполяции, т. е. данные должны проходить через каждое опорное значение. Разработчики нейросетей используют 5 основных функций:
- Плоский сплайн (гладкая кривая, проходящая через набор точек, которые влияют на форму линии).
- Сплайн с натяжением.
- Полностью регуляризованный сплайн.
- Мультиквадрики (схема аппроксимации рассеянных данных).
- Обратные мультиквадрики.
Каждая базисная функция имеет уникальную форму и позволяет получать разные результаты обработки данных, которые в итоге объединяются в готовый ответ на выходном слое нейронов. При этом одни и те же данные проходят через каждую функцию.
Стоит отметить, что системы радиально-базисных функций — это подвид сетей прямого распространения. Здесь уникальных только функция активации и метод обработки данных. С точки зрения архитектуры RBF не отличается от FFNN. В современных проектах их уже редко используют
Рекуррентные нейронные сети (RNN)
RNN разработали для того, чтобы решить основные недостатки сетей прямого распространения. Последние имели 3 недостатка:
- Не могут работать с последовательной информацией.
- Учитывают только последний ввод.
- Не запоминают предыдущие данные.
Концепция RNN строится на последовательном использовании информации. При этом входы и выходы зависят друг от друга. Рекуррентные нейронные сети имеют память, т. е. учитывают предшествующие сведения и используют ее для выполнения новых задач. Хотя архитектура позволяет работать с длинными последовательностями, в реальности она ограничена несколькими шагами.
Рекуррентные нейросети редко используют в чистом виде. Обычно их функциональность расширяют за счет других архитектур. RNN подходит для выполнения следующих задач:
- Распознавание предметов.
- Прогнозирование временных рядов.
- Машинный перевод.
- Обработка естественного языка.
Чаще всего рекуррентные нейронные сети применяют для распознавания лиц в системах видеонаблюдения и прогнозирования будущих событий.
Долгая краткосрочная память (LSTM)
Long short-term memory — улучшенный вариант архитектуры рекуррентной нейронной сети. Она имеет способность к обучению долговременным зависимостям, что увеличивает количество шагов в последовательности. LSTM создали Зепп Хохрайтер и Юрген Шмидхубер в 1997 году.
LSTM решает основную проблему нейронных сетей — забывчивость предыдущих данных и запросов. Данная архитектура не имеет проблемы долговременной зависимости. Для них запоминание информации на долгое время — нормальное поведение.
В отличие от стандартной RNN, LSTM имеет 4 слоя нейронов, взаимодействующих друг с другом особым способом.
Если рассматривать содержимое между 2 слоями в виде «чёрного ящика» на самолете, то в базовой рекуррентной сети выход из ящика присоединяется к нему же с задержкой в минус единицу. В обновляемой нейросети разработчики добавили операцию актуализации информации между выходом и предыдущим значением. Эту новую операцию рассматривают как логический вентиль, принимающий значение 0 или 1, а второй должен быть равен 1 минус ново значение.
LSTM активно применяют при создании современных нейросетей. Примеры использования:
- OpenAI в 2018 создал бота для Dota 2. По уровню игры она превосходила профессионалов.
- DeepMind в 2019 разработал своего бота для Starcraft II.
В целом же, способности LSTM активно изучают в разных контекстах, по данным Google Scholar. Их можно применять для решения любых задач в таких областях, как программирование, здравоохранение, генерация контента и т. д.
Управляемые рекуррентные нейроны (GRU)
GRU — улучшенная версия LSTM, которую разработали в 2014 году. Управляемые нейроны обычно считают упрощенным вариантом, поскольку они имеют меньше параметров, поскольку отсутствует выходной вентиль.
Однако нельзя точно сказать, что лучше: GRU или LSTM. По точности они близки, хотя в некоторых задачах управляемые рекуррентные нейроны оказываются надежнее. Однако точно известно, что GRU проще реализовать.
Сверточные нейронные сети (CNN)
Сверточные нейронные сети — популярная архитектура, которую активно используют для создания моделей, выполняющих задачи классификации. Они анализируют полученные данные по множеству параметров, что позволяет достичь максимальной точности.
Сверточная архитектура состоит из нескольких слоев. Чем их больше, тем выше точность ИИ. Основные элементы:
- Сверточный слой нейронов.
- Пулинг.
- Нормализация по батчу, т. е. обработка данных для достижения нулевого математического ожидания и единичной дисперсии.
- Полносвязный слой.
Чтобы ИИ понял, что на фото кошка, нужно проделать несколько операций. Главная из них — свертка, во время которой нейросеть удаляет лишнее и оставляет то, что нужно для анализа. ИИ сам выполняет эту задачу.
Сверточная нейросеть особенно эффективна, если необходимо найти паттерны на картинках для распознавания объектов. Они учатся непосредственно на рабочих данных, используя шаблоны и устраняя надобность в самостоятельном извлечении признаков.
Большинство используемых систем, которые имеют функцию компьютерного зрения (например, в беспилотном транспорте), зависят от CNN. Архитектура имеет 3 преимущества перед аналогами:
- Автоматическое извлечение признаков.
- Точный анализ входных данных.
- Возможность переобучения для выполнения новых задач без создания другой системы.
Сверточные нейросети активно используют в государственных учреждениях для выполнения 2 задач:
- Распознавание рукописного текста в письмах и документации.
- Классификация документов (например, паспортов и ИНН).
Кроме того, их внедряют в модели для генерации изображений. Сверточная архитектура лежит в основе Midjourney, Stable Diffusion, Dream, DALL-E 2 и ruDALL-E. Также они полезны при создании интеллектуальных систем видеонаблюдения, которые сами оповестят о появлении преступника или проанализируют поток клиентов в офисе.
Деконволюционные сети (DNN)
Deconvolutional Neural Networks — сверточные нейросети, которые работают в противоположную сторону. Они не свертываются, а, наоборот, развертываются. Хотя деконволюционные сети внешне сильно похожи на CNN, их применение в разработке искусственного интеллекта сильно отличается.
DNN дополняет признаки и сигналы, которые в CNN не считались важными и из-за этого были упущены. Деконволюционные нейросети находятся в тесной связи с несколькими методиками глубокого обучения, которые направлены на извлечение структуры признаков из массива информации.
Автоэнкодер
Autoencoder — нейронная сеть, копирующая полученные данные на выход. Архитектурно она близка к персептрону. Ее цель — получить на выходном слое отклик, близкий к полученному. Автоэнкодер имеет одинаковое количество нейронов на входе и выходе.
Autoencoder состоит из 2 компонентов:
- Энкодер сжимает вход в скрытое пространство. Работает на базе функции кодирования.
- Декодер предназначен для восстановления информации из latent-space.
Двухэтапная кодировка нужна для изучения эффективных способов обработки немаркированных данных. Данный тип нейросети упрощает неконтролируемое обучение, при котором ИИ получает сырой материал для тренировки.
Есть 2 распространенных применения автоэнкодеров на практике:
- Сглаживание шума.
- Управление размерностью.
Autoencoder обучают автоматически на примерах данных. Систему легко научить части алгоритма, которые в результате будут исправно работать на конкретном типе ввода. Разработчикам не придется внедрять новый алгоритм, достаточно предоставить данные для самообучения.
Вариационный автоэнкодер
Variational Autoencoder — генеративная модель, применяемая во многих областях искусственного интеллекта. Она нужна для генерации человеческих лиц на фотографиях, создания искусственной музыки и т. д.
Генеративные системы созданы для того, чтобы пользователь получал на выходе случайные данные, которые похожи на тренировочный набор данных. Эту же функцию могут выполнить VAE. Однако часто требуется изменить или изучить различные вариации на данных, которые уже есть в базе. В этом плане VAE работают лучше аналогов.
К примеру, Rave, разработанный на базе VAE, создает сложные мэшапы из разных треков. При этом пользователь может получить микс из неограниченного множества композиций.
Шумоподавляющий автоэнкодер
Denoising autoencoder — автоэнкодер, который получает данные в зашумленном состоянии. Шум создают 2 способами:
- Добавление на входе рандомного нормально распределенного шума с минимальной дисперсией.
- Обнуление части нейронов.
Благодаря такому механизму обработки информации искусственный интеллект учится обращать внимание на широкие свойства, поскольку незначительные могут быть изменены вместе с наложением шума.
Генеративно-состязательные сети (GAN)
Generative adversarial network — сложная архитектура, которая состоит из генератора и дискриминатора. Они работают друг против друга, отчего и пошло название. Впервые данная нейросеть была изучена в университете Монреаля в 2014 году. GAN сразу привлекла внимание сообщества. Руководитель отдела по изучения искусственного интеллекта в Facebook Yann LeCu назвал генеративно-состязательные сети самой интересной концепцией в машинном обучении.
У GAN огромный потенциал, потому что они могут создать любую вариацию данных. Есть 2 примечательных проекта:
- StyleGAN. Это разработка NVIDIA. Создатели научили нейросеть мгновенно создавать картинки с людьми, машинами, интерьерами, которых нет в реальности.
- This Cat Does Not Exist. Проект, который во многом похож на предыдущий, но здесь показывают только котов.
Благодаря постоянному взаимодействию 2 сетей GAN достигает удивительной точности в генерации новых изображений, текстов, музыки и т. д.
Conclusion
Существует множество решений в области искусственного интеллекта. Пока не придумали механизма работы с данными, который бы приблизился к способностям человеческого мозга. Однако при изучении истории развития нейронных сетей, начиная с первых разработок, видно, что ИИ становится сложнее и точнее.
В 2023 году GAN — это передовая технология в индустрии, но создание тандема из 2 нейросетей — не предел возможностей. Для достижения лучшего результата необходимо увеличивать количество нейронов. Лучшие проекты редко имеют 10 млрд нейронов в то время, как в человеческом мозге работает более 100 млрд.
Оставляйте свой комментарий, если хотите более простую версию этой статьи.