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 \) идентичных блоков трансформера. Каждый блок состоит из:
- Многослойного перцептрона (MLP): содержит два линейных слоя с активацией GELU (Gaussian Error Linear Unit) и dropout.
- Многоголового внимания (Multi-Head Self-Attention, MSA): вычисляет взвешенную сумму всех эмбеддингов, где веса определяются сходством между парами эмбеддингов. Количество голов внимания \( h \) — гиперпараметр.
- Layer Normalization (LN): применяется перед каждым из двух подблоков (MSA и MLP).
- Остаточных связей (skip connections): выход каждого подблока складывается с его входом.
Выходной слой
Состояние \( [CLS] \)-токена после последнего блока трансформера подаётся на линейный классификатор (обычно однослойный перцептрон с softmax), который выдаёт вероятности принадлежности к классам.
Классификация и варианты
ViT-Base, ViT-Large, ViT-Huge
Оригинальная работа представила три масштаба модели, отличающихся числом блоков, размерностью эмбеддингов и числом голов внимания:
| Модель | Параметры | Слои (L) | Размерность (D) | Головы (h) |
|---|---|---|---|---|
| ViT-Base | 86M | 12 | 768 | 12 |
| ViT-Large | 307M | 24 | 1024 | 16 |
| ViT-Huge | 632M | 32 | 1280 | 16 |
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 демонстрирует устойчивый рост производительности при увеличении числа параметров и объёма данных, в отличие от CNN, которые быстрее насыщаются.
- Меньшее количество индуктивных смещений: ViT не накладывает априорных предположений о пространственной структуре (локальность, трансляционная эквивариантность), что позволяет ему обучаться более гибким представлениям.
Недостатки ViT
- Высокие требования к данным: Для достижения конкурентоспособных результатов ViT требует обучения на очень больших наборах данных (миллионы изображений). На малых наборах он уступает CNN.
- Вычислительная сложность: Квадратичная зависимость от числа патчей делает ViT ресурсоёмким для изображений высокого разрешения.
- Отсутствие локальной инвариантности: ViT не обладает встроенной устойчивостью к сдвигам и поворотам, что требует дополнительных методов аугментации данных.
Интересные факты
- Название «An Image is Worth 16x16 Words» отсылает к фразе «A picture is worth a thousand words», подчёркивая, что изображение можно представить как последовательность из 16×16 «слов» (патчей).
- В 2021 году ViT-G (гигантская версия с 2.2 млрд параметров) установил новый рекорд на ImageNet, достигнув top-1 accuracy 90.45%.
- ViT лёг в основу многих современных генеративных моделей, таких как DALL-E и Stable Diffusion, где используется для кодирования изображений в скрытое пространство.
Критика и ограничения
Основная критика ViT связана с его неэффективностью на малых данных и высокой стоимостью обучения. Кроме того, механизм внимания сложнее интерпретировать, чем свёртки, что затрудняет анализ ошибок и объяснение решений модели. Некоторые исследователи отмечают, что ViT может быть чувствителен к шуму и атакам, хотя это свойство характерно и для CNN.
Источники
- Dosovitskiy, A., et al. (2020). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. ICLR 2021.
- Touvron, H., et al. (2021). Training data-efficient image transformers & distillation through attention. ICML 2021.
- Liu, Z., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. ICCV 2021.
- Carion, N., et al. (2020). End-to-End Object Detection with Transformers. ECCV 2020.
- Vaswani, A., et al. (2017). Attention Is All You Need. NeurIPS 2017.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →