В данной статье разберём работу Swin Transformer: Hierarchical Vision Transformer using Shifted Windows, авторы которой предложили новую архитектуру Vision Transformer’a, позволяющую решать не только задачу классификации, но и более общие задачи компьютерного зрения, при этом делая вычислительную сложность операций линейной по размеру изображения.
Вкратце работа Visual Transformer’а выглядит так:
Изображение нарезается на патчи 16x16.
Патчи вытягиваются в векторы и преобразуются к нужной размерности с помощью линейного слоя.
К полученным векторам прибавляются обучаемые позиционные 1D-эмбеддинги.
Также добавляется специальный обучаемый эмбеддинг класса — по аналогии с [CLS] токеном в BERT.
Полученная последовательность векторов подаётся в обычный энкодер трансформера.
Предсказывается класс изображения с помощью MLP над эмбеддингом класса.

Источник: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
Среди проблем ViT можно выделить следующие:
Для борьбы с перечисленными выше проблемами была предложена новая архитектура, которая использует иерархичные карты признаков и является линейной по сложности.

Источник: Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
Иерархичность достигается за счёт использования на первых слоях маленьких патчей и их увеличения на последующих слоях — благодаря этому появляется возможность перенимать свойства Feature Pyramid сетей и использовать модели для pixel-aware задач наподобие детекции и сегментации.