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

最佳答案

反向传播是在有向计算图(例如神经网络)中计算梯度的有效方法。这是而不是一种学习方法,而是一个不错的计算技巧,通常在学习方法中使用。这实际上是导数的链规则的简单实现,它使您能够根据图的大小在线性时间内计算所有必需的偏导数(而朴素的梯度计算将随深度成指数比例缩放)。

SGD是许多优化方法之一,即一阶优化器,意思是它基于对目标的梯度的分析。因此,就神经网络而言,它通常与反向传播算法一起应用以进行有效的更新。您也可以将SGD应用于以其他方式(从采样,数值逼近器等)获得的梯度。对称地,您也可以将其他优化技术与backprop一起使用,所有可以使用渐变/ jacobian的技术。

这种常见的误解来自这样一个事实:为简单起见,人们有时会说“使用反向传播技术进行训练”,实际上意味着(如果未指定优化程序)“使用反向传播技术作为梯度计算技术使用SGD进行训练”。此外,在旧的教科书中,您会发现“delta规则”之类的术语以及其他一些令人困惑的术语,这些术语描述的是完全相同的事物(因为神经网络社区很长一段时间以来一直与通用优化社区无关)。

因此,您有两层抽象:

  • 梯度计算-backprop在其中播放
  • 优化级别-SGD,Adam,Rprop,BFGS等技术在其中发挥作用,这些技术(如果是一阶或更高)使用在
  • 之上计算的梯度

    关于machine-learning - SGD和反向传播有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37953585/

    10-12 17:10