概述
通过前一节对循环神经网络RNN的了解,简单的RNN虽然能够解决长期依赖问题,但是训练和优化比较困难,然后长短时记忆模型LSTM很大程度上解决长期依赖问题,本文主要介绍
1.LSTM的提出
2.LSTM网络结构
3.LSTM的分析
LSTM的提出
早在94年Hochreiter发现了RNN训练过程中的梯度消失和爆炸问题,然后在99年提出LSTM解决该问题。
梯度消失问题的原因可以参考之前的介绍。
常量错误传播
RNN难训练的主要原因在后向传播过程中,梯度随着时间序列的增加而逐渐消失。如果误差能够不消减的进行传递,则可以避免训练难得问题。
常量错误传播-直观想法
假设隐藏层只有一个节点j,则该节点误差计算过程为
δj(t)=f′j(netj(t))δj(t+1)wjj
其中
netj(t)表示该节点的网络输入,δj(t)表示节点j的误差
.
如果想做到常误差传播,则需要
f′j(netj(t))wjj=1
此时可以近似无限长时间序列,但是网络过于简单并且实现比较复杂。
常量错误木马(Constant Error Carousel-CEC)
LSTM也是根据CEC演化而来。
针对上面的必要条件 f′j(netj(t))wjj=1 ,两边同时积分可以得到
fj(netj(t))=netj(t)wjj
对于任意时序网络输入
netj(t)
都要满足。
此时激活函数必须是线性并且激活值保持为常量。
yj(t+1)=fj(netj(t+1))=fj(wjjy