为什么神经网络中使用的激活函数通常范围有限?

数据挖掘 机器学习 神经网络 激活函数
2022-01-31 12:23:29

为什么我们通常在神经网络中使用范围有限的激活函数?例如

  • s一世G一世d激活函数有范围[0,1]
  • 一种nH激活函数有范围[-1,1]

Q1)假设我使用其他一些非线性激活函数,例如F(X)=X2,没有任何如此有限的范围,那么在训练这样的神经网络时可能存在哪些潜在问题?

Q2)假设我使用F(X)=X2作为神经网络中的激活函数,我正在对层进行规范化(以避免值不断乘以更高的值),那么这样的神经网络会起作用吗?(这再次参考了我在标题中发布的问题“为什么我们通常在神经网络中使用只有有限范围的激活函数?”)

2个回答

激活函数的主要目标是增加非线性但同时

  • 它不能爆炸大输入,否则达到最小值的时间将变得很长
  • 它应该有一个平滑的梯度,这将有助于训练继续朝着最小值前进而不会卡住

使用您的示例功能-

我们将实现非线性,但对于大值,梯度会非常大,并且会减慢训练速度

我相信你猜到了,所以你问了下一个问题。如果我将数据标准化怎么办-

规范化有助于将两个不同的特性置于同一级别。但是相同特征的较大值仍然会比较小的值更大

但是由于梯度变平,这种函数在两个极端都停止了学习。此外,它们需要高计算量我们有没有上限的 RELU。这是所有提到的点的一个很好的权衡

据我所知,以这种方式选择第一次激活的原因可以追溯到神经元的电学特性。神经元必须有一个最小电势才能传输输入信号。这可以通过阶跃函数在数学上表示,其中任何高于阈值的值都等于 1,否则为零。我们只需要知道电位是否小于或大于给定阈值 - 如果开关打开或关闭 - 所以不需要知道它打开或关闭的“多少”。

Sigmoid 函数在某种意义上是阶跃函数的可微分版本。并且 tanh 也有相同的结构,但只是向下移动了一点。但现代激活并没有限制:ReLU 及其变体 Leaky ReLU 和 elu 没有上限。

但是它们都有一个共同的属性,那就是它们是单调递增的——随着输入的增加,它们要么增加,要么保持不变。所以我想只要你选择的函数共享这个属性,你就可以了(它收敛的速度是另一个问题)。您的 f(x) = x^2 示例没有此属性,例如 -0.5 和 0.5 具有相同的值,我认为这会导致问题。这与神经元如何工作的想法背道而驰,但当然我们在构建神经网络时不受生物学的限制。