Научная группа из Московского Энергетического Института провела исследование о наиболее распространённых методах и способах построения нейросетевого программного обеспечения. Мы снова с вами, чтобы рассказать о том, что нужно делать, когда у вас уже есть данные, которые необходимо как‑то обрабатывать.
(А как сделать все правильно читайте здесь: Методы и способы построения нейросетевого ПО. Что надо знать, если вы решили профессионально разрабатывать ИНС. Часть 1)
Часть вторая. Построение модели нейронной сети
Искусственная нейронная сеть — это математическая модель, в то время как её программная реализация лишь воплощает эту модель в коде. Подобно своему прообразу — биологической нейронной сети, ИНС состоит из множества связанных элементов, называемых нейронами. Каждый нейрон генерирует численный сигнал, который совместно с другими сигналами нейронов преобразуется в результирующее значение.
На рисунке приведена схема отдельного нейрона. Входные значения x0, …, xn являются вводимыми параметрами или сигналами прошлых нейронов; значение b (bias – смещение, также называется порогом) – это дополнительный входной параметр, влияющий на значение сигнала; w0, …, wn – веса, от которых зависит величина влияния параметров на сигнал. f – функция активации, которая преобразует результат, получаемый в нейроне, в итоговое значение y. В качестве функции активации используют самые разные функции: например, функция единичного скачка, определённая как 1 для неотрицательных значений и 0 для остальных, может использоваться для бинарной классификации. Использование сигмоидальной функции, являющейся нормализированной на интервале от 0 до 1, позволяет строить многослойные нейронные сети. Таким образом, можно математически записать, как получается сигнал на выходе нейрона:
Подобные нейроны объединяются в слои, которые связываются между собой, подавая сигналы на выходе одних нейронов на вход других. Всё это вместе образует искусственную нейронную сеть.
Таким образом, мы наблюдаем, какие параметры влияют на модель нейронной сети. Структура ИНС зависит от числа и структуры выбранных слоёв. В простейшем случае используется 3 слоя: входной, на который подаются параметры, скрытый, в котором производятся вычисления, и выходной, который приводит ответ. Однако в настоящее время стали применяться так называемые глубокие нейронные сети — нейронные сети, которые используют множество скрытых слоёв, соединённых между собой. Также возможны различные варианты соединения слоёв: например, прямое распространение и обратное.
Слои же, в свою очередь, зависят от числа нейронов и выбранной для них функции активации. Определённые шаблонные структуры получают отдельные названия, образовывая целые группы нейронных сетей, действующих по общим для них принципам.
Модели нейронной сети
Частым подходом к выбору подходящей модели ИНС является последовательное построение и сравнение множества различных моделей, после которого разработчики останавливаются на наилучшей из разработанных. Существует много вариантов моделей, которые и будут рассмотрены далее.
Многослойный персептрон (Multilayered Perceptron, MLP) считается одной из классических моделей ИНС. По своей сути это нейронная сеть с прямой связью, то есть сеть, в которой слои соединяются только последовательно. В качестве функции активации используется одна из нелинейных функций, при этом нейронная сеть включает в себя более чем один скрытый слой:
В настоящее время довольно популярны рекуррентные нейронные сети (RNN). Их особенностью является то, что на вход на скрытый слой подаётся не только значение предыдущего слоя, но и выходные значения нейронов этого или следующих слоёв:
LSTM — подтип RNN, который передаёт информацию на большее расстояние. Таким образом, LSTM решает проблему, когда цепочка связей в рекуррентной сети оказывается настолько длинной, что информация теряется. Достигается данный эффект за счёт сложной структуры нейронной сети: каждая ячейка LSTM представляется собой структуру, объединяющую несколько узлов. Используются забывающий узел, входной узел, узел для вычисления тензора‑кандидата и выходной узел. Полученные значения из выходного узла и узла вычисления тензора‑кандидата передаются к следующей ячейке LSTM аналогично тому, как в RNN вычисленное в нейроне значение передаётся следующему нейрону того же слоя:
Похожий механизм используют модели GRU. Аналогично LSTM такие модели состоят из модулей, использующих узлы (также называемые вентилями) для вычисления значений. Однако отличается процесс построения модуля: в GRU используются вентили восстановления и сброса. Отсутствие дополнительного вентиля приводит к тому, что в моделях GRU из одного модуля в другой передаётся только один параметр, а не два, как это было у LSTM:
Свёрточные нейронные сети (CNN) являются ещё одной часто используемой моделью нейронных сетей. Их особенностью является использование новых типов слоёв: свёрточных и слоёв подвыборки (пулинга). Свёрточные слои распознают образы, постепенно переходя от низкоуровневых признаков к всё более высокоуровневым. Фактически постепенно происходит снижение числа параметров. Например, так происходит воздействие свёрточного слоя на двумерное изображение: проходя по отдельным участкам, матрица весов объединяет разбросанные значения в единое значение на выходе слоя:
Ниже представлена схема, на которой различные модели сгруппированы по тем задачам, для которых они используются:
Как мы видим, рассмотренные модели, что мы рассмотрели, все относятся к обучению с учителем (supervised). Эти задачи встречаются чаще, особенно в задачах прогнозирования, поэтому и было уделено большее внимание им.
Авторы материала: Гужов С.В., Варшавский П.Р., Башлыков М.С., Тороп Д.В.
Комментарии (3)
berng
00.00.0000 00:00Приятно встретить специалистов. По теореме Колмогорова-Арнольда для получения хорошего решения достаточно полносвязной двухслойной нейронной сети с 2N+1 нейронами на каждом слое. По теореме Цыбенко их нужно еще меньше. Зачем весь этот зоопарк и сколько нейронов и слоев должно быть в полносвязной нейронке, чтобы решить заданную задачу?
Решения типа "подбирайте опытным путем" не предлагать.
molnij
Аж календарь проверил, точно ли сегодня 23 год.
Извините, но текст даже для курсовой выглядит на уровне троечки для младших курсов
Подразумевается что после этой самой второй части мы будем знать как строить модели нейронных сетей? Ухты, давайте посмотрим!
А... на самом деле перечисление совершенно разнородных вещей с кучей фактологических ошибок.
Больше всего позабавило, что аж четыре человека целой научной группы работали над этим опусом.
C-B
откуда столько хейта?? они обещали "Что надо знать" - они дали.
В сверточной нейронной сети в операции свертки используется лишь ограниченная матрица весов небольшого размера, которую «двигают» по всему обрабатываемому слою (в самом начале — непосредственно по входному изображению), формируя после каждого сдвига сигнал активации для нейрона следующего слоя с аналогичной позицией. все ок