Статья: MLP-Mixer: полностью основанная на MLP архитектура для машинного зрения
Ссылка: https://arxiv.org/abs/2105.01601
Авторы: Илья Толстихин, Нил Хоулсби, Александр Колесников, Лукас Бейер, Сяохуа Чжай, Томас Унтертинер, Джессика Юнг, Андреас Штайнер, Даниэль Кейзерс, Якоб Ушкорейт, Марио Лучич, Алексей Досовицкий
Теги: машинное обучение, глубокое обучение, архитектуры MLP, архитектуры глубокого обучения
Код: https://github.com/google-research/vision_transformer
Разное. информация:

Какие?

Конкурентоспособная архитектура, полностью основанная на MLP (без извилин и внимания), которая хорошо работает в тестах классификации Image-net.

Почему?

Более простая архитектура с еще меньшим количеством предубеждений, чем у Vision Transformer[1]. Также сейчас в моде уникальные архитектуры глубокого обучения!

Как?

Архитектура

Входными данными для модели являются S квадратных фрагментов изображения, что аналогично преобразователю Vision. В отличие от ViT[1], где свертки могут использоваться для генерации патчей или представлений «токенов», в MLP-Mixer патчи линейно проецируются в измерения C с использованием одной и той же матрицы проекций. Таким образом, размер вложения будет SxC.

Основным вкладом статьи является слой Mixer, который состоит из 2 основных шагов. 1) MLP, применяемые для данного патча по каналам, известные как MLP с микшированием каналов (MLP1 на приведенном выше рисунке) 2) MLP, применяемые к заданному каналу через токены, которые известны как MLP с микшированием токенов (MLP2 на приведенном выше рисунке) . Обратите внимание, что для данного уровня микшера MLP1 и MLP2 инициализируются только один раз и совместно используются разными каналами/токенами. Кроме того, норма уровня применяется к каждому каналу перед обеими операциями MLP. Подобно слоям Self-Attention в Transformer, размер вывода такой же, как и размер ввода в слоях Mixer.

Каждый MLP представляет собой 2 полносвязных слоя с одной нелинейностью, GeLU[2]. (Немного мелочей, один из авторов утверждал, что использование GeLU не имеет особого значения, а с другими нелинейностями они не пробовали — ссылка)

D_s и D_c — это ширина скрытого слоя MLP со смешением маркеров и микшированием каналов соответственно. Поскольку оба эти параметра являются гиперпараметрами, сложность модели линейна в зависимости от размера входных данных. (В отличие от моделей, основанных на внимании, которые масштабируются квадратично.)

В некотором смысле часть микширования каналов Mixer-MLP можно рассматривать как тип Conv-net с фильтром 1x1. Часть микшера, смешивающая токены, фактически увеличивает рецептивное поле модели до полного изображения по сравнению с Conv-сетями, которые вначале имеют меньшие рецептивные поля.

Отправьте слои микшера, мы просто берем средний пул по каналам, который приводит к S-мерному встраиванию, которое далее передается в полностью подключенную сеть, чтобы дать окончательный прогноз класса!

Основные результаты

В таблице 1 авторы представляют результаты тонкой настройки на Imagenet и среднее значение по 5 наборам данных (ImageNet, CIFAR-10, CIFAR-100, Pets, Flowers) после предварительного обучения на ImageNet-21k и собственных наборах данных Google. Авторы также представляют скорость вывода каждой из моделей, а также продолжительность предобучения в масштабе 1000 дней TPUv3! 😱.

Синие точки обозначают модели с вниманием, желтые точки — модели с извилинами, а фиолетовые — модели микшера. Кажется, что результаты Mixer-MLP очень близки к результатам других стандартных моделей, если не лучше, но они быстрее, чем ViT, с точки зрения вывода, но им требуется более длительная предварительная подготовка, чтобы достичь аналогичного уровня производительности!

Подобно ViT, существует несколько моделей микшеров с возрастающей сложностью, большей шириной MLP и увеличивающимся количеством слоев микшера, как описано в таблице 2.

Кроме того, когда мы предварительно тренируемся с увеличением объема данных, после определенного момента производительность Mixer-MLP превосходит преобразователи Vision, как показано на рисунке 2.

Авторы также провели дополнительный эксперимент, изменив обучающие данные следующим образом (1) перетасовка патчей и перетасовка пикселей внутри по фиксированному шаблону (2) глобальное перетасовка всех пикселей (пример можно увидеть на рисунке 3 выше). Mixer-MLP, производительность в первом случае точно такая же, а во втором эксперименте производительность немного падает, хотя и меньше, чем в случае ResNet[3]! Автор объясняет это инвариантностью Mixer к порядку патчей и пикселей внутри них.

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

На рисунке 4 авторы визуализируют предварительно обученные скрытые блоки MLP, микширующие токены. Для лучшей визуализации авторы отсортировали все скрытые блоки в соответствии с эвристикой, которая сначала пытается отобразить низкочастотные фильтры. Авторы также разработали визуализацию таким образом, чтобы за каждой единицей следовала ее ближайшая инверсия.

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

Комментарии:

В целом это интересная статья с новой и простой архитектурой и удивительно хорошими результатами. Ниже приведены несколько вопросов, которые у меня возникли во время чтения, у меня нет на них ответов прямо сейчас, не стесняйтесь комментировать, если у вас есть какие-то мысли по ним.

  1. В эксперименте с перестановкой мне интересно, ведут ли ViT так же, как Mixers, поскольку шаблон постоянен в наборе данных.
  2. Интересно, каким было бы выступление без какой-либо предварительной подготовки.

Дайте мне знать, что вы думаете в комментариях!

Библиография:
[1] — Досовицкий, Алексей и др. «Изображение стоит 16x16 слов: трансформеры для распознавания изображений в масштабе». препринт arXiv arXiv:2010.11929 (2020).
[2] — Хендрикс, Дэн и Кевин Гимпел. «Линейные единицы ошибки Гаусса (gelus)». препринт arXiv arXiv:1606.08415 (2016).
[3] — He, Kaiming, et al. «Глубокое остаточное обучение для распознавания изображений». Материалы конференции IEEE по компьютерному зрению и распознаванию образов. 2016.