Что вы увидели на картинке первым? Спрашиваем трансформер. blip.. blip. визуальные энкодеры.. blip. визуальные энкодеры. генерация описаний.. blip. визуальные энкодеры. генерация описаний. компьютерное зрение.. blip. визуальные энкодеры. генерация описаний. компьютерное зрение. нейросети.. blip. визуальные энкодеры. генерация описаний. компьютерное зрение. нейросети. нейросеть.. blip. визуальные энкодеры. генерация описаний. компьютерное зрение. нейросети. нейросеть. трансформер.. blip. визуальные энкодеры. генерация описаний. компьютерное зрение. нейросети. нейросеть. трансформер. трансформеры.

Наверняка многие видели картинки-тесты, которые предлагают по тому, что первым бросилось в глаза определить характер, какое полушарие доминирует или что-то еще. Обычно на этих изображениях находится несколько объектов или один объект меняется в зависимости от “угла” обзора. А что будет, если попросить трансформер описать эти картинки? Что “увидит” он и на что он “обратит внимание”?


Для мини-исследования была выбрана модель BLIP (Bootstrapping Language-Image Pre-training) от Salesforce (см. гитхаб с полным кодом). Как трансформер, эта нейросеть разрезает картинку на фрагменты (патчи) и преобразует их в токены:

рис.1

рис.1

Для анализа картинки (контекст, связь объекта с фоном) применяется идея “Self-Attention”, которая на выходе дает некоторую матрицу скрытых признаков. Далее за работу берется трансформер-энкодер, поочередно предсказывающий слова. С помощью другой концепции “Cross-Attention” модель “смотрит” на картинку посредством матрицы признаков, получает первое слово и повторно заглядывает в матрицу. Эта последовательность заканчивается на моменте выдачи токена конца предложения. Более подробно можно посмотреть здесь https://arxiv.org/pdf/2201.12086.

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

Губы, деревья или корни?

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

пример 1

пример 1

И тут модель вполне оправдано выдала: “a tree with roots on it” (дерево с корнями). Перейдем к следующему примеру.

Крокодил или лодка?

Тоже весьма несложный пример, но тут у модели возникли расхождения с тем, что видит человек. Смотря на картинку ниже, она неожиданно выдает: “a blue and black silhouette of a man ’ s head” (сине-черный силуэт мужской головы).

пример 2

пример 2

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

Примечательно также и то, что при попытке целенаправленно обратить внимание модели, например, на кораблик, она его проигнорировала. И на выходе получилось что-то совсем забавное: “the cover of the book, the book of the dead” (обложка книги, «Книга мёртвых»). Вероятно, объясняется это тем, что в обучающем датасете было много обложек старых книг, а пятна на картинке трактовались как потрескавшийся рельеф на синем фоне.

пример 2 попытка 2

пример 2 попытка 2

Два профиля или ладья?

Очередной классический пример ниже.

пример 3

пример 3

Модель угадала здесь: “a silhouette of a man with a hat and a beard” (силуэт мужчины в шляпе и с бородой). В отличие от человека, который видит картинку целиком, трансформер выбрал и сфокусировался на левой стороне. Темно-фиолетовый цвет ладьи говорит о том, что модель распознала это как фон, а не самостоятельный объект.

Интересно, что при попытке приблизить картинку и, тем самым, “указать” модели на ладью, получился не менее занимательный результат: “a silhouette of a man with his arms up” (силуэт мужчины с поднятыми руками). И, если присмотреться, можно, действительно, увидеть что-то похожее на человека с руками вверх.

пример 3 попытка 2

пример 3 попытка 2

Поднимается или спускается?

Здесь речь пойдет об изображение кота в свое время вызвавшее обсуждение в интернете. Давайте спросим нейросеть, может она рассудит? Ее ответ: “a cat walking down some stairs” (кот, спускающийся по лестнице).

пример 4

пример 4

Вот, все логично: кот есть, стены с двух сторон распознаны да и лестница тоже. Но что будет, если обрезать часть картинки?

пример 4 попытка 2

пример 4 попытка 2

Снова: кот, стена справа и лестница. Но ответ теперь другой: “a cat walking up some stairs” (кот, поднимающийся по лестнице). Возникает резонный вопрос, может дело в стенах и освещении?

пример 4 попытка 3

пример 4 попытка 3

Ответ: может быть, теперь описание: “a cat walking down a flight of stairs” (кот, спускающийся по лестнице). Так в чем же дело? Строя свои догадки, модель опирается именно на стены. В обучающей выборке темные стены слева могли относится к подвалам, а светлые – к квартирам и домам. Поэтому наличие темной стены и светлого фона сзади трактуется как спуск (например, в тот же подвал, откуда свет поступает сверху), а светлой стены и светлого фона – как подъем, так как там, куда идет кот, могут быть окна.

Розовые или зелёные?

Другой когда-то популярный вопрос был о цвете кроссовок. Как на него ответила наша модель?

пример 5

пример 5

Нейросеть увидела: “a person holding a pair of pink and green shoes” (человек, держащий пару розово-зелёных ботинок) и не смогла присоединиться ни к какому из лагерей.

Выводы

В качестве заключения можно сказать, что нейросеть практически прошла наш тест картинками, а также, увидев что-то новое. Данный анализ показывает как, просто обрезав картинку, заставить нейросеть сомневаться и противоречить самой себе, выдавая разные ответы в описании картинок. Теоретически, путем увеличения объема обучающей выборки можно добиться улучшения результата (обрезать/ поворачивать одну и ту же картинку и спрашивать что на ней, штрафуя модель за неверные ответы), это сделает модель более предсказуемой. Но, по моему мнению, за этим кроется также и то, что в погоне за деталями модель не сможет приобрести абстрактное мышление (как в примере 1) и тут вопрос в том, к чему мы стремимся. Должны ли мы требовать от ИИ человеческого восприятия, или достаточно того, что он просто даёт ответ?

Автор: Ir1na

Источник