为什么线性函数在多层神经网络中没有用?最后一层如何成为第一层输入的线性函数?

时间:2019-01-06 19:40:24

标签: neural-network activation-function

我正在研究NN中的激活函数,但无法正确理解这一部分- “每一层都由线性函数激活。该激活依次进入下一级作为输入,第二层计算该输入的加权和,然后又基于另一个线性激活函数触发。

无论我们有多少层,如果本质上都是线性的,那么最后一层的最终激活函数就是第一层输入的线性函数!

2 个答案:

答案 0 :(得分:0)

这并不是真的没有用。

如果存在多个线性激活的层,则上一层中的计算结果将作为输入发送到下一层。同样的事情发生在下一层。它会计算输入,并根据另一个线性激活函数将其发送到下一层。

如果所有层都是线性的,那么实际上有多少层都没有关系。最后一层的最后一个激活函数也将是第一层输入的线性函数。

如果您想很好地了解激活功能,可以找到一个herehere

答案 1 :(得分:0)

这是我在学习神经网络时遇到的最有趣的概念之一。这是我的理解方式:

一层的输入Z可以写为权重矩阵与前一层中节点输出的矢量的乘积。因此Z_l = W_l * A_l-1,其中Z_l是第L层的输入。现在A_l = F(Z_l),其中F是L层的激活函数。如果激活函数是线性的,则A_l将仅仅是因数K of Z_l。因此,我们可以将Z_l写成: Z_l = W_l*W_l-1*W_l-2*...*X,其中X是输入。因此,您看到输出Y最终将是几个矩阵乘以特定数据实例的输入向量的乘积。我们总能找到权重矩阵的乘积。因此,输出Y将为W _Transpose * X。这个方程只不过是我们在线性回归中遇到的线性方程。 因此,如果所有输入层都具有线性激活,则输出将仅是输入的线性组合,并且可以使用简单的线性方程式编写。