Long-Short Term Memory(长短时记忆模型)

       长短期记忆(Long-Short Term Memory, LSTM)是一种时间递归神经网络(RNN),论文首次发表于1997年。由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。

       LSTM的表现通常比时间递归神经网络及隐马尔科夫模型(HMM)更好,比如用在不分段连续手写识别上。2009年,用LSTM构建的人工神经网络模型赢得过ICDAR手写识别比赛冠军。LSTM还普遍用于自主语音识别,2013年运用TIMI自然演讲数据库达成17.7%错误率的纪录。作为非线性模型,LSTM可作为复杂的非线性单元用于构造更大型深度神经网络。(wikipedia)

       LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为它可以记忆不定时间长度的数值,区块中有一个gate能够决定input是否重要到能被记住及能不能被输出output。每一个激活函数都可以看层一个gate,经典的,LSTM有三种gate 。根据谷歌的测试表明,LSTM中最重要的是Forget gate,其次是Input gate,最次是Output gate。


      关于LSTM详细的介绍请看LSTM  


 循环神经网络展开成一个全神经网络:

Long-Short Term Memory(长短时记忆模型)_第1张图片




下面是其中一个隐藏层的分析:

Long-Short Term Memory(长短时记忆模型)_第2张图片



Long-Short Term Memory(长短时记忆模型)_第3张图片



黄色矩形表示有学习能力的神经网络层

粉色圆圈表示运算符号,”x” 表示乘号(例如向量乘法),“+”表示加号

黑色箭头表示 向量传递

两条线融合表示进行运算

线分叉表示内容被复制成两个,不同方向传递



forget gate layer

数据信息由上一层hidden state信息与现在的输入数据信息的加权之和,

而激活函数sigmoid,决定什么信息是需要从cell state中丢弃的,forget gate layer 输出是[0,1]之间的数,1表示完全变成保留信息,0表示完全丢弃。

             


input gate layer

同样有一个激活函数sigmoid,意义解释为决定哪些值需要更新,其实和forget gate layer的意思类似,

但作用不同。

       


 

A tanh layer : 

a tanh layer creates a vector of new candidate values

tanh layer是创建现隐藏层cell state的候选值,之前说候选值,只因为它只是一个中间值。


          

Final memory cell:

这里是获取现隐藏层 cell state ,它是基于上一个隐藏层 cell state( 称为 old cell state) 与现隐藏层的候选值。

这两个值通过与forget gate 、input gate相乘,决定我们从之前的cell state忘记多少信息和更新多少信息。  

                                                                                



Output gate : 

这里也有一个激活函数sigmoid,习惯把它叫Output gate。

它决定我们应该输出哪一部分的 cell state。




Final hidden state

计算现隐藏层 Final state 的时候,先要让现隐藏层cell state经过一个激活函数tanh,让它的值控制在[-1,1]之内, 这样做可能是防止梯度爆炸(exploding gradient )。然后再与 Output gate相乘决定输出那部分信息。

 

                                                                          



你可能感兴趣的:(机器学习,LSTM,RNN,机器学习)