Потеря фокуса была предложена для задачи обнаружения плотных объектов в начале этого года. Это позволяет обучать высокоточные детекторы плотных объектов с дисбалансом между классами переднего и заднего плана в масштабе 1: 1000. Из этого туториала Вы узнаете, как применить фокальные потери для обучения модели классификатора с несколькими классами, учитывая сильно несбалансированные наборы данных.

Фон

Давайте сначала рассмотрим другие способы лечения несбалансированных наборов данных и то, как фокусная потеря помогает решить эту проблему.

При мультиклассовой классификации сбалансированный набор данных имеет равномерно распределенные целевые метки. Если один класс имеет гораздо больше выборок, чем другой, его можно рассматривать как несбалансированный набор данных. Этот дисбаланс вызывает две проблемы:

  • Обучение неэффективно, поскольку большинство примеров представляют собой простые примеры, которые не дают полезного обучающего сигнала;
  • Простые примеры могут перегрузить обучение и привести к вырожденным моделям.

Распространенным решением является выполнение некоторой формы жесткого отрицательного анализа, который отбирает жесткие примеры во время обучения или более сложных схем выборки / повторного взвешивания.

Для конкретной классификации изображений методы увеличения данных также могут быть переменными для создания синтетических данных для недостаточно представленных классов.

Фокусные потери предназначены для устранения дисбаланса классов путем снижения веса вставок (простые примеры), так что их вклад в общие потери невелик, даже если их количество велико. Он фокусируется на обучении небольшому набору жестких примеров.

Примените фокальную потерю к задаче обнаружения мошенничества

Для демонстрации мы построим классификатор для набора данных обнаружения мошенничества на Kaggle с экстремальным дисбалансом классов с общим количеством 6354407 нормальных и 8213 случаев мошенничества, или 733: 1. С такими сильно несбалансированными наборами данных модель может просто выбрать легкий путь, угадав нормальный для всех входных данных, чтобы достичь точности 733 / (733 + 1) = 99,86%. Однако мы хотим, чтобы модель выявляла редкие случаи мошенничества.

Чтобы доказать, что фокусная потеря более эффективна, чем обычно применяемые методы, давайте создадим базовую модель, обученную с помощью class_weight, которая говорит модели «уделять больше внимания» выборкам из недостаточно представленного класса мошенничества.

Базовая модель достигла точности 99,87%, что немного лучше, чем выбор «легкого пути», предполагающего все нормальные угадывания.

Мы также строим матрицу неточностей для описания производительности классификатора с учетом зарезервированного набора тестов. Вы можете видеть, что всего 1140 + 480 = 1620 не классифицированных случаев.

Теперь применим потерю фокуса к той же модели. Вы можете увидеть, как определить потерю фокуса как настраиваемую функцию потерь для Keras ниже.

Есть два регулируемых параметра для потери фокусировки.

  • Параметр фокусировки γ (гамма) плавно регулирует скорость уменьшения веса простых примеров. Когда γ = 0, фокальные потери эквивалентны категориальной кросс-энтропии, а по мере увеличения γ эффект модулирующего фактора также увеличивается (γ = 2 лучше всего работает в экспериментах).
  • α (альфа): уравновешивает потерю фокуса, дает немного улучшенную точность по сравнению с несбалансированной формой.

Теперь сравним производительность с предыдущим классификатором.

Модель фокальных потерь:

  • Точность: 99,94%
  • Общий тестовый набор образцов с ошибочной классификацией: 766 + 23 = 789, что вдвое сокращает количество ошибок.

Заключение и дальнейшее чтение.

В этом кратком руководстве мы представили новый инструмент для вашего арсенала для обработки сильно несбалансированного набора данных - фокальные потери. На конкретном примере показано, как адаптировать фокальные потери к вашей модели классификации в Keras API.

Вы можете найти полный исходный код этого поста на моем GitHub.

Подробное описание потери фокусировки вы можете прочитать в статье https://arxiv.org/abs/1708.02002.



Поделиться в Twitter Поделиться в Facebook

Первоначально опубликовано на www.dlology.com.

Эта история опубликована в The Startup, крупнейшем предпринимательском издании Medium, за которым следят +399 714 человек.

Подпишитесь, чтобы получать наши главные новости здесь.