Рекуррентная нейронная сеть RNN, LSTM, GRU

NLP
Рекуррентная нейронная сеть RNN, LSTM, GRU

В отличие от традиционных нейронных сетей с прямой связью и сверточных нейронных сетей (CNN), рекуррентные нейронные сети (рекуррентные нейронные сети,RNN) — это модель, которая хорошо работает с последовательными данными, такими как текст, временные ряды, фондовые рынки и т. д. В этой статье в основном представлен процесс разработки и структурные различия нескольких важных моделей в рекуррентной нейронной сети, RNN, LSTM и GRU, а также подробно описаны причины взрыва градиента и исчезновения градиента в RNN.

1. Повторяющийся фон нейронной сети

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

Но данные последовательности разные, между входами есть последовательность, и результат текущего ввода обычно связан с предыдущим вводом. Например, предложение содержит 4 входных слова: «Я», «Еду», «Торговый центр», «Взять такси». Четыре слова расположены в разном порядке и имеют разное значение: «Я возьму такси до торговый центр» и «Я пойду в торговый центр». торговый центр. Поэтому нам обычно нужно читать предложения в определенном порядке, чтобы понять смысл предложений.

Столкнувшись с этой ситуацией, нам нужно использовать рекуррентную нейронную сеть.Рекуррентная нейронная сеть обрабатывает все входные данные по порядку.В каждый момент t будет векторhСохраните информацию, относящуюся ко времени t (это может быть информация до времени t или информация после времени t). через векторhс входным векторомx, о текущем результате можно судить более точно. Приведенные ниже символы указывают:

xt представляет входной вектор в момент времени t (например, вектор слова для t-го слова)

ht представляет скрытый вектор в момент времени t (содержит соответствующую информацию с самого начала до времени t)

yt представляет выходной вектор (обычно прогнозируемый результат) в момент времени t.

2.RNN

2.1 Структура РНС

RNN — относительно ранняя рекуррентная нейронная сеть с относительно простой структурой, обычная структура показана на рисунке ниже.

на фотоx,h,yПредставьте вход, скрытое состояние и выход нейрона RNN соответственно.

U,W,Vэто парный векторx,h,yМатрица для выполнения линейного преобразования.

Один и тот же нейрон используется в каждый момент в RNN, и нейроны расширяются, как показано на рисунке ниже.

Видно, что вход, полученный нейронами RNN в момент времени t, включает в себя: вход в текущий момент времениxt и скрытое состояние в предыдущий моментhт-1. Вывод включает: скрытое состояние текущего моментаht и выпуск в текущий моментyт.

Так что введите в RNNxt содержит только информацию в момент времени t, а не информацию о последовательности; иhосновано наxт иhРассчитывается по t-1, включая историческую информацию и текущую входную информацию.hт иyМетод расчета t заключается в следующем, рассчитатьhФункция активации в момент t обычно принимает tanh, а вычисленный выходной сигналyФункция активации при t обычно softmax (классификация).

2.2 Дефекты RNN (исчезновение градиента и взрыв градиента)

Давайте начнем с рассмотрения последовательности только с 3 входными данными, как показано на изображении выше. На данный момент наш скрытый слойh1,h2,h3 и выходy1,y2,yФормула расчета 3:

Функция потерь RNN в момент времени t равнаLt, функция полных потерьL = L1 + L2 + L3.

Функция потерь в момент времени t = 3L3 Для сетевых параметровU,W,VГрадиент выглядит следующим образом:

Видно, что для матрицы параметровV(соответствует выходуyГрадиент t) не имеет долговременной зависимости и связан только с последовательностью в момент времени t = 3. Но матрица параметровU(соответствует вводуxt) и матрица параметровW(соответствует скрытому состояниюhГрадиенты t) долговременно зависят от предыдущего состояния скрытого слоя.h1,h2. Функция потерь в момент времени t может быть полученаLт дляU,WГрадиент выглядит следующим образом:

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

tanh'представляет собой производную tanh. Можно видеть, что когда RNN вычисляет градиент, он фактически использует (tanh' ×W) умножения. Когда (танх' ×W) > 1, многократное последовательное умножение легко приводит к градиентному взрыву, а когда (tanh' ×W)

Из-за проблемы градиентов вычисления RNN возникла LSTM (Long Short Term Memory Network). LSTM сокрушает RNN во многих отношениях, и его можно хорошо смягчить.Градиент исчезаетиградиентный взрывПроблема.

3.LSTM

Мы можем лучше решить проблему исчезновения градиента RNN с помощью LSTM Давайте сначала разберемся со структурой LSTM.

3.1 Структура LSTM

Картинка выше оттудаблог Колы, вы можете видеть, что структура нейронов LSTM и RNN сильно отличается. Традиционные нейроны RNN примут скрытое состояние предыдущего моментаht-1 и текущий входxон.

На этом основании нейроны LSTM также вводят состояние клетки.ct-1, состояние клеткиcи скрытые состояния в RNNhпохожи, оба сохраняют историческую информацию, отct-2 ~ ct-1 ~ cт. в ЛСТМcс РННhВыполняемые роли очень похожи, и все они предназначены для сохранения исторической информации о состоянии, в то время как в LSTMhЭто больше для сохранения выходной информации предыдущего момента.

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

Забытые ворота:Красная рамка на приведенном выше рисунке — это часть ворот забывания LSTM, которая используется для оценки состояния ячейки.cКакую информацию в t-1 следует удалить. вопредставляет собой сигмовидную функцию активации. Входhт-1 иxt получается после прохождения сигмовидной функции активацииfон,fКаждое значение в t находится в диапазоне [0, 1].fЧем ближе значение t к 1, тем состояние ячейкиcЗначение соответствующей позиции в t-1 следует запоминать больше;fЧем ближе значение t к 0, тем состояние ячейкиcЗначение соответствующей позиции в t-1 следует забыть. будетfт иcУмножив t-1 побитово (умножение ElementWise), можно получить значение, забыв бесполезную информацию.cт-1.

Входные ворота:Красное поле на приведенном выше рисунке — это часть входных ворот LSTM, которая используется для определения того, какую новую информацию следует добавить в состояние ячейки.cт-1. вопредставляет собой сигмовидную функцию активации. Входhт-1 иxt может получить новую входную информацию через функцию активации tanh (волнистая линия на рисункеCt), но не вся эта новая информация полезна, поэтому необходимо использоватьhт-1 иxt получается через сигмовидную функциюiон,it указывает, какая новая информация полезна. Результат умножения двух векторов добавляется кcВ 't-1 получается состояние ячейки в момент времени tcон.

Выходные ворота:Красное поле на приведенном выше рисунке — это часть выходного затвора LSTM, которая используется для определения того, какая информация должна быть выведена наhв т. н. состояние клеткиct проходит через функцию tanh для получения информации, которую можно вывести, а затемhт-1 иxt получает вектор через сигмовидную функциюoон,oДиапазон каждого измерения t равен [0, 1], что указывает, какие позиции вывода следует удалить, а какие оставить. Результат умножения двух векторов является окончательнымhон.

3.2 LSTM облегчает исчезновение градиента и взрыв градиента

В предыдущем разделе мы знаем, чтоОсновная причина исчезновения градиента в RNN заключается в том, что функция градиента содержит член непрерывного умножения.Если член непрерывного умножения можно удалить, проблема исчезновения градиента может быть преодолена. Как убрать мультипликативный член? Мы можем удалить мультипликативный член, сделав его приблизительно равным 0 или приблизительно равным 1.

Пройдено в LSTMдверьЭффект , может сделать член умножения приблизительно равным 0 или 1. Сначала давайте посмотрим на LSTMcт иhФормула расчета t.

в формулеfт иot все получены сигмовидной функцией, что означает, что их значения либо близки к 0, либо близки к 1. Таким образом, термин умножения в LSTM становится:

Следовательно, когда градиент ворот близок к 1, член умножения может гарантировать, что градиент хорошо передается в LSTM, и избежать исчезновения градиента.

Когда градиент ворот близок к 0, это означает, что информация предыдущего момента не влияет на текущий момент, и нет необходимости возвращать градиент в это время.

Вот почему LSTM способны преодолевать исчезающие градиенты и взрывные градиенты.

4.GRU

GRU — это вариант LSTM с более простой структурой, чем LSTM. LSTM имеет три вентиля (забыть вентиль, входной вентиль, выходной вентиль), в то время как GRU имеет только два вентиля (обновление вентиля, обновление, сброс вентиля, сброс). Кроме того, у GRU нет состояния ячейки в LSTM.c.

на картинкеzт иrt представляет шлюз обновления (красный) и шлюз сброса (синий) соответственно. сброс воротrt контролирует информацию о предыдущем состоянииht-1 входящее состояние-кандидат (обозначенное волнистой линией на рисункеhт), сбросить воротаrЧем меньше значение t, темhЧем меньше произведение t-1, темhЧем меньше информации t-1 добавляет к состоянию-кандидату. Обновите информацию, которую ворота используют для управления предыдущим состоянием.hКакая часть t-1 сохраняется до нового состоянияhВ t, когда (1-zЧем больше t), тем больше информации сохраняется.

5. Резюме

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

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

В процессе реального использования также возможно углубление рекуррентной нейронной сети, то есть многослойной рекуррентной нейронной сети, а также возможно добавление обратной сети, такой как biLSTM, которая может использовать как прямую, так и обратную Информация.

6. Ссылки

Сообщение в блоге Кола: Понимание сетей LSTM

Краткая статья в книге: Причины исчезновения градиента и взрыва градиента в RNN