Научная группа из Московского Энергетического Института провела исследование о наиболее распространённых методах и способах построения нейросетевого программного обеспечения. Мы снова с вами, чтобы рассказать о том, что нужно делать, когда у вас уже есть данные, которые необходимо как‑то обрабатывать.

(А как сделать все правильно читайте здесь: Методы и способы построения нейросетевого ПО. Что надо знать, если вы решили профессионально разрабатывать ИНС. Часть 1)

Часть вторая. Построение модели нейронной сети

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

Схема отдельного нейрона.
Схема отдельного нейрона.

На рисунке приведена схема отдельного нейрона. Входные значения x0, …, xn являются вводимыми параметрами или сигналами прошлых нейронов; значение b (bias – смещение, также называется порогом) – это дополнительный входной параметр, влияющий на значение сигнала; w0, …, wn – веса, от которых зависит величина влияния параметров на сигнал. f – функция активации, которая преобразует результат, получаемый в нейроне, в итоговое значение y. В качестве функции активации используют самые разные функции: например, функция единичного скачка, определённая как 1 для неотрицательных значений и 0 для остальных, может использоваться для бинарной классификации. Использование сигмоидальной функции, являющейся нормализированной на интервале от 0 до 1, позволяет строить многослойные нейронные сети. Таким образом, можно математически записать, как получается сигнал на выходе нейрона:

Функция выходного сигнала
Функция выходного сигнала

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

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

Архитектура сети прямого распространения a и архитектура сети с обратными связями b
Архитектура сети прямого распространения a и архитектура сети с обратными связями b

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

 Модели нейронной сети

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

Многослойный персептрон (Multilayered Perceptron, MLP) считается одной из классических моделей ИНС. По своей сути это нейронная сеть с прямой связью, то есть сеть, в которой слои соединяются только последовательно. В качестве функции активации используется одна из нелинейных функций, при этом нейронная сеть включает в себя более чем один скрытый слой:

Структура многослойного персептрона
Структура многослойного персептрона

В настоящее время довольно популярны рекуррентные нейронные сети (RNN). Их особенностью является то, что на вход на скрытый слой подаётся не только значение предыдущего слоя, но и выходные значения нейронов этого или следующих слоёв:

Схема рекуррентной нейронной сети в свернутом виде (слева) и в развернутом (справа)
Схема рекуррентной нейронной сети в свернутом виде (слева) и в развернутом (справа)

LSTM — подтип RNN, который передаёт информацию на большее расстояние. Таким образом, LSTM решает проблему, когда цепочка связей в рекуррентной сети оказывается настолько длинной, что информация теряется. Достигается данный эффект за счёт сложной структуры нейронной сети: каждая ячейка LSTM представляется собой структуру, объединяющую несколько узлов. Используются забывающий узел, входной узел, узел для вычисления тензора‑кандидата и выходной узел. Полученные значения из выходного узла и узла вычисления тензора‑кандидата передаются к следующей ячейке LSTM аналогично тому, как в RNN вычисленное в нейроне значение передаётся следующему нейрону того же слоя:

Структура LSTM – сети долгой краткосрочной памяти
Структура LSTM – сети долгой краткосрочной памяти

Похожий механизм используют модели GRU. Аналогично LSTM такие модели состоят из модулей, использующих узлы (также называемые вентилями) для вычисления значений. Однако отличается процесс построения модуля: в GRU используются вентили восстановления и сброса. Отсутствие дополнительного вентиля приводит к тому, что в моделях GRU из одного модуля в другой передаётся только один параметр, а не два, как это было у LSTM:

Структура GRU – управляемого рекуррентного нейрона
Структура GRU – управляемого рекуррентного нейрона

Свёрточные нейронные сети (CNN) являются ещё одной часто используемой моделью нейронных сетей. Их особенностью является использование новых типов слоёв: свёрточных и слоёв подвыборки (пулинга). Свёрточные слои распознают образы, постепенно переходя от низкоуровневых признаков к всё более высокоуровневым. Фактически постепенно происходит снижение числа параметров. Например, так происходит воздействие свёрточного слоя на двумерное изображение: проходя по отдельным участкам, матрица весов объединяет разбросанные значения в единое значение на выходе слоя:

Принцип работы свёрточной нейронной сети (CNN)
Принцип работы свёрточной нейронной сети (CNN)

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

Классификация моделей по назначению
Классификация моделей по назначению

Как мы видим, рассмотренные модели, что мы рассмотрели, все относятся к обучению с учителем (supervised). Эти задачи встречаются чаще, особенно в задачах прогнозирования, поэтому и было уделено большее внимание им.

Авторы материала: Гужов С.В., Варшавский П.Р., Башлыков М.С., Тороп Д.В.

Комментарии (3)


  1. molnij
    00.00.0000 00:00
    +2

    Аж календарь проверил, точно ли сегодня 23 год.

    Извините, но текст даже для курсовой выглядит на уровне троечки для младших курсов

    Мы снова с вами, чтобы рассказать о том, что нужно делать, когда у вас уже есть данные, которые необходимо как‑то обрабатывать.

    Часть вторая. Построение модели нейронной сети

    Подразумевается что после этой самой второй части мы будем знать как строить модели нейронных сетей? Ухты, давайте посмотрим!

    А... на самом деле перечисление совершенно разнородных вещей с кучей фактологических ошибок.

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


    1. C-B
      00.00.0000 00:00

      откуда столько хейта?? они обещали "Что надо знать" - они дали.

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


  1. berng
    00.00.0000 00:00

    Приятно встретить специалистов. По теореме Колмогорова-Арнольда для получения хорошего решения достаточно полносвязной двухслойной нейронной сети с 2N+1 нейронами на каждом слое. По теореме Цыбенко их нужно еще меньше. Зачем весь этот зоопарк и сколько нейронов и слоев должно быть в полносвязной нейронке, чтобы решить заданную задачу?

    Решения типа "подбирайте опытным путем" не предлагать.