Как стать автором
Обновить

Комментарии 11

Интересная статья, узнал кое-что новое. Пишите ещё :)

А в чем здесь смысл CLIP по сравнению с ResNet, например? Если вы не используете текстовой составляющей, так может более простой подход будет лучше?

Хороший вопрос! ResNet не пробовали, но пробовали EfficientNet, который предобучен на ImageNet. Субъективно он делил достаточно грубо и не справлялся с категориями мультиков и подобного контента из соцсетей. Если говорить про self-supervised модельки (SimCLR и подобные), то их мы не пробовали до CLIP, но есть похожие эксперименты сейчас. Мне кажется, что они без обучения на наших данных будут одинаковы или хуже CLIP, то есть их надо учить, чтобы бы было заметно лучше.CLIP сам по себе довольно прост, он уже был подготовлен к проду в момент решения задачи. Это одна из причин, почему взяли именно его.

Понял, интересно.

Кстати, я недавно тестировал несколько предобученных сеток, у меня тоже EfficientNet была визуально хуже ResNet (вылазили картинки явно непохожие один на другой).

Не пробовали что-нибудь полегче CLIP использовать, для рассчёта векторов изображений? Почему решили взять именно CLIP, если векторы текста не используете?

Там же можно взять просто Resnet вариант для энкодера...

В целом по конечным результатам для нас CLIP был чуть лучше других вариантов без обучения модели. И он уже был на проде.

НЛО прилетело и опубликовало эту надпись здесь
Не понял один момент: CLIP умеет делить только по категориям которые она знает?
А если например задача разделить кучу специфических изображений на визуально похожие группы, без необходимости текстовых описаний? Например визуально рассортировать кучу фото каких-то деталей которые сеть не знает?

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

По вашей задаче: мне кажется, тут дело в деталях. CLIP более-менее нормально может поделить и по визуальным признакам, но также картинка со словом «яблоко» может оказаться рядом с реальными фотографиями яблок, и с мультяшными, и даже с айфонами. То есть если идея по большей части на визуальных признаках, то можно взять что-то вроде SimCLR или новых аналогов. И если есть данные, то возможно обучить или дообучить под ваши фотографии. Думаю, так лучше получится связать похожие элементы визуально, а значит и сами фотографии.

Я бы сравнил оба варианта для ваших задач и попробовал разные алгоритмы понижения размерности и кластеризации.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий