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

时间:2016-06-21 20:02:40

标签: machine-learning artificial-intelligence difference backpropagation gradient-descent

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

3 个答案:

答案 0 :(得分:56)

反向传播是计算的有向图中计算梯度的有效方法,例如神经网络。这是一种学习方法,而是一种很好的计算技巧,经常用于学习方法。这实际上是导数的链规则的简单实现,它简单地使您能够根据图形大小计算线性时间内所有所需的偏导数(而幼稚梯度计算将随深度呈指数级扩展) )。

SGD是众多优化方法之一,即一阶优化器,这意味着它基于对目标的梯度的分析。因此,就神经网络而言,它通常与backprop一起应用以进行有效更新。您还可以将SGD应用于以不同方式获得的梯度(从采样,数值逼近器等)。对称地你可以使用其他优化技术和backprop,所有可以使用渐变/雅可比的。

这种常见的误解来自于这样一个事实,即为了简单起见,人们有时会说使用backprop"进行训练,实际意味着什么(如果他们没有指定优化器)"使用backprop作为梯度计算技术"。此外,在旧教科书中,您可以找到类似" delta规则"和其他一些令人困惑的术语,描述完全相同的事情(因为神经网络社区很长一段时间与一般优化社区有点独立)。

因此,您有两层抽象:

  • 渐变计算 - backprop发挥作用
  • 优化级别 - SGD,Adam,Rprop,BFGS等技术发挥作用,(如果它们是一阶或更高阶段)使用上面计算的梯度

答案 1 :(得分:11)

随机梯度下降(SGD)是一种使用的优化方法,例如,最小化损失功能。

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

反向传播是计算SGD使用的“渐变”的有效技术。

答案 2 :(得分:4)

反向传播只是计算模型的多变量导数的一种方法,而SGD是定位损失/成本函数最小值的方法。