Рекуррентная нейронная сеть (RNN)
Люди не начинают думать с нуля каждую секунду, как и когда вы читаете эту статью, вы не переучиваете слово с нуля.Человеческое мышление непрерывно. Традиционная сверточная нейронная сеть не имеет памяти и не может решить эту проблему. Рекуррентные нейронные сети могут решить эту проблему. В рекуррентной нейронной сети проблема отсутствия памяти может быть решена зацикливанием, как показано на следующем рисунке:
Увидев это, вы, возможно, до сих пор не понимаете, почему у рекуррентной нейронной сети может быть память. Расширим этот график:
Видно, что мы входимПосле, сначала предупредите обучение, получите вывод, передавая этот вывод на следующее обучение, обычная нейросеть этого не сделает, тоПри обучении вход включаетсебя и обучениеРезультат предыдущей тренировки имеет отпечаток на спине.По этой же причине каждая последующая тренировка подвергается влиянию предыдущейРезультат обучения передается на обучениепроцесс,правильновлияние косвенное).
возникшие проблемы
Рекуррентные нейронные сети очень полезны, но все еще есть некоторые проблемы, в основном отражающиеся на недостатке долговременной памяти. Мы можем представить (есть также документы для доказательства), что определенный ввод на ранней стадии при передаче по более длинному каналу будет оказывать все меньшее и меньшее влияние на обратную связь, что эквивалентно тому, что сеть обладает определенной способностью памяти, но памяти всего 7 секунд, очень чуть не забыл, как показано нижеиправильноВлияние относительно невелико (теоретически этой проблемы можно избежать, подстроив параметры, но найти этот параметр слишком сложно, а применить на практике непросто, поэтому его можно приблизительно считать неосуществимым), LSTM предложил решить эту проблему.
LSTM
LSTM (долговременная кратковременная память) по сути является RNN, но цикл в нем, буква A на приведенном выше рисунке, был переработан, чтобы решить проблему, связанную с недостаточным временем памяти.Другие нейронные сети пытаются настроить параметры для Это сделать память лучше.В результате LSTM, естественно, незабываем, что является просто ударом по уменьшению размерности!
A в обычном RNN показан на рисунке ниже.Предыдущий ввод и текущий ввод выполняют операцию.На рисунке используется tanh:
Для сравнения, A в LSTM намного сложнее, это не один слой нейронной сети на рисунке выше, а четыре слоя, как показано на рисунке ниже, и кажется, что это немного непонятно. статья должна сосредоточиться на. , прочитайте ее внимательно, вы получите что-то:
Определите значение некоторых рисунков, желтые прямоугольники — это простые слои нейронной сети, розовые представляют собой поточечные операции, такие как сложение и умножение, а также операции слияния и разделения (копирования):
смысл
Сначала посмотрите на выделенную часть рисунка ниже.Предыдущий выход может протекать по этой магистрали практически без препятствий.Какая простая и незамысловатая идея,так как надеюсь,что предыдущее обучение не будет забыто,его и дальше будут передавать :
Конечно, для того, чтобы сделать эту передачу более значимой, необходимо добавить некоторый контроль за воротами.Эти ворота избирательны и могут проходить полностью, не проходить вообще или частично. S-функция (сигмоид) может достичь этой цели, следующие Это простые ворота:
Подводя итог, мы создаем сеть LSTM, эта сеть имеет возможность передавать предыдущие данные до конца, сеть имеет возможность долговременной памяти, а также имеет контроль над воротами и отбрасывает эти бесполезные воспоминания в время.
Детальный анализ
С такой основной идеей смотреть на эту сеть намного проще.Первый слой слева направо — «выборочное забывание». На основе предыдущего вывода и этого ввода мы используем Sigmoid, чтобы определить, какие воспоминания нужно сохранить и забыть в предыдущий раз:
Вторая часть разделена на две части: одна часть представляет собой «уровень входных ворот», который использует Sigmoid, чтобы решить, какую информацию необходимо обновить, а другая часть предназначена для создания вектора значений-кандидатов, то есть входных и выходных данных. последний вывод после предварительного расчета Промежуточное состояние:
После предыдущего расчета мы можем обновить состояние ячейки. Первый шаг — какие данные предыдущей ячейки нужно передать, а какие данные нужно забыть; второй шаг — какие данные нужно обновить на этот раз, умножить на промежуточное состояние этого вычисления, чтобы получить обновленные данные на этот раз ; Добавление данных в двух шагах является новым состоянием ячейки, которое может продолжать передаваться в обратном направлении.
На этом этапе нам нужно определить наши выходные данные: на первом этапе мы используем Sigmoid для определения части, которую нам нужно вывести; на втором этапе вычисленное выше состояние ячейки используется для организации данных в интервале -1 в 1 через вычисление танх; На третьем шаге умножьте данные первого и второго шагов, чтобы получить окончательный результат:
Обобщим то, что мы только что сделали: сначала мы определяем, какие данные в последнем состоянии ячейки необходимо сохранить или отбросить с помощью этого ввода и последнего вывода, а затем выполняем обучение сети на основе этого ввода, чтобы дополнительно получить это время. вывод обучения, а состояние ячейки и этот вывод продолжают передаваться.
Здесь возникает вопрос, почему нужно сдаваться? Например, при переводе статьи первый абзац статьи представляет подробную информацию и предысторию определенного человека, а следующий абзац представляет историю, которая произошла сегодня.Отношения между ними слабо связаны, и необходимо вовремя отбросить человека перед вами.Память справочной информации лучше переведет следующие истории.
Некоторые другие сети, основанные на модифицированной версии LSTM, по сути такие же, но некоторые места открыты, и некоторые документы их проверили.Как правило, они мало влияют на результаты обучения.Я не буду их здесь представлять.Эти странные ходы :
Суммировать
В этой статье представлена сеть с долговременной кратковременной памятью.В большинстве случаев, если RNN добился хороших результатов в определенной области, он, вероятно, будет использовать LSTM. Это хорошая статья, картинка в этой статье взята изUnderstanding-LSTMs, стоит прочтения.
- Эта статья была впервые опубликована с:RAIS