Узнайте, как Focal Loss решает проблему дисбаланса классов в глубоком обучении. Научитесь применять его с Ultralytics , чтобы сосредоточиться на сложных примерах и повысить точность модели.
Focal Loss — это специализированная целевая функция, которая в основном используется в глубоком обучении для решения проблемы серьезного дисбаланса классов. Во многих задачах компьютерного зрения, таких как обнаружение объектов, количество примеров фона (отрицательных выборок) значительно превышает количество интересующих объектов (положительных выборок). Стандартные методы, такие как широко используемый потеря кросс-энтропии, одинаково относятся ко всем ошибкам, что часто приводит к перегрузке модели огромным объемомclassify данных. Фокальная потеря модифицирует стандартный расчет потерь, чтобы снизить вес этих простых примеров, заставляя алгоритм оптимизации сосредоточить свои возможности обучения на «сложных» примерах — редких иclassify , которые имеют решающее значение для производительности модели.
Основная инновация Focal Loss заключается в его способности динамически масштабировать штраф, назначаемый каждому образцу, в зависимости от уверенности модели. В типичном сценарии контролируемого обучения детектор может оценивать тысячи потенциальных мест на изображении. Поскольку большинство из этих мест не содержат объектов, стандартная функция потерь накапливает множество небольших сигналов ошибок от этих простых отрицательных результатов, которые могут заглушить ценный сигнал от нескольких положительных экземпляров.
Focal Loss вводит модулирующий фактор, который уменьшает вклад потери по мере увеличения уверенности в правильности класса . Это означает, что если модель уже на 99% уверена, что фрагмент фона действительно является фоном, потеря для этого фрагмента уменьшается почти до нуля. Следовательно, веса модели обновляются в первую очередь на основе неправильно классифицированных образцов или тех, в которых модель не уверена. Этот целенаправленный подход необходим для обучения высокопроизводительных одноэтапных детекторов объектов, таких как YOLO26, позволяя им достигать высокой точности без необходимости сложных этапов выборки.
Обработка несбалансированных обучающих данных имеет решающее значение для развертывания надежных систем искусственного интеллекта в средах, где безопасность и точность имеют первостепенное значение.
Сайт 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}")
Понимание того, где Focal Loss вписывается в более широкий контекст измерения ошибок, помогает выбрать правильную стратегию для конкретных задач компьютерного зрения.