![b36be7ef4a3b052465c5e0ce32b5996d.png](https://img-blog.csdnimg.cn/img_convert/b36be7ef4a3b052465c5e0ce32b5996d.png)
最近面试被问到了LSTM为什么能够解决long-range dependency的问题,回答这个问题实际上需要把BPTT公式写出来,在这篇博文中我们进行了部分推导
习翔宇:RNN Part 3-RNN中的BPTT算法和梯度消失问题zhuanlan.zhihu.com![9c0f87636325f6691aff20a8184e722e.png](https://img-blog.csdnimg.cn/img_convert/9c0f87636325f6691aff20a8184e722e.png)
但是不够系统化,本篇博文将完全对RNN的BPTT以及LSTM的BPTT进行推导,并对long-range dependency问题进行分析
1. RNN的BPTT
假设RNN的基本方程如下所示
损失函数定义如下:
对于一个输入序列
我们接下来分别对
首先对
然后对
如下公式可知
同样的道理,公示(8)中的第一项
将其带入到公示(8)中即可得到
这样我们把公式(6)中的第三项就展开了,现在带入公式(6)中即可得到:
按照同样的方式,我们对
2. RNN梯度消失分析
在上面的推导中,我们对
sigmoid函数的导数大家都很熟悉了,处于
- 当
> 4的时候,那么
,此时如果
距离过大,会导致连乘项过多,产生梯度爆炸,趋近于无穷
- 当
<4的时候,那么
,此时如果
距离过大,会导致连乘项过多,产生梯度消失,趋近于0
因此当输入序列过长的时候,在求取一个比较远的时刻
梯度爆炸问题容易解决,例如采用clip的方式即可。但是梯度消失的问题比较难以解决,我们下面介绍LSTM为什么能够缓解梯度消失问题
3. LSTM BPTT推导及梯度消失分析
LSTM的公式如下所示
![8378cd8577a8c5e709fde8b4062b9c48.png](https://img-blog.csdnimg.cn/img_convert/8378cd8577a8c5e709fde8b4062b9c48.png)
其中
那么需要连乘的部分计算可得:
从之前的
4. 一些思考
本文由两个问题后续进行提升:
- LSTM部分的推导并不十分严谨,在RNN BPTT的基础上进行了类比
- 梯度消失问题以及long-range dependency问题的定义需要明确,本文进行了约等于,是否准确还有待商榷