Рекуррентные нейронные сети (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].
Приложения
- Языковое моделирование / машинный перевод: seq2smodels - мощные инструменты, которые позволяют моделям преобразовывать одну последовательность в другую. Google Neural Machine имеет множество слоев кодирования и декодирования, которые позволяют выполнять современные переводы [1].
2. Временной ряд: простую RNN можно рассматривать как полностью подключенную сеть, которая многократно применяется к каждому временному шагу данных. RNN стали интересными для сложных многомерных временных рядов [1].
3. Автоматическое распознавание речи (ASR): использование RNN или связанных нейронных прогностических моделей для распознавания речи восходит к концу 1980-х - началу 1990-х годов, что позволило достичь относительно низкой точности распознавания. Поскольку в последние годы глубокое обучение стало популярным, RNN было посвящено гораздо больше исследований, включая приложения как для речи, так и для языков [6].
Ресурсы
- Рамсундар, Б; Задет Р. Tensorflow для глубокого обучения. 2018
- Zaccone, G; Карим М. Глубокое обучение с помощью Tensorflow. 2017 г.
- Понимание сетей LSTM http://bit.ly/2AiWoBe
- Udacity видео Youtube плейлист http://bit.ly/2TOgMDf
- Иллюстрированное руководство по LSTM и ГРУ: пошаговое объяснение. Http://bit.ly/2TLJJjw
- Ю, Д; Дэн Л. Автоматическое распознавание речи. Подход Deep Learning 2015 г.