PyTorch 中的梯度下降17 Mar 2025 | 阅读 2 分钟 我们最大的问题是,如何训练一个模型来确定将使我们的误差函数最小化的权重参数。让我们从梯度下降如何帮助我们训练模型开始。 首先,线性模型将从一个随机的初始参数开始,回想一下我们使用线性函数初始化模型时。它确实给了我们一个随机的初始参数。 现在让我们忽略偏差值,并基于与这个初始参数 A 相关的错误。我们的目标是朝着能够给我们更小错误的方向移动。 如果我们取误差函数的梯度,即当前值处切线的斜率的导数,这个导数将带我们朝着最高错误的方向前进。 Loss=(3+3A)2 f' (A)=18(A+1) 所以,我们将其移到梯度的负方向,这将带我们朝着最低错误的方向前进。我们取当前权重,并减去该函数在该点的导数。 这将带我们朝着最小错误的方向前进。 ![]() 总结一下,首先,我们必须计算损失函数的导数,然后将其代入线的当前权重值。无论权重是什么,它们都会给你梯度值。然后从当前的权重 A0 中减去这个梯度值,得到新的更新后的权重 A1。新的权重应该比之前的权重产生更小的错误。我们将反复这样做,直到我们为我们的线性模型获得拟合数据的最佳参数。 我们正在用梯度下降,但是,为了确保获得最佳结果。应该以最小的步长下降。因此,我们将梯度乘以一个称为学习率的最小值。学习率的值是经验性的。尽管一个好的标准起始值往往是 1/10 或 1/100,但学习率需要足够小,因为当线本身调整时,你永远不想在一个方向上剧烈移动,因为这可能导致不希望发散的行为。 在这里,我们将学习根据经验结果调整学习率,我们稍后将编写一个梯度下降算法,但请按照我们的梯度下降示例进行操作,让我们参考 excel 上的一个演示,以可视化梯度下降的效果。 ![]() 我们稍后将在代码中实现它。 下一篇主题均方误差 |
我们请求您订阅我们的新闻通讯以获取最新更新。