Дисбаланс классов: когда дефектов мало

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

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


Что такое дисбаланс классов в дефектоскопии

Дисбаланс классов возникает, когда в обучающей выборке количество изображений с дефектами значительно уступает числу бездефектных образцов. На производстве доля брака обычно не превышает 1–5%, а в высокоточных отраслях — сотые доли процента. Модель, обученная на таких данных, склонна игнорировать редкие классы, так как минимизация общей ошибки достигается за счёт правильной классификации большинства примеров.

Числовые пороги здесь — типовые ориентиры для планирования, а не гарантированный результат. На конкретной линии их согласуют и фиксируют в техническом задании до старта работ.

Признаки дисбаланса:

  • Высокая точность (accuracy) при низкой полноте (recall) для дефектных классов.
  • Ложные срабатывания на бездефектных образцах при попытке повысить чувствительность.
  • Смещение порога классификации в сторону преобладающего класса.

Методы борьбы с дисбалансом: сравнение подходов

Метод Принцип работы Преимущества Ограничения Применимость на производстве
Взвешенные функции потерь Штраф за ошибку на дефектном классе увеличивается пропорционально дисбалансу. Простота реализации, не требует дополнительных данных. Не решает проблему малого объёма выборки. Подходит для начального этапа внедрения.
Аугментация данных Генерация новых изображений дефектов путём трансформаций (поворот, шум, масштабирование). Увеличивает разнообразие дефектных примеров. Риск создания нереалистичных артефактов. Эффективна при наличии базового набора дефектов.
Синтетические выборки (SMOTE, GAN) Генерация искусственных примеров дефектов на основе существующих. Работает даже с крайне малыми выборками. Требует настройки, возможны артефакты. Применима для редких типов дефектов.
Ансамбли моделей Объединение нескольких моделей, обученных на сбалансированных подвыборках. Повышает устойчивость к шуму в данных. Увеличивает вычислительные затраты. Подходит для критически важных процессов.
Перенос обучения Использование предобученных моделей с последующей дообучением на целевых данных. Снижает требования к объёму выборки. Требует схожей предметной области. Оптимально для типовых дефектов (трещины, сколы).

Этапы внедрения решений при малом числе дефектов

  1. Анализ данных

    • Оценка распределения классов в выборке.
    • Идентификация редких типов дефектов (например, микротрещины на керамике).
    • Проверка на дубликаты и артефакты в изображениях.
  2. Выбор метода балансировки

    • Для дефектов с чёткими границами — аугментация.
    • Для редких и сложных дефектов — синтетические выборки.
    • Для критически важных задач — ансамбли моделей.
  3. Настройка модели

    • Подбор взвешенной функции потерь (например, Focal Loss для крайнего дисбаланса).
    • Оптимизация порога классификации по метрике F1-score.
    • Кросс-валидация на сбалансированных подвыборках.
  4. Валидация на производственных данных

    • Тестирование на реальных изображениях, не участвовавших в обучении.
    • Оценка ложноположительных и ложноотрицательных срабатываний.
    • Корректировка порога с учётом бизнес-требований (например, минимизация пропуска дефектов).
  5. Мониторинг и дообучение

    • Сбор новых дефектных примеров в процессе эксплуатации.
    • Периодическое переобучение модели с учётом актуальных данных.
    • Анализ дрейфа распределения классов.

Применение на производстве: практические сценарии

Контроль литья под давлением

На участке литья алюминиевых деталей доля брака составляет менее 0,5%. Модель, обученная на исходных данных, пропускала микропоры из-за их редкости. Решение:

  • Аугментация изображений пор с добавлением шума и изменением освещения.
  • Использование Focal Loss для фокусировки на сложных примерах. Результат: полнота обнаружения пор выросла с 40% до 85% без увеличения ложных срабатываний.

Проверка печатных плат

На производстве плат дефекты пайки (холодные пайки, перемычки) встречаются в 1–2% случаев. Проблема: модель игнорировала редкие дефекты, так как их вклад в общую ошибку был минимален. Решение:

  • Генерация синтетических дефектов с помощью GAN на основе реальных примеров.
  • Обучение ансамбля из трёх моделей на сбалансированных подвыборках. Результат: точность классификации редких дефектов повысилась на 30%.

Контроль текстиля

На ткацком производстве дефекты нитей (обрывы, узлы) составляют менее 0,1% от общего объёма. Модель, обученная на исходных данных, показывала высокую точность, но пропускала все дефекты. Решение:

  • Перенос обучения с модели, предобученной на схожих текстильных дефектах.
  • Взвешивание классов в функции потерь с коэффициентом 1000:1. Результат: полнота обнаружения дефектов достигла 92%.

Типичные ошибки при работе с малым числом дефектов

  • Игнорирование дисбаланса Обучение модели без учёта распределения классов приводит к смещению в сторону преобладающего класса. Пример: модель для контроля сварных швов, обученная на 99% годных образцов, пропускала все трещины.

  • Чрезмерная аугментация Генерация слишком большого числа синтетических дефектов искажает реальное распределение. Пример: аугментация изображений царапин на металле с поворотами на 180° создавала нереалистичные артефакты.

  • Неправильный выбор метрики Использование accuracy вместо F1-score или precision-recall скрывает низкую полноту для редких классов. Пример: модель с accuracy 99% при полноте дефектов 10%.

  • Отсутствие валидации на реальных данных Тестирование только на синтетических или аугментированных данных не отражает реальную производительность. Пример: модель, показывающая 95% F1-score на аугментированных данных, давала 60% на реальных изображениях.

  • Фиксация порога классификации Использование стандартного порога 0,5 без учёта дисбаланса приводит к пропуску дефектов. Пример: модель для контроля упаковки, где порог 0,5 пропускал все вмятины.


FAQ

Почему модель с высокой точностью пропускает дефекты?

Точность (accuracy) не учитывает дисбаланс классов. Если дефектов 1%, модель может достичь 99% точности, просто классифицируя все образцы как годные. Для оценки используйте precision, recall и F1-score для дефектного класса.

Какой метод балансировки выбрать для крайне редких дефектов (менее 0,1%)?

Для таких случаев подходят:

  1. Синтетические выборки (GAN или SMOTE) для генерации искусственных дефектов.
  2. Перенос обучения с моделей, обученных на схожих дефектах.
  3. Ансамбли моделей, обученных на сбалансированных подвыборках.

Можно ли обойтись без аугментации, если дефектов мало?

Аугментация не обязательна, но без неё модель будет переобучаться на малом числе дефектных примеров. Альтернативы:

  • Взвешенные функции потерь (Focal Loss, Class-Balanced Loss).
  • Увеличение веса дефектного класса в функции потерь.
  • Использование предобученных моделей с дообучением.

Частые вопросы

Почему модель с высокой точностью пропускает дефекты?
Точность (accuracy) не учитывает дисбаланс классов. Если дефектов 1%, модель может достичь 99% точности, просто классифицируя все образцы как годные. Для оценки используйте precision, recall и F1-score для дефектного класса.
Какой метод балансировки выбрать для крайне редких дефектов (менее 0,1%)?
Для таких случаев подходят:
Можно ли обойтись без аугментации, если дефектов мало?
Аугментация не обязательна, но без неё модель будет переобучаться на малом числе дефектных примеров. Альтернативы: