Забвение в RNNs и необходимость в закрытых помещениях Стандартные рекуррентные сети с трудом справляются с длинными последовательностями: в конце концов, скрытые состояния содержат мало информации с самого начала. Это забывание вредит задачам, требующим дальних зависимостей. LSTM и GRU были созданы для уменьшения, но не устранения этой проблемы. С помощью gating они более надежно обрабатывают более длинные контексты.
Простая механика RNN и выбор выходных данных Простой RNN обновляет скрытое состояние на основе текущего входного сигнала и предыдущего скрытого состояния, а затем выдает выходные данные из обновленного состояния. Выходные данные часто принимаются за само скрытое состояние, что эквивалентно последующему нанесению плотного слоя. Эта эквивалентность упрощает запись без изменения вычислений.
Две памяти в LSTM: состояние ячейки и скрытое состояние LSTM поддерживает два вектора одинакового размера: состояние ячейки C_t в качестве долговременной памяти и скрытое состояние H_t в качестве кратковременной памяти. H_t играет роль стандартного скрытого состояния RNN, в то время как C_t переносит информацию во времени с минимальными помехами. Их взаимодействие оправдывает название долговременной кратковременной памяти. Каждый шаг по времени обновляет оба воспоминания.
Стирание с помощью врата забвения Из предыдущего скрытого состояния и текущего входного сигнала вычисляется сигмовидный элемент f_t. Поэлементное умножение f_t на предыдущее состояние ячейки уменьшает количество компонентов, которые считаются ненужными. Значения, близкие к нулю, удаляются, значения, близкие к единице, сохраняются. Устаревшая долгосрочная информация удаляется контролируемым образом.
Запись с помощью входного вентиля Потенциальный контент C_t создается из объединенного предыдущего скрытого состояния и текущего ввода с помощью преобразования tanh. Сигмовидный элемент i_t определяет, какой объем каждого потенциального компонента следует записать. Новым состоянием ячейки становится f_t ⊙ C_{t−1} + i_t ⊙ C_t. В долговременную память добавляется только выбранная новая информация.
Экспонирование с помощью выходного затвора Сигмовидный элемент o_t определяет, какую часть обновленной ячейки следует отображать. Скрытое состояние вычисляется как h_t = o_t ⊙ tanh(C_t). Выходные данные слоя могут быть приняты как h_t или переданы с помощью плотного преобразования. Только соответствующий фрагмент долговременной памяти влияет на текущее решение.
Полное обновление ячейки: Выберите, добавьте и перенесите На каждом шаге модуль сначала забывает, затем записывает, затем предоставляет доступ. Долговременная память C_t сокращается с помощью f_t и обогащается с помощью i_t и C_t. Кратковременная память h_t является производной от закрытого, сжатого представления C_t для немедленного использования.
Вычислительные компромиссы LSTM Множественные логические элементы обеспечивают множество обучаемых матриц и смещений. Sigmoid и tanh усложняют как прямые, так и градиентные вычисления по сравнению со слоями на основе ReLU. Обучение и логический вывод выполняются медленнее и требуют больше памяти, чем при использовании простого RNN. Сложность - это цена за лучшую обработку длинных контекстов.
Как LSTM уменьшает забывание по сравнению с Vanilla RNN Стандартные RNN умножают скрытое состояние на матрицу на каждом шаге, существенно преобразуя каждый компонент. LSTM изменяет состояние ячейки в основном за счет поэлементного масштабирования и добавления в gates. Информация, записанная ранее, может оставаться практически неизменной на многих этапах. Это более мягкое обновление уменьшает непреднамеренную перезапись.
Дальнодействующий Поток Напоминает Пропускные соединения Аддитивный путь через C_t функционирует как временное соединение с пропуском. Информация передается вперед во времени с возможностью добавления или вычитания содержимого по пути. Такой путь помогает градиентам распространяться и ослабляет исчезновение. Долгосрочные зависимости сохраняются более надежно.
Грамматика‑Проверка: Запоминание того, что важно При чтении предложения модель сохраняет пол слова “мужчина” в долговременной памяти для последующей проверки соответствия. В случае слова “красивый” она также сохраняет пол этого слова. В “parrot” он извлекает сохраненные функции “beautiful” для проверки соответствия, в то время как “man” на данный момент остается неиспользуемым. Врата сохраняют то, что будет необходимо, и игнорируют то, что сейчас не имеет значения.
Переключение фокуса по мере устранения зависимостей После проверки соответствия “красивый” – “попугай” их данные могут быть удалены из ячейки, но информация о “человеке” остается для будущих ссылок. При появлении предлога “on” модуль запоминает этот сигнал, поскольку он определяет форму последующих слов. В слове “плечо” читается сигнал этого предлога о необходимости проверки падежа. Память развивается путем целенаправленного удаления и избирательного добавления.
Отслеживание пунктуации и удаленных ссылок Запятая обозначает начало причастной конструкции, которую необходимо запомнить. Далее, в разделе “который”, модель извлекает как более ранние признаки “человека”, так и тот факт, что конструкция активна. Когда следующее предложение начинается после точки, из состояния ячейки удаляются данные предыдущего предложения. Независимые предложения не имеют общих ограничений, поэтому устаревшая информация отбрасывается.
ГРУ как более легкая альтернатива и что будет дальше Существует множество вариантов LSTM, и описанный вариант является канонической формой. GRU упрощает проектирование до меньшего количества вычислений и единственного скрытого состояния, сохраняя при этом идею стробирования. LSTM и GRU устраняют проблемы с забывчивостью и градиентом, но не решают их полностью. Механизм привлечения внимания более эффективно устраняет долгосрочную зависимость и будет рассмотрен позже.