Народный язык — несколько шагов долговременной кратковременной памяти (LSTM) с кодом!

Нейронные сети

1. Что такое LSTM

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

В этой статье будет представлена ​​еще одна часто используемая управляющая рекуррентная нейронная сеть: долговременная кратковременная память (LSTM) [1]. ** Это немного сложнее, чем структура блока контура управления, и это также расширение GRU для решения проблемы затухания градиента в сети RNN.

Сначала вы можете понять процесс GRU, и вам будет намного проще понять LSTM.Адрес ссылки:Трехступенчатое понимание -- Gated Recurent Unit (GRU)

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

2. Входной портал, забыть портал и выходной портал

Как и вентиль сброса и вентиль обновления в блоке контура управления вентилем, вход вентиля долговременной памяти — это вход Xt текущего временного шага и скрытое состояние Ht-1 предыдущего временного шага, а выход — сигмовидная функция из функции активации Полносвязный слой . Таким образом, диапазон значений этих трех элементов ворот составляет [0, 1]. Как показано ниже:

В частности, если предположить, что количество скрытых единиц равно h, мини-пакетный ввод на заданном временном шаге tX_t\in_{}\mathbb{R}^{n*d}(количество выборок равно n, количество входов равно d) и скрытое состояние предыдущего временного шагаH_{t-1}\in_{}\mathbb{R}^{n*h}. Формулы для трех ворот следующие:

Входные ворота:?I_t=\sigma(X_tW_{xi}+H_{t-1}W_{hi}+b_i)?

забудьте спросить: ?F_t=\sigma(X_tW_{xf}+H_{t-1}W_{hf}+b_f)?

Выходные ворота: ?O_t=\sigma(X_tW_{xo}+H_{t-1}W_{ho}+b_o)?

3. Ячейки памяти-кандидаты

Далее, длительная кратковременная память требует подсчета ячеек памяти-кандидатов.\tilde{C}_t. Его расчет аналогичен 3 вентилям, представленным выше, но в качестве функции активации используется функция тангенса с диапазоном [−1, 1], как показано на следующем рисунке:

В частности, ячейки памяти-кандидаты на временном шаге t рассчитываются следующим образом:

\tilde{C}_t=tanh(X_tWxc+H_{t-1}W_{hc}+b_c)

4. Ячейки памяти

Мы можем управлять потоком информации в скрытом состоянии через входные ворота, ворота забывания и выходные ворота со значениями элементов в диапазоне [0, 1], что также обычно достигается с помощью поэлементного умножения (символ ⊙ ). ячейки памяти текущего временного шагаH_{t}\in_{}\mathbb{R}^{n*h}Вычисление объединяет информацию ячеек памяти предыдущего временного шага и ячеек памяти-кандидатов текущего временного шага и управляет потоком информации через портал забывания и входной портал:

C_t=F_t⊙C_{t-1}+I_t⊙\tilde{C}_t

Как показано на рисунке ниже, вентиль забывания контролирует, передается ли информация в ячейке памяти Ct-1 предыдущего временного шага на текущий временной шаг, в то время как входной вентиль контролирует, как проходит через вход Xt текущего временного шага. ячейку памяти-кандидата C˜t.в ячейку памяти текущего временного шага. Если вентиль забывания всегда близок к 1, а вентиль ввода всегда близок к 0, ячейки памяти в прошлом всегда будут сохраняться и передаваться во времени до текущего временного шага. Этот дизайн может справиться с проблемой затухания градиента в рекуррентных нейронных сетях и лучше фиксировать зависимости с большими расстояниями временного шага во временных рядах.

5. Скрытое состояние

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

H_t=O_t⊙tanh(C_t)

Здесь функция tanh гарантирует, что значение скрытого элемента состояния находится в диапазоне от -1 до 1. Следует отметить, что когда выходной вентиль близок к 1, информация о ячейке памяти будет передана в скрытое состояние для использования выходным слоем; когда выходной вентиль близок к 0, информация о ячейке памяти будет сохранена только сам.На следующем рисунке показано полное вычисление скрытых состояний в долговременной кратковременной памяти:

6. Разница между LSTM и ГРУ

LSTM и GRU очень похожи по структуре.Разница в том,:

  1. Новая память вычисляется на основе предыдущего состояния и ввода, но в GRU есть вентиль сброса для управления входом в предыдущее состояние, в то время как в LSTM нет аналогичного вентиля;
  2. Способ генерации новых состояний разный: LSTM имеет два разных шлюза, ворота забывания и ворота ввода, в то время как GRU имеет только один шлюз обновления;
  3. LSTM может настроить вновь сгенерированное состояние через выходной вентиль, в то время как GRU не имеет возможности корректировки вывода.
  4. Преимущество GRU в том, что это более простая модель, поэтому проще создать более крупную сеть, и у нее всего два шлюза, и она работает быстрее в вычислительном отношении, а затем может масштабировать модель.
  5. LSTM является более мощным и гибким, потому что у него три вентиля вместо двух.

7. Может ли LSTM использовать другие функции активации?

Что касается выбора функции активации, в LSTM ворота забывания, входные ворота и выходные ворота используют сигмовидную функцию в качестве функции активации; при создании памяти-кандидата в качестве функции активации используется функция гиперболического тангенса Tanh.

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

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

Выбор функции активации не является статичным, но следует выбрать разумную функцию активации.

8. Реализация кода

Классификация данных MIST — TensorFlow реализует LSTM

Машинное обучение легко понять серия статей

3.png

9. Ссылки

«Практическое обучение — глубокое обучение»


автор:@mantchs

Гитхаб:GitHub.com/NLP-love/ml…

Приглашаются все желающие присоединиться к обсуждению! Улучшайте этот проект вместе! Номер группы: [541954936]NLP面试学习群