反向传播的直觉(梯度下降)

数据挖掘 机器学习 梯度下降 反向传播
2022-03-05 12:54:19

我正在阅读反向传播,这是涉及梯度下降的众多过程之一,但我无法完全掌握其中一个方程式的直觉。

http://neuralnetworksanddeeplearning.com/chap2.html#MathJax-Element-185-Frame

误差方程δl就下一层的误差而言,δl+1: 尤其

δl=((wl+1)Tδl+1)σ(zl),

在哪里(wl+1)T是权重矩阵的转置wl+1为了(l+1)th层。

...

当我们应用转置权重矩阵时,(wl+1)T,我们可以直观地认为这是通过网络将误差向后移动,为我们提供了某种测量输出端的误差的方法lth层。

我知道每个术语是如何以代数方式推导出来的(从文本的后面),但我无法掌握直观的部分。特别是,我不明白如何应用权重矩阵的转置就像将错误向后移动。

数学很简单。方程是层中误差的简化l以层中的误差表示l+1. 但是,整个直觉并不是那么自然而然的。

有人可以解释一下,在什么意义上应用转置就像“向后移动错误”?

2个回答

在什么意义上应用转置就像“向后移动错误”?

它不是。或者至少你不应该对这个类比思考太多。

您实际上在做的是计算误差/成本项相对于网络中的激活和权重的梯度或偏导数。这是通过对网络中相互依赖的项重复应用链式规则来完成的,直到您在网络中控制所有变量的梯度(通常您对更改神经元之间的权重感兴趣,但您可以如果它们在你的控制之下,就改变其他的东西——这正是深度梦想的工作原理,而不是将权重视为变量,而是将输入图像视为一个变量)。

这个类比很有用,因为它解释了跨层重复计算的进展和目标。这也是正确的,因为一层中的梯度值严重依赖于“更高”层中的值。这可以导致对管理深度网络中梯度值问题的直觉。

采用矩阵转置和“向后移动错误”之间没有关系。实际上,您正在对由 NN 模型中的权重连接的项求和,而这恰好与给定的矩阵乘法相同。矩阵乘法是编写关系的一种简洁方式(在查看优化时很有用),但不是理解神经网络的基础。

在我看来,当没有仔细研究过该理论的开发人员试图实现它时,“将错误向后移动”这句话是导致问题的常见原因。我已经看到很多尝试实现反向传播,即货物崇拜错误术语和乘法而不理解。在这里,故意选择输出层中成本函数和激活函数的某些组合以具有非常简单的导数并没有帮助,因此看起来神经网络正在复制误差值,几乎神奇地乘以激活值等。实际上,推导出这些简单的术语需要相当称职的基本微积分知识。

我喜欢将权重矩阵的预乘法描绘成将对应于特定神经元的连接权重相乘的简写(比如说jth) 神经元lth层中的每个神经元(l1)th层。

类似地,与权重矩阵的转置进行预乘就像将对应于特定神经元的连接的权重相乘的简写(比如说kth) 在里面(l1)th层中的每个神经元lth层。

这种直觉源于权重矩阵的定义,如wjkl被定义为wjkl 表示连接的权重kth神经元在(l1)th层到jth神经元在lth层。 (来源:neuralnetworksanddeeplearning.comw^l_{jk}

正如您可以将与矩阵的预乘法解释为保持第一个下标不变并循环第二个下标一样,预乘与权重矩阵以获得前一层权重的总和并与权重预乘的直觉矩阵来获得下一层权重的总和似乎很自然。

矩阵乘法

最后,我想引用 Jon von Neumann 的话

“年轻人,你对数学一无所知。你只是习惯了它们。”