Автор: Булат Бадамшин Редактор: Марк Страхов

Введение

Трансформеры сегодня все чаще применяются в различных доменах помимо NLP. Vision Transformers (ViT) рассматриваются как альтернатива сверточным сетям (convolutional neural network, CNN) в решении задач компьютерного зрения (CV). В мае 2021 года вышла статья Emerging Properties in Self-Supervised Vision Transformers, где авторы предложили задуматься над вопросом: почему ViT так хорошо себя проявляют в задачах компьютерного зрения, и является ли предобучение на больших датасетах с разметкой тому причиной. Сомнения в этой причине связаны со следующим фактом: основой успеха трансформерной архитектуры в больших языковых моделях является этап предобучения на огромном наборе данных без разметки с помощью подхода Self-Supervised Learning (SSL).

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

Например, на этапе предобучения таких языковых моделей, как BERT или GPT, в качестве разметки могли использоваться пропущенные слова или части предложения, которые моделям необходимо было предсказывать. В SSL этот этап обучения называется “pretext task”. Он позволяет извлечь из данных наиболее общую информацию, по сравнению с обычным режимом обучения с учителем (где модель выучивает лишь часть информации об объекте, ограниченную существующей разметкой). То есть полезная информация на выходе модели — некоторые признаки / векторное представление, с которым затем работают для решения так называемых “downstream” задач (специальных задач CV — классификации, сегментации и др.).

DINO

Сегодня мы рассмотрим один из самых эффективных на сегодняшний день SSL подходов — DINO (Self-DIstilation with NO labels). Его разработчики решили проанализировать, какие признаки можно выучить с помощью self-supervised в ViT трансформере. На рисунке 1 показаны визуализации весов внимания на выходе предобученного ViT c помощью DINO.

Рисунок 1. Визуализация весов внимания c помощью DINO

Рисунок 1. Визуализация весов внимания c помощью DINO

Есть две особенности признаков ViT, которых нет при обучении с учителем, в трансформерной и сверточной архитектурах:

Эти свойства модели, которую наделяет данный подход в процессе обучения, плюс возможность использования огромного набора картинок без разметки (по сути весь интернет) позволяют отнести ее к так называемым “Foundation Models”. Такие ****модели вбирают в себя огромный пласт знаний и позволяют решать без дообучения большинство известных задач с приемлемым качеством. При этом в отличие от моделей SAM или CLIP, здесь для обучения вообще не требуется разметка. Во-первых, это делает процесс обучения более дешевым. Во-вторых, позволяет извлечь больше информации и не ограничиться существующей разметкой.

Подробнее о подходе

DINO опирается на парадигму дистилляции знаний без разметки — Self-DIstillation with NO labels. Она подразумевает такое обучение нейронной сети (НС) “студент”, при котором ее выходы стягиваются к значениям выходов другой НС — “учителя”. При этом архитектуры обеих НС одинаковы, но веса разные.

Как видно на рисунке 2, в процессе обучения на вход “студенту” и “учителю” подается одно изображение, но после разных наборов аугментаций.

Рисунок 2. Схема обучения методом DINO

Рисунок 2. Схема обучения методом DINO

Вероятностный выход P сети g нормализуется функцией softmax:

$\LARGE {~~~~~~~~~~~~~~~~~~~~~~~~~~~~ P_s(x)=\frac{exp(g_{\Theta_s}(x)/\tau_s)}{\Sigma_{k=1}^Kexp(g_{\Theta_s}(x)^k/\tau_s)}~ }$

где $P_s$ — выход сети “студент” g, x — входное изображение, K — размерность выхода сети, τ — температура софтмакса, $\Theta_s$ — параметры сети “студент”.

В качестве функции потерь используется кросс-энтропия между прогнозом “студента” и “учителя”: