请告诉我随机梯度下降(SGD)和反向传播之间的区别?
答案 0 :(得分:56)
反向传播是计算的有向图中计算梯度的有效方法,例如神经网络。这是不一种学习方法,而是一种很好的计算技巧,经常用于学习方法。这实际上是导数的链规则的简单实现,它简单地使您能够根据图形大小计算线性时间内所有所需的偏导数(而幼稚梯度计算将随深度呈指数级扩展) )。
SGD是众多优化方法之一,即一阶优化器,这意味着它基于对目标的梯度的分析。因此,就神经网络而言,它通常与backprop一起应用以进行有效更新。您还可以将SGD应用于以不同方式获得的梯度(从采样,数值逼近器等)。对称地你可以使用其他优化技术和backprop,所有可以使用渐变/雅可比的。
这种常见的误解来自于这样一个事实,即为了简单起见,人们有时会说使用backprop"进行训练,实际意味着什么(如果他们没有指定优化器)"使用backprop作为梯度计算技术"。此外,在旧教科书中,您可以找到类似" delta规则"和其他一些令人困惑的术语,描述完全相同的事情(因为神经网络社区很长一段时间与一般优化社区有点独立)。
因此,您有两层抽象:
答案 1 :(得分:11)
随机梯度下降(SGD)是一种使用的优化方法,例如,最小化损失功能。
在SGD中,您在每次迭代时使用 1示例来更新模型的权重,具体取决于此示例所导致的错误,而不是使用<的错误的平均值< em>所有示例(如“简单”梯度下降),在每次迭代时。为此,SGD需要计算“模型的梯度”。
反向传播是计算SGD使用的“渐变”的有效技术。
答案 2 :(得分:4)
反向传播只是计算模型的多变量导数的一种方法,而SGD是定位损失/成本函数最小值的方法。