线性回归:超参数

超参数是控制训练不同方面的变量。以下是三种常见的超参数:

相比之下,形参是模型本身的一部分,例如权重和偏差。换句话说,超参数是您控制的值;参数是模型在训练期间计算的值。

学习速率

学习速率是一个您设置的浮点数,用于影响模型收敛的速度。如果学习率过低,模型可能需要很长时间才能收敛。不过,如果学习速率过高,模型将永远无法收敛,而是在可最大限度减少损失的权重和偏差附近跳动。目标是选择一个既不太高也不太低的学习速率,以便模型快速收敛。

学习速率决定了在梯度下降过程的每一步中,对权重和偏差所做的更改幅度。模型将梯度乘以学习速率,以确定下一次迭代的模型参数(权重和偏差值)。在梯度下降的第三步中,沿负斜率方向移动的“少量”是指学习速率。

旧模型参数与新模型参数之间的差异与损失函数的斜率成正比。例如,如果斜率较大,模型会采取较大的步长。如果较小,则采取较小的步长。例如,如果梯度的大小为 2.5,学习率为 0.01,则模型会将形参更改 0.025。

理想的学习率有助于模型在合理的迭代次数内收敛。在图 20 中,损失曲线显示模型在前 20 次迭代中显著改进,然后开始收敛:

图 20. 在趋于平缓之前呈现陡峭斜率的损失曲线。

图 20. 损失图,显示了以可快速收敛的学习速率训练的模型。

相比之下,如果学习速率过小,则可能需要过多的迭代次数才能实现收敛。在图 21 中,损失曲线显示模型在每次迭代后仅略有改进:

图 21. 显示近 45 度斜率的损失曲线。

图 21. 损失图,显示了以较小学习速率训练的模型。

过大的学习速率永远不会收敛,因为每次迭代都会导致损失在较大范围内波动或持续增加。在图 22 中,损失曲线显示模型在每次迭代后损失先减少后增加;在图 23 中,损失在后续迭代中增加:

图 22. 显示锯齿状上下起伏的损失曲线。

图 22. 损失图,显示了以过大的学习速率训练的模型,其中损失曲线随着迭代次数的增加而剧烈波动,时而上升时而下降。

图 23. 显示损失在后期迭代中增加的损失曲线

图 23. 损失图,显示了以过大的学习速率训练的模型,其中损失曲线在后来的迭代中急剧增加。

练习:检查您的理解情况

理想的学习率是多少?
理想的学习速率取决于具体问题。
每个模型和数据集都有自己的理想学习率。
0.01
1.0

批次大小

批次大小是一种超参数,指的是模型在更新权重和偏差之前处理的示例数量。您可能会认为,模型应先计算数据集中每个样本的损失,然后再更新权重和偏差。不过,如果数据集包含数十万甚至数百万个示例,则使用完整批次并不实际。

以下两种常见技术可在不查看数据集中的每个示例的情况下,获得正确的平均梯度,然后更新权重和偏差:随机梯度下降小批量随机梯度下降

  • 随机梯度下降法 (SGD):随机梯度下降法在每次迭代中仅使用一个示例(批次大小为 1)。在迭代次数足够多的情况下,SGD 可以正常运行,但噪声非常大。“噪声”是指训练期间导致损失在迭代过程中增加而非减少的变化。“随机”一词表示每个批次中的一个示例是随机选择的。

    请注意,在下图中,当模型使用 SGD 更新权重和偏差时,损失会略有波动,这可能会导致损失图出现噪声:

    图 24. 陡峭的损失曲线,但趋于平缓,且有许多细微的波动。

    图 24. 使用随机梯度下降法 (SGD) 训练的模型,显示损失曲线中的噪声。

    请注意,使用随机梯度下降可能会在整个损失曲线中产生噪声,而不仅仅是在接近收敛时。

  • 小批次随机梯度下降法(小批次 SGD):小批次随机梯度下降法是全批次和 SGD 之间的折衷方案。对于 $ N $ 个数据点,批次大小可以是大于 1 且小于 $ N $ 的任意数字。模型会随机选择每个批次中包含的示例,对它们的梯度求平均值,然后在每次迭代中更新一次权重和偏差。

    确定每个批次的样本数量取决于数据集和可用的计算资源。一般来说,小批量大小的行为类似于 SGD,而大批量大小的行为类似于全批量梯度下降。

    图 25. 陡峭的损失曲线,开始趋于平缓,在收敛附近波动幅度很小。

    图 25. 使用小批次随机梯度下降法训练的模型。

在训练模型时,您可能会认为噪声是一种应消除的不良特征。不过,一定程度的噪音可能是一件好事。在后续模块中,您将了解噪声如何帮助模型更好地泛化,以及如何在神经网络中找到最佳权重和偏差。

周期数

在训练期间,一个周期是指模型已处理训练集中的每个示例一次。例如,如果训练集包含 1,000 个示例,而小批次大小为 100 个示例,则模型需要 10 次迭代才能完成一个周期。

训练通常需要多个周期。也就是说,系统需要多次处理训练集中的每个示例。

周期数是一种超参数,您需要在模型开始训练之前设置该参数。在许多情况下,您需要通过实验来确定模型收敛所需的周期数。一般来说,训练周期数越多,模型效果越好,但训练时间也越长。

图 26. 完整批次是整个数据集,小批次是数据集的子集,而一个周期是指完整地遍历十个小批次。

图 26. 完整批次与小批次。

下表介绍了批次大小和周期与模型更新其参数的次数之间的关系。

批次类型 权重和偏差更新何时发生
完整批次 模型查看完数据集中的所有示例后。例如,如果某个数据集包含 1,000 个样本,并且模型训练了 20 个周期,则模型会更新权重和偏差 20 次,每个周期更新一次。
随机梯度下降法 模型查看数据集中的单个示例后。 例如,如果某个数据集包含 1,000 个样本,并且训练了 20 个周期,则模型会更新权重和偏差 20,000 次。
小批次随机梯度下降法 模型查看完每个批次中的示例后。例如,如果某个数据集包含 1,000 个样本,批次大小为 100,并且模型训练了 20 个周期,则模型会更新权重和偏差 200 次。

练习:检查您的理解情况

1. 使用小批次随机梯度下降法时,最佳批次大小是多少?
视情况而定
理想的批次大小取决于数据集和可用的计算资源
每个批次 10 个示例
每个批次 100 个示例
2. 以下哪项陈述是正确的?
较大的批次不适合包含许多异常值的数据。
这个说法不正确。通过对更多梯度求平均值,较大的批次大小有助于减少数据中存在离群值带来的负面影响。
将学习速率提高一倍可能会减慢训练速度。
这个说法是正确的。将学习速率加倍可能会导致学习速率过大,从而导致权重“四处波动”,增加收敛所需的时间。 与往常一样,最佳超参数取决于您的数据集和可用的计算资源。