Открыть сервис

Vision Transformer

Vision Transformer (ViT) — это архитектура нейронной сети, предназначенная для решения задач компьютерного зрения, основанная исключительно на механизме внимания (attention) и не использующая свёрточные слои. В отличие от традиционных свёрточных нейронных сетей (CNN), ViT обрабатывает изображение как последовательность непересекающихся фрагментов (патчей), применяя к ним трансформер, изначально разработанный для обработки естественного языка.

История и предпосылки

До появления ViT доминирующей парадигмой в компьютерном зрении были свёрточные нейронные сети. Архитектуры вроде ResNet, EfficientNet и DenseNet показывали высокие результаты на задачах классификации, детекции и сегментации. Однако, несмотря на успехи трансформеров в NLP (например, BERT, GPT), их применение к изображениям долгое время считалось неэффективным из-за квадратичной сложности вычислений внимания по отношению к числу пикселей.

В 2017 году в работе «Attention Is All You Need» была предложена архитектура трансформера, которая впоследствии была адаптирована для изображений. В 2020 году группа исследователей из Google Research (Досовицкий и др.) опубликовала статью «An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale», в которой представила Vision Transformer. Ключевым выводом работы стало то, что при обучении на достаточно больших наборах данных (например, ImageNet-21k или JFT-300M) ViT превосходит современные свёрточные сети, при этом требуя значительно меньших вычислительных затрат на обучение.

Архитектура

Разбиение на патчи

Входное изображение размером \( H \times W \times C \) (высота, ширина, число каналов) разбивается на квадратные патчи фиксированного размера \( P \times P \). Количество патчей \( N \) вычисляется как \( N = \frac{HW}{P^2} \). Каждый патч затем выпрямляется в одномерный вектор длиной \( P^2 \cdot C \). В оригинальной статье для ImageNet использовались патчи размером 16×16 пикселей, что давало 196 патчей для изображения 224×224.

Линейная проекция и позиционные кодировки

Каждый выпрямленный вектор патча пропускается через обучаемый линейный слой (проекцию), который преобразует его в эмбеддинг фиксированной размерности \( D \). К полученным эмбеддингам добавляется обучаемый позиционный вектор, кодирующий пространственное расположение патча. Это необходимо, поскольку механизм внимания сам по себе не учитывает порядок элементов. В ViT используются одномерные позиционные кодировки, которые обучаются совместно с сетью.

Классовый токен

В начале последовательности эмбеддингов добавляется специальный обучаемый токен \( [CLS] \) (class token). Его состояние на выходе трансформера используется для классификации всего изображения. Этот приём заимствован из архитектуры BERT.

Кодировщик трансформера

Последовательность из \( N+1 \) эмбеддингов (включая \( [CLS] \)) подаётся на вход стека из \( L \) идентичных блоков трансформера. Каждый блок состоит из:

Выходной слой

Состояние \( [CLS] \)-токена после последнего блока трансформера подаётся на линейный классификатор (обычно однослойный перцептрон с softmax), который выдаёт вероятности принадлежности к классам.

Классификация и варианты

ViT-Base, ViT-Large, ViT-Huge

Оригинальная работа представила три масштаба модели, отличающихся числом блоков, размерностью эмбеддингов и числом голов внимания:

МодельПараметрыСлои (L)Размерность (D)Головы (h)
ViT-Base86M1276812
ViT-Large307M24102416
ViT-Huge632M32128016

DeiT (Data-efficient Image Transformers)

Архитектура, разработанная Facebook (продукт Meta, признанной экстремистской и запрещённой в РФ) AI Research (Meta — организация признана экстремистской и запрещена в РФ) в 2021 году. DeiT позволяет обучать ViT на меньших наборах данных (например, ImageNet-1k) без предварительного обучения на огромных корпусах. Основные улучшения: использование дистилляции знаний (knowledge distillation) от учителя-свёрточной сети, а также регуляризация через CutMix и MixUp.

Swin Transformer

Архитектура, предложенная Microsoft Research в 2021 году. В отличие от ViT, Swin использует иерархическую структуру с окнами внимания, которые сдвигаются между слоями. Это позволяет модели обрабатывать изображения с переменным разрешением и эффективно работать с задачами, требующими пространственной информации (детекция, сегментация). Swin Transformer стал основой для многих современных моделей.

ViT-Adapter

Модификация, добавляющая к ViT лёгкие адаптерные модули, которые позволяют использовать предобученный ViT для задач dense prediction (например, семантическая сегментация, оценка глубины) без полного переобучения.

Применение

Классификация изображений

Основное и наиболее изученное применение ViT. Модели ViT-Huge и ViT-G (гигантская версия, 2.2 млрд параметров) показывают рекордные результаты на ImageNet (top-1 accuracy > 90%).

Детекция объектов и сегментация

Хотя ViT изначально не предназначен для локализации, его адаптации (например, DETR, Mask2Former) используют трансформеры для детекции и сегментации. DETR (Detection Transformer) заменяет традиционные anchor-боксы и non-maximum suppression на механизм внимания, предсказывая набор объектов напрямую.

Видеоанализ

ViT адаптируется для обработки видеоданных (Video Vision Transformer, ViViT). Входное видео разбивается на пространственно-временные патчи, которые обрабатываются трансформером. Модель применяется для классификации действий, отслеживания объектов и предсказания траекторий.

Медицинская визуализация

ViT используется для анализа медицинских изображений (рентген, МРТ, КТ). Благодаря способности захватывать глобальные контекстные зависимости, ViT превосходит CNN в задачах сегментации опухолей, классификации патологий и обнаружения аномалий.

Обработка документов

Модели вроде LayoutLM и TrOCR используют ViT для распознавания текста в документах, понимания структуры страниц и извлечения информации.

Сравнение со свёрточными сетями

Преимущества ViT

Недостатки ViT

Интересные факты

Критика и ограничения

Основная критика ViT связана с его неэффективностью на малых данных и высокой стоимостью обучения. Кроме того, механизм внимания сложнее интерпретировать, чем свёртки, что затрудняет анализ ошибок и объяснение решений модели. Некоторые исследователи отмечают, что ViT может быть чувствителен к шуму и атакам, хотя это свойство характерно и для CNN.

Источники

  1. Dosovitskiy, A., et al. (2020). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. ICLR 2021.
  2. Touvron, H., et al. (2021). Training data-efficient image transformers & distillation through attention. ICML 2021.
  3. Liu, Z., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. ICCV 2021.
  4. Carion, N., et al. (2020). End-to-End Object Detection with Transformers. ECCV 2020.
  5. Vaswani, A., et al. (2017). Attention Is All You Need. NeurIPS 2017.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →