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

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

Но недавно в этой области произошла невероятная революция благодаря архитектуре Vision Transformers (ViT), которая с помощью механизма самовнимания доказала, что дает отличные результаты во многих задачах.

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

Хотя трансформаторы оказались отличной заменой CNN, существует важное ограничение, которое делает их применение довольно сложным, а именно необходимость в больших наборах данных. Фактически, CNN могут обучаться даже при наличии достаточно небольшого количества данных, в основном благодаря наличию индуктивных предубеждений [1, 8]. Это как предложения, которые позволяют моделям быстрее учиться и лучше обобщать. В частности, у CNN есть два предубеждения, которые напрямую связаны с самим функционированием архитектуры, а именно:

  • Соседние пиксели изображения связаны друг с другом;
  • Различные части изображения должны обрабатываться одинаково независимо от их абсолютного положения.

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

Но разве нет способа получить максимальную отдачу от обеих архитектур? К счастью для нас, эти две архитектуры, основанные на двух очень разных концепциях, могут быть объединены множеством разных способов для получения чего-то. способен использовать положительные стороны обоих!

Использование CNN в качестве экстракторов патчей

Первый возможный подход состоит в изменении способа извлечения патчей перед их передачей в качестве входных данных в Vision Transformer. Эти патчи обычно получаются путем разделения входного изображения на множество мелких частей.

Чтобы понять, как перейти от изображения к заплатам через сверточную сеть, достаточно понаблюдать за ее внутренним функционированием:

Когда большое изображение подается на вход CNN через сверточные слои, оно преобразуется из трехканального изображения RGB в N-канальное изображение. При этом резко уменьшается его размер и трансформируется само содержимое изображения.
Если в конце сверточного процесса N-канальное изображение рассматривается как набор из N маленьких изображений, мы получили необходимые патчи для Vision Transformer. Таким образом, новая архитектура возможного преобразователя сверточного видения будет иметь следующую структуру:

Этот метод оказался особенно эффективным во многих случаях, а также может применяться с использованием предварительно обученных сверточных сетей, таких как EfficientNet в качестве экстрактора патчей. Возможное применение этого подхода было применено мной и исследователями из CNR в Пизе для обнаружения глубоких подделок видео [2], если вы хотите узнать о нем больше, щелкните здесь.

От самовнимания к закрытому позиционному самовнушению (GPSA)

Чтобы иметь возможность использовать сверточные сети в трансформаторах, используется интуиция, согласно которой слои самовнимания могут работать как сверточные слои. Ранее мы указывали, что трансформаторы Vision не имеют индуктивных смещений. Поэтому цель исследователей Facebook состояла в том, чтобы изменить архитектуру таким образом, чтобы ввести мягкое сверточное индуктивное смещение. Новая сеть должна иметь возможность действовать как сверточная сеть, если это необходимо.

Для достижения этой цели было введено закрытое позиционное самовнимание (GPSA) [1], форма позиционного самовнимания с дополнительным параметром лямбда. Этот параметр используется для уравновешивания работы слоя как сверточного слоя или как классического самовнимания. Затем во время обучения сеть будет откалибровать этот параметр, и, если необходимо, в конце процесса некоторые из этих слоев будут действовать как сверточные слои.

В дополнение к слоям GPSA, используемым при возникновении локальной информации на входе, существуют также классические слои самовнимания, образующие нелокальную часть сети. Эта архитектура называется Convolutional Vision Transformer (ConViT).

CMT: сверточные нейронные сети встречаются с преобразователями зрения

Еще одно недавнее предложение поступило от лабораторий Huawei, которые представили даже более продвинутую архитектуру, чем те, что видели до сих пор, представляя то, что они называют блоком CMT [3]. Многие из этих блоков используются в новой архитектуре и смешивают механизм самовнимания с механизмом свертки, а также вносят некоторые оптимизации производительности.

Каждый блок CMT состоит из трех основных частей:

  • Блок локального восприятия: используется для преодоления ограничений, связанных с классическим позиционным встраиванием и неспособностью классических преобразователей зрения фиксировать локальные взаимосвязи и структурированную информацию в отдельных патчах. Блок местного восприятия (LPU) извлекает локальную информацию посредством простой свертки по глубине.
  • Облегченное самовнимание с несколькими головками: чтобы уменьшить вычислительную нагрузку при вычислении внимания, с помощью этого компонента пространственный размер матриц K и V уменьшается с помощью свертки по глубине k x k с шагом k. Таким образом, количество вычислений самовнимания сокращается за счет работы с меньшими матрицами, полученными в результате процесса свертки;
  • Инвертированная остаточная сеть прямой связи: это последний слой каждого блока, который заменяет классический многослойный персептрон трансформеров видения на слой расширения, за которым следует свертка по глубине и слой проекции. .

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

Выводы

Идея объединения сверточных сетей и Vision Transformers кажется не только осуществимой во многих отношениях, но и невероятно эффективной. На сегодняшний день эти варианты достигли отличных результатов по ключевым наборам данных, таким как ImageNet, и CMT в настоящее время является самой современной сетью с точки зрения точности этого набора данных. Как будто этого было недостаточно, проведенные эксперименты показывают, что эти сети также значительно легче и меньше, чем как классические подходы, основанные исключительно на сверточных сетях, так и те, которые основаны на Vision Transformers.

Многие смотрели на Vision Transformers как на преемника сверточных нейронных сетей, но сегодня кажется, что огромная сила заключается в сочетании этих двух подходов.

Мы с уверенностью можем сказать: «Единство - это сила!».

Ссылки и идеи

[1] Д’Асколи и др.. « ConViT: улучшение преобразователей зрения с помощью мягких сверточных индуктивных смещений »

[2] Коккомини и др.. « Объединение преобразователей EfficientNet и Vision для обнаружения глубоких подделок видео »

[3] Го и др.. « CMT: сверточные нейронные сети встречаются с трансформаторами зрения »

[4] Давиде Коккомини. « О трансформерах, таймформерах и внимании »

[5] Давиде Коккомини. « На DINO, самодистилляция без этикеток »

[6] Давиде Коккомини. « Неужели в Трансформерах вам действительно нужно внимание? »

[7] Луи Бушар. « Заменят ли трансформаторы CNN в компьютерном зрении? »

[8] Виктор Перес. « Трансформаторы компьютерного зрения: Прощай, свертки! »