Подробное объяснение и визуализации

Введение

Nvidia недавно опубликовала новый преобразователь зрения под названием Global Context Vision Transformer (GC ViT) (Hatamizadeh et al., 2022). GC ViT представила новую архитектуру, которая использует как глобальное , так и локальное внимание, что позволяет моделировать как ближние, так и дальние пространственные взаимодействия.

Умные методы, используемые исследователями Nvidia, позволили GC ViT моделировать глобальное внимание, избегая при этом дорогостоящих вычислений. GC ViT достигает самых современных (SOTA) результатов в наборе данных ImageNet-1K, значительно превосходя Swin Transformer.

В этой статье мы более подробно рассмотрим внутреннюю работу GC ViT и методы, которые позволили ему достичь таких результатов.

GC ViT — улучшение Swin Transformer

С момента публикации Swin Transformer (Liu et al., 2021) в 2021 году он зарекомендовал себя как одна из самых важных моделей машинного зрения на основе трансформеров.

Swin Transformer представил важные методы, такие как иерархические карты признаков и внимание на основе окон, которые позволили ему достичь производительности, конкурентоспособной по сравнению с обычными свёрточными нейронными сетями. Сегодня Swin Transformer используется в качестве базовой архитектуры для широкого круга задач машинного зрения, включая классификацию изображений и обнаружение объектов.

Примечание: если вам нужно освежить в памяти Swin Transformer, я написал здесь исчерпывающее руководство, в котором объясняются основы Swin Transformer.

Несмотря на свой прогресс, Swin Transformer имеет определенные недостатки. В частности, внимание на основе окна, используемое в Swin Transformer, ограничивает вычисление взаимодействий внутри каждого окна и ограничивает взаимодействие между окнами.

На приведенной выше диаграмме показан пример ограничения внимания на основе окна, используемого в Swin Transformer. Входное изображение разбивается на отдельные окна, и затем внутреннее внимание вычисляется только в каждом окне. Это ограничивает вычисление дальних взаимодействий между различными объектами в глобальном изображении. Например, собака и мяч разделены на разные окна, и модель не может изучать взаимодействия между двумя объектами. Отсутствие соединений между окнами ограничивает способность модели фиксировать долгосрочные зависимости, которые имеют решающее значение для точного моделирования представления.

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

Архитектура ГК ВиТ

Общая архитектура GC ViT показана на схеме выше. Как мы видим, GC ViT состоит из 4 разных этапов, и каждый этап состоит из чередующихся блоков локального и глобального уровней многоголового самовнимания (MSA). Локальный MSA извлекает локальную информацию ближнего действия, а глобальный MSA извлекает глобальную информацию дальнего действия. Это позволяет GC ViT гибко реагировать как на краткосрочные, так и на долгосрочные зависимости. Между этапами GC ViT использует блок понижающей дискретизации для создания иерархических карт признаков, подобных Swin Transformer.

Основным вкладом GC ViT является глобальный генератор токенов и глобальный уровень MSA. В следующем разделе мы рассмотрим их более подробно.

Глобальное внимание к себе

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

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

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

В локальном MSA (многоголовое самовнимание) векторы Query, Key и Value получаются из исправлений в локальном окне и внимание вычисляется только в пределах каждого локального окна. Напротив, в глобальном MSA только векторы Key и Value получаются из исправлений в локальном окне. Вектор Query — это глобальный маркер запроса, полученный из всех окон. На приведенной ниже диаграмме показана разница между локальным MSA и глобальным MSA.

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

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

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

Понижающая дискретизация

GC ViT также представила новый способ понижения дискретизации карт признаков между этапами для создания иерархических карт признаков. Интересно, что GC ViT использует слои свертки для понижения дискретизации. Авторы считают, что использование свертки для понижения дискретизации обеспечивает сети желаемые свойства, такие как смещение локальности и межканальные взаимодействия. Операции, используемые в блоке понижающей дискретизации, показаны на диаграмме ниже.

Обратите внимание на сходство первых 4 операций с генератором глобальных запросов. На самом деле авторы называют первые 4 операции блоком «Fused-MBConv», и он вдохновлен EfficientNetV2.

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

GC ViT был обучен классификации изображений на наборе данных ImageNet-1K. В таблице ниже сравнивается производительность GC ViT в наборе данных ImageNet-1K с другими CNN и ViT, включая Swin Transformer. Как мы видим, GC ViT достигает нового современного эталона. Кроме того, модели GC ViT имеют лучшую или сравнимую вычислительную эффективность с точки зрения количества FLOP.

По сравнению с Swin Transformer, GC ViT обеспечивает более высокую производительность при меньшем количестве FLOP, демонстрируя преимущества сочетания локального и глобального самоконтроля. Однако обратите внимание, что Swin Transformer имеет архитектуру без свертки, тогда как GC ViT использует операции свертки для вычисления глобального внимания и понижения дискретизации.

Заключение

GC ViT представляет новую архитектуру, которая сочетает в себе как локальное внимание к себе, так и глобальное внимание к себе, что позволяет сети моделировать как краткосрочные, так и долгосрочные взаимодействия. Удаляя сложные и дорогостоящие операции и маски, необходимые в других ViT, GC ViT достигает нового SOTA в наборе данных ImageNet-1K, будучи более эффективным в вычислительном отношении.

Однако следует отметить, что, в отличие от Swin Transformer, GC ViT не является архитектурой без сверток, и часть его производительности может быть получена за счет индуктивного смещения свертки.

Нравится эта статья?

Спасибо за чтение! Я надеюсь, что эта статья была полезной для вас. Если вы хотите подписаться на членство в Medium, рассмотрите возможность использования моей ссылки. Это помогает мне продолжать создавать контент, полезный для сообщества! 😄