Нужно ли делать сэмплинг приближенный к реальности или с равным балансом классов при обучении YOLO на детекцию редких объектов
Что проверяют
Понимаете ли вы, что дисбаланс в детекции устроен не так, как в классификации: единица выборки это картинка, а на ней сразу объекты нескольких классов и фон. И отделяете ли вы обучающее распределение от валидационного, это главный водораздел в ответе.
Как отвечать
Разделите два вопроса. Валидация и тест всегда в реальном распределении. Иначе метрика врёт, а порог уверенности, подобранный на сбалансированном наборе, на проде даст поток ложных срабатываний, потому что фона там на порядки больше.
Обучающую выборку двигать в сторону редкого класса можно и обычно нужно: без этого он попадает в слишком малую долю батчей и градиенты по нему тонут. Инструменты по возрастанию трудозатрат: дублирование картинок, где редкий класс присутствует, либо сэмплер с весами; аугментации, которые размножают сам объект, вставляя его в разные сцены, плюс мозаичные склейки; взвешивание вклада классов в функцию потерь; наконец, целевой досбор и разметка данных с редким классом, что почти всегда даёт больший прирост, чем любые ухищрения с сэмплингом.
Правильный вывод звучит как компромисс: полный баланс один к одному обычно вреден, модель начинает видеть редкий объект повсюду и точность падает. Берут умеренный перевес и подбирают его как гиперпараметр по метрике на реальном валидационном наборе, глядя на полноту и точность редкого класса при рабочем пороге, а не только на усреднённую метрику.
Где спотыкаются
Балансируют не только обучение, но и валидацию. Метрики выглядят прекрасно, на проде модель разваливается, и причину ищут в архитектуре.
Второе: считают, что дублирование картинки поднимает только редкий класс. Вместе с ней размножаются все объекты на этом кадре и его фон, поэтому реальные пропорции сдвигаются не туда, куда планировалось.
Третье: агрессивно повторяют десяток уникальных примеров. Модель заучивает конкретные сцены и освещение, а на новых условиях редкий класс не находит вовсе.