Label Smoothing
Узнай, как сглаживание меток предотвращает переобучение и улучшает обобщающую способность модели. Изучи реализацию этого метода с Ultralytics YOLO26 для повышения качества результатов.
Сглаживание меток — это широко используемый в машинном обучении метод регуляризации, который улучшает обобщающую способность модели и предотвращает переобучение. При обучении нейронных сетей обычно стремятся минимизировать ошибку между предсказаниями и истинными значениями. Однако если модель становится чрезмерно уверенной в своих предсказаниях, присваивая одному классу вероятность, близкую к 100 %, она часто начинает запоминать конкретный шум в обучающих данных, вместо того чтобы изучать устойчивые закономерности. Это явление, известное как переобучение, ухудшает производительность на новых, ранее не встречавшихся примерах. Сглаживание меток решает эту проблему, не позволяя модели предсказывать с абсолютной уверенностью и фактически указывая сети, что всегда существует небольшая вероятность ошибки.
Механика мягких целевых значений#
Чтобы понять, как работает сглаживание меток, полезно сопоставить его со стандартными «жёсткими» целевыми значениями. В традиционном обучении с учителем метки классов обычно представлены с помощью унитарного кодирования. Например, в задаче различения кошек и собак целевой вектор изображения «собаки» имел бы вид [0, 1]. Чтобы идеально ему соответствовать, модель увеличивает свои внутренние оценки, известные как логиты, до бесконечности, что может привести к нестабильным градиентам и неспособности адаптироваться.
Сглаживание меток заменяет эти фиксированные единицы и нули «мягкими» целевыми значениями. Вместо целевой вероятности 1.0 правильному классу может быть назначено значение 0.9, а оставшаяся масса вероятности (0.1) равномерно распределяется между неправильными классами. Это небольшое изменение модифицирует целевую функцию функции потерь, например перекрёстной энтропии, не позволяя функции активации (обычно Softmax) достигать насыщения. В результате модель обучается формировать более компактные кластеры классов в пространстве признаков и обеспечивает лучшую калибровку модели, то есть предсказанные вероятности точнее отражают истинную вероятность правильного ответа.
Практические применения#
Этот метод особенно важен в областях, где неоднозначность данных неизбежна или наборы данных подвержены ошибкам разметки.
- Медицинская диагностика: В сфере ИИ в здравоохранении клинические данные редко бывают однозначными. Например, при анализе медицинских изображений снимок может демонстрировать признаки, явно указывающие на заболевание, но не подтверждающие его окончательно. Обучение на жёстких метках заставляет модель игнорировать эту неопределённость. Благодаря сглаживанию меток модель сохраняет определённую степень осторожности, что крайне важно для систем поддержки принятия решений, где чрезмерная уверенность может привести к ошибочному диагнозу.
- Классификация изображений в больших масштабах: Огромные общедоступные наборы данных, такие как ImageNet, часто содержат неправильно размеченные изображения или изображения с несколькими допустимыми объектами. Если модель пытается подогнать эти зашумлённые примеры с уверенностью 100 %, она усваивает неправильные зависимости. Сглаживание меток действует как буфер против шума в разметке, не позволяя нескольким ошибочным примерам данных существенно исказить итоговые веса модели.
Реализация сглаживания меток с помощью Ultralytics#
Современные фреймворки глубокого обучения упрощают применение этого метода. С помощью пакета 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)Сравнение со связанными концепциями#
Чтобы понять, когда применять сглаживание меток, полезно отличать его от других стратегий регуляризации.
- В сравнении с Dropout: Слой dropout случайным образом деактивирует нейроны во время обучения, заставляя сеть изучать избыточные представления. Хотя оба метода предотвращают переобучение, dropout динамически изменяет архитектуру сети, тогда как сглаживание меток изменяет целевой объект оптимизации — сами метки.
- В сравнении с дистилляцией знаний: Оба метода предполагают обучение на мягких целевых значениях. Однако при дистилляции знаний мягкие целевые значения поступают от модели-«учителя» и содержат усвоенную информацию, например: «это на 10 % похоже на кошку». В отличие от этого, сглаживание меток использует «неинформативные» мягкие целевые значения, полученные математически, например: «назначить всем остальным классам одинаковую вероятность 10 %».
- В сравнении с аугментацией данных: Стратегии аугментации данных изменяют входные данные (поворот, обрезка, изменение цвета), чтобы повысить их разнообразие. Сглаживание меток изменяет ожидаемые выходные значения. Комплексные рабочие процессы обучения на платформе Ultralytics часто объединяют аугментацию, dropout и сглаживание меток для достижения максимальной точности.
Снижая влияние проблемы исчезающих градиентов в последних слоях и помогая модели изучать более устойчивые признаки, сглаживание меток остаётся основным методом в современных архитектурах глубокого обучения.









