Tensorflow LSTM原理

原创文章,转载请注明: 转载自慢慢的回味

本文链接地址: Tensorflow LSTM原理

LSTM是RNN的一种cell实现。那么什么是RNN呢?RNN是一种特殊的神经网络结构, 它是根据“人的认知是基于过往的经验和记忆”这一观点而提出的,它使网络对前面的内容的一种“记忆”功能。隐藏层中,一个序列当前的输出与前面的输出也有关,具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出,所有前面的结果可以影响后面的输出。所以它广泛运用于文本生成,机器翻译,机器写小说,语音识别等。
RNN整个网络架构如下所示:

可以看李弘毅的视频:25.循环神经网络RNN(I)_高清了解更多的RNN原理

LSTM原理

本文只说明LSTM的原理和一个基于Tensorflow的简单测试,测试代码以下图为案例:

如下图所示,LSTM单元接受3个输入:当前输入x_t,上一Cell状态c_t-1,上一次输出h_t-1。
1 上一次输出h_t-1和当前输入x_t按y轴加在一起,和权值矩阵W相乘,然后按y轴均分成4组i,j(z_2),f,o。
2 上一次状态C_t-1和遗忘开关f_t相乘,完成遗忘的处理;和受输入控制的i_t相加(i_t*j_t)完成状态的更新(c_t=C_t-1*f_t+i_t*j_t)。
3 更新后的状态C_t和输出开关o_t相乘,输出h_t。

继续阅读“Tensorflow LSTM原理”本作品采用知识共享署名 4.0 国际许可协议进行许可。