27 Окт 2022
10 мин
15510

Что такое нейронные сети и как они работают

Основные виды и этапы разработки нейронных сетей.

Содержание

Глубокие нейронные сети ответственны за часть величайших достижений в современных компьютерных технологиях.

Дин Джефф, 2018 г.

Современный мир сложно представить без технологий, в основе которых лежат нейронные сети. Мы привыкли, что телефон мгновенно распознаёт лицо, реагирует на наш голос, обрабатывает фотографии, рекомендует новые контакты или предлагает посмотреть видео с котиком.

Все эти функции работают на основе нейронных сетей. Однако сфера их применения не ограничивается только телефоном. Нахождение новых лекарств, исследование далеких звезд, торговля акциями — нейронные сети помогают людям во многих областях.

В этой статье рассказываем, что такое нейросети, как они работают и где используются.

Что такое нейросети

Нейронные сети — это математические алгоритмы, которые являются основой современного машинного обучения. Их главная задача — находить закономерности в большом объеме данных, обрабатывать их и делать выводы.

Прообразом искусственной нейронной сети являлся наш мозг. Однако спустя десятилетия развития науки и исследований ученые пришли к выводу, что у искусственной нейронной сети и нашего мозга связь отдаленная, и у нейросети другой путь — математический.

Виды нейросетей

Есть разные виды нейронных сетей, каждый из которых используется для определенных целей. Вот самые популярные из них.

Перцептрон

Модель перцептрона — пример самой простой архитектуры нейронной сети. Эту модель придумал Фрэнк Розенблатт в 1958 году. Перцептрон — это математическая модель восприятия информации мозгом.

Сейчас модель перцептрона в чистом виде практически не используется в мире нейронных сетей. Но на ее основе сделали искусственный нейрон, который является минимальным «кирпичиком» для многих других нейронных сетей.

Модель перцептрона состоит из четырех основных компонентов: входа, веса, сумматора и функции активации. Входные данные перемножаются с весами, суммируются и поступают на вход функции активации. Таким образом формируется результат работы перцептрона.

Концепция работы перцептрона на примере распознавания объекта

Многослойные нейронные сети

Многослойная нейронная сеть — одна из самых базовых архитектур. Она состоит из искусственных нейронов, которые объединяются в слои. Нейрон из одного слоя связан с каждым нейроном из следующего слоя, поэтому такие нейронные сети часто называют полносвязными.

Чаще всего их используют для обработки числовых данных или в составе других нейронных сетей.

Визуализация работы многослойной нейронной сети

Свёрточные нейронные сети

Еще один вид популярных нейросетей — свёрточная нейронная сеть. Идея создания такой архитектуры тоже во многом заимствована из исследований по работе зрительной коры головного мозга. Неслучайно область, где свёрточные нейронные сети нашли применение, — это обработка изображений.

Основной принцип работы — переиспользование части нейронной сети внутри самой себя для обработки небольших участков входного изображения.

Другими словами, каждый слой такой архитектуры «смотрит» на фиксированный кусочек входа и извлекает из него информацию. Далее из этой информации строится новое «изображение», которое подается на вход следующего слоя.

Такие нейронные сети очень эффективны в распознавании простых элементов (паттернов): нос, глаз, ухо и так далее.

Визуализация работы свёрточных слоев нейронной сети

Рекуррентные нейронные сети

Для обработки последовательностей чаще всего используют рекуррентные нейронные сети. Основная особенность данной архитектуры — использование памяти. Нейронная сеть хранит внутри себя информацию о предыдущих данных и выдает ответ с учетом знания о всей последовательности.

Такая архитектура мотивирована исследованиями принципов работы памяти в головном мозге. Эти нейронные сети высоко зарекомендовали себя в задачах обработки текста, видео, аудио и других данных, зависимых от времени.

Визуализация работы рекуррентных слоев нейронной сети

Для каких задач используют нейронные сети

Есть несколько больших классов задач нейронных сетей:

  • обучение с учителем;
  • обучение без учителя;
  • обучение с подкреплением.

Обучение с учителем

Для обучения с учителем нужен набор данных, для которых заранее известны ответы. Такие данные называются тренировочными. На этапе обучения нейросеть пытается найти закономерности в данных, чтобы правильно решить исходную задачу.

Основная идея — показать нейронной сети много разноплановых примеров, а во время работы нейросеть будет использовать найденные закономерности из тренировочного набора на новых данных. И такой способ отлично работает на практике.

Основными задачами обучения с учителем являются классификация и регрессия.

Классификация

В задаче классификации чаще всего есть конечный набор классов, который определен на моменте проектирования нейросети.

Главная задача — отнести входной объект к нужному классу. При этом классы могут быть вполне определенные: кошка, собака, енот — а могут быть и весьма абстрактными: животное, камень или вовсе не относиться к другим классам.

К примерам задачи классификации можно отнести:

  • разделение отзывов к товару на положительные и отрицательные;
  • поиск фотографии с Мэрилин Монро;
  • распознавание японских иероглифов.

Регрессия

В задаче регрессии нейронная сеть пытается предсказать не класс, а число. При этом искомая величина может принимать бесконечное количество значений — неважно, ограничено ли оно сверху или снизу.

Примеры задачи регрессии:

  • предсказание цены дома в зависимости от района или площади подвала;
  • определение роста человека по фотографии;
  • прогноз цены акций на следующей неделе.

На самом деле, задачи с учителем могут решать сразу задачу классификации и задачу регрессии.

Самый простой пример — детекция (поиск) объекта на картинке. Нам одновременно нужно предсказать границы прямоугольника, который выделяет объект, а также класс, к которому относится объект.

В простейшем случае достаточно предсказать четыре числа: два числа — координаты верхнего левого угла и еще два — координаты правого нижнего, а также классификация на два класса: задний фон и сам объект.

Обучение без учителя

В обучении без учителя нейросеть получает на вход данные, для которых ответы заранее неизвестны. В таком классе задач нейронная сеть занимается поиском паттернов, чтобы решить полученную задачу.

С одной стороны, этот подход более привлекательный: не требует разметки данных — и в теории нейронная сеть может обучаться на большем количестве данных. Но в этом процессе есть свои особенности, поэтому нейронные сети чаще обучаются с учителем.

К обучению без учителя можно отнести задачи кластеризации и генерации.

Кластеризация 

В этой задаче нужно разделить данные на заранее неизвестные классы по мере схожести по какому-то признаку. Таким образом, нужно, чтобы на выходе получилось разбиение, где образцы одного класса максимально близки друг к другу по некоторой оценке, а всё остальное — значительно дальше.

По своей идее этот класс задач очень похож на классификацию, но зачастую отличается тем, что заранее неизвестно, как правильно выделить классы — и даже их число.

Примеры задачи кластеризации:

  • выявление групп семантически похожих документов;
  • разбиение животных на разные виды.

Генерация

Задача генерации — нейросеть должна создать что-то новое по заданной тематике. Это могут быть целые картинки или их части, музыка, видео, тексты.

Это направление очень популярно, и каждый год выходят новые исследования, которые решают задачу генерации всё лучше и лучше. Существует отдельное течение в медиаискусстве — компьютерное искусство. Многие сервисы бесплатны и доступны онлайн.

Примеры задач:

Обучение с подкреплением

Еще один большой класс задач — обучение с подкреплением. Основная идея — создать для нейронной сети окружение, которое будет моделировать реальную задачу.

Обучение происходит за счет реакции окружающей среды на каждое действие нейросети. В данной задаче она называется агентом. Агент получает вознаграждение за верные действия и наказания за всё, что не приводит к успеху.

Такой подход популярен в сфере обучения нейронных сетей играм:

  • AlphaGo: алгоритм на базе нейронных сетей для игры в Го, который победил трехкратного чемпиона Европы Фань Хуэя в 2015 году;
  • AlphaStar: программа, которая использует нейронные сети для игры в Starcraft II.

Обучение с подкреплением может успешно применяться не только в играх. Этот подход успешно применяют в робототехнике, химии и других областях.

Данная классификация условна, и можно придумать много задач, которые относятся сразу к нескольким типам или решаются гибридными методами. Ученые в области нейронных сетей смешивают разные подходы и методы и всё чаще получают интересные результаты.

Сферы применения нейросетей

Благодаря своей обобщающей способности нейронные сети применяются во многих дисциплинах: в медицине, финансах, автоматизации, роботизации и так далее.

Рассмотрим сферы, в которых нейросети зарекомендовали себя особенно хорошо.

Компьютерное зрение

Область, в которой компьютеры получают высокоуровневое представление из картинок и видео. Основные задачи: классификация, детекция, сегментация объектов на изображении, распознавание лиц, сцен и даже событий.

Нейронные сети, особенно свёрточные, показывают отличные результаты во многих прикладных задачах.

К областям применения компьютерного зрения относятся:

  • медицина: автоматическая постановка первичного диагноза по рентгеновским снимкам;
  • робототехника: ориентация в пространстве, навигация, распознавание объектов вокруг;
  • автоматизация: контроль качества продукции на заводах, отслеживание технологических процессов.

Задачи компьютерного зрения, которые решают нейронные сети

Обработка естественного языка

Направление искусственного интеллекта, которое занимается обработкой больших объемов данных естественного языка: русского, английского и так далее.

Основная цель — анализ и понимание смысла, а также генерация нового текста. В этом направлении особенно популярны рекуррентные нейросети.

Задачи обработки естественного языка:

  • распознавание и генерация речи: голосовые помощники, автоматическая генерация субтитров;
  • анализ текста: разделение документов по категориям;
  • генерация текстов: написание второго тома «Мертвых душ».

Анализ временных рядов

Совокупность методов по анализу и прогнозированию поведения последовательности данных, которые имеют временную зависимость.

Примеры задач:

  • экономика: предсказание курса доллара;
  • анализ данных: фильтрация данных с различных датчиков и выделение важного сигнала из шума.

Преимущества и недостатки технологии

Преимущества:

  1. Мощный инструмент — может быть использован для широкого класса задач.
  2. Высокая обобщающая способность — может находить сложные закономерности и паттерны в данных.
  3. При правильной настройке может выдавать высокую точность и превосходить многие другие алгоритмы, а в определенных задачах даже людей.

Недостатки:

  1. Требует очень много данных для обучения. Например, для обучения современных моделей для генерации текста требуются терабайты текстовых данных.
  2. Нужно много знать, чтобы обучить модель и заставить ее хорошо работать.
  3. Очень сложно интерпретировать полученные результаты. Нет четких критериев, чтобы понять, почему нейронная сеть приняла определенное решение.
  4. Очень дорогое обучение. Чем сложнее задача, тем больше данных требуется и тем дольше модель учится.

Этапы разработки нейронных сетей

Постановка задачи

В самом начале полученную задачу нужно свести к понятной для нейронной сети, например классификации или регрессии.

Сбор и анализ тренировочных данных

Дальше нужно собрать много примеров, на которых нейросеть будет обучаться. Сделать так, чтобы данные не отличались от тех, на которых нейронная сеть должна работать и предсказывать результаты.

Это значит, что если мы решаем задачу по классификации котов и собак, то животные должны быть разных цветов. Если это будет не так — например, во время обучения мы покажем нейросети только рыжих котов и только белых собак, — то, когда нейронная сеть увидит белого кота, сильно засомневается и, вероятно, сделает ошибку.

Обучение

На этом этапе нужно подобрать архитектуру нейронной сети, которая сможет решить задачу наилучшим образом, и попробовать ее обучить.

Чаще всего сначала обучают простую модель, а потом пытаются ее улучшить. Так делают, чтобы сразу получить оценку «снизу»: насколько хорошо данная архитектура справится с задачей на имеющемся массиве данных, чтобы, в случае низкого качества или проблем, дособрать данные.

Еще во время этого этапа разработчики пристально следят за метриками, чтобы понимать, насколько нейронная сеть хорошо обучается.

Имплементация

После того как нейронная сеть обучилась с нужным качеством, переходят к этапу имплементации. На нём нейросеть оптимизируют и внедряют на устройство, на котором она будет работать. Чаще всего это удаленные серверы или пользовательские девайсы.

Один из примеров использования сервера — «умная» колонка. Она записывает голос и отправляет его на сервер. Там голос распознается и генерируется ответ, который возвращается обратно.

Пример пользовательского устройства — смартфон, который распознаёт лицо владельца для разблокировки.

Мониторинг и дообучение

После имплементации нейронной сети разработчики наблюдают, как она справляется с изначальной задачей.

В этот момент они могут обнаружить проблемы с качеством или скоростью работы. А еще может возникнуть ситуация, когда данные поменялись или задача расширилась.

В таких случаях нейронную сеть отправляют на дообучение.

Перспективы развития нейросетей

Ежегодно число публикаций по теме искусственного интеллекта и нейросетей растет. В 2021 году, по данным Center for Security and Emerging Technology, их число превысило 334 000 в год. Это значит, что данная сфера развивается, находит всё новые вызовы и пути решений.

Область нейронных сетей привлекает всё больше новых людей, вовлеченных в их развитие и решение уже существующих проблем. Появляется всё больше курсов, материалов, а следовательно — и вариантов применения технологии в реальной жизни.

Число публикаций по теме искусственного интеллекта в год, с 2010-го по 2021-й

Источник: Center for Security and Emerging Technology, 2021 ссылка

Коротко о главном

Нейронные сети — мощный инструмент, без которого сложно представить современный мир. Благодаря развитию технологии нейросетей можно создавать голосовых помощников, роботов, «умные» девайсы и многое другое.

Но нейросети не смогут везде заменить человека. Люди продолжат решать сложные задачи, которые требуют абстрактного мышления и воображения. А нейронные сети станут помощниками, которые обрабатывают огромное количество данных и выполняют рутинную работу.

Содержание

Добавить комментарий

Определи профессию по рисунку