Это класс искусственной нейронной сети, в котором связи между узлами образуют ориентированный граф вдоль временной последовательности.
RNN могут использовать свое внутреннее состояние (память) для обработки последовательностей входных данных.

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

Традиционная архитектура

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

Архитектуры

Существуют разные архитектуры для разных приложений:

Прямое распространение

Чтобы обучить RNN, нам нужно выполнить те же шаги, что и для ANN, ForwardProp и Back-Propagation. Наша модель и параметры показаны ниже:

Для каждого временного шага t активация a‹t› и выход y‹t› выражаются следующим образом:

Где W и b — коэффициенты, которые являются общими во времени, а функции активации g1,g2g1,g2. Где g1g1 обычно представляет собой Tanh или ReLU, а g2g2 обычно представляет собой sigmoid или Softmax (в зависимости от того, какие переменные вы хотите идентифицировать).

Функция потери

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

Обратное распространение во времени (BPTT)

Обратное распространение выполняется в каждый момент времени. По соглашению мы берем Wax=U, Waa=W, Wya=V, Wax=U, Waa=W, Wya=V, чтобы модель выглядела так:

Таким образом, приведенные выше уравнения будут такими:

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

Примечание. Чтобы рассчитать градиентный спуск для обновления весов W, V, U, мы определяем следующие уравнения:

Проблема исчезающего/взрывающегося градиента

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

Решения, чтобы избежать этого:

  • Выберите хорошие функции активации
  • Инициализируйте параметры как матрицу идентичности, а смещение равно нулю
  • Используйте закрытые ячейки (LSTM/GRU).

Чтобы понять, как работают LSTM и GRU, нажмите здесь.

Ссылки и дополнительные пояснения -› здесь.