Понимание математики интуиции

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

LSTM и ГРУ рассматриваются как решение краткосрочных воспоминаний. Теперь давайте посмотрим, как это работает, чтобы понять это.

У них есть механизм ворот, которые управляют потоком информации.

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

Практически все современные технологии реализации RNN достигаются с помощью LSTM или GRU.

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

Чтобы понять это, возьмем пример обзора фильма:

«Потрясающий фильм! Ролик был полон новых сюрпризов, зрителям пришлось до последней минуты сдерживаться, чтобы его посмотреть. Скучно не было. «

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

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

Это похоже на то, что делает LSTM (Long Short Term Memory) или GRU, просто чтобы сохранить актуальную информацию и забыть о нерелевантной или не оцениваемой информации.

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

На каждом шаге предыдущее скрытое состояние передается в память, чтобы сохранить историческое состояние.

Функция активации Tanh регулирует значения в нейронной сети и поддерживает их в диапазоне от 1 до -1. Это сделано для того, чтобы значения не взрывались после стольких математических преобразований на каждом шаге.

Также при использовании tanh используется намного меньше вычислительных ресурсов по сравнению с тем, если tanh не используется.

В LSTM он последовательно передает информацию вперед со скрытым состоянием и словами в виде векторов.

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

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

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

Таким образом, нейронная сеть сохраняет актуальную информацию и забывает несущественную.

Теперь поговорим о каждых воротах:

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

Функция: Забытый шлюз отвечает за забывание нерелевантной информации из предыдущего состояния ячейки.

Уравнение для расчета состояния забывания приведено ниже, Wf - это вес, присвоенный этому состоянию, а bf - это смещение, присвоенное здесь.

ft = сигмовидная (Wf. [ht-1, xt] + bf)

2) Чтобы обновить предыдущее состояние ячейки, у нас есть входной вентиль, в котором объединенные векторы входного состояния и скрытого состояния передаются сигмоидной функции, чтобы увидеть, какие значения оставить, а какие забыть.

Такой же ввод передается в функцию tanh для регуляризации значений от -1 до 1.

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

Функция: на этом этапе LSTM показывает, какую новую информацию мы собираемся сохранить в состоянии ячейки.

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

Следующее состояние кандидата решает, какие новые значения будут добавлены к нему.

Комбинация обоих решает, каким будет следующее состояние ячейки.

it = Sigmoid (Wi. [ht-1, xt] + bi), Wi, bi - вес и смещение во входных данных.

~ Ct = tanh (Wc. [ht-1, xt] + bc), Wc, bc - это вес и смещение в новом состоянии кандидата.

3) Душа LSTM находится в состоянии ячейки. Это что-то вроде конвейерной линии. Он переходит прямо в другую ячейку с небольшими изменениями, такими как сложение или умножение результирующих векторов. Информация очень легко течет по ней. В состоянии ячейки, прежде всего, предыдущие значения состояния ячейки умножаются на коэффициенты забвения.

Затем мы добавляем эти значения к выходным значениям входного элемента. Это значение будет передано в следующую ячейку как состояние ячейки.

Ct=ft*Ct-1+ it * ~Ct

Функция:. В этом уравнении указано, сколько LSTM будут забывать из предыдущего состояния ячейки (ft), а также насколько они обновлены (it) и добавлены (~ Ct) с масштабированием новые ценности.

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

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

Вычисленное состояние ячейки и скрытое состояние затем передаются в следующую ячейку для обработки.

ot = Sigmoid (Wo. [ht-1, xt] + bo), Wo, bo - это вес и смещение в состоянии вывода.

ht = ot * tanh (Ct)

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

В обзоре после применения LSTM будет только важная информация, такая как:

«Потрясающий фильм! Ролик был полон новых сюрпризов, зрителям приходилось тратить время на просмотр до последней минуты. Не было никаких скучных моментов. «

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

Заключение

Хотя LSTM имеют преимущество над простыми ванильными RNN, у них есть некоторые недостатки, например:

а) Их немного сложно тренировать.

б) Очень длинные градиентные пути, например, для 100 слов есть 100-слойная сеть.

c) Требуются маркированные данные для выполняемой ими задачи.

г) Трансферное обучение плохо работает.

д) Может быть немного медленным.

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

Спасибо за прочтение!

Ссылки:

https://colah.github.io/posts/2015-08-Understanding-LSTMs/

Первоначально опубликовано на https://www.numpyninja.com 27 декабря 2020 г.