神经网络激活函数的目的是什么?

机器算法验证 机器学习 神经网络
2022-04-04 16:33:16

具有非线性激活函数的神经网络的目的是什么?

说非线性激活函数的主要目的是让神经网络的决策边界是非线性的是否正确?

我在其他 StackOverflow 答案中读到激活函数“引入了非线性”,但这相当模糊。

另一篇帖子指出,在深度学习特征的背景下给出了答案,但这又不是我要问的。

4个回答

说非线性激活函数的主要目的是让神经网络的决策边界是非线性的是否正确?

是的。

神经网络由多个层组成:前一层的输出是下一层的输入。如果你组合线性函数,这些函数都是线性的。所以几个线性函数叠加在一起的结果就是一个线性函数。显示这是简单的代数:

y^=W2(W1x+b1)+b2=W2W1Wx+W2b1+b2b=Wx+b

另一方面,使用非线性函数使得从输入到输出的映射是非线性的。

y^=f(W2f(W1x+b1)+b2)
对于一些激活函数f, 如tanh或 ReLU,这不能被重写为一个单一的线性操作x.

使损失最小化的任何模型L(y,y^)过参数W1,W2,b1,b2等效于一个模型,它使参数的相同损失最小化W,b. 在损失为平方误差损失的情况下,这与 OLS 模型完全相同。

如果您正在估计此模型并观察到 ​​OLS 解决方案与使用梯度下降优化的神经网络之间的差异,则可能是由于以下两个事实之一或两者:(1)梯度下降对于某些问题不是有效的优化器;(2)问题是病态的。有关详细信息,请参阅

这也不是分类问题所独有的。如果您有某种回归问题(例如可以采用任何实数的输出),则必须使用非线性激活函数来模拟输入和输出之间的非线性关系。

例如,ReLU 函数的输出为 0 或正数。如果单元为 0,则它实际上是“关闭”的,因此单元的输入不会从该函数向前传播。如果该单元打开,则输入数据将通过该单元反映在后续层中。ReLU 本身不是线性的,几个 ReLU 函数的几层组合也不是线性的。因此,从输入到分类结果的映射也不是线性的。

如果没有激活函数,许多层将等效于单层,因为每一层(没有激活函数)都可以用一个矩阵表示,并且许多矩阵的乘积仍然是一个矩阵:

M=M1M2Mn

激活函数在神经网络中的作用:

在转向激活函数之前,必须对神经网络中的神经有基本的了解。

那么人工神经元有什么作用呢?简单地说,它计算输入的加权加上一个偏差,然后决定是否应该激活

所以考虑一个神经元

Y=(weightinput)+bias

现在,价值Y可以是任何东西+. 神经元真的不知道值的界限。那么我们如何决定神经元是否应该激活

为此,我们决定添加激活函数。检查Y一个神经元产生的值,并决定外部连接是否应该将此神经元  视为激活

非线性激活函数2 层神经网络可以逼近任何函数。这就是为什么我们需要引入非线性,因为我们可以更好地近似。