了解标签平滑如何防止过拟合并提高模型泛化能力。探索如何使用Ultralytics YOLO26实现此技术以获得更好的结果。
标签平滑是一种在机器学习中广泛使用的正则化技术,旨在提高模型泛化能力并防止过拟合。在训练神经网络时,目标通常是最小化预测与真实值之间的误差。然而,如果模型对其预测过于自信——将近100%的概率分配给单一类别——它往往会开始记忆训练数据中的特定噪声,而不是学习鲁棒的模式。这种现象被称为过拟合,会降低模型在新、未见过示例上的性能。标签平滑通过阻止模型以绝对确定性进行预测来解决这个问题,本质上是告诉网络总会存在一个小的误差范围。
为了理解标签平滑的工作原理,将其与标准“硬”目标进行对比会有所帮助。在传统 监督学习,分类标签通常通过以下方式表示: 独热编码。例如,在
区分猫和狗的任务中,一张“狗”的图像的目标向量将是
[0, 1]。为了完美匹配这一点,模型会输出其内部得分,称为
logits,趋于无穷,这可能导致
梯度不稳定,并使其无法适应。
标签平滑用“软”目标取代了这些僵硬的1和0。而不是目标概率为
1.0,正确的类别可能被分配 0.9,而剩余的概率质量
(0.1)均匀分布在不正确的类别上。这种细微的转变改变了 损失函数,例如
交叉熵,防止
激活函数 (通常
Softmax)饱和。结果是模型在特征空间中学习到更紧密的类别簇,并产生更好的
模型校准,这意味着预测的概率更准确地反映了正确性的真实可能性。
这种技术在数据模糊性固有或数据集容易出现标注错误的领域尤为关键。
现代深度学习框架简化了这项技术的应用。使用
ultralytics 包,您可以轻松地将标签平滑集成到您的训练管线中,用于
图像分类 或detect任务。这通常是为了从最先进的模型中榨取额外性能,例如
YOLO26.
以下示例演示了如何训练启用标签平滑的分类模型:
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Train with label_smoothing set to 0.1
# The target for the correct class becomes 1.0 - 0.5 * 0.1 = 0.95 (depending on implementation specifics)
model.train(data="mnist", epochs=5, label_smoothing=0.1)
区分标签平滑与其他正则化策略有助于理解其适用场景。

开启您的机器学习未来之旅