Толковый словарь по нейросетям и искусственному интеллекту
Визуальный трансформер
Vision Transformer
ViT
Категория термина
Vision Transformer (ViT) — это архитектура нейросети для обработки изображений, основанная на принципах трансформеров, изначально разработанных для работы с последовательностями в NLP. Вместо традиционных свёрточных слоёв, ViT разбивает изображение на фиксированные патчи, кодирует их и обрабатывает через слои self-attention, что позволяет моделировать глобальные зависимости между различными частями изображения.
🧠 Механизм работы:
- Изображение делится на небольшие патчи (например, 16x16 пикселей), которые выравниваются в одномерные векторы.
- Каждому патчу добавляется позиционное кодирование для сохранения информации о расположении в изображении.
- Векторы патчей передаются через несколько слоёв transformer encoder, где используется self-attention для моделирования взаимосвязей между патчами.
- Выходной токен CLS (classification token) агрегирует информацию обо всех патчах и используется для задач классификации или других downstream задач.
- При необходимости можно применять дополнительно декодеры или head для генерации изображений, сегментации или других задач.
🔑 Основные особенности:
- Self-Attention
- Позволяет учитывать глобальные взаимосвязи между всеми частями изображения.
- Патчевое представление
- Изображение представлено как последовательность патчей, аналогично токенам в NLP.
- Позиционное кодирование
- Сохраняет пространственную структуру изображения внутри последовательности патчей.
- Масштабируемость
- Позволяет обучать большие модели на больших датасетах, улучшая точность на сложных задачах.
📌 Примеры применения:
- Классификация изображений
- Распознавание объектов на ImageNet, CIFAR и других датасетах.
- Сегментация изображений
- ViT может использоваться в качестве кодера для задач сегментации (например, в модели SegFormer).
- Обнаружение объектов
- ViT интегрируется с detection head для задач object detection.
- Multimodal модели
- Используется как image encoder в системах типа CLIP для объединения изображений и текста.
⚖️ Преимущества и недостатки:
Преимущества:- Эффективно моделирует глобальные зависимости в изображениях.
- Масштабируемая архитектура, хорошо работает на больших датасетах.
- Универсальная: может применяться для классификации, сегментации, генерации и мультимодальных задач.
- Требует больших обучающих данных для достижения высокой точности.
- Менее эффективен на малых датасетах без предварительного обучения или аугментации.
- Высокие вычислительные требования при увеличении числа патчей и слоёв.
🧠 Связанные понятия:
- Transformer Encoder — основной блок ViT, использующий self-attention для обработки патчей.
- Self-Attention — механизм для учета взаимосвязей между всеми элементами последовательности.
- Patch Embedding — разбиение изображения на патчи и кодирование их в векторы.
- CLIP — мультимодальная модель, где ViT используется как image encoder.