反向传播和梯度下降是不是使用相同的逻辑?

Posted

技术标签:

【中文标题】反向传播和梯度下降是不是使用相同的逻辑?【英文标题】:Does Back Propagation and Gradient Descent use the same logic?反向传播和梯度下降是否使用相同的逻辑? 【发布时间】:2021-05-18 01:15:14 【问题描述】:

CNN 中使用反向传播来更新随机分配的权重、偏差和过滤器。对于值的更新,我们使用从头到尾的链式法则找到梯度并使用公式,

New Value = old value - (learning Rate * gradient)

梯度下降是一个优化器,用于优化损失函数。这里也计算梯度,公式为

New value = old value - (learning Rate * gradient)

如果我在上面给出的解释中有错误,请纠正我。

我的疑问是:

反向传播和梯度下降是否使用相同的逻辑? 反向传播和梯度下降之间有什么关系吗?

【问题讨论】:

简短回答。 反向传播:找到成本的导数dC= dC/dW + dC/dB梯度下降:使用导数更新 W, B. 【参考方案1】:

所以你会感到困惑,反向传播只是颠倒你移动的顺序的名称,通常在前向传播中你向前移动通过每一层,但在反向传播中你向后移动。

您可以将传播视为神经网络的引擎,在前向传播中它向前移动,在反向传播中它向后移动。引擎不做任何计算,它只用来定义你在哪一层,下一层是哪一层。

在反向传播中,您有成本函数。您可以使用的一种成本函数类型称为Gradient Descent 算法。另一种可能是Stochastic Gradient Descent 算法。这些算法用于找到调整权重的最佳值。

我希望这能解决您的问题,如果您需要更多信息,请发表评论。如果您想了解更多关于Gradient DescentStochastic Gradient Descent 的详细信息,我建议您查看我之前的一些答案here 和here。

再见,祝你有美好的一天!

【讨论】:

是梯度下降、成本函数还是优化器? @pjrockzzz 从我能找到的资源中,它是一种成本函数。还包括stochastic gradient descent @JamesBarnett Gradient Descent 是一个优化器,SGD 是一个随机近似值,其中我们的批量大小为 1。“成本”或“损失”函数略有不同,因为它是 但绝对与优化器不同。事实上,优化器最小化的是函数,通常是一些测量,如均方误差。因此,在您链接的这些典型梯度下降图像中,成本是 y 轴,参数是我们搜索成本函数的局部最小值的 x 轴。【参考方案2】:

反向传播是神经网络的梯度下降。 梯度下降是更通用的一阶迭代优化算法来逼近可微函数。用它来训练多层神经网络(其中每一层代表一个可微函数),我们可以为这种类型的模型推导出一个更专业的算法(处理我们有隐藏单元的事实)。生成的算法称为反向传播。

在每次训练迭代显示多少数据的特定上下文中,可以在 SGD 和 GD 之间创建一个second distinction(请参阅 James Barnett 的回答),尽管我认为术语“小批量学习”是如果要将其与随机梯度下降进行对比,则更精确。

【讨论】:

以上是关于反向传播和梯度下降是不是使用相同的逻辑?的主要内容,如果未能解决你的问题,请参考以下文章

梯度下降法与反向传播

反向传播与梯度下降详解

Torch反向传播时出错或者梯度为NaN的问题排查

反向传播梯度求解推导

深度学习梯度下降和反向传播原理

详解神经网络中反向传播和梯度下降