RNN — это своего рода искусственная нейронная сеть, которая может обрабатывать данные временных рядов или последовательные данные. Многочисленные известные приложения, такие как Siri, голосовой поиск и Google Translate, используют алгоритмы глубокого обучения для порядковых или временных задач, таких как языковой перевод, НЛП (обработка естественного языка), распознавание речи и субтитры к изображениям. Рекуррентные нейронные сети (RNN) используют обучающие данные так же, как и нейронные сети с прямой связью и сверточные нейронные сети (CNN). Их «память» позволяет им использовать знания из предыдущих входных данных для формирования текущего ввода и последующего вывода, что отличает их от других типов систем. Выход рекуррентных нейронных сетей зависит от предыдущих компонентов в последовательности, тогда как входы и выходы классических глубоких нейронных сетей предполагаются независимыми друг от друга. Однонаправленные рекуррентные нейронные сети не могут предсказать, что произойдет в будущем, даже если они будут полезны для определения результата определенной последовательности.

Онлайн-курс по науке о данных может быть полезен для лучшего понимания этого предмета.

Для дальнейшего объяснения RNN давайте воспользуемся популярным выражением, таким как «недомогание», которое относится к больному человеку. Другими словами, идиома имеет смысл только тогда, когда артикулирована в этой конкретной последовательности. Как следствие, рекуррентные сети должны учитывать контекст каждого слова в идиоме, чтобы правильно предвидеть следующее слово. Еще одна отличительная черта рекуррентных сетей заключается в том, что они используют общие параметры на разных уровнях. В отличие от сетей с прямой связью, которые присваивают уникальные веса каждому узлу, рекуррентные нейронные сети сохраняют один и тот же параметр веса для всех своих слоев. Тем не менее обучение с подкреплением полагается на настройку этих весов с помощью обратного распространения ошибки и градиентного спуска.

В отличие от обычного обратного распространения, метод обратного распространения во времени (BPTT), используемый рекуррентными нейронными сетями, адаптирован к данным последовательности и используется для расчета градиентов, чтобы остановить регрессию. Подобно обычному обратному распространению, BPTT имеет сам процесс обучения модели, сравнивая ошибки в выходном слое с ошибками во входном слое. Наша способность изменять и настраивать параметры модели основана на результатах этих вычислений. В отличие от сетей с прямой связью, которым не нужно суммировать ошибки, поскольку они не передают параметры между уровнями, BPTT делает это на каждом временном шаге.

При этом RNN часто испытывают то, что называется разрывными градиентами и исчезающими градиентами. Величина градиента или наклон функции потерь вдоль кривой ошибки определяет эти проблемы. Когда градиент приближается к нулю, весовые параметры повторяются снова и снова, пока их влияние на градиент в лучшем случае не станет незначительным. Как только это происходит, алгоритм перестает улучшаться. Модель становится нестабильной и «взрывается», когда градиент слишком велик. По этой причине значения NaN будут использоваться для представления весов моделей до того, как они станут слишком большими. Снижение сложности модели RNN за счет удаления некоторых скрытых слоев в нейронной сети — один из подходов к решению этих проблем.

Типы рекуррентных нейронных сетей

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

Стоимость курса по науке о данных может доходить до 3 лакхов индийских рупий.

Общие функции активации

На странице Learn, посвященной нейронным сетям, описывается, как функции активации используются для принятия решения о том, должен ли нейрон срабатывать. Выход нейрона обычно преобразуется нелинейными функциями в число от 0 до 1 или от -1 до 1.

Варианты архитектуры RNN:

BRNN (что означает «двунаправленная рекуррентная нейронная сеть») — это своего рода ANN, которая может обрабатывать эти RNN, используя несколько другую структуру сети. Двунаправленные RNN повышают точность предсказания текущего состояния по сравнению с однонаправленными RNN, которые могут использовать только исторические входные данные. Рассмотрим еще раз предложение «чувство плохого самочувствия», приведенное ранее в этой статье; если бы модель понимала, что слово «погода» стоит в конце последовательности, у нее было бы больше шансов правильно предсказать второе слово «недостаточно». Чтобы решить проблему исчезающего градиента, Зепп Хохрайтер и Юрген Шмидхубер изобрели архитектуру RNN с долговременной кратковременной памятью (LSTM). Таким образом, они рассматривают проблему долгосрочных зависимостей в своей статье (PDF, 388 КБ) (ссылка находится вне IBM). То есть модель RNN может не правильно спрогнозировать текущее состояние, если предыдущее состояние, влияющее на текущий прогноз, не относится к недавнему прошлому. Допустим, мы пытались угадать, что будет выделено курсивом в следующем предложении: «У Алисы аллергия на орехи». У нее сильная аллергия на арахис. Разумно предположить, что, учитывая природу аллергии на орехи, запрещенные продукты включают орехи. Напротив, RNN было бы трудно, если не полностью потерпеть неудачу, провести связь, если бы соответствующий контекст был на много предложений назад. Чтобы решить эту проблему, LSTM используют «ячейки» в скрытых слоях нейронной сети, которые имеют три входа: входные ворота, выходные ворота и ворота забывания. Все данные, которые будут использоваться для прогнозирования вывода сети, должны пройти через эти ворота. Например, вы можете опустить состояние ячейки, если термин «она» (или любое другое местоимение, относящееся к роду) встречается много раз в предшествующих фразах.

Закрытые рекуррентные единицы (GRU): эта версия RNN пытается решить проблему краткосрочной памяти моделей RNN аналогично LSTM. Он полагается не на так называемое «состояние ячейки» для управления данными, а скорее на «скрытые состояния», и вместо трех шлюзов у ​​него всего два: шлюз сброса и шлюз обновления. Шлюзы сброса и обновления, аналогичные шлюзам в LSTM, регулируют количество и качество хранимой информации.

Курс по науке о данных в Индии может быть полезен для лучшего понимания этого предмета.