Чем закрытые RNN лучше, чем RNN?

Предпосылки

Я настоятельно рекомендую сначала узнать, как работает алгоритм рекуррентной нейронной сети, чтобы уживаться с этим постом о Gated RNN.

Gated RNN

Прежде чем вдаваться в подробности, давайте сначала обсудим необходимость перехода от RNN к чему-то вроде Gated RNN.

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

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

Большие задержки означают, что ошибка распространяется двумя способами:

(1) по состоянию памяти и

(2) вдоль входного тракта.

Тем не менее, здесь снова есть загвоздка: когда мы берем на себя длительные задержки для решения проблемы, сколько из длительных задержек необходимо учитывать? Не существует заранее определенных / определенных шагов для достижения оптимального количества длительных задержек. Вместо этого мы идем по следу и ошибаемся. Кроме того, мы очень хорошо знаем, что в этом случае алгоритм может / не может дать наилучшую производительность.

Именно здесь стробируемая RNN устраняет проблему длительных задержек, добавляя в картинку что-то, называемое воротами.

Теперь давайте рассмотрим пример, чтобы понять применение этого алгоритма, чтобы получить лучшее изображение.

Рассмотрим эти два утверждения -

"Небо голубое"

«Я вырос во Франции, я очень люблю это место. Я говорю по-французски".

В первом случае при классификации текста алгоритму не нужно долго помнить о небе (предмете). Однако во втором случае Франция должна сохраняться в состоянии памяти в течение некоторого времени, чтобы алгоритм мог предсказать, что человек говорит по-французски, т.е. может быть много предложений до последнего, в котором говорится: «Я говорю по-французски», но алгоритм должен знать, до каких пор сохранять информацию, чтобы что-то предсказать. Именно здесь большие задержки в базовой RNN дают сбой, а стробируемая RNN дает лучшее преимущество.

В стробированной RNN обычно есть три шлюза, а именно: ворота ввода / записи, ворота сохранения / памяти и ворота вывода / чтения, отсюда и название закрытой RNN. для алгоритма. Эти ворота отвечают за разрешение / запрещение потока сигнала из соответствующих состояний. Это означает, что значение любого заданного гейта равно 0 или 1 в любой заданной точке, что по существу означает, что сигнал разрешен или остановлен.

Давайте возьмем пример любого состояния, чтобы получить четкое представление об этом. В любой заданной точке t состояния входа входной вентиль может принимать значения либо 0, либо 1. Если значение входного шлюза равно 0, то поток входной информации в это время блокируется и наоборот. -versa. (Примечание: то же самое происходит с двумя другими воротами)

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

С учетом всего сказанного и сделанного, остается выяснить еще один вопрос: что / кто контролирует эти ворота?

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

Следовательно, выход элемента находится между 0 и 1, что по сути является выходом сигмоидной функции и управляется входами, что означает, что каждый элемент представляет собой нейронную сеть с одним скрытым слоем, а вход в него является входом для Алгоритм RNN. Таким образом, поток информации через вентиль управляется нейронной сетью, которая вводит его как текущее состояние и состояние памяти в заданный момент времени t.

Таким образом, поток информации контролируется и проблема длительных задержек полностью устраняется в Gated RNN.

Так строится базовая архитектура закрытой RNN. На основе этой архитектуры были разработаны модели LSTM и GRU, которые обеспечивают гораздо лучшую производительность, чем базовая архитектура.

Я готовлю еще одну статью об архитектуре LSTM.

P.S. Я готов принять предложения по дальнейшей настройке этой статьи, так как это была моя первая статья.