首页 > 解决方案 > 激活函数的导数是否必须在 [0,1] 范围内?

问题描述

我发现常见激活函数的导数范围在[0,1]。 https://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html

这是RNN中梯度消失的原因。

当激活函数首次引入深度学习时,导数保留在 [0,1] 中的原因是什么?如果我们使用 Relu 的变体,例如 f(x) = max(0, 2x) 导数在 [0,2] 范围内,MLP 会发生什么

标签: deep-learningrecurrent-neural-networkactivation-function

解决方案


与消失梯度相反的是爆炸梯度,导致梯度达到非常高的值。就像消失的梯度在梯度下降过程中会造成很大的麻烦一样,爆炸梯度也会造成很大的麻烦,在优化过程中会采取特别大的步骤。

这种现象在 RNN 中非常重要,因为在反向传播过程中,连续时间步长的梯度会有效地相互相乘。因此,将梯度值增加到 [0, 2] 会导致 的梯度增加2^n,从而增加梯度下降的可能性。


推荐阅读