- 动量(Momentum):在物理学中,动量是物体质量与速度的乘积,是一个矢量。在机器学习和深度学习的优化算法中,动量是一种常用的技术,模拟了物体运动时的惯性。以随机梯度下降(SGD)算法为例,加入动量后,每次更新参数时不仅考虑当前的梯度,还会考虑之前累积的“速度”(动量项)。这有助于在更新参数时加速收敛,尤其是在处理一些局部极小值的情况时,能使算法有一定的“冲力”越过一些较浅的局部极小值。动量项通常由一个衰减因子(如0.9)来控制,使得之前的速度不会无限累积。
- Warmup:warmup 是一种训练技巧,通常用于在训练的初期阶段对学习率等参数进行调整。在训练开始时,模型的参数是随机初始化的,如果直接使用较大的学习率,可能会导致模型在训练初期不稳定,参数更新过于剧烈。通过 warmup,可以在训练的前几个 epoch(或一定步数内)逐渐增加学习率,让模型先在一个较小的学习率下进行“预热”,使参数有一个较为平稳的初始调整,然后再逐渐增加到设定的学习率进行正常训练。这样可以帮助模型更快地收敛,并提高最终的性能。
- 梯度下降(Gradient Descent):这是一种优化算法,用于寻找函数的最小值(或最大值)。在机器学习中,我们通常需要最小化损失函数(如均方误差、交叉熵损失等)来训练模型。梯度下降的基本思想是:在当前参数位置计算损失函数的梯度(导数),然后沿着梯度的反方向(对于最小化问题)更新参数,使得损失函数的值逐渐减小。每次更新的步长由学习率决定。常见的梯度下降算法有批量梯度下降(BGD)、随机梯度下降(SGD)和小批量梯度下降(Mini-Batch Gradient Descent)等。
- 学习率(Learning Rate):学习率是梯度下降等优化算法中的一个重要超参数。它控制着每次参数更新的步长大小。如果学习率设置得太小,模型的训练速度会很慢,需要很多次迭代才能收敛;如果学习率设置得太大,可能会导致参数更新过于剧烈,使模型无法收敛,甚至出现损失函数值不断增大的情况(发散)。因此,选择合适的学习率对于模型的训练效果至关重要。通常可以通过一些方法(如学习率调整策略,如学习率衰减等)来优化学习率的设置。
注意:本文归作者所有,未经作者允许,不得转载