Long Short Term Memory (LSTM)

接上一篇博客Simple RNN Model

文章目录

    • Long Short Term Memory (LSTM)
        • Conveyor Belt传送带
        • 遗忘门Forget gate (f)
        • 输入门Input gate (i )
        • ~ Ct
        • Output gate Ot
    • 相关代码解读

Long Short Term Memory (LSTM)

Reference
• Hochreiter and Schmidhuber. Long short-term memory. Neural computation, 1997.
其实LSTM就是在simple RNN上修改的
Long Short Term Memory (LSTM)_第1张图片
simple-RNN:一个参数矩阵
LSTM:4个参数矩阵

Conveyor Belt传送带

(上图的Ct-1->Ct): 过去的信息直接流向未来。

遗忘门Forget gate (f)

Forget gate (f):一个矢量(与 c 和 h 的形状相同)。由σ和X组成。
σ:作用在向量a每个元素上,把每个元素压到0~1之间。
X:就是对应元素相乘
Long Short Term Memory (LSTM)_第2张图片
X的作用(对应元素相乘)eg:
Long Short Term Memory (LSTM)_第3张图片
Wf:模型学习来的,需要通过反向传播,从训练中学习。
ft遗忘门的计算:由上一次的状态ht-1和当前词向量Xt做连接,再与Wf相乘,最后由σ函数,把所有元素压到0~1之间。(一定要看懂这句话,理解,因为下面其他参数矩阵的计算也是类似的,只不过输入不一样!)
Long Short Term Memory (LSTM)_第4张图片

输入门Input gate (i )

: 依赖于旧的状态ht-1和新的输入Xt
it的计算类似于遗忘门。
Long Short Term Memory (LSTM)_第5张图片

~ Ct

~ Ct的计算是把激活函数σ换成了tanh(双曲正切函数),得到的数值在-1~1之间。
Long Short Term Memory (LSTM)_第6张图片
更新传输带Ct:由上述得到的ft,Ct-1,it,~ Ct 如图做乘积再相加得到新的传送带Ct
如果ft 中有0,则Ct-1就会被选择性遗忘。而it与~ Ct相乘再加上去等于添加了新的信息。
Long Short Term Memory (LSTM)_第7张图片

Output gate Ot

Output gate Ot输出门的计算如下图:Long Short Term Memory (LSTM)_第8张图片
ht则是有由Ot和Ct决定的,是LSTM的输出:先将Ct压到 -1 ~ 1之间,再对应元素相乘得到ht
Long Short Term Memory (LSTM)_第9张图片
核心:(现在应该能看懂这张图了吧)
Long Short Term Memory (LSTM)_第10张图片
所以,一共有4个参数矩阵,每个参数矩阵的行数是shape(h),列数是shape(h)+shape(x)

相关代码解读

Long Short Term Memory (LSTM)_第11张图片
Long Short Term Memory (LSTM)_第12张图片

你可能感兴趣的:(自然语言处理,Python,深度学习,lstm,深度学习,人工智能)