Обучение visual embeddings для сравнения объектов
Какие loss, backbone и augmentations уместны для embeddings-модели, сравнивающей изображения объектов?
Короткий ответ
Подойдет EfficientNet/MobileNet/ConvNeXt backbone с contrastive/triplet loss, аккуратным pair mining и аугментациями, не меняющими целевой признак.
Полный разбор
Backbone выбирают по latency/quality tradeoff. Triplet или contrastive loss требуют правильных positives и hard negatives. Аугментации должны сохранять label: crop, brightness, contrast и малые rotations допустимы, но flip может менять семантику. Для color-difference задач color jitter применяют синхронно к обеим картинкам пары или ограничивают.
Оценивать нужно не только embedding distance, но и downstream decision после агрегации по ракурсам.
Теория
В metric learning нужно явно решить, к чему embedding должен быть инвариантен, а к чему чувствителен.
Типичные ошибки
- Сделать модель инвариантной к признаку, который надо детектировать.
- Не майнить hard negatives.
- Оценивать только accuracy.
Как отвечать на собеседовании
- Проговори invariance vs sensitivity.
- Отдельно скажи про hard negative mining.