根据RNN的BPTT推导,我们可以得到下面的式子:
而又有:
因此,每一个Sj对Sj-1的偏导都等于tanh‘(..)*W
注意到:tanh的梯度最大只能是1,而更多时候都是趋近于0的饱和状态,当求导得到的jacobian矩阵存在一些元素趋近于0,多个矩阵相乘,会使得梯度很快消失。这时候有人会问,为什么不将tanh换成ReLU呢?这样不就可以解决梯度消失了吗?
确实,换成ReLU在一定程度上可以解决梯度消失的问题,但是:
那为什么同样的方法在RNN中不奏效呢?其实这一点Hinton在它的IRNN论文里面(arxiv:[1504.00941] A Simple Way to Initialize Recurrent Networks of Rectified Linear Units)是很明确的提到的: