为什么激活函数必须是单调的?

数据挖掘 机器学习 神经网络
2021-09-25 00:56:36

我目前正在准备神经网络考试。在以前考试的几个协议中,我读到神经元的激活函数(在多层感知器中)必须是单调的。

我知道激活函数应该是可微的,在大多数点上都有一个不为 0 的导数,并且是非线性的。我不明白为什么单调很重要/有帮助。

我知道以下激活函数并且它们是单调的:

  • ReLU
  • 乙状结肠
  • Softmax:我不确定单调性的定义是否适用于函数 f:RnRmn,m>1
  • 软加
  • (身份)

但是,我仍然看不到任何原因,例如 φ(x)=x2.

为什么激活函数必须是单调的?

(相关问题:对数/指数函数不用作激活函数有什么原因吗?)

2个回答

单调性准则有助于神经网络更容易地收敛到更准确的分类器中。有关更多详细信息和原因,请参阅此stackexchange 答案维基百科文章。

然而,激活函数的单调性标准不是强制性的——也可以用非单调的激活函数训练神经网络。优化神经网络变得越来越难。请参阅Yoshua Bengio 的回答

我将提供一个更数学的理由来说明为什么具有单调函数会有所帮助!

使用http://mathonline.wikidot.com/lebesgue-s-theorem-for-the-differentiability-of-monotone-fun,假设我们的激活函数是单调的,我们可以说在实线上,我们的函数将是可微的。所以,激活函数的梯度不会是一个不稳定的函数。找到我们正在寻找的最小值会更容易。(计算成本低)

指数函数和对数函数是漂亮的函数,但没有界(因此,勒贝格定理的逆函数是不正确的,因为 Exp 和 Log 是在实线上没有界的可微函数)。因此,当我们想在最后阶段对示例进行分类时,它们会失败。Sigmoid 和 tanh 工作得非常好,因为它们具有易于计算的梯度,并且它们的范围分别为 (0,1) 和 (-1,1)。