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

标签 neural-network activation-function

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

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

最佳答案

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

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

关于neural-network - 为什么线性函数在多层神经网络中没用?最后一层如何成为第一层输入的线性函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54065233/

相关文章:

machine-learning - 在 LSTM 中使用 tanh 的直觉是什么?

tensorflow 错误: Using a `tf.Tensor` as a Python `bool` is not allowed

machine-learning - 通过神经网络从特征中分段进行分类

machine-learning - caffe 中旧的 prototxt 语法

python - CNN 给出随机答案,而全连接神经网络工作正常

python - 如何更改 Pytorch 预训练模块中的激活层?

python - pyTorch 中的矩阵乘法

machine-learning - keras(cnn + nn)在4个类别中仅预测一个类别

artificial-intelligence - 连续蛇游戏的神经网络帮助

machine-learning - 如何在tensorflow中使用tf.nn.crelu?