一.RNN每一层的网络的结构
![bc5889e33689a4a81d80f057bcad9097.png](https://i-blog.csdnimg.cn/blog_migrate/cb7aa528d05971d29af8b88a1e72aaf1.png)
- 由上图看出,对RNN来讲,每一层网络的输入来自前一层的输出h和当前层的的输入x,当前层会得到该层的输出h_hat 和 经过softmax后的y值输出,这里3个W参数可训练。
- 每一层的隐向量为
, 每一层的输出
- 在反向传播过程中,总误差
关于
的梯度计算如下,需要注意的是
代表每个t时间步神经元输出的误差总和
-
- 因此当反向传播K个时间步时
-
,
- 如果
主特征值大于1,梯度爆炸,小于1梯度消失。
- 详细细节请参考:Cyber:为什么LSTM可以阻止梯度消失:从反向传播视角来考虑(博客翻译)
二.LSTM的网络结构
![280874a76b3c8b805dafd840b0738bdd.png](https://i-blog.csdnimg.cn/blog_migrate/9a30e0e158741940441cdb568d14c1c7.jpeg)
![7091259d14597bcfa5d6b451e71eb35c.png](https://i-blog.csdnimg.cn/blog_migrate/d375d5184e89519f1567f28c212806ae.jpeg)
从RNN推导可知,造成梯度问题的求导在于
![73c33e46894255831b6063509be9db42.png](https://i-blog.csdnimg.cn/blog_migrate/dd958f3177f8514870d333070ad88668.jpeg)
- LSTM的推导不仅只有上面部分,这里只解释
对于梯度问题的改进
- 当我们需要k时间步的反向传播,这里需要将上述式子进行连乘k次,在
中
都是可以学习的,也就是门函数赋予网络决定梯度消失程度的能力,即梯度求导中包含加法,使得模型可以自我学习加法,使得导数可以在1上下跳动
- 当长期依赖对结果有重要影响时,网络可以将遗忘门学习的很大即将
学习的较大,如果长期依赖对结果不重要,梯度消失对结果影响不大,则遗忘门学习的就小一点。
- 解释上句话为什么
调大可以保留更多的上文信息
![75d3b9def7d8cab04889ed4cabbcc8ed.png](https://i-blog.csdnimg.cn/blog_migrate/0324fc3ea1d1e625a6b6b0ee6edc316a.png)
由
参考:
为什么相比于RNN,LSTM在梯度消失上表现更好?
图解LSTM结构_光英的记忆博客-CSDN博客_lstm结构图
Cyber:为什么LSTM可以阻止梯度消失:从反向传播视角来考虑(博客翻译)