Как структура DINO достигла новой SOTA для самоконтролируемого обучения!

Трансформеры и самоконтролируемое обучение. Насколько хорошо они идут рука об руку?

Некоторые люди любят архитектуру Transformer и приветствуют ее в области компьютерного зрения. Другие не хотят мириться с тем, что на детской площадке появился новый ребенок.
Давайте посмотрим, что происходит, когда вы основываетесь на идее BYOL [2] самообработки в обучении с самоконтролем и подключаете Vision Transformer! Именно об этом задались авторы Facebook AI Research, работая над первой статьей DINO [1]. Есть ли какие-нибудь интересные новые свойства при объединении обоих? Что ж, одним из крутых эффектов использования трансформеров является возможность посмотреть на карты внимания модели!

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

Я думаю, это очень круто!!!

При прогнозировании окончательного представления первого изображения в первом ряду модель больше всего внимания уделяет птице, при прогнозировании первого изображения во втором ряду — лодке и так далее!
Этот пример с лодкой может быть особенно сложным при обучении под наблюдением, так как эта модель более склонна к изучению быстрых путей, например, обращая внимание на воду, потому что вода и металлический предмет означают лодку.

Но прежде чем мы продолжим с крутыми находками, давайте посмотрим, как они всего этого добились!

Структура DINO

Это обучающий конвейер, который также является частью семейства Self-distilling.

У нас снова есть исходное исходное изображение, мы применяем два разных набора случайных дополнений и в итоге получаем два разных вида, x1 и x2. У нас снова есть наша онлайн-сеть, которая теперь называется студенческой сетью, и наша цель, теперь называемая сетью учителей, которая снова представляет собой экспоненциальное скользящее среднее студенческой сети.
С этого момента все начинает выглядеть другой. У нас нет дополнительного проекционного слоя НИ прогнозирующей головки! Если головы предсказания нет, как предотвратить (или, скорее, уменьшить вероятность) коллапса представления? Ну, во-первых, у нас есть вот это центрирование, которое можно рассматривать как простое добавление смещения c к предсказаниям учителя.

Это смещение использует статистику партии для вычисления среднего значения партии и обновляется аналогично EMA.

Этот гиперпараметр m почти такой же, как параметр 𝜏 в уравнении EMA. Мы слегка обновляем параметр смещения c при каждой партии. Это центрирование, вероятно, является основной операцией, позволяющей избежать коллапса в постоянную функцию! Центрирование предотвращает доминирование одного измерения в качестве своего рода псевдометки, но также способствует сворачиванию к равномерному распределению! Вот почему фреймворк также в некоторой степени опирается на заточенный софтмакс, так как он имеет противоположный эффект.

Представьте, что у вас есть куча картинок, и вы хотите научить модель распознавать разные объекты на этих картинках. Теперь, если модель всегда обращает внимание на один и тот же объект, потому что он больше всего привлекает ее внимание, например милая собака, модель будет узнавать только о собаках и ни о чем другом. Центрирование похоже на попытку быть честным и убедиться, что ИИ одинаково узнает обо всех различных объектах. Это как сказать: «Хорошо, давайте разделим картинки на разные группы, и каждую группу нужно рассматривать одинаково». Таким образом, модель сбалансированно узнает о разных объектах. Модель рекомендуется изучать множество функций или разных «псевдоклассов», а не сосредотачиваться на одной доминирующей функции/классе. Повышение резкости, с другой стороны, — это метод, используемый для того, чтобы убедиться, что при желании «классифицировать» объект, т. Е. Желая сильно переместить весь вектор признаков вдоль одного измерения признаков, модель не запутается и всегда выбирает разные объекты случайным образом, т. е. просто всегда предсказывает равномерное распределение. Это похоже на уверенность в том, что каждый раз, когда модель выбирает объект, она уверена и уверена в своем выборе. После применения гораздо менее четкой функции softmax к выходным данным учащегося окончательной потерей является потеря перекрестной энтропии.

И почему перекрестная энтропия, а не MSE, как в BYOL?

Если мы посмотрим на строку 2, MSE на удивление работает с DINO, но перекрестная энтропия (строки 1, 3, 4) просто работает лучше. 3)! Но это, кажется, тоже мало помогает.
На самом деле, нам даже не обязательно нужны операции softmax, если мы используем потерю MSE. Но если мы используем перекрестную энтропию, мы, очевидно, используем, потому что эта потеря определяется по распределениям вероятностей, что, опять же, кажется, работает лучше!

Хорошо… Было много чего распаковать и немного развить интуицию! Но это, мы надеемся, показывает, как много экспериментов проводится, чтобы увидеть, что эмпирически работает, а что нет!

Функция потерь

Что также, кажется, работает лучше, так это не просто использование перекрестной энтропии для всех различных вложений представлений, а использование очень специфической настройки!

Давайте посмотрим, что это на самом деле означает, и вернемся к нашей дружелюбной маленькой квокке!

Давайте снова создадим несколько представлений; на этот раз, скажем, 4. Немного измените их цвет, обрежьте и измените размер. Теперь при кадрировании мы хотим иметь два случая: кадрирование, которое содержит 50% или более исходного изображения, и кадрирование с меньшими вырезами. Эти крупные культуры называются глобальными культурами и помечаются знаком "g".

При назначении наших представлений двум ветвям, для учителя мы специально хотим использовать только наши глобальные представления, а для ученика мы будем использовать все представления, то есть локальные и глобальные кадры.

То, что мы сейчас сравниваем, — это вложение учителя одной из глобальных культур и все вложения всех образцов из студенческой сети, за исключением встраивания одного и того же глобального представления. Теперь мы можем вычислить перекрестную энтропию каждого внедрения ученика с этим одним внедрением учителя и повторить весь этот процесс.
Вуаля, у нас есть странно выглядящая потеря перекрестной энтропии, которая обеспечивает локальное и глобальное соответствие.

Мы уже говорили о двух случаях обрезки в сообщении SimCLR, где у нас есть два смежных представления и здесь принудительный случай локального и глобального представлений. По-видимому, модель лучше учится, когда учится смотреть на более мелкие части более крупного объекта и пытается сопоставить его с его вложениями. Внедрение глобального представления имеет больше информации и, таким образом, может лучше распознавать объект.

Развитие интуиции

Это предположение имеет для меня смысл, пока учитель производит лучшие вложения, чем ученик, а также предполагается в документе BYOL, но поскольку авторы DINO пошли на эксперименты, исследования абляции и поиски построения интуиции, они фактически подтвердил это предположение, посмотрев на точность сетей учеников и учителей во время обучения.

Учитель действительно кажется умнее ученика, и всякий раз, когда ученик улучшается, учитель делает то же самое, поскольку он является более стабильной версией ученика. Ключевое слово: экспоненциальная скользящая средняя. Все это до определенного момента, когда учителю уже нечему учить, и оба сходятся.

Но ладно, круто. Мы только что рассмотрели новую и улучшенную структуру самоперегонки, которая, опять же, не зависит от архитектуры. Итак, где трансформеры и почему они особенно в этой структуре такие особенные?!

Давайте просто посмотрим на сравнение между различными самостоятельными обучающими платформами и подключим классический ResNet и Vision Transformer.

Глядя на точность проверки обученных ResNet, мы видим, что структура DINO обеспечивает наилучшую производительность, но ее можно рассматривать наравне с другими базовыми подходами.

Однако при замене архитектуры ResNet на Vision Transformer DINO раскрывает свой потенциал и значительно превосходит другие базовые модели! Особенно в случае классификации k-NN. K-NN — это один из стандартных протоколов оценки для обучения с самоконтролем в настоящее время, но это было не тогда, когда были разработаны и опубликованы SimCLR и BYOL.

Эх… Тогда… Как будто это было не так, как 2–3 года назад…

K-NN!
Почему это так круто и как это работает? Вам не нужна тонкая настройка!

Очевидно, нам по-прежнему нужны метки, но теперь мы просто проецируем все наши помеченные данные в наше пространство представления, чтобы сгенерировать наши кластеры классов.

Когда мы хотим классифицировать новую точку данных, например изображение, мы пропускаем его через нашу нейронную сеть и проецируем в пространство представления. Затем мы просто подсчитываем k ближайших соседей (в данном случае 3) и голосуем большинством голосов. В этом случае большинство наших соседей относятся к классу оранжевых, поэтому новое изображение также относится к классу оранжевых. Это k — новый гиперпараметр (как будто его уже недостаточно), и в статье было обнаружено, что он дает наилучшие результаты при значении 11.

Полученные результаты

ОК, круто. Вот таблица с очень интересными результатами. DINO, конечно, лучший, если смотреть только на ResNets, только на ViT и на разных архитектурах. Но, глядя на архитектуры того же размера, она все еще не превосходит полностью контролируемую модель.

Прохладный. Но еще круче снова заглянуть под капот и визуализировать карты внимания.

Глядя на тех, кто входит в тройку лидеров внимания, мы видим впечатляющие свойства! Подобно CNN, где каждое ядро ​​отвечает за выделение определенных признаков, мы можем видеть, что разные головки внимания обращают внимание на разные семантические области изображения! В первом примере во втором ряду одна голова обращает внимание на циферблат, другая на флаг, а третья на саму башню! Или, на один ряд ниже этого примера, мы снова можем видеть, как одна голова фокусируется на ошейнике, другая на голове и одна на белой шее зебры!

Разве это не так круто?!

Все это изучается без каких-либо ярлыков, без каких-либо конкретных карт сегментации!
Фактически, мы могли бы просто интерпретировать одну карту внимания как результат сегментации и сравнить обучение с учителем и самостоятельным учителем с использованием DINO!

Как уже упоминалось, при обучении в режиме самоконтроля модель учится больше фокусироваться на главном объекте на изображении, чем при обучении сети специально для классификации.

Сигнал обучения сильнее в случае самоконтролируемого обучения!

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

Я надеюсь, что это имеет смысл, даже если ваш мозг может быть несколько перегружен всей этой информацией, особенно если вы только что прочитали все мои предыдущие сообщения об обучении с самостоятельным контролем!
Я имею в виду… мой мозг поджарился после всех этих исследований. . И я, наверное, даже не все подробности узнала!

Самостоятельное обучение — это действительно круто, мощно и интересно! Но все это было только царапанье поверхности! Дальнейшие усовершенствования, например моделирование маскированных изображений, были использованы в последующих статьях DINO, iBOT [3] и DINOv2 [4]. Выученные представления можно использовать для стольких различных последующих задач!

Улучшения обучения и архитектуры DINOv2 по сравнению с iBOT представляют собой список множества небольших настроенных ручек, таких как правильный размер патча, импульс учителя, лучший алгоритм центрирования и так далее.

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

Самостоятельное обучение остается сложной областью с ошеломляющим набором методов, каждый из которых имеет замысловатую реализацию. Вот почему Meta AI недавно опубликовал 45-страничную кулинарную книгу [5], чтобы помочь ориентироваться в этой области. Так что, если вам интересна эта тема (а поскольку вы все еще читаете, то, вероятно, так и есть), я настоятельно рекомендую вам ознакомиться с этой публикацией. Это много, но очень хорошо читать! И я надеюсь, что эта небольшая серия поможет вам получить фундаментальное понимание, которое также поможет вам ориентироваться в поваренной книге.

Большое спасибо за чтение!
Если вы еще этого не сделали, не стесняйтесь ознакомиться с другими моими публикациями, чтобы глубже погрузиться в самообучение и последние исследования в области искусственного интеллекта.

P.S.: Если вам нравится этот контент и визуальные эффекты, вы также можете заглянуть на мой канал YouTube, где я публикую похожий контент, но с более аккуратной анимацией!

Рекомендации

[1] Новые свойства преобразователей зрения с самоконтролем, М. Кэрон и др. ал, https://arxiv.org/abs/2104.14294

[2] Запустите свой собственный латентный период: новый подход к самоконтролируемому обучению, Дж. Б. Грилл, Ф. Страб, Ф. Альче, К. Таллек, П. Х. Ришемонд и др., https://arxiv.org/abs/2006.07733

[3] iBOT: предварительная тренировка изображения BERT с онлайн-токенизатором, Дж. Чжоу и др., https://arxiv.org/abs/2111.07832

[4] DINOv2: Изучение надежных визуальных функций без присмотра, М. Окуаб, Т. Дарсет, Т. Мутаканни и др., https://arxiv.org/abs/2304.07193

[5] Поваренная книга обучения с самоконтролем, Р. Балестьеро, М. Ибрагим и др. ал, https://arxiv.org/abs/2304.12210