Знакомство с рекуррентными нейронными сетями (RNN)
Рекуррентная нейронная сеть является одним из типов искусственной нейронной сети (ANN) и используется в областях применения обработки естественного языка (NLP) и распознавания речи. Модель RNN предназначена для распознавания последовательных характеристик данных и последующего использования шаблонов для прогнозирования наступающего сценария.
Работа рекуррентных нейронных сетей
Когда мы говорим о традиционных нейронных сетях, все выходы и входы независимы друг от друга, как показано на диаграмме ниже:
Но в случае рекуррентных нейронных сетей выход с предыдущих шагов подается на вход текущего состояния. Например, чтобы предсказать следующую букву любого слова или предсказать следующее слово предложения, необходимо запомнить предыдущие буквы или слова и сохранить их в какой-либо форме памяти.
Скрытый слой - тот, который запоминает некоторую информацию о последовательности. Простой пример из реальной жизни, с которым мы можем связать RNN, - это когда мы смотрим фильм, и во многих случаях мы можем предсказать, что произойдет дальше, но что, если кто-то только что присоединился к фильму, и его просят предсказать, что будет дальше? Каким будет его ответ? У него или нее не будет никакой подсказки, потому что они не знают о предыдущих событиях фильма, и у них нет никакой памяти об этом.
Иллюстрация типичной модели RNN приведена ниже:
Модели RNN имеют память, которая всегда запоминает, что было сделано на предыдущих этапах и что было рассчитано. Одна и та же задача выполняется на всех входах, и RNN использует один и тот же параметр для каждого из входов. Поскольку традиционная нейронная сеть имеет независимые наборы ввода и вывода, они более сложны, чем RNN.
Теперь давайте попробуем понять рекуррентную нейронную сеть с помощью примера.
Допустим, у нас есть нейронная сеть с 1 входным слоем, 3 скрытыми слоями и 1 выходным слоем.
Когда мы говорим о других или традиционных нейронных сетях, они будут иметь свои собственные наборы смещений и весов в своих скрытых слоях, таких как (w1, b1) для скрытого слоя 1, (w2, b2) для скрытого слоя 2 и (w3, b3). ) для третьего скрытого слоя, где: w1, w2 и w3 - веса, а b1, b2 и b3 - смещения.
Учитывая это, мы можем сказать, что каждый слой не зависит ни от какого другого и что они ничего не могут вспомнить о предыдущем входе:
Теперь, что RNN будет делать следующее:
- Независимые слои будут преобразованы в зависимый слой. Это делается путем обеспечения одинакового смещения и веса для всех слоев. Это также уменьшает количество параметров и слоев в текущей нейронной сети и помогает RNN запомнить предыдущий вывод, выводя предыдущий вывод в качестве входных данных для предстоящего скрытого слоя.
- Подводя итог, можно сказать, что все скрытые слои можно объединить в один повторяющийся слой, чтобы веса и смещения были одинаковыми для всех скрытых слоев.
Таким образом, текущая нейронная сеть будет выглядеть примерно так:
Теперь пришло время разобраться с некоторыми уравнениями для модели RNN.
- Для расчета текущего состояния,
h t= f (h t-1, x t ),
Где:
x t - состояние ввода
h t-1 - предыдущее состояние,
h t - текущее состояние.
- Для расчета функции активации
h t= tanh (W hh h t-1 +W xh x t ),
Где:
W xh - вес на входе нейрона,
W hh - вес рекуррентного нейрона.
- Для расчета выхода:
Y t =W hy h t.
Где,
Y t - выход, и
W hy - вес на выходном слое.
Шаги для обучения рекуррентной нейронной сети
- На входных слоях отправляется начальный ввод, причем все имеют одинаковый вес и функцию активации.
- Используя текущий вход и выход предыдущего состояния, рассчитывается текущее состояние.
- Теперь текущее состояние h t станет h t-1 для второго временного шага.
- Это повторяется для всех этапов и для решения любой конкретной проблемы может продолжаться столько раз, чтобы объединить информацию из всех предыдущих этапов.
- Последний шаг затем рассчитывается по текущему состоянию конечного состояния и всем остальным предыдущим шагам.
- Теперь генерируется ошибка путем вычисления разницы между фактическим выходом и выходом, генерируемым нашей моделью RNN.
- Последний шаг - это когда происходит обратное распространение, в котором ошибка распространяется с обратным распространением для обновления весовых коэффициентов.
Преимущества рекуррентных нейронных сетей
- RNN может обрабатывать ввод любой длины.
- Модель RNN моделируется для запоминания каждой информации в течение времени, что очень полезно для любого предиктора временных рядов.
- Даже если входной размер больше, размер модели не увеличивается.
- Веса могут быть распределены по временным шагам.
- RNN может использовать свою внутреннюю память для обработки произвольных серий входных данных, что не относится к нейронным сетям с прямой связью.
Недостатки рекуррентных нейронных сетей
- Из-за его повторяющейся природы, вычисления медленные.
- Обучение моделей RNN может быть сложным.
- Если мы используем relu или tanh в качестве функций активации, становится очень трудно обрабатывать очень длинные последовательности.
- Склонен к таким проблемам, как взрыв и исчезновение градиента.
Вывод
В этой статье мы изучили другой тип искусственной нейронной сети, называемый рекуррентной нейронной сетью. Мы сосредоточились на главном различии, которое отличает RNN от других типов нейронных сетей, в областях, где он может широко использоваться, например, в распознавании речи. и НЛП (обработка естественного языка). Кроме того, мы пошли за работой моделей и функций RNN, которые используются для построения надежной модели RNN.
Рекомендуемые статьи
Это руководство по рекуррентным нейронным сетям. Здесь мы обсуждаем введение, как это работает, шаги, преимущества и недостатки RNN и т. Д. Вы также можете просмотреть другие наши предлагаемые статьи, чтобы узнать больше -- Что такое нейронные сети?
- Механизм машинного обучения
- Введение в искусственный интеллект
- Введение в аналитику больших данных
- Внедрение нейронных сетей