PyTorch 中的损失函数

17 Mar 2025 | 阅读 2 分钟

在上一篇中,我们看到这条线并没有正确拟合我们的数据。为了使其更好地拟合,我们将使用梯度下降来更新其参数,但在此之前,您需要了解损失函数。

因此,我们的目标是找到一条可以很好地拟合这些数据的线的参数。 在之前的示例中,线性函数最初会将随机权重和偏差参数分配给我们的线,并使用以下参数。

Loss Function

这条线并不能很好地代表我们的数据。我们需要一些优化算法,该算法将根据总误差调整这些参数,直到我们最终得到一条包含合适参数的线。

现在,我们如何确定这些参数?

为了更好地理解,我们将讨论限制为单个数据点。

误差由从实际 y 值中减去该点的预测值来确定。

Loss Function

预测值越接近实际值,误差就越小。 像您已经知道的那样,预测可以写成

Ax1+b

但是,我们正在处理一个点。 因此,可以通过它绘制无限条线。 为此,我们删除了偏差。 暂时删除此额外的自由度,并通过将偏差值固定为零来将其取消。

(y-y^)2
(y-(Ax+b))2
(y-(Ax+0))2
(y-Ax)2

Loss Function

现在,无论我们处理哪条线,最优线都将具有权重,该权重会将此误差尽可能地减小到零。 现在,我们正在处理点 (-3, 3),对于此损失,该函数将转换为

Loss=(3-A(-3))2
Loss=(3+3A)2

现在,我们创建一个表并尝试不同的 A 值,看看哪一个给出的误差最小

Loss Function

Loss Function

Loss Function

Loss Function

Loss Function

为了可视化目的,我在图表中绘制了不同权重的不同误差值。

Loss Function

在这种情况下,绝对最小值对应于负一的权重,现在,我们知道了如何评估与我们的线性方程相对应的误差。

我们如何训练一个模型来知道这个权重在这里? 为此,我们使用 梯度下降


下一篇梯度下降