LSTM — сеть долговременной кратковременной памяти

искусственный интеллект

Рекуррентная нейронная сеть (RNN)

Люди не начинают думать с нуля каждую секунду, как и когда вы читаете эту статью, вы не переучиваете слово с нуля.Человеческое мышление непрерывно. Традиционная сверточная нейронная сеть не имеет памяти и не может решить эту проблему. Рекуррентные нейронные сети могут решить эту проблему. В рекуррентной нейронной сети проблема отсутствия памяти может быть решена зацикливанием, как показано на следующем рисунке:

RNN-rolled

Увидев это, вы, возможно, до сих пор не понимаете, почему у рекуррентной нейронной сети может быть память. Расширим этот график:

RNN-unrolled

Видно, что мы входимX0X_0После, сначала предупредите обучение, получите выводh0h_0, передавая этот вывод на следующее обучениеX1X_1, обычная нейросеть этого не сделает, тоX1X_1При обучении вход включаетX1X_1себя и обучениеX0X_0Результат предыдущей тренировки имеет отпечаток на спине.По этой же причине каждая последующая тренировка подвергается влиянию предыдущейX1X_1Результат обучения передается на обучениеX2X_2процесс,X0X_0правильноX2X_2влияние косвенное).

возникшие проблемы

Рекуррентные нейронные сети очень полезны, но все еще есть некоторые проблемы, в основном отражающиеся на недостатке долговременной памяти. Мы можем представить (есть также документы для доказательства), что определенный ввод на ранней стадии при передаче по более длинному каналу будет оказывать все меньшее и меньшее влияние на обратную связь, что эквивалентно тому, что сеть обладает определенной способностью памяти, но памяти всего 7 секунд, очень чуть не забыл, как показано нижеX0X_0иX1X_1правильноht+1h_{t+1}Влияние относительно невелико (теоретически этой проблемы можно избежать, подстроив параметры, но найти этот параметр слишком сложно, а применить на практике непросто, поэтому его можно приблизительно считать неосуществимым), LSTM предложил решить эту проблему.

RNN-longtermdependencies

LSTM

LSTM (долговременная кратковременная память) по сути является RNN, но цикл в нем, буква A на приведенном выше рисунке, был переработан, чтобы решить проблему, связанную с недостаточным временем памяти.Другие нейронные сети пытаются настроить параметры для Это сделать память лучше.В результате LSTM, естественно, незабываем, что является просто ударом по уменьшению размерности!

A в обычном RNN показан на рисунке ниже.Предыдущий ввод и текущий ввод выполняют операцию.На рисунке используется tanh:

LSTM3-SimpleRNN

Для сравнения, A в LSTM намного сложнее, это не один слой нейронной сети на рисунке выше, а четыре слоя, как показано на рисунке ниже, и кажется, что это немного непонятно. статья должна сосредоточиться на. , прочитайте ее внимательно, вы получите что-то:

LSTM3-chain

Определите значение некоторых рисунков, желтые прямоугольники — это простые слои нейронной сети, розовые представляют собой поточечные операции, такие как сложение и умножение, а также операции слияния и разделения (копирования):

LSTM2-notation

смысл

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

LSTM3-C-line

Конечно, для того, чтобы сделать эту передачу более значимой, необходимо добавить некоторый контроль за воротами.Эти ворота избирательны и могут проходить полностью, не проходить вообще или частично. S-функция (сигмоид) может достичь этой цели, следующие Это простые ворота:

LSTM3-gate

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

Детальный анализ

С такой основной идеей смотреть на эту сеть намного проще.Первый слой слева направо — «выборочное забывание». На основе предыдущего вывода и этого ввода мы используем Sigmoid, чтобы определить, какие воспоминания нужно сохранить и забыть в предыдущий раз:

LSTM3-focus-f

Вторая часть разделена на две части: одна часть представляет собой «уровень входных ворот», который использует Sigmoid, чтобы решить, какую информацию необходимо обновить, а другая часть предназначена для создания вектора значений-кандидатов, то есть входных и выходных данных. последний вывод после предварительного расчета Промежуточное состояние:

LSTM3-focus-i

После предыдущего расчета мы можем обновить состояние ячейки. Первый шаг — какие данные предыдущей ячейки нужно передать, а какие данные нужно забыть; второй шаг — какие данные нужно обновить на этот раз, умножить на промежуточное состояние этого вычисления, чтобы получить обновленные данные на этот раз ; Добавление данных в двух шагах является новым состоянием ячейки, которое может продолжать передаваться в обратном направлении.

LSTM3-focus-C

На этом этапе нам нужно определить наши выходные данные: на первом этапе мы используем Sigmoid для определения части, которую нам нужно вывести; на втором этапе вычисленное выше состояние ячейки используется для организации данных в интервале -1 в 1 через вычисление танх; На третьем шаге умножьте данные первого и второго шагов, чтобы получить окончательный результат:

LSTM3-focus-o

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

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

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

LSTM3-var-peepholes

LSTM3-var-tied

LSTM3-var-GRU

Суммировать

В этой статье представлена ​​сеть с долговременной кратковременной памятью.В большинстве случаев, если RNN добился хороших результатов в определенной области, он, вероятно, будет использовать LSTM. Это хорошая статья, картинка в этой статье взята изUnderstanding-LSTMs, стоит прочтения.

  • Эта статья была впервые опубликована с:RAIS