应用场景,很多问题具有时序性,自然语言处理、视频图像处理、股票交易信息等
RNN的模型结构


梯度消失与梯度爆炸
由于RNN在时间轴上展开,层数比较多
在RNN的梯度算法中,会出现权值W和激活函数的导数f`连乘的情况
所以当W不太大时,Wf`h和f`连乘回事梯度接近于0,出现梯度消失;当W很大时,Wf`连乘会使梯度接近于无穷大,出现梯度爆炸。
长距离依赖问题
RNN可以将之前处理的信息与当前节点联系起来,所以他可以处理序列问题,但是当序列过长时,由于梯度消失和梯度爆炸问题,队于T时刻来说,它产生的梯度在时间轴上向历史传播几层之后就消失了,根本就无法影响太遥远的过去。
RNN会忘记喝酒以前出现的信息,而只鞥你记住近期出现的信息,所以RNN很难有效处理长文本,梯度爆炸不是严重的问题,一版裁剪后的优化算法即可解决,比如Gradient clipping,通过LSTM(Long Short-Term Memory 长短时记忆网络)改进RNN结构,消除梯度消失。
普通RNN基本结构
传统RNN每一步的隐藏单元只是执行一个简单的tanh或ReLU操作。

LSTM网络
LSTM基本结构和RNN相似,主要不同是LSTM对隐含层进行了改进,在LSMT中,每个神经元相当于一个记忆细胞(Cell)

基本状态
LSTM的关键是细胞的状态,细胞的状态类似于传送带,直接在整个链路上运行,只有一些少量的线性交互

门
LSTM有通过精心设计的称作'门'的机构来去除或者增加信息到细胞状态的能力。
门是一种让信息选择式通过的方法,包含一个Sigmoid神经网络层和一个点乘操作。
Sigmoid层输出0到1之间的数值,描述每一部分有多少量可以通过,
0代表"不许任何量通过"
1代表"允许任何量通过"
LSTM拥有三个门,来保护和通知细胞的状态。
遗忘门:决定丢弃上一步的那些信息
改门会读取ht-1和xt,输出一个在0到1之间的数值给每个在细胞状态Ct-1中的数字。1表示完全保留
0表示完全舍弃。

输入门:决定加入那些信息
tanh层创建一个新的候选向量ct~,加到状态中。这里sigmoid层称"输入门层",起到一个缩放的作用,这两个信息产生对状态的更新。

形成新的细胞状态,1.旧的细胞状态Ct-1与ft相乘来丢弃一部分信息。2.再加上it*C他~(i是输入门),生成新的细胞状态Ct

输出门:决定输出那些信息
把Ct输给tanh函数,得到一个候选的输出值,运行一个Sigmoid层来确定细胞状态的那部分将输出出去。

LSTM相比RNN的有点
1.梯度下降法中,RNN的梯度求解是累乘的形式,由于LSTM的隐含层更复杂,LSTM在梯度求解时,式子是累加的形式,所以LSTM的梯度往往不会是一个接近于0的小值,缓解了梯度消失的问题
2.使用了门结构,解决了长距离依赖的问题