梯度消失的说明 木灵的炼金工作室

在RNN的时序展开“前馈”过程中有混合(隐层)输出两个过程:

\[h^{(t)}=f(Uh^{(t-1)}+Vx^{(t)})\] \[y^{(t)}=g(Wh^{(t)})\]

须知:算法中以上三个系数矩阵$UVW$均是唯一的,不随时序展开. 但在初次理解和证明之时可以将其时序展开,这样方便理解且是等效的. 展开求导后将各个梯度加和即可:

\[\frac{\partial cost}{\partial M}=\sum_{t=0}^n \frac{\partial cost}{\partial M^{(t)}}\]

用某种尺度(通常为对数似然)导出一统计偏差函数$cost(U,V,W,…)$,通过误差在时序中的逆传播可以得出(不妨以对$U$的时序逆传播修正为例)

\[\frac{\partial cost}{\partial U}=\frac{\partial cost}{\partial y^{(t)}}\frac{\partial y^{(t)}}{\partial h^{(t)}}\frac{\partial h^{(t)}}{\partial U^{(t)}}+\frac{\partial cost}{\partial y^{(t)}}\frac{\partial y^{(t)}}{\partial h^{(t)}}\frac{\partial h^{(t)}}{\partial h^{(t-1)}}\frac{\partial h^{(t-1)}}{\partial U^{(t-1)}}\] \[+\frac{\partial cost}{\partial y^{(t)}}\frac{\partial y^{(t)}}{\partial h^{(t)}}\frac{\partial h^{(t)}}{\partial h^{(t-1)}}\frac{\partial h^{(t-1)}}{\partial h^{(t-2)}}\frac{\partial h^{(t-2)}}{\partial U^{(t-2)}}+\dotsb\]

如此可见,上式中每按时序展开一次,新增的一项就要乘一$\frac{\partial h^{(i)}}{\partial h^{(i-1)}}$因子.

而这个因子与混合函数$f$高度相关,如混合函数不合适,就会导致该因子多次叠加后使得时序远端的梯度变得非常小或非常大.

非常小时称为梯度消失,非常大时称为梯度爆炸.


Copyright AmachiInori 2017-2021. All Right Reserved.
Powered By Jekyll.
amachi.com.cn