Компьютерное зрение

Представляем Vision Transformers: революция в компьютерном зрении за пределами свертки

Что такое преобразователь зрения?

Vision Transformer (ViT) — это революционная архитектура нейронной сети, которая переосмысливает то, как мы обрабатываем и понимаем изображения. Модель Vision Transformer (ViT) была представлена ​​в 2021 году в исследовательской статье конференции под названием Изображение стоит 16*16 слов: трансформеры для распознавания изображений в масштабе, опубликованной на ICLR 2021. Вдохновленный успехом Трансформеры в обработка естественного языка, ViT представляет новый способ анализа изображений, разделяя их на более мелкие фрагменты и используя механизмы внутреннего внимания. Это позволяет модели фиксировать как локальные, так и глобальные отношения в изображениях, что приводит к впечатляющей производительности в различных задачах компьютерного зрения.

Мы показываем, что эта зависимость от CNN не является необходимой, и чистый преобразователь, применяемый непосредственно к последовательностям фрагментов изображения, может очень хорошо выполнять задачи классификации изображений. При предварительном обучении на больших объемах данных и переносе на несколько тестов распознавания изображений среднего или малого размера (ImageNet, CIFAR-100, VTAB и т. д.) Vision Transformer (ViT) достигает отличных результатов по сравнению с современными решениями. художественные сверточные сети, требуя при этом значительно меньше вычислительных ресурсов для обучения [1]

Vision Transformers против CNN?

ViT отличается от сверточных нейронных сетей (CNN) несколькими ключевыми аспектами:

  • Входное представление: в то время как CNN обрабатывают необработанные значения пикселей напрямую, ViT делит входное изображение на патчи и преобразует их в токены.
  • Механизм обработки: CNN используют сверточные слои и слои объединения для иерархического захвата признаков в разных пространственных масштабах. ViT использует механизмы самоконтроля для рассмотрения взаимосвязей между всеми исправлениями.
  • Глобальный контекст: ViT по своей сути фиксирует глобальный контекст посредством самоконтроля, что помогает распознавать отношения между удаленными участками. CNN полагаются на слои пула для грубой глобальной информации.
  • Эффективность данных: CNN часто требуют больших объемов помеченных данных для обучения, тогда как ViT может извлечь выгоду из предварительного обучения на больших наборах данных, а затем тонкой настройки для конкретных задач.

Как работает Vision Transformer?

Работу Vision Transformer можно разбить на несколько этапов, каждый из которых играет решающую роль в его общем функционировании:

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

2. Позиционное встраивание:

  • Поскольку Vision Transformer не обладает каким-либо внутренним пониманием пространственных отношений, информация о местоположении должна быть предоставлена ​​явно. Это делается путем добавления позиционных кодировок к встраиваниям патчей.
  • Позиционное кодирование помогает модели различать разные позиции на изображении и фиксировать пространственные отношения. Они обычно изучаются и добавляются к встраиваниям патчей на этапе ввода.

3. Слои кодировщика:

  • Ядро Vision Transformer состоит из нескольких слоев кодировщика, каждый из которых содержит два основных подуровня: многоголовое самовнимание и нейронные сети с прямой связью.

4. Самостоятельное внимание с несколькими головками:

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

5. Нейронные сети с прямой связью:

  • После само-внимания выходные данные механизма само-внимания каждого патча передаются через нейронную сеть с прямой связью.
  • Эта сеть обычно состоит из полностью подключенного слоя, за которым следует функция активации, такая как ReLU (выпрямленная линейная единица).
  • Цель сети прямой связи состоит в том, чтобы ввести нелинейность и позволить модели изучить сложные отношения между патчами.

6. Нормализация слоя и остаточные соединения:

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

Применения Vision Transformers

  • Классификация изображений: классификация изображений по предопределенным категориям
  • Обнаружение объектов: идентификация и локализация объектов на изображениях
  • Семантическая сегментация: присвоение метки каждому пикселю изображения для определения границ объекта.
  • Генерация изображений: создание новых изображений на основе заданного контекста или описания.

Ограничения трансформеров Vision

  • Большие наборы данных: для эффективного обучения Vision Transformers часто требуются большие наборы данных, которые могут быть недоступны для всех доменов.
  • Требования к вычислительным ресурсам: обучение ViT может потребовать значительных вычислительных ресурсов из-за механизмов самоконтроля.
  • Пространственная информация: последовательная обработка ViT может не так эффективно фиксировать мелкие пространственные закономерности, как CNN, для таких задач, как сегментация.

Ссылки

[1] https://arxiv.org/abs/2010.11929

[2] Vision Transformers (ViT) в распознавании изображений — Руководство 2023 г.
Подробнее читайте на странице: https://viso.ai/deep-learning/vision-transformer-vit/

[3] https://www.v7labs.com/blog/vision-transformer-guide