Эта серия статей призвана объяснить механизм Vision Transformers (ViT) [2], который представляет собой чистую модель Transformer, используемую в качестве визуальной основы в задачах компьютерного зрения. Он также указывает на ограничения ViT и предоставляет обзор последних улучшений. Посты разделены на три части:

  • Часть I - Введение в трансформатор и ViT
  • Часть II и III - Ключевые проблемы ViT и ее совершенствование.

Этот пост является первой частью серии из трех статей о ViT. Он призван кратко представить концепцию трансформеров [1] и объяснить механизм ViT и то, как он использует модуль внимания для достижения современной производительности при решении задач компьютерного зрения.

1. Что такое трансформатор?

Трансформаторные сети [1] - это модели преобразования последовательности, относящиеся к моделям преобразования входной последовательности в выходную последовательность. Сети Transformer, состоящие из архитектуры кодера-декодера, основаны исключительно на механизмах внимания. Мы обсудим механизмы внимания более подробно в следующих разделах. Однако давайте сначала кратко рассмотрим некоторые из предыдущих подходов.

Трансформаторы были впервые представлены в [1] для задачи машинного перевода, имея в виду преобразование текстовой последовательности на одном языке в другой язык. До открытия этой революционной архитектуры глубокие нейронные архитектуры, такие как рекуррентная нейронная сеть (RNN) и сверточные нейронные сети (CNN ) широко использовались для этой задачи. RNN генерируют последовательность скрытых состояний на основе предыдущих скрытых состояний и текущего ввода. Чем длиннее предложения, тем меньше релевантность для удаленных слов. Однако в языках языковое значение имеет большее значение, чем близость. Например, в следующем предложении:

«Джейн - блогер о путешествиях, а также очень талантливый гитарист».

слово «Джейн» имеет большее отношение к «гитаристу», чем слова «также» или «очень» . Хотя LSTM, особый вид RNN, учатся включать важную информацию и отбрасывать нерелевантную информацию, они также страдают от зависимостей на большом расстоянии. Более того, зависимость RNN от предыдущих скрытых состояний и требуемых последовательных вычислений не позволяет выполнять распараллеливание. Модели Transformer решают эти проблемы с помощью концепции внимания.

Как упоминалось ранее, языковое значение и контекст слов более важны, чем слова, находящиеся в непосредственной близости. Также важно отметить, что каждое слово в предложении может иметь отношение к какому-либо другому слову в предложении, и это необходимо учитывать. Модуль внимания в моделях Transformer предназначен именно для этого. Модуль внимания принимает в качестве входных данных векторы запроса, keys и value. Идея состоит в том, чтобы вычислить скалярное произведение между словом (запросом) и каждым словом (ключом) в предложении. Это дает нам весовую оценку релевантности ключа запросу. Затем эти веса нормализуются и применяется softmax. Затем вычисляется взвешенная сумма путем применения этих весов к соответствующим словам в предложении (значении), чтобы обеспечить представление слова запроса с большим контекстом.

Стоит отметить, что эти операции выполняются над векторным представлением слов. Слова можно обозначить как значащий вектор представления, их вложения в слова N-мерности. Однако, поскольку сети Transformer поддерживают параллелизм, для кодирования позиции слова в предложении используется позиционная кодировка слова. Позиционная информация важна во многих сценариях, например, правильный порядок слов придает смысл предложению. Поскольку операция самовнимания в Transformers инвариантна к перестановкам, позиционная информация вводится путем добавления вектора позиционного кодирования к входному встраиванию. Этот вектор фиксирует позицию слова во входном предложении и помогает различать слова, встречающиеся более одного раза. Позиционное встраивание можно либо обучить встраиванию, либо заранее заданным синусоидальным функциям разных частот. Подробное эмпирическое исследование встраивания позиций в НЛП можно найти здесь [3]. Точно так же использование позиционного встраивания в ViT заключается в использовании позиционной информации во входной последовательности.

Обзор трансформатора показан на рис. 1. Входная последовательность подается в кодировщик Transformer (левая часть рисунка), который состоит из N слоев кодировщика. Каждый уровень кодировщика состоит из двух подуровней: 1) самовнимание с несколькими головками и 2) позиционная сеть прямого распространения (PFFN). Затем к обоим подуровням применяются остаточное соединение и нормализация уровня. Многоголовое внимание направлено на поиск взаимосвязи между токенами во входной последовательности в различных контекстах. Каждая голова вычисляет внимание, линейно проецируя каждый токен на векторы запроса, ключа и значения. Затем запрос и ключ используются для вычисления веса внимания, который применяется к вектору значений. Выходные данные подуровня внимания с несколькими головами (того же размера, что и входные) затем передаются в PFFN для дальнейшего преобразования представления входной последовательности. Этот процесс повторяется N раз N слоями кодера.

Правая часть рисунка - это декодер Transformer, аналогично состоящий из N слоев декодера, прикрепленных с помощью головки предсказания (линейный слой с softmax). Каждый уровень декодера состоит из трех подслоев: 1) самовнимание с несколькими головами, 2) перекрестное внимание с несколькими головами и 3) PFFN . Первый и третий аналогичны слоям кодировщика. Второй подуровень, то есть перекрестное внимание с несколькими головками, вычисляет взаимосвязь между каждым токеном во входной последовательности и каждым токеном в выходных данных, сгенерированных кодером. В частности, как показано на рисунке, декодер Transformer получает два входа: 1) последовательность токенов, подаваемых в нижнюю часть декодера, и 2) выход из кодера Transformer. В исходной статье модели Transformer [1], в которой рассматривался машинный перевод, выходная последовательность, генерируемая предсказывающей головкой, подается в декодер в качестве входных. Обратите внимание, что в других приложениях, например, в компьютерном зрении, дополнительная фиксированная или обучаемая последовательность может использоваться в качестве входных данных для декодера.

Более подробную информацию о модели Transformer можно найти в [9], [10]. Также настоятельно рекомендуется обратить внимание на серию из четырех видеороликов [11].

2. Трансформатор видения

Модель Transformer и ее варианты успешно продемонстрировали, что они могут быть сопоставимы или даже лучше современных в некоторых задачах, особенно в области НЛП. В этом разделе кратко рассматривается, как модель Transformer может быть применена к задачам компьютерного зрения, а затем представлена ​​модель Transformer, Vision Transformer (ViT), которая привлекает огромное внимание многих исследователей в области компьютерного зрения.

Было предпринято несколько попыток применить механизмы внимания или даже модель трансформера к компьютерному зрению. Например, в [4] форма пространственного внимания, в которой вычисляются отношения между пикселями, использовалась в качестве строительного блока в CNN. Этот механизм позволяет CNN фиксировать зависимости на большом расстоянии в образе и лучше понимать глобальный контекст. В [5] для улучшения репрезентативной способности CNN был предложен строительный блок, называемый блоком сжатия и возбуждения (SE), который вычисляет внимание в размерности канала.

С другой стороны, комбинация модели Transformer и CNN была предложена для решения задач компьютерного зрения, таких как обнаружение объектов или семантическая сегментация. В преобразователе обнаружения (DETR) [6] модель преобразователя использовалась для обработки карты характеристик, сгенерированной магистралью CNN, для выполнения обнаружения объекта. Использование модели Transformer в DETR устраняет необходимость в вручную разработанных процессах, таких как немаксимальное подавление, и позволяет обучать модель от начала до конца. Подобные идеи были предложены в [7] и [8] для выполнения семантической сегментации.

В отличие от тех работ, в которых модули Transformer или внимания используются в качестве дополнения к моделям CNN для решения задач видения, ViT [2] представляет собой чистую архитектуру Transformer без сверток, предложенную в качестве альтернативной визуальной основы. Общая сетевая архитектура ViT показана на Рис. 2.

Ключевая идея применения преобразователя к данным изображения заключается в том, как преобразовать входное изображение в последовательность токенов, которая обычно требуется преобразователю. В ViT входное изображение размером H x W делится на N неперекрывающихся участков размером 16 x 16 пикселей, где N = (H x W) / (16 x 16). Затем каждый патч преобразуется в вложение с использованием линейного слоя. Эти вложения группируются вместе для создания последовательности токенов, где каждый токен представляет собой небольшую часть входного изображения. К последовательности добавляется дополнительный обучаемый токен, то есть токен классификации. Он используется слоями Transformer как место для привлечения внимания с других позиций для создания вывода прогноза. Позиционные вложения добавляются к этой последовательности из N + 1 токенов и затем передаются в энкодер Transformer.

Как показано на рис. 1 и 2, кодировщик Transformer в ViT аналогичен таковому в оригинальном Transformer, разработанном Vaswani et al. [1]. Единственное отличие состоит в том, что в ViT нормализация уровней выполняется до многоголового внимания и MLP, в то время как Transformer Васвани выполняет нормализацию после этих процессов. [12], [13] показывают, что эта преднормативная концепция ведет к эффективному обучению с более глубокими моделями.

Выходной сигнал энкодера Transformer - это последовательность токенов того же размера, что и вход, то есть N + 1 токенов. Однако только первый, то есть маркер классификации, подается в голову прогнозирования, которая представляет собой многослойное восприятие (MLP), для создания прогнозируемой метки класса.

В [2] ViT был предварительно обучен на крупномасштабных наборах данных изображений, таких как ImageNet-21k, который состоит из 14M изображений 21k классов, или JFT, который состоит из 303M изображений высокого разрешения 18k классов, а затем доработан на нескольких тестах классификации изображений. Экспериментальные результаты показали, что при предварительном обучении с большим объемом данных изображения ViT достигала конкурентоспособных показателей по сравнению с современными CNN, будучи быстрее в обучении.

3. Резюме

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

использованная литература

[1] А. Васвани, Н. Шазир, Н. Парамр, Дж. Ушкорейт, Л. Джонс, А.Н. Гомес и др., «Внимание - это все, что вам нужно, Труды 31-й Международной конференции по системам обработки нейронной информации (NIPS 2017), 2017. » (Оригинальный трансформатор)

[2] А. Досовицкий, Л. Бейер, А. Колесников, Д. Вайссенборн, Х. Чжай, Т. Унтертинер и др. «Изображение лучше слов 16x16: преобразователи для распознавания изображений в масштабе, препринт arXiv, arXiv2010.11929, 2020 . » (ВиТ)

[3] Ю.-А. Ванга и Ю.-Н. Чен: «Чему учатся вложения позиций? Эмпирическое исследование позиционного кодирования предварительно обученной языковой модели , препринт arXiv, arXiv2010.04903, 2020». (Исследование позиционного встраивания, НЛП)

[4] X. Ван, Р. Гиршик, А. Гупта и К. Хе, «Нелокальные нейронные сети, Труды конференции IEEE по компьютерному зрению и распознаванию образов (CVPR), 2018 г. » (Нелокальный NN)

[5] Дж. Джу, Л. Шен и Г. Сан, «Сети сжатия и возбуждения, Труды конференции IEEE по компьютерному зрению и распознаванию образов (CVPR), 2018 г. » (SENet)

[6] Н. Карион, Ф. Масса, Г. Синнаев, Н. Усуньер, А. Кириллов и С. Загоруйко, «Сквозное обнаружение объектов с помощью трансформаторов, препринт arXiv, arXiv2005.12872, 2020. » (DETR)

[7] С. Чжэн, Дж. Лу, Х. Чжао, X. Чжу, З. Луо, Й. Ван и др., «Переосмысление семантической сегментации с точки зрения преобразования последовательности в последовательность, препринт arXiv, arXiv2012.15840, 2020 . » (SETR)

[8] Э. Се, В. Ван, В. Ван, П. Сан, Х. Сю, Д. Лян и др. «Сегментация прозрачного объекта в дикой природе с помощью трансформатора, препринт arXiv, arXiv2101.08461, 2021. » (Trans2Seg)

[9] Аннотированный трансформатор

[10] Иллюстрированный трансформер

[11] Доска алгоритмов Rasa - Трансформаторы и внимание

[12] Изучение моделей глубокого преобразования для машинного перевода https://www.aclweb.org/anthology/P19-1176.pdf
[13] Адаптивные входные представления для моделирования нейронного языка https: // openreview. net / pdf? id = ByxZX20qFQ

Автор: Укрит Ватчареруэтхай, старший исследователь искусственного интеллекта и команда Sertis Computer Vision