我发现常见激活函数的导数的范围是[0,1]。 https://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html
这是RNN中梯度消失的原因。
首次将激活函数引入深度学习时,导数保留在[0,1]中的原因是什么?如果我们使用Relu的变体,例如f(x)= max(0,2x),且导数的范围为[0,2],那么MLP将会发生什么
答案 0 :(得分:0)
消失梯度的相反是爆炸梯度,导致梯度达到非常高的值。正如消失的梯度会在梯度下降过程中造成很大的麻烦一样,爆炸梯度也是如此,在优化过程中要采取特别大的步骤。
在使用反向传播时,这种现象在RNN中非常重要,因为在反向传播过程中,连续时间步长的梯度有效地彼此相乘。因此,将梯度值增加到[0,2]将导致2^n
的梯度增加,从而增加了梯度的可能性。