SGD 和反向传播有什么区别?

问题描述 投票:0回答:4

您能告诉我随机梯度下降(SGD)和反向传播之间的区别吗?

machine-learning artificial-intelligence gradient-descent backpropagation
4个回答
117
投票

反向传播是一种在有向计算图中(例如神经网络)中“计算梯度”的有效方法。这不是一种学习方法,而是一种很好的计算技巧,经常在学习方法中使用。这实际上是导数的链式法则的简单实现,它让您能够根据图的大小在线性时间内计算所有所需的偏导数(而朴素的梯度计算将随着深度呈指数级增长)。 SGD 是众多优化方法中的一种,即

一阶优化器

,意思是它基于对目标的梯度的分析。因此,就神经网络而言,它通常与反向传播一起应用以进行有效的更新。您还可以将 SGD 应用于以不同方式(通过采样、数值逼近器等)获得的梯度。对称地,您也可以将其他优化技术与反向传播一起使用,所有可以使用梯度/雅可比的技术。 这种常见的误解来自这样一个事实,即为了简单起见,人们有时会说“使用反向传播进行训练”,实际上意味着(如果他们没有指定优化器)“使用反向传播作为梯度计算技术通过 SGD 进行训练”。此外,在旧教科书中,您可以找到诸如“增量规则”和其他有点令人困惑的术语之类的内容,它们描述完全相同的事物(因为神经网络社区很长一段时间都有点独立于一般优化社区)。

因此你有两层抽象:

梯度计算 - 反向传播发挥作用的地方
  • 优化级别 - SGD、Adam、Rprop、BFGS 等技术发挥作用,这些技术(如果它们是一阶或更高阶)使用上面计算的梯度

22
投票
随机梯度下降

(SGD)是一种优化方法,例如最小化损失函数。 在 SGD 中,您在每次迭代时使用

1 个示例

来更新模型的权重,具体取决于此示例导致的误差,而不是使用 所有 示例的误差平均值(如“简单的“梯度下降),在每次迭代中。为此,SGD 需要计算“模型的梯度”。

反向传播

是一种计算 SGD 使用的“梯度”的有效技术。


11
投票


5
投票

TL;博士

  • 反向传播

    是一种寻找每个参数的误差导数的技巧W[i]

    
    

  • 随机梯度下降 (
  • SGD

    ) 更新 W[i]

    
    

© www.soinside.com 2019 - 2024. All rights reserved.