Как «Трансформеры» стали следующим прорывом в компьютерном зрении?

В истории трансформеров в глубоком обучении все началось со знаменитой статьи 'Внимание — это все, что вам нужно'' в 2017 году. Команда Google Brain опубликовала свое исследование, которое меняет судьбу обработки естественного языка (NLP) с помощью Transformer.

Идея использовать ту же технику для изображений, возможно, открыла дверь в новую эру в технологиях машинного зрения…

Введение

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

— — Что такое Transformer и почему он используется в глубоком обучении?

— — Почему и как Transformer применяется к зрению?

— — В чем разница между Vision Transformers и CNN?

— — Как Transformer используется для обнаружения объектов?

— Готовы ли Vision Transformers к производству?

  • Эти заметки будут полезны, особенно для тех, кто много слышал о трансформаторах, но еще не мог начать. Давайте начнем…

Что такое Transformer и почему он используется в глубоком обучении?

  • Transformer, новая архитектура модели, основанная на механизме внимания, впервые была представлена ​​некоторыми исследователями и Команда Google Brain в 2017 году.
  • До этого момента в качестве состояний в основном использовались рекуррентные нейронные сети (RNN), долговременная кратковременная память (LSTM) и закрытые рекуррентные сети. современные сети в приложениях обработки естественного языка благодаря их способности находить информацию о данных последовательности. Однако у этих сетей есть несколько серьезных недостатков в задачах NLP.

  • Их недостаточно для понимания глобального смысла текстовых данных из-за их последовательной обработки. Как вы можете видеть на изображении традиционной архитектуры RNN выше, выходные данные каждой временной метки должны передаваться следующей временной метке в качестве входных данных. Это вызывает кратковременную память, а также препятствует параллельному обучению. Несмотря на то, что LSTM может увеличить объем памяти, этого недостаточно, и он по-прежнему требует значительных вычислительных ресурсов.
  • С другой стороны, Transformer и особенно его механизм внимания совершил прорыв в задачах NLP. Модели OpenAI GPT-3 и модель Google BERT — самые яркие примеры такого прорыва.

  • Основная часть Transformer архитектуры состоит из кодировщика и декодера. Трансформеры принимают все входные данные, например предложение, как встраивания сразу, в то время как модели RNN и LSTM принимают входные данные слово за словом. и эти вложения обрабатываются в блоках внимания.
  • Целью блока внимания является выделение взаимосвязи/зависимости между словами входного предложения. Таким образом, эти функции помогают получить общее понимание контекста. В дополнение к механизмам внимания и встраиваниям, LayerNorm, сетям прямой связи и функциям softmax также используются в этой сети.

  • Я не буду подробно объяснять архитектуру модели, но должен упомянуть, что блоки внимания — самая важная часть Трансформеров. Мы увидим ту же архитектуру более подробно в следующей части. Архитектура модели Transformer показана выше. Дальнейшие пояснения по поводу модели можно найти в официальном документе исследования.

  • В приведенном выше примере механизма внимания вы видите зависимости на большом расстоянии в части кодировщика сети. Все внимание, которое вы здесь видите, уделено только работе «изготовление». Каждый разный цвет также представляет разные головки внимания. Впечатляет то, что многие из руководителей внимания уделяют внимание тому, чтобы установить связь между «делать», «больше» и «сложно».

Почему и как Transformer применяется к Vision?

  • Как я уже упоминал, механизм внимания — это сердце Трансформеров. Это сделало Трансформеры де-факто стандартом для задач НЛП. Переход от местного к глобальному пониманию… как люди.
  • В 2020 году команда Google Research и Brain использовала почти ту же технику для изображения и показала, что полагаться на CNN не обязательно, а чистый Transformer применяется непосредственно к последовательностям изображений. исправления могут очень хорошо выполнять задачи классификации изображений. Они опубликовали свое исследование в статье под названием «Изображение стоит 16x16 слов».

Модель Vision Transformer можно рассмотреть ниже. Позвольте мне объяснить, как работает эта модель.

  • Первым шагом всего процесса является разделение изображения на части фиксированного размера, сведение их, а затем линейно встраивая каждый из них. Вы можете представить эти пятна как слова, а все изображение как предложение в НЛП.

Вы можете спросить, почему мы не рассматриваем все пиксели как патчи. Первый ответ на этот вопрос связан со сложностью вычислений. Сложность механизма внимания была бы очень высокой, если бы мы рассматривали каждый пиксель как патч. Кроме того, пиксели в разных углах или сторонах изображения не имеют значимой связи друг с другом. Таким образом, нет необходимости привлекать дополнительное внимание со стороны сети.

  • Следующим шагом является добавление вложений позиций к вложениям патчей. Затем в кодировщик Transformer подается полученная последовательность встраивания.

Прежде чем говорить о кодировщике Transformer, я хотел бы отметить один момент. Если вы понимаете, что мы объединяем исправления и их позиции. Однако информация о положении пикселей отсутствует.

Есть исследование, в котором делается попытка решить эту проблему путем разделения исправлений на более мелкие. Более того, авторы этого исследования добились 81% точности в ImageNet. что примерно на 1,7% выше, чем у современных Visual Transformers с аналогичными вычислительными затратами. Свой фреймворк они называют Transformer-iN-Transformer(TNT). Вы можете увидеть их модель ниже и проверить их документ для получения подробной информации.

Давайте продолжим с Vision кодировщика Transformer…

  • Transformer Encoder включает в себя многоголовое самообслуживание (MSA), блоки MLP и Layernorm (LN).
  • Целью MSA является привлечение внимания между патчами, как в NLP. После каждого фрагмента изображения собственное внимание будет оценивать внимание между этим фрагментом и другими фрагментами изображения. Не забывайте, что мы называем этот механизм внимания многоголовым самовниманием, и каждая голова имеет один шаблон внимания.
  • Layernorm(LN) используется перед каждым блоком, а остаточные соединения применяются после каждого блока.
  • MLP используется для реализации заголовка классификации архитектуры. MLP состоит из одного скрытого слоя во время предварительной тренировки и одного линейного слоя во время точной настройки.

  • Вы можете увидеть, как работает механизм внимания, на изображениях выше. Помните пример, показывающий, как головки внимания работали в НЛП? Как и там, вы видите, что мы получаем после объединения всех голов внимания.

Вы можете найти последние разработки и модели команды Google Brain в их репозитории GitHub. Подробные реализации и пояснения по Vision Transformer можно найти здесь.

Каковы основные различия между CNN и Vision Transformers?

  • Преобразователи зрения имеют меньшее индуктивное смещение, чем CNN на изображении. В 2007 году Джеффри Хинтон сказал, что одна из основных проблем CNN связана с объединением уровней в сети. Эти слои вызывают потерю важной информации из части изображений, а также из всего изображения. Это также приводит к потере связи между различными частями изображения и затрудняет локальное понимание изображений. Однако слои внутреннего внимания Tтрансформатора являются глобальными, и это приносит им глобальное понимание.
  • Согласно официальному документу Vision Transformers, можно наблюдать различные сравнения между CNN и Vision Transformers.
  • CNN работает лучше с меньшим объемом данных по сравнению с Трансформерами, как вы можете видеть на графиках ниже. Основная причина связана с этим индуктивным уклоном. Однако, если трансформеры могут питаться большим количеством данных, то они принесут лучшие результаты при глобальном подходе наоборот, возможности Cnn ограничены из-за локальной чувствительности.

  • Кроме того, при сравнении эффективности памяти, особенно большие модели Vision Transformer более эффективно используют память, чем модели ResNet.

  • При сравнении производительности вычислений для разных архитектур Vision Transformers обычно превосходит ResNet с одинаковым вычислительным бюджетом. . Однако гибридная модель дает лучшие результаты для моделей меньшего размера.

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

  • Еще одно различие между этими двумя подходами заключается в том, что преобразователи зрения способны усваивать значимую информацию даже на самых нижних уровнях. CNN способны извлекать высокоуровневую информацию на последних уровнях. Эти различия можно наблюдать, сравнивая визуализированные карты внимания от Transformers и веса от CNN.

Трансформеры в обнаружении объектов

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

Трансформатор DEtection (DETR)

  • В 2020 году Facebook опубликовал DETR. Они выпустили первую структуру обнаружения объектов, используя Transformer в качестве центрального строительного блока конвейера обнаружения. В этом конвейере также использовались CNN. Кроме того, авторы этого исследования добились конкурентоспособных результатов по сравнению с Faster R-CNN.

  • DETR Facebook — хороший пример гибридной модели. Он состоит из CNN, трансформаторного кодера-декодера и сетей прямой связи.
  • Вместо того, чтобы разбивать входное изображение на фрагменты, магистраль CNN используется для извлечения функций изображения. Эти функции сглажены и объединены с позиционным кодированием.
  • Кодер преобразователя принимает этот набор функций изображения как последовательность. Как мы видели ранее, кодировщик Transformer включает в себя модуль самоконтроля с несколькими головками, нормализатор и сеть прямой связи. В этой сети также фиксированы позиционные кодировки.

  • Как вы можете видеть выше, благодаря механизму внимания, кодировщики Transformer могут разделять объекты даже в последнем слое кодировщика модели.
  • В части декодера механизм почти такой же, как и в оригинальном трансформере. Единственное отличие состоит в том, что эта модель декодирует N встраивания параллельно на каждом уровне декодера. Эти вложения поступают из части кодировщика и также называются «запросами объектов». Эти N объектов преобразуются во встраивание и отправляются в сети прямой связи.
  • Сети прямой связи используются для прогнозирования задач. Выходные данные вложений, поступающие от декодера Transformer, отправляются в эти сети. Затем они предсказывают либо обнаружение (класс и ограничивающую рамку), либо класс отсутствия объекта. Вы можете представить этот класс как фоновый класс в стандартных моделях обнаружения объектов.

Код и предварительно обученные модели можно найти в официальном репозитории GitHub этой работы.

Вы смотрите только на одну последовательность (YOLOS)

  • YOLOS — это оптимизированная версия Vision Transformer для задач обнаружения объектов. Поскольку этот подход не предназначен для высокопроизводительного детектора объектов. Его производительность является многообещающей для будущих разработок.

Архитектура YOLOS очень похожа на исходную схему Vision Transformer, как вы можете видеть ниже. Вы заметили, что есть Pat-Tok, PE и Det-Tok.

  • Pat-Tok определяет встраивание плоского патча изображения. «PE» представляет собой позиционные встраивания, а «Det-Tok» определяет обучаемое встраивание для привязки объекта.
  • В архитектуре первое различие между Vision Transformer и YOLOS заключается в наличии 100 произвольно инициализируемых обучаемых токенов обнаружения ('Det-Tok'). вместо использования обучаемого токена класса, который используется для классификации.
  • Основная часть архитектуры такая же, как у Vision Transformer encoder. Каждый уровень кодировщика Transformer включает в себя блок самоконтроля с несколькими головками, норму слоя и блок MLP, как мы говорили в предыдущих частях.
  • Головки MLP используются для реализации классификации и граничной рамки регрессии.

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

Итак, после всей этой информации, я хотел бы поделиться своими мыслями по этому вопросу…

Готовы ли Vision Transformers к производству?

Наверняка, конкретного ответа на этот вопрос нет. Методы решения любой задачи могут варьироваться в зависимости от требований проекта.

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

Итак, что касается различий между Трансформерами и CNN, какой из них следует выбрать для производства?

  • Поскольку Transformers требуют большого объема данных для высокой точности, процесс сбора данных может увеличить время проекта. В случае меньшего количества данных CNN обычно работают лучше, чем Transformers.
  • Время обучения Transformer выглядит меньше, чем CNN. В соответствии с их сравнением по вычислительной эффективности и точности, преобразователи могут быть выбраны в том случае, если время для обучения модели ограничено.
  • Механизм самоконтроля может сделать разработанную модель более осознанной. Поскольку очень трудно понять слабые стороны модели, разработанной CNN, можно визуализировать карты внимания, и они могут помочь разработчикам направлять как улучшить модель. Этот процесс сложнее для моделей на основе CNN.
  • И последнее, но не менее важное: развертывание выбранного подхода должно быть простым и быстрым, чтобы подготовиться к развертыванию (если у вас нет ограничений по времени, нет проблем). Несмотря на то, что существуют некоторые фреймворки для Transformers, подходы на основе CNN по-прежнему менее сложны для развертывания.

Как я сказал в начале, мы не можем сказать конкретные ответы на этот вопрос. Гибридные модели также хорошо разработаны и работают. Нынешнее положение этих подходов следует отслеживать последовательно. Прежде чем принимать решения, необходимо учитывать требования проекта и возможности различных подходов.

Поскольку мы живем в мире, где с каждым днем ​​появляется все больше и больше данных, а разработка никогда не останавливается, Transformers лучше подходят для развертывания в реальных приложениях…

Заключение

  • От классификации изображений до сегментации изображений трансформеры стали частью приложений компьютерного зрения. Мы можем добавить задачи распознавание действий, улучшение изображения, сверхразрешение или 3D-реконструкция в список Transformer.
  • Несомненно, мы увидим хорошо работающие подходы на основе Transformer в будущем визуальных технологий по мере поступления новых данных.
  • Я хотел бы завершить свой пост, упомянув самое решающее влияние этого подхода на меня. CNN всегда были в центре моих мыслей о будущем компьютерного зрения. Будучи студентом, возможно, моего кругозора в то время не хватало. Однако Трансформеры заставили меня понять/напомнить, что всегда будут появляться новые подходы.

Эта эволюция настолько захватывающая, и я так рад быть частью революции ИИ!

Обо мне

  • Я стажер инженера по машинному обучению в компании Neosperience. Я получаю степень магистра в области науки о данных в Universita di Pavia.
  • Neosperience раскрывает силу эмпатии с помощью программных решений, которые используют ИИ, чтобы позволить брендам понимать, привлекать и расширять свою клиентскую базу. Обратитесь на www.neosperience.com.