Label Smoothing
Сглаживание меток смешивает каждую целевую метку обучения в формате one-hot с равномерным распределением, уменьшая чрезмерную уверенность и улучшая калибровку классификаторов.
Сглаживание меток — это метод регуляризации моделей классификации с глубоким обучением, который заменяет каждую жёсткую метку one-hot в обучающих данных сглаженной версией: большая часть вероятности остаётся у правильного класса, а небольшая доля, заданная коэффициентом сглаживания ε, равномерно распределяется между всеми классами. Обучение на таких мягких целевых значениях не позволяет нейронной сети доводить логиты до экстремальных значений ради 100%-й уверенности. Это снижает переобучение и улучшает калибровку вероятностей. Szegedy и соавторы описали этот метод в статье об Inception-v3, используя ε = 0.1 для 1 000 классов ImageNet. Сейчас это стандартный параметр обучения моделей классификации изображений, машинного перевода и распознавания речи.
Как работает сглаживание меток#
При K классах и коэффициенте сглаживания ε каждая цель преобразуется по формуле (1 − ε) · y + ε / K, где y — метка one-hot. Для трёх классов и ε = 0.1 метка [1, 0, 0] превращается примерно в [0.933, 0.033, 0.033]. При жёсткой метке кросс-энтропия продолжает снижаться, когда правильный логит всё сильнее отрывается от остальных. Поэтому функция потерь поощряет всё больший разрыв между логитами, а выход softmax насыщается. При сглаженной метке потери достигают минимума при конечном разрыве ln((1 − ε + ε / K) / (ε / K)), который в этом примере составляет примерно 3.3, а затем снова растут. Поэтому градиенты возвращают чрезмерно уверенные предсказания к более умеренным значениям. Детекторы Ultralytics YOLO26 обучают предсказывать классы на родственных мягких целевых значениях: согласующий задачи сопоставитель масштабирует целевое значение класса для каждого положительного якоря в зависимости от соответствия предсказанных оценки и рамки объекту, поэтому большинство целевых значений меньше 1.
Функция потерь CrossEntropyLoss в PyTorch применяет формулу через аргумент label_smoothing:
import torch
from torch import nn
# The correct class is index 0 of three; hard and smoothed versions of the same loss
target = torch.tensor([0])
hard_loss = nn.CrossEntropyLoss()
smooth_loss = nn.CrossEntropyLoss(label_smoothing=0.1)
# Score the correct class increasingly far above the other two
for gap in [1.0, 3.0, 6.0, 12.0]:
logits = torch.tensor([[gap, 0.0, 0.0]])
hard = hard_loss(logits, target).item()
smooth = smooth_loss(logits, target).item()
print(f"Logit gap {gap:>4}: hard loss {hard:.3f}, smoothed loss {smooth:.3f}")Жёсткие потери падают с 0.551 до 0.000 по мере роста разрыва, а сглаженные достигают минимума 0.295 при разрыве около 3 и снова возрастают до 0.800 при разрыве 12. Теперь чрезмерная уверенность обходится дороже, чем умеренная.
Влияние на калибровку и изученные признаки#
Мюллер, Корнблит и Хинтон обнаружили, что сглаживание меток улучшает калибровку модели: предсказанные вероятности точнее отражают частоту правильных предсказаний. Они также показали, что этот метод собирает признаки предпоследнего слоя каждого класса в компактные, равномерно расположенные кластеры. Такое сжатие стирает информацию о том, на какие неправильные классы похоже изображение, а знания от моделей-учителей, обученных со сглаживанием меток, переносились ученикам значительно хуже через дистилляцию знаний.
Примеры применения в реальных условиях#
Сглаживание меток особенно полезно, когда метки зашумлены, неоднозначны или многочисленны.
- Классификация на масштабе ImageNet: ImageNet содержит изображения с неверными метками и фотографии с несколькими правильными объектами. В рецептах обучения свёрточных сетей и Vision Transformers, включая DeiT, используют ε = 0.1, чтобы модель никогда не соответствовала сомнительной метке с полной уверенностью.
- Машинный перевод: в исходном Transformer применялось сглаживание меток с ε = 0.1. Авторы сообщали, что оно повышало перплексию, поскольку модель становилась менее уверенной, но при этом улучшало точность и показатель BLEU.
- Анализ медицинских изображений: эксперты-разметчики часто расходятся во мнениях по неоднозначным снимкам. Сглаженные целевые значения не позволяют диагностическому классификатору считать каждую спорную метку достоверной, а лучше откалиброванные оценки делают пороги клинической сортировки надёжнее.
Сглаживание меток и родственные методы#
- Дистилляция знаний: дистилляция тоже использует мягкие целевые значения, полученные из предсказаний модели-учителя, поэтому они отражают сходство классов. Целевые значения при сглаживании меток дают каждому неправильному классу одинаковую небольшую долю.
- Масштабирование температуры: масштабирование температуры калибрует обученную модель постфактум, деля её логиты на одну обучаемую константу, не меняя веса.
- Слой Dropout: Dropout регуляризует сеть, обнуляя случайные активации во время обучения, а сглаживание меток регуляризует её через целевые значения обучения.
- CutMix: CutMix и mixup — методы аугментации данных, которые смешивают два обучающих изображения и их метки в одинаковой пропорции, поэтому мягкое целевое значение формируется из самого входа. CutMix взвешивает каждую метку по площади вставленного фрагмента, а mixup взвешивает и пиксели, и метки одним коэффициентом, выбранным из бета-распределения.










