Focal Loss
Изучи, как Focal Loss решает проблему дисбаланса классов в глубоком обучении. Научись применять ее с Ultralytics YOLO26, чтобы сосредоточиться на сложных примерах и повысить точность модели.
Фокальная функция потерь — это специализированная целевая функция, которая преимущественно используется в глубоком обучении для решения проблемы сильного дисбаланса классов. Во многих задачах компьютерного зрения, таких как обнаружение объектов, количество примеров фона (отрицательных образцов) значительно превышает количество интересующих объектов (положительных образцов). Стандартные методы, например широко используемая кросс-энтропийная функция потерь, одинаково учитывают все ошибки, из-за чего модель часто оказывается перегружена огромным количеством легко классифицируемых данных о фоне. Фокальная функция потерь изменяет стандартный расчёт потерь, уменьшая вес таких простых примеров и заставляя алгоритм оптимизации сосредоточить вычислительные ресурсы обучения на «сложных» примерах — редких объектах, которые трудно классифицировать и которые критически важны для производительности модели.
Механизм фокусировки#
Ключевая инновация фокальной функции потерь заключается в её способности динамически масштабировать штраф, назначаемый каждому образцу, в зависимости от уверенности модели. В типичном сценарии обучения с учителем детектор может оценивать тысячи возможных положений на изображении. Поскольку большинство этих положений не содержат объектов, стандартная функция потерь накапливает множество небольших сигналов ошибки от простых отрицательных примеров, которые могут заглушить ценный сигнал от небольшого числа положительных образцов.
Фокальная функция потерь вводит модулирующий множитель, который уменьшает вклад примера в потери по мере роста уверенности в правильном классе. Это означает, что если модель уже на 99 % уверена, что участок фона действительно является фоном, потери для этого участка уменьшаются почти до нуля. В результате веса модели обновляются преимущественно на основе неправильно классифицированных образцов или образцов, в отношении которых модель не уверена. Такой целенаправленный подход необходим для обучения высокопроизводительных одностадийных детекторов объектов, таких как YOLO26, позволяя им достигать высокой точности без сложных этапов выборки.
Практические применения#
Обработка несбалансированных обучающих данных критически важна для развёртывания надёжных систем ИИ в средах, где безопасность и точность имеют первостепенное значение.
- ИИ в здравоохранении: В таких областях, как анализ медицинских изображений, выявление патологий часто сравнимо с поиском иголки в стоге сена. Например, при анализе МРТ для поиска небольших поражений здоровая ткань может занимать более 99 % пикселей. Стандартная модель может максимизировать простую точность, предсказывая «здоровую ткань» повсюду и пропуская критически важный диагноз. Фокальная функция потерь позволяет системе подавлять сигнал от обильной здоровой ткани и уделять приоритетное внимание изучению тонких признаков аномалий, тем самым повышая полноту при обнаружении угрожающих жизни патологий.
- Автономные транспортные средства: Системы восприятия для беспилотных автомобилей должны обнаруживать уязвимых участников дорожного движения, таких как пешеходы и велосипедисты, на сложном фоне зданий, дорог и неба. Фон легко обучается, тогда как небольшие или удалённые препятствия создают значительные трудности. Используя фокальную функцию потерь, решения ИИ в автомобильной отрасли могут гарантировать, что стек восприятия не будет игнорировать такие трудно обнаруживаемые объекты, сохраняя стандарты безопасности даже тогда, когда опасности занимают лишь крошечную часть поля зрения.
Реализация с Ultralytics#
Библиотека ultralytics включает оптимизированные реализации современных функций потерь для поддержки передовых моделей. Хотя платформа Ultralytics автоматически настраивает эти гиперпараметры для оптимального обучения, разработчики также могут напрямую обращаться к этим компонентам для пользовательских исследований.
В следующем примере показано, как инициализировать фокальную функцию потерь с помощью служебного пакета ultralytics и вычислить ошибку для набора предсказаний.
import torch
from ultralytics.utils.loss import FocalLoss
# Initialize Focal Loss.
# The 'gamma' parameter controls the focusing strength (higher = more focus on hard examples).
criterion = FocalLoss(gamma=1.5)
# Example: Model predictions (logits) and binary Ground Truth labels
# requires_grad=True simulates model outputs that need backpropagation
predictions = torch.tensor([[0.8], [-1.5], [0.1]], requires_grad=True)
targets = torch.tensor([[1.0], [0.0], [1.0]])
# Calculate the loss value
loss = criterion(predictions, targets)
print(f"Computed Focal Loss: {loss.item():.4f}")Отличия от связанных концепций#
Понимание места фокальной функции потерь в более широком спектре методов измерения ошибок помогает выбрать правильную стратегию для конкретных задач компьютерного зрения.
- Фокальная функция потерь и кросс-энтропийная функция потерь: Кросс-энтропия — это базовая метрика классификации, которая штрафует предсказания на основе логарифмической ошибки. Фокальная функция потерь является исключительно расширением кросс-энтропии: если параметр фокусировки установить равным нулю, она математически возвращается к стандартной кросс-энтропии. Ключевое отличие фокальной функции потерь — способность автоматически уменьшать вес простых отрицательных примеров, что делает её более эффективной для несбалансированных наборов данных, таких как COCO.
- Фокальная функция потерь и функция потерь IoU: Фокальная функция потерь предназначена для классификации (определения того, что представляет собой объект), а функция потерь IoU используется для локализации (определения того, где находится объект). Современные детекторы используют составную функцию потерь, которая объединяет фокальную функцию потерь для вероятностей классов и метрики на основе IoU для регрессии ограничивающих рамок.
- Фокальная функция потерь и функция потерь Dice: Функция потерь Dice — ещё один метод борьбы с дисбалансом, который преимущественно используется в задачах сегментации изображений. Фокальная функция потерь работает с отдельными пикселями или образцами на основе уверенности, тогда как функция потерь Dice глобально оптимизирует перекрытие между предсказанными областями и областями истинной разметки. В сложных процессах сегментации часто используются оба метода одновременно.









