我尝试运行一个没有任何激活功能的简单神经网络,并且网络不会收敛。我正在使用MSE成本函数进行MNIST分类。
但是,如果我将整流线性激活函数应用于隐藏层(输出= max(0,x),其中x是加权和),那么它会收敛。
为什么从前一层消除负面输出有助于学习?
答案 0 :(得分:5)
基本感知器仅仅是其输入信号的加权线性组合。一层感知器仍然是线性回归器/分类器。如果我们使函数逼近器(神经网络)非线性化,网络将只能解决非线性问题。这可以通过在层的输出信号上应用非线性激活函数来完成,例如ReLU函数。
当输出信号只是max(0, y)
时,ReLU是一个非线性激活函数?答案在于抵消负值(用0替换它们)。由于您无法用直线描述ReLU功能曲线,因此ReLU不是线性激活功能。
答案 1 :(得分:1)
原因很简单。你需要为你的神经网络添加某种非线性,否则你最终会得到一个简单的线性方程。
假设您有一个输入向量x和两个由权重矩阵W1和W2表示的隐藏层。没有任何激活功能,您的神经网络将输出y = x W1 W2,其等于y = x W,使得W = W1 W2。这只不过是矩阵乘法。
如果你使用激活函数,如ReLU或Sigmoid等,你会得到一个很好的非线性函数,它能够适应一些有趣的数据。