LSTM原理的理解


一、LSTM是什么

长短时记忆(LSTM)体系结构的设计是为了使信息在能够在需要之前的很长一段时间内都很容易记住。
这个名字指的是一个网络的激活对应于短期记忆,而权重对应于长期记忆。如果这些激活可以长时间保存信息,那么它们就是长短时记忆。

二、实现的主要流程

1.sigmoid函数的使用

有sigmoid函数的地方就是一个门,sigmoid函数的范围在0~1,sigmoid只开0的话,以前的信息就不能得到,若开1的话,以前的信息就能很好的继承。
下图一共三个门,遗忘门、输入门和输出门。
在这里插入图片描述
C t − 1 是 t − 1 时 刻 的 状 态 值 C_{t-1}是t-1时刻的状态值 Ct1t1
C t 是 t 时 刻 的 状 态 值 C_t是t时刻的状态值 Ctt
C ′ 是 新 的 输 入 C'是新的输入 C
相乘符号类似于信息过滤,相加符号类似信息融合
在这里插入图片描述
C t 是 由 C ′ 与 过 滤 后 的 C t − 1 的 融 合 得 到 C_t是由C'与过滤后的C_{t-1}的融合得到 CtCCt1

2.LSTM的门(gate)

Forget gate(遗忘门)

在这里插入图片描述
Forget gate的开度计算: f t = σ ( W f [ h t − 1 , x t ] + b f ) f_t=\sigma(W_f [h_{t-1},x_t]+b_f ) ft=σ(Wf[ht1,xt]+bf)
根据上式得到 t t t时刻forget开度的量 f t f_t ft
红色线是由 C t − 1 C_{t-1} Ct1 f t f_t ft相乘得到得过滤后得信息,即过滤后的历史状态。

Input gate(输入门)

在这里插入图片描述
这一步决定在这个状态块中存储什么样的新状态。
Input gate的开度计算: i t = σ ( W i [ h t − 1 , x t ] + b i ) i_t=\sigma(W_i[h_{t-1},x_t]+b_i) it=σ(Wi[ht1,xt]+bi)
根据上式得到 t t t时刻input开度的量 i t i_t it
利用tanh激活函数压缩至[-1,1]范围得到 C t ′ C'_t Ct,并添加入状态块中: C t ′ = t a n h ( W i [ h t − 1 , x t ] + b C ) C'_t=tanh(W_i[h_{t-1},x_t]+b_C) Ct=tanh(Wi[ht1,xt]+bC)
此时红色线代表 C t ′ C'_{t} Ct i t i_t it相乘得到得过滤后得信息,即过滤后的新状态。

在这里插入图片描述
此时的 C t C_t Ct为: C t = f t ∗ C t − 1 + i t ∗ C t ′ C_t=f_t*C_{t-1}+i_t*C'_t Ct=ftCt1+itCt
该式含义:把旧状态乘以遗忘开度决定忘记的东西。然后,添加新的状态,并根据输入开度决定更新每个状态值的比例进行调整。

Output gate(输出门)

此时 h t h_t ht不理解为memory,将其作为输出理解, C t C_t Ct相当于memory。
在这里插入图片描述
首先,根据 o t = σ ( W o [ h t − 1 , x t ] + b o ) o_t=\sigma(W_o[h_{t-1},x_t]+b_o) ot=σ(Wo[ht1,xt]+bo),可知由sigmoid函数决定要输出的状态有哪些。
h t = o t ∗ t a n h ( C t ) h_t=o_t*tanh(C_t) ht=ottanh(Ct)
将单元格状态通过tanh(将值推入到-1和1之间),并将其乘以输出门的开度,只输出我们决定输出的部分。

总结

根据输出门与遗忘门的开度,可以实现几种行为

输入门输出门行为
11增加先前值,即 C t C_t Ct为: C t = f t ∗ C t − 1 + i t ∗ C t ′ C_t=f_t*C_{t-1}+i_t*C'_t Ct=ftCt1+itCt
00擦除值,即 C t = 0 C_t=0 Ct=0
10覆盖值,即 C t = C t ′ C_t=C'_t Ct=Ct
01记忆先前值,即 C t = C t − 1 C_t=C_{t-1} Ct=Ct1

其实,LSTM在神经网络架构中是作为一个黑盒实现的,并且它可以在一定程度上解决梯度离散与梯度爆炸(相对于传统RNN的梯度计算,没有了 W h h k W_{hh}^k Whhk项)。

参考

图片来源:龙曲良老师的pytorch课程讲解PPT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SYBY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值