13

反向传播的维基百科页面有这样的说法:

用于计算梯度的反向传播算法已被多次重新发现,它是一种更通用的技术的特例,称为反向累积模式中的自动微分。

有人可以对此进行阐述,通俗地说吗?被区分的功能是什么?什么是“特例”?是使用的伴随值本身还是最终梯度?

更新:自从写这篇文章以来,我发现这在深度学习一书的第 6.5.9 节中有介绍。请参阅https://www.deeplearningbook.org/。我还发现这篇论文在以下主题上提供了丰富的信息:Haber 和 Ruthotto 的“深度神经网络的稳定架构”。

4

2 回答 2

6

在神经网络训练中,我们希望找到一组w使误差最小的 权重E(N(w,x)-y)。(x是训练输入,y是训练输出,N是网络,E是一些误差函数)。

进行这样的优化的标准方法是梯度下降,它使用网络的导数,N'比如说。我们可以将网络表示为矩阵乘积并使用矩阵演算手动完成,但我们也可以编写(自动)算法。

反向传播是一种特殊的算法,具有一定的优势。例如,它可以很容易地仅对选定的权重样本进行导数,这是随机梯度下降所需要的。它还指定如何保​​存前馈(实际网络值),以便轻松访问它们以计算所需的导数。

您应该能够在教科书和网上找到特定算法的确切代码。

于 2014-05-21T09:56:46.777 回答
2

“被区分的功能是什么?什么是‘特例’?”

反向传播和反向模式 AD 之间最重要的区别是反向模式 AD 从 R^n -> R^m 计算向量值函数的向量-雅可比积,而反向传播从 R 计算标量值函数的梯度^n -> R. 因此,反向传播是标量函数反向模式 AD 的一种特殊情况。

当我们训练神经网络时,我们总是有一个标量值的损失函数,所以我们总是使用反向传播。这是被区分的功能。由于反向传播是反向模式 AD 的子集,因此我们在训练神经网络时也使用反向模式 AD。

“是使用的伴随值本身还是最终梯度?”

变量的伴随是损失函数相对于该变量的梯度。当我们进行神经网络训练时,我们使用参数(如权重、偏差等)相对于损失的梯度来更新参数。所以我们确实使用了伴随词,但只使用了参数的伴随词(相当于参数的梯度)。

于 2020-01-28T17:33:39.093 回答