Focal Loss
Узнай, как фокусная функция потерь (Focal Loss) решает проблему дисбаланса классов в глубоком обучении. Научись реализовывать её с Ultralytics YOLO26, чтобы сосредоточиться на сложных примерах и повысить точность модели.
Focal Loss — это специализированная функция потерь, используемая преимущественно в глубоком обучении для решения проблемы серьезного дисбаланса классов. Во многих задачах компьютерного зрения, таких как обнаружение объектов, количество фоновых примеров (отрицательных образцов) значительно превышает количество объектов интереса (положительных образцов). Стандартные методы, такие как широко распространенная Cross-Entropy Loss, относятся ко всем ошибкам одинаково, что часто приводит к тому, что модель «захлебывается» от огромного объема простых для классификации фоновых данных. Focal Loss модифицирует стандартный расчет функции потерь, чтобы снизить вес этих простых примеров, заставляя алгоритм оптимизации сосредоточить свою обучающую способность на «сложных» примерах — редких и трудноклассифицируемых объектах, которые критически важны для производительности модели.
Link to this sectionМеханизм фокусировки#
Основная инновация Focal Loss заключается в способности динамически масштабировать штраф, назначаемый каждому образцу, в зависимости от уверенности модели. В типичном сценарии обучения с учителем детектор может оценивать тысячи потенциальных локаций на изображении. Поскольку большинство из них не содержат объектов, стандартная функция потерь накапливает множество мелких сигналов ошибки от этих простых отрицательных примеров, которые могут заглушить ценный сигнал от немногих положительных экземпляров.
Focal Loss вводит модулирующий коэффициент, который уменьшает вклад в потери по мере роста уверенности в правильном классе. Это означает, что если модель уже на 99% уверена, что фоновый фрагмент действительно является фоном, потери для этого фрагмента снижаются почти до нуля. Следовательно, веса модели обновляются преимущественно на основе неверно классифицированных образцов или тех, в которых модель не уверена. Такой целенаправленный подход необходим для обучения высокопроизводительных одностадийных детекторов объектов, таких как YOLO26, позволяя им достигать высокой точности без необходимости в сложных стадиях выборки.
Link to this sectionРеальные приложения#
Обработка несбалансированных обучающих данных критически важна для развертывания надежных ИИ-систем в средах, где безопасность и точность стоят на первом месте.
- ИИ в здравоохранении: В таких областях, как анализ медицинских изображений, выявление патологий часто сравнимо с поиском иголки в стоге сена. Например, при сканировании МРТ в поисках небольших поражений здоровая ткань может составлять более 99% пикселей. Стандартная модель может максимизировать простую точность, предсказывая «здоровую ткань» везде, пропуская критически важный диагноз. Focal Loss позволяет системе подавить сигнал от обильной здоровой ткани и расставить приоритеты на изучении тонких признаков аномалий, тем самым улучшая полноту для жизненно важных обнаружений.
- Автономные транспортные средства: Системы восприятия для беспилотных автомобилей должны обнаруживать уязвимых участников дорожного движения, таких как пешеходы или велосипедисты, на сложном фоне зданий, дорог и неба. Хотя фон легко изучается, небольшие или удаленные препятствия представляют собой значительную проблему. Используя Focal Loss, ИИ в автомобильной отрасли может гарантировать, что стек восприятия не проигнорирует эти труднообнаружимые объекты, поддерживая стандарты безопасности, даже если опасности занимают лишь крошечную часть поля зрения.
Link to this sectionРеализация с помощью Ultralytics#
Библиотека ultralytics включает оптимизированные реализации передовых функций потерь для поддержки современных моделей. Хотя платформа Ultralytics автоматически настраивает эти гиперпараметры для оптимального обучения, разработчики также могут получить доступ к этим компонентам напрямую для собственных исследований.
Следующий пример демонстрирует, как инициализировать Focal Loss с помощью пакета утилит 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}")Link to this sectionОтличие от связанных понятий#
Понимание того, какое место Focal Loss занимает в более широком контексте измерения ошибок, помогает выбрать правильную стратегию для конкретных задач компьютерного зрения.
- Focal Loss vs. Cross-Entropy Loss: Cross-Entropy is the foundational metric for classification that penalizes predictions based on logarithmic error. Focal Loss is strictly an extension of Cross-Entropy; if the focusing parameter is set to zero, it mathematically reverts to standard Cross-Entropy. The key distinction is Focal Loss's ability to automatically down-weight easy negatives, making it superior for imbalanced datasets like COCO.
- Focal Loss против IoU Loss: В то время как Focal Loss предназначена для классификации (определения того, что является объектом), IoU Loss используется для локализации (определения того, где находится объект). Современные детекторы используют составную функцию потерь, которая объединяет Focal Loss для вероятностей классов и метрики на основе IoU для регрессии ограничивающей рамки.
- Focal Loss против Dice Loss: Dice Loss — это еще один метод, используемый для обработки дисбаланса, преимущественно в задачах сегментации изображений. В то время как Focal Loss работает с отдельными пикселями или образцами на основе уверенности, Dice Loss глобально оптимизирует перекрытие между предсказанными и истинными областями. Часто можно увидеть, что оба метода используются вместе в комплексных рабочих процессах сегментации.






