为什么线性函数在多层神经网络中没用?最后一层如何成为第一层输入的线性函数?
why linear function is useless in multiple layer neural network? How last layer become the linear function of the input of first layer?
我正在研究 NN 中的激活函数,但无法正确理解这部分 -
“每一层都由一个线性函数激活。该激活依次作为输入进入下一层,第二层计算该输入的加权和,然后根据另一个线性激活函数触发。
无论我们有多少层,如果都是线性的,那么最后一层的最终激活函数只不过是第一层输入的线性函数! "
它不是真的没用。
如果有多个线性激活层,则上一层的计算结果将作为输入发送到下一层。同样的事情发生在下一层。它会计算输入并根据另一个线性激活函数将其发送到下一层。
如果所有层都是线性的,那么实际有多少层并不重要。最后一层的最后一个激活函数也将是第一层输入的线性函数。
这是我在学习神经网络时遇到的最有趣的概念之一。以下是我的理解:
一层的输入 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
。这个方程只不过是我们在线性回归中遇到的一个线性方程。
因此,如果所有的输入层都有线性激活,输出将只是输入的线性组合,可以用一个简单的线性方程来写。
我正在研究 NN 中的激活函数,但无法正确理解这部分 - “每一层都由一个线性函数激活。该激活依次作为输入进入下一层,第二层计算该输入的加权和,然后根据另一个线性激活函数触发。
无论我们有多少层,如果都是线性的,那么最后一层的最终激活函数只不过是第一层输入的线性函数! "
它不是真的没用。
如果有多个线性激活层,则上一层的计算结果将作为输入发送到下一层。同样的事情发生在下一层。它会计算输入并根据另一个线性激活函数将其发送到下一层。
如果所有层都是线性的,那么实际有多少层并不重要。最后一层的最后一个激活函数也将是第一层输入的线性函数。
这是我在学习神经网络时遇到的最有趣的概念之一。以下是我的理解:
一层的输入 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
。这个方程只不过是我们在线性回归中遇到的一个线性方程。
因此,如果所有的输入层都有线性激活,输出将只是输入的线性组合,可以用一个简单的线性方程来写。