了解标签平滑如何防止过拟合并提升模型泛化能力。探索如何Ultralytics 实现该技术以获得更佳效果。
标签平滑是一种在机器学习中广泛使用的正则化技术,旨在提升模型泛化能力并防止过拟合。训练神经网络时,通常目标是将预测值与真实值之间的误差最小化。 然而,若模型对预测过于自信——将近100%的概率分配给单一类别——它往往开始记忆训练数据中的特定噪声,而非学习稳健模式。 这种被称为过拟合的现象会导致模型在未见过的全新样本上表现退化。标签平滑通过抑制模型绝对确定的预测行为来解决此问题,本质上是向神经网络传递"始终存在微小误差空间"的信号。
要理解标签平滑的运作机制,将其与标准的"硬"目标进行对比会有所帮助。在传统方法中 监督学习分类标签通常通过 one-hot编码例如,
在区分猫和狗的任务中,一张"狗"的图像会具有目标向量
[0, 1]为完美匹配这一需求,模型会推送其内部评分,即所谓的
logits趋向无限,这可能导致
不稳定的梯度和无法适应的情况。
标签平滑将这些刚性的1和0替换为"软"目标。目标概率不再是
1.0正确的类可能会被分配 0.9而剩余的概率质量
(0.1该分布在错误类别中均匀分布。这种微妙的偏移改变了目标函数的 损失函数例如
交叉熵,防止
激活函数 (通常
Softmax防止模型饱和。其结果是模型在特征空间中学习到更紧凑的类聚类,从而产生更优的
模型校准这意味着预测概率更准确地反映了正确答案的真实可能性。
该技术在数据存在固有模糊性或数据集易出现标注错误的领域尤为关键。
现代深度学习框架简化了该技术的应用。使用
ultralytics 包,您可轻松将标签平滑集成到训练管道中,用于
图像分类 或检测任务。这通常是为了从尖端模型中榨取额外性能,例如
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)
区分标签平滑与其他正则化策略有助于理解何时使用它。