Узнав о сверточных нейронных сетях (CNN), сегодня мы сосредоточимся на RNN.

Что такое RNN?

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

Структура

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

Сеть может получать последовательность значений в качестве входных данных и также выводить последовательность. Эта способность позволяет использовать несколько приложений.

Каковы приложения для RNN?

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

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

Проблемы

RNN может быть очень сложно обучать, так как каждый шаг эквивалентен слою в классической NN с прямой связью. Обучение RNN с 50 шагами похоже на обучение 50-слойной NN; это приводит к распаду информации во времени. Есть решения этой проблемы: «гейтирование». Это метод, который диктует, когда забыть о текущем вводе и когда вспомнить его для будущих шагов.

Графические процессоры намного быстрее, чем ЦП для обучения RNN — они могут быть в 250 раз быстрее.