Focal Loss
Focal Loss — это функция потерь, используемая в задачах машинного обучения, в первую очередь в контексте детекции объектов и классификации с сильным дисбалансом классов. Она была предложена в 2017 году исследователями из Facebook (продукт Meta, признанной экстремистской и запрещённой в РФ) AI Research (организация Meta Platforms Inc. признана экстремистской и запрещена в РФ) в статье «Focal Loss for Dense Object Detection». Основная цель Focal Loss — снизить влияние легко классифицируемых примеров (например, фоновых областей на изображении) на процесс обучения, сосредоточив внимание модели на сложных и редких примерах.
История и предпосылки создания
До появления Focal Loss основным подходом к детекции объектов были двухэтапные методы, такие как Faster R-CNN. На первом этапе они генерировали ограниченное количество кандидатов (регионов интереса), а на втором — классифицировали их. Это позволяло частично решить проблему дисбаланса классов, так как количество фоновых регионов было ограничено.
Одноэтапные детекторы (например, YOLO, SSD) работали быстрее, но уступали в точности из-за того, что обрабатывали все возможные положения объектов (якорные боксы), подавляющее большинство которых оказывалось фоном. Классическая функция потерь — кросс-энтропия — в таких условиях приводила к тому, что модель обучалась в основном на фоновых примерах, игнорируя редкие объекты.
Focal Loss была разработана для решения этой проблемы. Она модифицирует стандартную кросс-энтропию таким образом, чтобы уменьшить вклад в общую ошибку от хорошо предсказанных (лёгких) примеров и увеличить вклад от плохо предсказанных (сложных) примеров. Это позволило одноэтапным детекторам, в частности RetinaNet, достичь точности, сопоставимой с двухэтапными методами, сохранив при этом высокую скорость работы.
Математическая формулировка
Focal Loss является модификацией стандартной кросс-энтропийной функции потерь (CE). Для задачи бинарной классификации CE определяется как:
CE(p, y) = -y log(p) - (1 - y) log(1 - p)
где y — истинная метка класса (0 или 1), а p — предсказанная моделью вероятность принадлежности к классу 1.
Для удобства вводится переменная p_t:
p_t = p, если y = 1 p_t = 1 - p, в противном случае
Тогда CE(p, y) = CE(p_t) = -log(p_t)
Focal Loss добавляет к этой формуле модулирующий множитель (1 - p_t)^γ, где γ (гамма) — гиперпараметр, называемый фокусирующим параметром.
FL(p_t) = - (1 - p_t)^γ * log(p_t)
Анализ формулы
- Когда пример хорошо классифицирован (например,
p_tблизко к 1, то есть модель уверена в правильном ответе), множитель(1 - p_t)^γстановится очень маленьким (близким к 0). Это резко уменьшает вклад такого примера в общую функцию потерь. - Когда пример плохо классифицирован (например,
p_tблизко к 0, модель ошибается), множитель(1 - p_t)^γблизок к 1, и вклад примера остаётся почти неизменным по сравнению с CE. - Параметр γ контролирует скорость «затухания» вклада лёгких примеров. При
γ = 0Focal Loss превращается в обычную кросс-энтропию. На практике часто используются значенияγ = 2илиγ = 3. Чем больше γ, тем сильнее модель фокусируется на сложных примерах.
Сбалансированная Focal Loss
Для дополнительного учёта дисбаланса классов вводится весовой коэффициент α (альфа), который обычно используется в виде α_t для каждого класса. Это приводит к сбалансированной Focal Loss:
FL(p_t) = - α_t (1 - p_t)^γ log(p_t)
Коэффициент α может быть задан как обратная частота класса или подобран как гиперпараметр. Он помогает сбалансировать важность редких и частых классов, в то время как модулирующий множитель (1 - p_t)^γ фокусируется на сложности примера.
Применение
Основное и наиболее известное применение Focal Loss — задача детекции объектов, где она является ключевым компонентом архитектуры RetinaNet. Однако её использование не ограничивается этой областью.
Детекция объектов
В одноэтапных детекторах, таких как RetinaNet, Focal Loss используется для обучения классификатора, который обрабатывает тысячи якорных боксов. Большинство этих боксов не содержит объектов (фон). Focal Loss позволяет модели эффективно обучаться, не давая фоновым боксам доминировать в градиенте.
Классификация изображений с дисбалансом классов
Focal Loss может применяться в задачах, где распределение классов сильно неравномерно. Например, при обнаружении редких заболеваний на медицинских снимках, когда количество здоровых изображений значительно превышает количество изображений с патологией.
Сегментация изображений
В задачах семантической сегментации, особенно при сегментации мелких или редких объектов (например, клеток на микроскопических изображениях), Focal Loss помогает модели лучше выделять границы и области редких классов.
Обучение с подкреплением
В некоторых алгоритмах обучения с подкреплением Focal Loss может использоваться для фокусировки на сложных или редких состояниях среды, которые приводят к низкой награде.
Преимущества и недостатки
Преимущества
- Эффективная борьба с дисбалансом классов: Главное достоинство Focal Loss — способность обучать модели на сильно несбалансированных данных без необходимости в сложных методах семплирования.
- Улучшение точности одноэтапных детекторов: Позволило одноэтапным методам достичь точности двухэтапных, что привело к их широкому распространению.
- Простота реализации: Focal Loss легко реализуется как модификация стандартной кросс-энтропии и не требует значительных вычислительных затрат.
Недостатки
- Чувствительность к гиперпараметрам: Эффективность Focal Loss сильно зависит от выбора параметров
γиα. Их подбор требует проведения экспериментов и может быть нетривиальной задачей. - Не универсальность: Focal Loss не всегда превосходит другие методы борьбы с дисбалансом, такие как взвешивание классов или oversampling. В некоторых задачах, особенно с небольшим количеством данных, она может быть менее эффективна.
- Возможность переобучения на шум: Чрезмерная фокусировка на сложных примерах может привести к тому, что модель начнёт запоминать шумовые или аномальные выбросы в данных, ухудшая обобщающую способность.
Влияние и развитие
Focal Loss оказала значительное влияние на область компьютерного зрения и машинного обучения в целом. Она стала стандартным инструментом для задач с дисбалансом классов и вдохновила на создание множества вариаций и улучшений, таких как Gradient Harmonized Mechanism (GHM) и PolyLoss. Идея модуляции вклада примеров в зависимости от сложности предсказания оказалась плодотворной и применяется в других областях, включая обработку естественного языка и рекомендательные системы.
Источники
- Lin, T. Y., Goyal, P., Girshick, R., He, K., & Dollár, P. (2017). Focal Loss for Dense Object Detection. Proceedings of the IEEE International Conference on Computer Vision (ICCV).
- He, K., Gkioxari, G., Dollár, P., & Girshick, R. (2017). Mask R-CNN. Proceedings of the IEEE International Conference on Computer Vision (ICCV).
- Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →