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

why linear function is useless in multiple layer neural network? How last layer become the linear function of the input of first layer?

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

无论我们有多少层,如果都是线性的,那么最后一层的最终激活函数只不过是第一层输入的线性函数! "

它不是真的没用。

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

如果所有层都是线性的,那么实际有多少层并不重要。最后一层的最后一个激活函数也将是第一层输入的线性函数。

如果您想深入了解激活函数,可以找到 here and here

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

一层的输入 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。这个方程只不过是我们在线性回归中遇到的一个线性方程。 因此,如果所有的输入层都有线性激活,输出将只是输入的线性组合,可以用一个简单的线性方程来写。