Классификатор на 2 000 картинках
Вопрос
Нужно сделать классификатор дефектов на производстве, размечено 2 000 изображений. Как будете действовать?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Transfer learning с предобученной модели вместо обучения с нуля
Сначала обучить голову на замороженном бэкбоне, затем разморозить с малым lr
Аугментации, соответствующие реальным вариациям съёмки
Валидация с учётом партий и камер, метрики под цену ошибки
Дисбаланс, ошибки разметки, сбор трудных примеров
Что могут спросить следом
- Что делать, если дефекты очень мелкие на большом изображении?
- Как понять, что модели не хватает данных, а не архитектуры?
Разбор
С нуля учить нельзя, данных мало, поэтому беру предобученный бэкбон, например ResNet или ConvNeXt, или ViT с хорошим предобучением. Сначала заменяю голову и обучаю только её на замороженных признаках, затем размораживаю всю сеть или верхние блоки с маленьким lr и weight decay. Аугментации подбираю под реальность съёмки: сдвиги, повороты, яркость, блики, но не те, что меняют суть дефекта. Валидацию делю по партиям или камерам, чтобы снимки одной детали не попали и туда и туда. Дефекты обычно редки, поэтому смотрю recall при допустимой доле ложных браковок, использую веса классов. Если дефекты мелкие, работаю с высоким разрешением или нарезаю изображения на тайлы. Анализирую ошибки: часть будет ошибками разметки, а трудные примеры стоит доразметить. Кривая обучения по размеру выборки покажет, помогут ли новые данные.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.