Рекуррентные нейронные сети (RNN) изначально разработаны, чтобы позволить глубоким сетям обрабатывать последовательности данных. RNN предполагают, что входящие данные принимают форму последовательности векторов или тензоров. RNN полезны для обработки текста, видео и временных рядов. [1]

Вайнилла РНС

RNN - это класс ANN, в котором связи между единицами образуют направленный цикл. Он использует информацию из прошлого и позволяет моделировать данные с высокими временными зависимостями [2].

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

RNN труднее обучать, чем нейронные сети с прямой связью и сверточные сети. Одна из возникающих проблем - это исчезающие-взрывающиеся градиенты. Долгосрочные компоненты экспоненциально быстро стремятся к нулю, и модель не может учиться на удаленных во времени событиях. Когда эти градиенты малы или равны нулю, они легко исчезнут. С другой стороны, когда они больше 1, он может взорваться [2].

Чтобы решить эту проблему, были предложены сети LSTM.

Долгосрочные воспоминания или сети LSTM

LSTM - это особая архитектура, которая была первоначально задумана Хохрайтером и Шмидхубером в 1997 году. Название указывает на то, что краткосрочные модели не забываются в долгосрочной перспективе. Каждый блок LSTM содержит три типа ворот: входной вентиль, выходной вентиль и Забудьте ворота [2] .

Закрытый рекуррентный блок или сети ГРУ

Сложность, концептуальная и вычислительная способность LSTM побудила исследователей упростить уравнения LSTM, сохранив при этом производительность LSTM. Одним из лидеров является Gated Recurrent Unit или ГРУ. [1] Технически GRU - это упрощенная версия ячейки LSTM, в которой оба вектора состояния объединены в один вектор, называемый h (t). Контроллер одиночного затвора управляет как затвором забывания, так и входным затвором. Второе упрощение состоит в том, что, поскольку полный вектор состояния выводится на каждом временном шаге, выходной вентиль отсутствует [2].

Приложения

  1. Языковое моделирование / машинный перевод: seq2smodels - мощные инструменты, которые позволяют моделям преобразовывать одну последовательность в другую. Google Neural Machine имеет множество слоев кодирования и декодирования, которые позволяют выполнять современные переводы [1].

2. Временной ряд: простую RNN можно рассматривать как полностью подключенную сеть, которая многократно применяется к каждому временному шагу данных. RNN стали интересными для сложных многомерных временных рядов [1].

3. Автоматическое распознавание речи (ASR): использование RNN или связанных нейронных прогностических моделей для распознавания речи восходит к концу 1980-х - началу 1990-х годов, что позволило достичь относительно низкой точности распознавания. Поскольку в последние годы глубокое обучение стало популярным, RNN было посвящено гораздо больше исследований, включая приложения как для речи, так и для языков [6].

Ресурсы

  1. Рамсундар, Б; Задет Р. Tensorflow для глубокого обучения. 2018
  2. Zaccone, G; Карим М. Глубокое обучение с помощью Tensorflow. 2017 г.
  3. Понимание сетей LSTM http://bit.ly/2AiWoBe
  4. Udacity видео Youtube плейлист http://bit.ly/2TOgMDf
  5. Иллюстрированное руководство по LSTM и ГРУ: пошаговое объяснение. Http://bit.ly/2TLJJjw
  6. Ю, Д; Дэн Л. Автоматическое распознавание речи. Подход Deep Learning 2015 г.