梯度下降法是一种数学方法,可迭代查找可生成损失最低的模型的权重和偏差。梯度下降法会重复以下过程若干次(用户指定的迭代次数),以找到最佳权重和偏差。
模型开始训练时,权重和偏差为接近零的随机值,然后重复以下步骤:
-
使用当前权重和偏差计算损失。
-
确定用于减少损失的权重和偏差的移动方向。
-
将权重和偏差值向可减少损失的方向稍微移动。
-
返回第 1 步并重复此过程,直到模型无法进一步降低损失。
下图概述了梯度下降法执行的迭代步骤,以便找到可生成损失最低的模型的权重和偏差。
- 图 1-
梯度下降是一种迭代过程,用于查找可生成损失最低的模型的权重和偏差。
» 梯度下降背后的数学原理
具体而言,我们可以使用一个包含 7 个示例的小型数据集,演示梯度下降步骤,这些示例分别对应汽车的重量(以磅为单位)和每加仑行驶里程数:
- 图 2 -
-
模型会先将权重和偏差设为零,然后开始训练:
Weight:0
Bias:0
y=0+0(x1)
-
使用当前的模型参数计算 MSE 损失:
Loss=[(18−0)2+(15−0)2+(18−0)2+(16−0)2+(15−0)2+(14−0)2+(24−0)2] / 7
Loss=303.71
-
计算每个权重和偏差处损失函数的切线的斜率:
Weight slope: −119.7
Bias slope: −34.3
-
向负斜率方向移动一小段距离,即可获得下一个权重和偏差。目前,我们将“小额”定义为 0.01:
New weight = old weight − (small amount∗weight slope)
New bias = old bias − (small amount∗bias slope)
New weight = 0 − (0.01)∗(−119.7)
New bias = 0 − (0.01)∗(−34.3)
New weight = 1.2
New bias = 0.34
使用新的权重和偏差计算损失,然后重复上述步骤。完成六次迭代后,我们会得到以下权重、偏差和损失:
- 图 3-
您可以看到,随着每次更新权重和偏差,损失会越来越小。在此示例中,我们在 6 次迭代后停止了。实际上,模型会一直训练,直到收敛。当模型收敛时,进行更多迭代不会进一步降低损失,因为梯度下降法已找到几乎能将损失降至最低的权重和偏差。
如果模型在收敛后继续训练,随着模型不断更新参数以使其接近最低值,损失开始小幅波动。这可能会导致难以验证模型是否已实际收敛。为了确认模型已收敛,您需要继续训练,直到损失稳定为止。
» 模型收敛和损失曲线
在训练模型时,您通常会查看损失曲线,以确定模型是否已收敛。损失曲线显示了损失在模型训练过程中的变化情况。典型的损失曲线如下所示。损失在 y 轴上,迭代次数在 x 轴上:
- 图 4 -
损失曲线,显示模型在第 1,000 次迭代左右收敛。
您可以看到,在前几次迭代中,损失会大幅下降,然后逐渐下降,在第 1,000 次迭代左右趋于平稳。经过 1,000 次迭代后,我们可以基本确定模型已收敛。
在以下图中,我们在训练过程中的三个时间点绘制了模型:开始、中间和结束。在训练过程中直观呈现模型的快照状态,有助于加深对更新权重和偏差、降低损失和模型收敛之间的联系的理解。
在图中,我们使用特定迭代中派生的权重和偏差来表示模型。在包含数据点和模型快照的图表中,从模型到数据点的蓝色损失线表示损失量。线条越长,损失就越大。
在下图中,我们可以看到,在第二次迭代后,由于损失较大,模型无法很好地进行预测。
- 图 5 -
训练流程开始时的损失曲线和模型快照。
在第 400 次迭代左右,我们可以看到,梯度下降法找到了可生成更优模型的权重和偏差。
- 图 6 -
损失曲线和训练大约中途的模型快照。
在第 1,000 次迭代左右,我们可以看到模型已收敛,生成了损失可能最低的模型。
- 图 7 -
训练过程接近结束时的损失曲线和模型快照。
» 收敛和凸函数
线性模型的损失函数始终会产生凸函数面。因此,当线性回归模型收敛时,我们知道该模型已找到可产生最小损失的权重和偏差。
如果我们为具有一个特征的模型绘制损失函数表面图,可以看到其凸形。以下是前面示例中使用的每加仑行驶里程数据集的损失函数表面。权重在 x 轴上,偏差在 y 轴上,损失在 z轴上:
- 图 8 -
显示凸形的损失曲面。
在此示例中,权重为 -5.44 且偏差为 35.94 时,损失最小,为 5.54:
- 图 9 -
损失函数表面,显示可产生最小损失的权重和偏差值。
线性模型在找到最小损失后会收敛。因此,进行更多迭代只会导致梯度下降在最小值周围以极小的量移动权重和偏差值。如果我们绘制梯度下降过程中的权重和偏置点图表,这些点看起来就像从山上滚落的球,最终会在没有下坡的点停止。
- 图 10 -
损失图表,显示梯度下降点在图表上的最低点停止。
请注意,黑色损失点形成了损失曲线的确切形状:先急剧下降,然后逐渐向下倾斜,直到达到损失表面上的最低点。
请务必注意,模型几乎从不找到每个权重和偏差的确切最小值,而是找到非常接近该值的值。另请务必注意,权重和偏差的最小值并不对应于零损失,而只是能为该参数产生最低损失的值。
使用产生最小损失的权重和偏差值(在本例中,权重为 -5.44,偏差为 35.94),我们可以绘制模型图,以了解该模型与数据的拟合程度:
- 图 11 -
使用产生最小损失的权重和偏差值绘制的模型图。
这是此数据集的最佳模型,因为没有其他权重和偏差值可以产生损失更低的模型。