深入理解RNN梯度消失

1.关于理解RNN梯度消失

内容转载于:知乎-RNN梯度消失和爆炸的原因.

深入理解RNN梯度消失_第1张图片
深入理解RNN梯度消失_第2张图片
深入理解RNN梯度消失_第3张图片
深入理解RNN梯度消失_第4张图片
深入理解RNN梯度消失_第5张图片
深入理解RNN梯度消失_第6张图片

2.梯度消失,权值就无法更新了吗?

No.梯度消失不意味着没有梯度

我们先看任意时刻 t 对权重 w x w_x wx求导公式:
深入理解RNN梯度消失_第7张图片
请注意红圈这是一个求和符号,即使 t 是一个很大的数,但是第公式第t 项基本不受影响,仍然是一个比较大的数值。所以即使层数深,梯度也不小,网络参数仍然能够更新。
再联想RNN参数共享机制,即使层数再深网络权重仍然能够更新。

3.那为什么我们在训练是重要要避免梯度消失

这个问题题主目前仍然没有完全理解。但是题主有一个不太肯定的答案。
我们还是从公式说起:
深入理解RNN梯度消失_第8张图片
注意红圈部分:
我们都知道不管层数多深,红圈中第一项的值一定是不受层数多少的影响,但是除第一项以外所有层都或多或少受到影响.
我们考虑比较极端的情况公式中除了第一项之外全为0。那意味着RNN网络中前面部分的输入没有对网络参数更新产生影响,之后最后一次输入才会影响网络参数更新。所以梯度消失不是不能更新参数,而是导致RNN前面的输入无法有效的影响网络参数。
所以我们在使用网络时要要避免梯度消失。

你可能感兴趣的:(机器学习)