LSTM(Long Short-Term Memory,长短期记忆)结构

长短期记忆(英语:Long Short-Term Memory,LSTM)

是一种时间循环神经网络(RNN)[1],论文首次发表于1997年。由于独特的设计结构,LSTM适合于处理和预测时间序列间隔和延迟非常长的重要事件。 摘自:长短期记忆,维基百科

 

RNN

我们往往会根据之前发生的事情,预测到后面的事,RNN就模拟了这种有记忆的网络,是有状态的,图中的回路表现了这个状态的保留。

如果将回路展开,就是RNN结构图经常看到的形式:

An unrolled recurrent neural network.

RNN可以根据上下文推测出下文,但是对于待预测的下文距离可以提供背景的上文特别远,RNN理论上可行但是实践中却有问题。

短距离预测:天空中有朵(云)

长距离预测:我从小在法国长大,……,我可以流利的说(法语)

于是就有了LSTM

 

传统RNN链式结构

传统RNN隐藏层结构

这里每个单元的向右的一条线路表示了一个回路,就是保存的一种状态(隐藏状态)。

 

LSTM 链式结构

LSTM隐藏层结构

这里每个单元向右多了一条线路,在原图就是回路,表示多了一个状态(单元状态)

细胞状态的传递

 

前向计算

1、遗忘门

遗忘门

根据输入x 和上一次的隐藏状态ht-1,得到ft,从而决定上一时刻的单元状态ct-1有多少可以影响这一时刻。W 为权重,bf为偏置,外面作用一个sigmoid

2、输入门

输入门

根据输入xt,和上一时刻隐藏层状态ht-1,结合tanh 计算Ct',it决定这一时刻的状态有多少Ct' 可以影响到单元状态Ct

3、更新单元状态

更新细胞状态

4、输出门

输出门

计算隐藏状态的输出

 

关于为什么LSTM可以解决RNN的问题(梯度消失问题,梯度爆炸问题LSTM没有解决),可以参考:

为什么相比于RNN,LSTM在梯度消失上表现更好?

里面提到RNN 梯度消失本质是矩阵高次幂,但是LSTM 的梯度公式中看出较低层的sigmoid参数也能很好的保留到当前层。

评论顺便解释了DNN的梯度消失是指误差无法传到浅层,RNN 的梯度消失指较早时间的值,没法对当前时刻有影响,无法做到长期记忆。

 

参考:LSTM结构理解与python实现 有结构图、推导、python实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值