Введение

Трансформеры показали себя хорошо в компьютерном зрении, а также в обработке естественного языка. Это стало архитектурой по умолчанию в НЛП. Одной из основных концепций, используемых трансформерами, является механизм самоконтроля с несколькими головками, который агрегирует пространственную информацию по токенам. В статье [1] предлагается более простая сетевая архитектура, gMLP, MLP с вентилированием, чтобы показать, что она может работать так же хорошо, как преобразователи в ключевых задачах языка и зрения. Таким образом, мы задаемся вопросом, является ли внимание к себе в «Трансформерах» существенным для замечательной эффективности трансформеров.

Фон

Ключевым компонентом gMLP является модуль пространственного стробирования (SGU). Это напоминает закрытые линейные блоки. Gated Linear Unit или GLU вычисляет:

ГЛУ(а,б)=а⊗σ(б)

Он используется в архитектурах обработки естественного языка, например, в Gated CNN, потому что здесь b — это ворота, которые контролируют, какая информация от a передается на следующий уровень. Интуитивно понятно, что для задачи языкового моделирования механизм стробирования позволяет выбирать слова или признаки, важные для предсказания следующего слова. GLU также имеет нелинейные возможности, но имеет линейный путь для градиента, что уменьшает проблему исчезающего градиента. SGU также связан с блоками Squeeze и Excite с точки зрения поэлементного умножения. Использование этих контрольных ворот делает возможной замену само-внимания. Однако SGU отличается от блоков SE тем, что SGU вообще не содержит межканальных проекций.

Архитектура

gMLP состоит из L блоков показанного выше блока. При заданных входных данных X и U, V, где U, V определяют линейные проекции вдоль размера канала.

  1. Нормативный слой: X -> норма X
  2. Проекция канала: Z = норма X * U
  3. Активация GeLU: Z = σ (норма X * U)
  4. СГУ: ~ Z = s(Z)
  5. Проекция канала: Y = ~ ZV

Пространственный блок ворот:

Ключевое отличие SGU заключается в том, что стробирование вычисляется на основе проекции на пространственное (перекрестное) измерение, а не на канальное (скрытое) измерение. Это отличается от ResMLP и MLP Mixer, которые смешивают как каналы, так и токены.

Вход в SGU дается:

Выход линейного стробирования:

где символ (⊙) обозначает поэлементное умножение

Когда s является отображением идентичности, приведенное выше преобразование вырождается в обычный FFN, где отдельные токены обрабатываются независимо без какой-либо связи между токенами. Тем самым показывая, что он работает лучше и сокращает разрыв в производительности с вниманием к себе.

SGU против CNN

Пространственная проекция в SGU теоретически может научиться выражать поверхностные свертки по глубине — в отличие от типичных сверток по глубине с фильтрами, специфичными для канала, SGU изучает только одно преобразование, совместно используемое для каналов.

Контрольный показатель и результаты

Заключение

Интересно видеть, что gMLP сравнимы с DeiT, а именно с ViT, обученным с использованием улучшенной регуляризации. Результаты показывают, что модели без самоконтроля могут быть такими же эффективными с точки зрения данных, как трансформеры для классификации изображений. На самом деле, когда модели должным образом упорядочены, их точность лучше коррелирует с возможностями, а не с наличием внимания к себе. Более того, соотношение параметров точности и FLOP для gMLP превосходит все одновременно предлагаемые архитектуры, подобные MLP, что мы связываем с эффективностью нашего модуля пространственного стробирования.

Рекомендации

[1] Обратите внимание на MLP: https://arxiv.org/pdf/2105.08050.pdf