Основы LSTM нейронных сетей. Прогнозирование при помощи рекуррентных нейронных сетей

Нейронные сети. Типы НС. Обучение НС. Применение НС.

Лекция 8.

При идентификации X и Y представляют входные и выходные сигналы системы соответственно.

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

В результате отображения X → Y крайне важно обеспечить формирование правильных выходных сигналов в соответствии:

Со всœеми примерами обучающей выборки;

Со всœеми возможными входными сигналами, которые не вошли в обучающую выборку.

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

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

Архитектура рекуррентных сетей

Существуют различные варианты архитектур рекуррентных ней­ронных сетей.

Сеть Джордана: В 1986 ᴦ. Джордан (Jordan) предложил рекур­рентную сеть (рис.8.1), в которой выходы нейронных элементов по­следнего слоя соединœены посредством специальных входных нейронов с нейронами промежуточного слоя. Такие входные нейронные эле­менты называются контекстными нейронами (context units). Οʜᴎ рас­пределяют выходные данные нейронной сети на нейронные элементы промежуточного слоя.

Рис. 8.1 Архитектура рекуррентной ней­ронной сети с обратными связями от нейро­нов выходного слоя

Число контекстных нейронов равняется числу выходных ней­ронных элементов рекуррентной сети. В качестве выходного слоя та­ких сетей используются нейронные элементы с линœейной функцией активации. Тогда выходное значение j -го нейронного элемента последнего слоя определяется по формуле

(8.1)

где v ij - весовой коэффи­циент между i -м нейроном промежуточного и j -м ней­роном выходного слоев; P i (t )- выходное значение i -го нейрона промежуточ­ного слоя; t j - пороговое значение j -го нейрона вы­ходного слоя. Взвешенная сумма i -гo нейронного элемента промежуточного слоя определяется следующим образом:

(8.2)

где w ij – весовой коэффициент между j -м нейроном входного и i -м нейроном промежуточного слоев; р – число нейронов выходного слоя; w ki – весовой коэффициент между k -м контекстным нейроном и i -м нейроном промежуточного слоя; T – пороговое значение i -го нейрона промежуточного слоя; n – размерность входно­го вектора.

Тогда выходное значение i -го нейрона скрытого слоя:

(8.3)

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

Для обучения рекуррентных нейронных сетей применяется алго­ритм обратного распространения ошибки (будет рассмотрен ниже).

Алгоритм обучения рекуррентной нейронной сети в общем слу­чае состоит из следующих шагов:

1. В начальный момент времени t = 1 всœе контекстные нейроны устанавливаются в нулевое состояние – выходные значения прирав­ниваются нулю.

2. Входной образ подается на сеть и происходит прямое распро­странение его в нейронной сети.

3. В соответствии с алгоритмом обратного распространения ошибки модифицируются весовые коэффициенты и пороговые значе­ния нейронных элементов.

4. Устанавливается t = t +1 и осуществляется переход к шагу 2. Обучение рекуррентной сети производится до тех пор, пока сум­марная среднеквадратичная ошибка сети не станет меньше заданной.

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

Архитектура рекуррентных сетей

Существуют различные варианты архитектур рекуррентных ней­ронных сетей.

Сеть Джордана: В 1986 г. Джордан (Jordan) предложил рекур­рентную сеть (рис. 6), в которой выходы нейронных элементов по­следнего слоя соединены посредством специальных входных нейронов с нейронами промежуточного слоя. Такие входные нейронные эле­менты называются контекстными нейронами (context units). Они рас­пределяют выходные данные нейронной сети на нейронные элементы промежуточного слоя.

Рис. 6 Архитектура рекуррентной ней­ронной сети с обратными связями от нейро­нов выходного слоя

Число контекстных нейронов равняется числу выходных ней­ронных элементов рекуррентной сети. В качестве выходного слоя та­ких сетей используются нейронные элементы с линейной функцией активации. Тогда выходное значение j -го нейронного элемента последнего слоя определяется по формуле

где v ij - весовой коэффи­циент между i -м нейроном промежуточного и j -м ней­роном выходного слоев; P i (t )- выходное значение i -го нейрона промежуточ­ного слоя; t j - пороговое значение j -го нейрона вы­ходного слоя. Взвешенная сумма i -гo нейронного элемента промежуточного слоя определяется следующим образом:

где w ij - весовой коэффициент между j -м нейроном входного и i -м нейроном промежуточного слоев; р - число нейронов выходного слоя; w ki - весовой коэффициент между k -м контекстным нейроном и i -м нейроном промежуточного слоя; T - пороговое значение i -го нейрона промежуточного слоя; n - размерность входно­го вектора.



Тогда выходное значение i -го нейрона скрытого слоя

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

Для обучения рекуррентных нейронных сетей применяется алго­ритм обратного распространения ошибки.

Алгоритм обучения рекуррентной нейронной сети в общем слу­чае состоит из следующих шагов:

1. В начальный момент времени t = 1 все контекстные нейроны устанавливаются в нулевое состояние - выходные значения прирав­ниваются нулю.

2. Входной образ подается на сеть и происходит прямое распро­странение его в нейронной сети.

3. В соответствии с алгоритмом обратного распространения ошибки модифицируются весовые коэффициенты и пороговые значе­ния нейронных элементов.

4. Устанавливается t = t +1 и осуществляется переход к шагу 2. Обучение рекуррентной сети производится до тех пор, пока сум­марная среднеквадратичная ошибка сети не станет меньше заданной.

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

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

Рекуррентные сети направлены на исправление этого недостатка: они содержат циклы, которые позволяют сохранять информацию.

На рисунке выше, элемент нейронной сети A получает на вход некоторый вход x и возвращает значение h . Цикл позволяет информации передаваться к следующим шагам.

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

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

И, естественно, они используются. За последние несколько лет был достигнут значительный успех в применении рекуррентных нейронных сетей для распознавания речи, моделирования языка, перевода, распознавания изображений и других интересных вещей. Оставим размышления о способах применения рекуррентных сетей для Андрея Карпатого в его блоге: The Unreasonable Effectiveness of Recurrent Neural Networks .

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

Проблема долгосрочных зависимостей

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

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

Однако, иногда для решения задачи необходимо больше контекста. Например, для предсказания последнего слова во фразе «Я вырос во Франции. … Я свободно говорю по-Французски » непосредственно стоящие перед искомым словом слова говорят лишь о том, что следующее слово, наверняка, будет языком, но для его определения необходим более ранний контекст. Вполне вероятно, что разрыв между необходимым контекстом и искомым словом будет весьма велик.

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

Теоретически рекуррентные нейронные сети в состоянии обрабатывать такие долгосрочные зависимости (а человек может тщательно выбирать параметры для сети). Однако, на практике рекуррентные нейронные сети не в состоянии обучиться в таких задачах. Проблема была изучена специалистами Хохрайтером (1991) [Германия] и Бенджио и др.(1994) , которые определили фундаментальные причины сложности этой задачи.

Однако, LSTM сети не имеют такой проблемы.

LSTM сети

Долгая краткосрочная память (Long short-term memory), обычно называемая LSTM-сетями - это особый вид рекуррентных нейронных сетей, способных к запоминанию долговременных зависимостей. Они были введены Сеппом Хохрайтером и Юргеном Шмидхубером в 1997 году и были использованы и развиты многими исследователями в своих работах. Эти сети работают в широком спектре задач и довольно часто используются.

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

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

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

Повторяющиеся модули в LSTM-сети, содержащие 4 слоя

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

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

Базовая идея LSTM-сетей

Ключ к пониманию LSTM-сети - это состояние ячейки, горизонтальная линия, проходящая через верхнюю часть диаграммы.

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

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

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

Выход сигмоиды - это число от 0 до 1, обозначающее какая часть каждого элемента вектора будет пропущена далее. Значение 0 можно понимать, как «ничего не пропускать», в то время как значение 1 - «пропустить полностью»

LSTM имеют три таких элемента для защиты и контроля состояния ячейки.

Пошаговый анализ работы LSTM-сети

Первый шаг в LSTM сети - это решение, какую информацию необходимо выбросить из состояния ячейки. Решение формируется сигмовидным слоем называемым входным вентилем. Он обозначен, как \(h_{t-1}\) и \(x_{t}\) и имеют числовой выход со значением между 0 и 1 для каждой ячейки состояния \(C_{t-1}\). 1 обозначает «полностью сохранить», 0 - «полностью избавиться».

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

Следующим шагом необходимо определить, какая информация будет храниться в состоянии ячейки. Этот этап состоит из двух частей. Первая: входной вентиль должен определить какие значения будут обновляться, а tanh слой создает вектор новых кандидатов на значения \(\tilde C_t\), которые могут быть добавлены в состояние. На следующем шаге мы комбинируем два созданных вектора для обновления состояния.

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

Для реализации этого умножаем прошлое состояние на \(f_{t}\) для «забывания» данных признанных ненужными на прошлом шаге. Затем добавляется \(i_t * \tilde C_t\). Это новые значения значений, выбранные ранее для запоминания.

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

Наконец, мы должны решить, что будет на выходе ячейки. Этот выход формируется на базе состояния ячейки, но является его фильтрованной версией. Сначала запускается сигмоидный слой, определяющий какая часть состояния ячейки будет передана на выход. После чего состояние ячейки подается на функцию tanh (выходные значения между -1 и 1) и умножается на выход сигмовидного вентиля, определяющего частичность выхода состояния.

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

Вариации LSTM-сетей

Выше мы рассмотрели классические LSTM-сети, однако существует множество их вариаций. На самом деле, фактически в каждом исследовании, с использованием LSTM-сетей используется не совсем классическая модель. Различия, как правило, незначительны, но стоит отметить основные.

Один из популярных варианты LSTM-сетей, введенный Gers & Schmidhuber (2000) добавляет «Глазки», что определяет возможность вентилям наблюдать за состоянием ячейки.

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

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

Чуть более серьезное изменение LSTM-сетей - Рекуррентный модуль с затворами (Gated Recurrent Unit) или GRU, введенные Cho, и др. (2014) . Этот подход комбинирует вентили «забывания» и входные вентили в единый вентиль обновления. Кроме того объединяется состояние и скрытое состояние ячейки и содержит некоторые другие менее значительные изменения. Полученная модель является более простой, чем классическая LSTM модель и становится все более популярной.

Это лишь некоторые вариации LSTM-модели. Существует множество других, таких как глубокие вентильные рекуррентные нейронные сети (Depth Gated RNNs) Yao и др. (2015) . Кроме того предлагаются принципиально иные подходы, такие как часовые нейронные сети (Clockwork RNNs) предложенные Koutnik и др. (2014) .

Какой из этих вариантов лучше? Имеются ли различия? Greff и др (2015) делая неплохое сравнение популярных вариантов, приходят к выводу о том, что они примерно одинаковы. Jozefowicz, и др. (2015) протестировав более 10 тысяч архитектур рекуррентных нейронных сетей, говорят о том, что некоторые из них работали лучше чем LSTM в специализированных задачах.

Заключение

Ранее говорилось о том, что достигнуты выдающиеся результаты с рекуррентными нейронными сетям. Значительная часть с использованием LSTM-сетей. Эти сети, действительно, работают лучше других известных во многих задачах.

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

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

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

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

Персептронная сеть с обратной связью

Один из простейших способов построения рекуррентной сети на базе однонаправленной HC состоит во введении в персептронную сеть обратной связи. В дальнейшем мы будем сокращенно называть такую сеть RMLP (англ.: Recurrent MultiLayer Perceptron - рекуррентный многослойный персептрон ). Ее обобщенная структура представлена на рис. 1 ( - единичные элементы запаздывания ).

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

(1)

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

Допустим, что все нейроны имеют сигмоидальную функцию активации. Обозначим взвешенную сумму сигналов -го нейрона скрытого слоя, a - взвешенную сумму сигналов выходного нейрона . При введенных обозначениях выходные сигналы конкретных нейронов описываются зависимостями

Сеть RMLP повсеместно применяется для моделирования динамических процессов в режиме " онлайн ". Типичным примером ее приложения может служить имитация нелинейных динамических объектов, для которых сеть

Глубинные свёрточные обратные графические сети (deep convolutional inverse graphics networks, DCIGN) названы слегка некорректно, поскольку они по сути являются вариационными автокодировщиками, кодирующая и декодирующая части которых представлены свёрточной и развёртывающей НС соответственно. Сети такого типа моделируют свойства в виде вероятностей, поэтому их можно научить создавать картинку с собакой и кошкой, даже если сеть видела только картинки, на которых было только одно из животных. Возможно и удаление одного из двух объектов. Также были созданы сети, которые могли менять источник освещения и вращать объект. Сети такого типа обычно обучают методом обратного распространения ошибки.

Генеративные состязательные сети (generative adversarial networks, GAN) - это сети другого вида, они похожи на близнецов. Такие сети состоят из любых двух (обычно из FF и CNN), одна из которых контент генерирует, а другая - оценивает. Сеть-дискриминатор получает обучающие или созданные генератором данные. Степень угадывания дискриминатором источника данных в дальнейшем участвует в формировании ошибки. Таким образом, возникает состязание между генератором и дискриминатором, где первый учится обманывать первого, а второй - раскрывать обман (похоже на ситуацию «банкир-фальшивомонетчик»). Обучать такие сети весьма тяжело, поскольку нужно не только обучить каждую из них, но и настроить баланс.

Рекуррентные нейронные сети (recurrent neural networks, RNN) - это сети типа FFNN, но с особенностью: нейроны получают информацию не только от предыдущего слоя, но и от самих себя предыдущего прохода. Это означает, что порядок, в котором вы подаёте данные и обучаете сеть, становится важным. Большой сложностью сетей RNN является проблема исчезающего (или взрывного) градиента, которая заключается в быстрой потере информации с течением времени. Конечно, это влияет лишь на веса, а не состояния нейронов, но ведь именно в них накапливается информация. Обычно сети такого типа используются для автоматического дополнения информации.

Сети с долгой краткосрочной памятью (long short term memory, LSTM) стараются решить вышеупомянутую проблему потери информации, используя фильтры и явно заданную клетку памяти. У каждого нейрона есть клетка памяти и три фильтра: входной, выходной и забывающий. Целью этих фильтров является защита информации. Входной фильтр определяет, сколько информации из предыдущего слоя будет храниться в клетке. Выходной фильтр определяет, сколько информации получат следующие слои. Ну а забывающий фильтр, каким бы странным не казался, также выполняет полезную функцию: например, если сеть изучает книгу и переходит на новую главу, какие-то символы из старой можно забыть. Такие сети способны научиться создавать сложные структуры, например, писать как Шекспир или сочинять простую музыку, но и ресурсов они потребляют немало.

Управляемые рекуррентные нейроны (gated recurrent units, GRU) - это небольшая вариация предыдущей сети. У них на один фильтр меньше, и связи реализованы иначе. Фильтр обновления определяет, сколько информации останется от прошлого состояния и сколько будет взято из предыдущего слоя. Фильтр сброса работает примерно как забывающий фильтр.

Нейронные машины Тьюринга (neural Turing machines, NTM) можно рассматривать как абстрактную модель LSTM и попытку показать, что на самом деле происходит внутри нейронной сети. Ячейка памяти не помещена в нейрон, а размещена отдельно с целью объединить эффективность обычного хранилища данных и мощь нейронной сети. Собственно, поэтому такие сети и называются машинами Тьюринга - в силу способности читать и записывать данные и менять состояние в зависимости от прочитанного они являются тьюринг-полными.

Двунаправленные RNN, LSTM и GRU (bidirectional recurrent neural networks, bidirectional long / short term memory networks и bidirectional gated recurrent units, BiRNN, BiLSTM и BiGRU) не показаны в таблице, поскольку они ничем не отличаются от своих однонаправленных вариантов. Разница заключается в том, что эти сети используют не только данные из «прошлого», но и из «будущего». Например, обычную сеть типа LSTM обучают угадывать слово «рыба», подавая буквы по одной, а двунаправленную - подавая ещё и следующую букву из последовательности. Такие сети способны, например, не только расширять изображение по краям, но и заполнять дыры внутри.

Глубинные остаточные сети (deep residual networks, DRN) - это очень глубокие сети типа FFNN с дополнительными связями между отделёнными друг от друга слоями. Такие сети можно обучать на шаблонах глубиной аж до 150 слоёв - гораздо больше, чем можно было бы ожидать. Однако, было показано, что эти сети мало чем отличаются от рекуррентных, и их часто сравнивают с сетями LSTM.

Нейронная эхо-сеть (echo state networks, ESN) - это ещё одна разновидность рекуррентных сетей. Её особенностью является отсутствие сформированных слоёв, т.е. связи между нейронами случайны. Соответственно, метод обратного распространения ошибки не срабатывает. Вместо этого нужно подавать входных данные, передавать их по сети и обновлять нейроны, наблюдая за выходными данными.

Метод экстремального обучения (extreme learning machines, ELM) - это, по сути, сеть типа FFNN, но со случайными связями. Они очень похожи на сети LSM и ESN, но используются как FFNN. Так происходит не только потому, что они не рекуррентны, но и потому, что их можно обучать просто методом обратного распространения ошибки.

Метод неустойчивых состояний (liquid state machines, LSM) похож на эхо-сеть, но есть существенное отличие: сигмоидная активация заменена пороговой функцией, а каждый нейрон является накопительной ячейкой памяти. Таким образом, при обновлении нейрона его значение не становится равным сумме соседей, а прибавляется само к себе, и при достижении порога сообщается другим нейронам.

Метод опорных векторов (support vector machines, SVM) находит оптимальные решения задачи оптимизации. Классическая версия способна категоризировать линейно разделяемые данные: например, различать изображения с котом Томом и с котом Гарфилдом. В процессе обучения сеть как бы размещает все данные на 2D-графике и пытается разделить данные прямой линией так, чтобы с каждой стороны были данные только одного класса и чтобы расстояние от данные до линии было максимальным. Используя трюк с ядром, можно классифицировать данные размерности n. Что характерно, этот метод не всегда рассматривается как нейронная сеть.

И наконец, нейронные сети Кохонена (Kohonen networks, KN) , также известные как самоорганизующиеся карты (self organising (feature) maps, SOM, SOFM) , завершают наш список. Эти сети используют соревновательное обучение для классификации данных без учителя. Сети подаются входные данные, после чего сеть определяет, какие из нейронов максимально совпадают с ними. После этого эти нейроны изменяются для ещё большей точности совпадения, в процессе двигая за собой соседей. Иногда карты Кохонена также не считаются нейронными сетями.

Вот и всё! После прочтения наших статей и прилагающихся материалов вы точно будете уверенно разбираться в видах нейронных сетей 🙂



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: