LSTM(Long Short Term Memory),又称为长短时记忆,其核心思想就是在普通的RNN单元中增加了门的概念来控制RNN单元。门可以决定信息通过多少,通过门可以更精准的控制RNN单元的行为。
在LSTM中,有三种类型的门:遗忘门、输入门和输出门。LSTM的算法与这3种门有很大的关系。
LSTM首先扩展了普通的RNN单元。普通的RNN单元只有可以视为短暂记忆的单元h,而LSTM增加了存储过去信息的记忆单元C。上面提到的3个门就是用来处理记忆单元C的。
(1)遗忘门的作用是处理上一状态中的信息。其公式为:
输入的部分是上一单元的状态ht-1以及本次的输入xt,σ表示sigmoid函数。
(2)第二个门是输入门。输入门决定给记忆单元C增加多少的新的信息。新的信息由两部分计算而来。第一部分是输入it:
第二部分是Ct:
利用遗忘门和输入门的输入,可以更新记忆单元C的状态:
(3)更新记忆单元的状态之后,会利用输出门确定LSTM单元的输出。输出门的输出为:
使用Ot与Ct得到ht:
这就是LSTM 的简单算法。
简单的应用代码如下:
import tensorflow as tf
from tensorflow import keras
import numpy as np
import time
max_features=89000
maxlen = 450
batch_size=64
cell_size=64
n_layers = 3
def my_load_data