Изучение концепции и эксперименты с примерами приложений

За последние несколько лет в области ИИ произошел значительный прогресс. Генеративные модели оказались наиболее успешными в области машинного зрения, однако они созданы для узкоспециализированных задач. Эти специализированные модели обучения требуют реконструкции или переобучения всякий раз, когда задача меняется. Поэтому интерес к моделям обучения общего назначения возрастает. Одна из таких моделей называется Трансформеры. В этой статье мы кратко обсудим:

  • Что такое Трансформер?
  • Что такое преобразователь зрения (ViT)?
  • Каковы различные приложения ViTs?
  • Как можно использовать ViT для общего обучения?

1. Трансформеры текста

Концепция преобразователей возникла в приложениях обработки естественного языка (NLP), где задача состоит в том, чтобы понять текст и сделать осмысленные выводы. Модели-трансформеры достигли высокой производительности и стали стандартом де-факто в области НЛП благодаря своей простоте и универсальности.

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

Text is split into a set of words called tokens.
► Each token is converted into an encoded/embedded vector (e.g. word2vec)
► The position of the word in the sequence is encoded using position embedding [1] and integrated with the word embedding.
► The embeddings are fed into the Transformer encoder.
► The encoder has a Multi-Layer Self-Attention Network (MSP) which assigns weights to tokens based on their relative importance in the sentence, hence embedding the context.
► A Multi-layer Perceptron (MLP) network follows the MSP and encodes the output from the attention network.
► There are multiple MSP and MLP blocks along with Norm layers inside the encoder.
► A final MLP-Head Layer is added outside the encoder network which provides the logits. Logits can be converted to probabilities by applying an activation layer (e.g. softmax).

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

2. Преобразователи зрения (ViT)

Концепция Vision Transformer (ViT) является расширением исходной концепции Transformer, последний из которых описан ранее в этой статье как текстовый преобразователь. Это всего лишь приложение Transformer в области изображений с небольшими изменениями в реализации для обработки другой модальности данных. В частности, ViT использует разные методы для токенизации и встраивания. Однако общая архитектура остается прежней. Входное изображение разбивается на набор фрагментов изображения, называемых визуальными токенами. Визуальные маркеры встроены в набор закодированных векторов фиксированной размерности. Позиция патча в изображении встраивается вместе с закодированным вектором и подается в сеть кодировщика преобразователя, которая по сути такая же, как и та, которая отвечает за обработку ввода текста. Пример архитектуры ViT в действии можно увидеть на рисунке 3 [2].

В кодировщике ViT есть несколько блоков, и каждый блок состоит из трех основных элементов обработки: Норма уровня, Многоголовая сеть внимания (MSP) и Многоуровневый уровень. Персептроны (MLP). Layer Norm отслеживает процесс обучения и позволяет модели адаптироваться к изменениям обучающих изображений. MSP – это сеть, отвечающая за создание карт внимания из заданных встроенных визуальных токенов. Эти карты внимания помогают сети сосредоточиться на наиболее важных областях изображения, таких как объект(ы). Концепция карт внимания такая же, как и в традиционной литературе по компьютерному зрению (например, карты значимости и альфа-матирование).

MLP — это двухуровневая классификационная сеть с GELU (линейная единица гауссовой ошибки) в конце. Последний блок MLP, также называемый головкой MLP, используется как выход преобразователя. Приложение softmax на этом выходе может предоставлять метки классификации (т. е. если приложение является классификацией изображений).

3. Приложения

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

3.1. Классификация изображений (Изображение -> Метка)

Задача классификации изображений является наиболее распространенной задачей в зрении. Современные методы классификации изображений основаны на методах CNN (Convolutional Neural Networks). ViT не обеспечивают сравнимой производительности на малых и средних наборах данных, однако они превзошли CNN на очень больших наборах данных [3]. Это связано с тем, что CNN кодируют локальную информацию в изображении более эффективно, чем ViT, благодаря применению локально ограниченных рецептивных полей.

Давайте попробуем поэкспериментировать с ViT. Сначала мы загружаем предварительно обученную модель, которая была обучена в сети изображений, а затем применяем ее к набору случайных изображений, собранных из Интернета. Мы выбираем пять наиболее вероятных меток для данного изображения. Результат показан на рис. 4. Результаты могут быть не идеальными; однако они очень хороши, учитывая, что сеть не обучалась на этих изображениях.

3.2. Подпись к изображению (Изображение -> Предложение)

Более сложная форма категоризации изображений может быть достигнута путем создания подписи, описывающей содержимое изображения, вместо метки из одного слова. Это стало возможным благодаря использованию ViTs. ViTs изучают общее представление заданной модальности данных вместо грубого набора меток, поэтому можно создать описательный текст для данного изображения. Мы будем использовать реализацию ViT[4], обученную на наборе данных COCO. Результаты такой подписи можно увидеть на рисунке 5.

3.3. Предварительное обучение контрастному языку и изображению (изображение ‹-> текстовый фрагмент)

Более продвинутое применение ViTs — это изучение ассоциаций, существующих между изображением и фрагментом текста. Это приложение, где требуется истинная способность к обобщению, поскольку оно требует абстрактного представления как текста, так и изображения. Этого можно достичь, обучив два отдельных кодировщика преобразования для фрагмента текста и изображения. Затем закодированное изображение, а также текстовые элементы можно сравнить на предмет их соответствующего сходства путем построения матрицы косинусного сходства. Соответствующая реализация такой модели преобразователя предлагается в CLIP (Contrastive Language-Image Pre-Training) [5]. Чтобы лучше понять это, мы берем пять образцов изображений и пишем небольшой текстовый фрагмент для каждого изображения. Затем текстовые фрагменты, а также изображения кодируются в набор векторов признаков текста и изображения соответственно с использованием предварительно обученной модели ViT. Мы вычисляем косинусное сходство между текстом и признаками изображения. В результате получается результат, как показано на рисунке 7. Как видно, сходство среди правильных пар изображение-текст является самым высоким. Этот тип обучения является относительно более общим и представляет собой форму трансферного обучения.

4. Заключительные замечания

В этой статье мы объяснили концепцию преобразователей текста и преобразователей изображений. Затем мы изучили некоторые из основных приложений моделей трансформаторов, создав и реализовав практические примеры. Если вы хотите углубиться и получить практический код, вы можете получить доступ к соответствующему блокноту Python и вспомогательному коду из репозитория git. https://github.com/azad-academy/vision-transformers

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

5. Ссылки

[1] Мерин Саид, Нежное введение в позиционное кодирование в моделях трансформаторов, https://machinelearningmastery.com/a-gentle-introduction-to-positional-encoding-in-transformer-models-part-1/, 2022 г.

[2] Алексей Досовицкий, Лукас Бейер, Александр Колесников, Дирк Вайссенборн, Сяохуа Чжай, Томас Унтертинер, Мостафа Дегани, Матиас Миндерер, Георг Хейгольд, Сильвен Гелли, Якоб Ушкорейт, Нил Хоулсби, Изображение стоит 16x16 слов: Трансформеры для Распознавание изображений в масштабе, ICLR, 2021

[3] Xiangning Chen, Cho-Jui Hsieh, Boqing Gong, Когда Vision Transformers превосходит ResNet без предварительной подготовки или сильного увеличения данных, 2022 г.

[4] Саахил и др., CaTr: Подписи к изображениям с помощью трансформеров, https://github.com/saahiluppal/catr, 2020 г.

[5] Алек Рэдфорд, Чон Ук Ким, Крис Халласи, Адитья Рамеш, Габриэль Го, Сандини Агарвал, Гириш Шастри, Аманда Аскелл, Памела Мишкин, Джек Кларк, Гретхен Крюгер, Илья Суцкевер, Изучение переносимых визуальных моделей под контролем естественного языка, 2021 г.