Понимание LSTM в одной статье

глубокое обучение

Это 20-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

LSTM

Предварительные знания - РНН

RNN — рекуррентная нейронная сеть, рекуррентная нейронная сеть. RNN — это тип нейронной сети для обработки последовательных данных (например, данных временных рядов).

Давайте сначала разберемся с обычным RNN.

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

RNN.jpg

Вход RNN имеет два значения, одно из которых представляет собой данные временного ряда текущего состояния.xx, одно значение предыдущего скрытого слояhh. То есть в следующем состоянии или в следующий момент вводаx2x^2При этом значение в памяти в предыдущий момент также должно считаться вместе, а скрытый слой выдает новое значение.h2h^2заменит оригиналh1h^1, то есть одновременно обновить значение в памяти. конечный результатyyЭто получить значение вероятности через слой softmax.

Проще говоря, для упорядоченного набора данных RNN берет ранее проанализированные данные.x1x^1Результаты сохраняются в памяти и анализируютсяx2x^2прежде чем звонитьx1x^1проанализированы вместе с результатами. То есть накапливая память и анализируя вместе.

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

Кроме того, существует множество расширений RNN, таких как Сеть Элмана и Сеть Джордана, Разница между ними заключается в том, что значения, хранящиеся в памяти, различны.

  • Сеть Элмана: в памяти хранится значение скрытого слоя
  • Jordan Network: конечное выходное значение, хранящееся в памяти

Elman_Network.jpg

Помимо этого естьДвунаправленный RNN(Двунаправленный RNN). Двусторонний означает, что RNN обучается в прямом направлении, а RNN обучается в обратном направлении одновременно, как показано на следующем рисунке.

rnn-bi.png

Что такое ЛСТМ

Полное название LSTM — Long Short-Term Memory, то есть сеть долговременной кратковременной памяти. Это расширенная версия RNN.

Ранее мы узнали об обычной RNN, которая не имеет ограничений на чтение и обновление Памяти, то есть каждый раз, когда нейросеть вводит новые данные, Память будет обновляться.

LSTM основан на RNN, добавляя триGate, используемый для управления глобальной памятью.

Трое ворот:

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

LSTM.png

Как видите, ячейка памяти LSTM имеет 4 входа и 1 выход. Выходом является значение в Памяти, а входом — значение, которое вы хотите записать в Память (фактически, выходное значение скрытого слоя) и сигнал вентиля, управляющий тремя вентилями.

структура

Следующее подробное понимание структуры LSTM см. на рисунке ниже.

lstm2.png

С точки зрения выражения, ячейка памяти,zzэто значение, которое вы хотите сохранить в памяти,ziz_iуправлять входными воротами,zoz_oуправлять выходными воротами,zfz_fУправляет воротами забвения. функцияffУказывает на функцию активации, обычно используется сигмовидная, которой можно управлять[0,1][0,1], указывающий степень, до которой ворота открыты.

Для входных ворот легко увидеть,f(zi)=1f(z_i)=1Указывает, что ворота открыты,g(z)g(z)можно вписать, иначеg(z)g(z)становится 0.

Для ворот забыть, даf(zf)=1f(z_f)=1, что означает сохранение значения в текущей памятиcc. иf(zf)=0f(z_f)=0, это означает забыть значение в текущей памятиcc, то есть очистить текущее значениеcc.c'c'Это значение после обновления памяти.c'=g(z)f(zi)+cf(zf)c'=g(z)f(z_i)+cf(z_f)Эта формула должна быть проста для понимания.

конечный результатaaу выходных воротf(zo)f(z_o)контроль, очевидно жеf(zo)=1f(z_o)=1Значение Memory может быть прочитано только тогда, когдаh(c')h(c'). Здесь также есть функция активацииhh.

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

LSTM_example.png

Наблюдаем приведенную выше картину,ttВсегда вводите образцы данныхxtx^t, он сначала умножит матрицу и преобразует ее вz,zf,zi,zoz,z^f,z^i,z_oЭти 4 вектора (потому что мы рассматриваем весь временной ряд, так что это вектор, на самом деле вход стробируемого сигнала в каждый момент является значением). Эти четыре вектора являются управляющими сигналами.

Кроме того, ввод также включает значение, хранящееся в ячейке памяти.ct1c^{t-1}. Выходное значение скрытого слоя в предыдущий моментht1h^{t-1}. Обратите внимание, что некоторые друзья здесь могут быть немного сбиты с толку, почему вход должен учитываться?ct1c^{t-1}иht1h^{t-1}А два значения? RNN нужно только учитыватьht1h^{t-1}Какие. На самом деле, поскольку есть выходной элемент, он определяет, может ли память быть прочитана или нет.Даже если значение ячейки памяти будет обновлено, выходной вентиль не будет его читать.В это время значение, выводимое скрытым слоем должно отличаться от значения ячейки.

Преимущество

Каковы преимущества LSTM?

Проблемы с обычными RNN:

  • Градиент исчезает: когда ошибка передается в обратном порядке, каждый шаг будет умножаться на вес w, w
  • Взрыв градиента: w>1, умножение становится все больше и больше

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

Почему LSTM может решить исчезающий градиент?

Давайте сначала рассмотрим LSTM.Если смотреть на ячейку памяти, формула обновления значения в ячейке:c'=g(z)f(zi)+cf(zf)c'=g(z)f(z_i)+cf(z_f).

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

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

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

резюме

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

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

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

Ссылаться на

  1. Курс машинного обучения профессора Ли Хунъи из Национального тайваньского университетаВидео станции B