LSTM(长短期记忆网络) 在RNN循环网络的基础上优化的,主要是能解决循环神经网络的长序列预测的时候梯度消失问题。能把握住较长时间的依赖关系。
为什么能把握住对前后信息的依赖?
可以理解通过记忆单元能够有选择性的遗忘或者记住这些信息。(多好啊)
遗忘门决定当前时刻应该遗忘多少以前时刻的记忆。输出值0/1之间,0表示完全遗忘,1表示可以保留。
ft=σ(Wf⋅[ht−1,xt]+bf)
输入门用来控制当前时刻有多少新的信息需要写入到记忆中
it=σ(Wi⋅[ht−1,xt]+bi)
输出门决定了在当前这一次计算过程,记忆单元中输出多少信息到下一时刻。
ot=σ(Wo⋅[ht−1,xt]+bo)
具体一下吧:
σ:代表激活函数
Wf:代表参数权重
Xt:这一时刻的输入的信息
ht−1:代表上一时刻的信息
bi:偏置
具体计算步骤:
- 遗忘上一部分的信息:通过遗忘门计算上一个时刻的记忆单元值Ct−1和当前时刻的输入Xt,决定要保留多少信息。
- 更新记忆单元:通过输入门控要添加到记忆单元的新的信息。
- 输出当前时刻的状态:通过输入门计算当前时刻的隐藏状态ht。