当前位置:   article > 正文

Tensorflow实战:LSTM原理及实现(详解)_lstm tensorflow

lstm tensorflow

 

LSTM规避了标准RNN中梯度爆炸和梯度消失的问题,所以会显得更好用,学习速度更快

下图是最基本的LSTM单元连接起来的样子

上图为一层LSTM单元连接起来的样子,在工业上,LSTM是可以像一个很大的方阵的,其中除了输入层和输出层分别对应着Xt和ht的值以外,中间的部分都是一层层的LSTM单元,拓扑结构如下:

LSTM内部结构

LSTM看上去就是这样一种效果,一个一个首尾相接,

同一层的会把前面单元的输出作为后面单元的输入;

前一层的输出会作为后一层的输入

 

细胞状态

LSTM 的关键就是细胞状态,水平线在图上方从左到右贯穿运行。

细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易

左面的乘号是一个乘法操作,右面的加号就是普通的线性叠加、

这个操作相当于左侧的Ct-1进入单元后,先被一个乘法器乘以一个系数后,再线性叠加一个数值然后从右侧输出去

 

 

(一)忘记门

在我们 LSTM 中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为忘记门层完成

忘记门:

作用对象:细胞状态

作用:将细胞状态中的信息选择性的遗忘, 即丢掉老的不用的信息

让我们回到语言模型的例子中来基于已经看到的预测下一个词。在这个问题中,细胞状态可能包含当前主语的类别,因此正确的代词可以被选择出来。当我们看到新的主语,我们希望忘记旧的主语。

例如,他今天有事,所以我。。。当处理到‘’我‘’的时候选择性的忘记前面的’他’,或者说减小这个词对后面词的作用。

左侧的ht-1和下面输入的xt经过了连接操作,再通过一个线性单元,经过一个σ也就是sigmoid函数生成一个0到1之间的数字作为系数输出,表达式如左:

Wf和bf作为待定系数是要进行训练学习的

 

(二)产生要更新的新信息

包含两个小的神经网络层

一个是熟悉的sigmoid部分

另一个tanh标识(映射到-1到1)也是一个神经网络层,表达式为:

 

其中的W和b都是要通过训练得到的

(三)

更新细胞状态,

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/1015901
推荐阅读
相关标签
  

闽ICP备14008679号