Толковый словарь по нейросетям и искусственному интеллекту
Патчевое кодирование
Patch Embedding
Категория термина
Патчевое кодирование (Patch Embedding) — это процесс разбиения изображения на небольшие непересекающиеся патчи и преобразования каждого патча в векторное представление для подачи в трансформер. В Vision Transformer (ViT) патчевое кодирование заменяет традиционные свёрточные слои, позволяя модели работать с изображением как с последовательностью токенов, аналогично словам в NLP.
🧠 Механизм работы:
- Изображение делится на фиксированные патчи (например, 16x16 пикселей).
- Каждый патч преобразуется в одномерный вектор с помощью линейного слоя (fully connected layer) или свёрточной операции.
- К каждому вектору добавляется позиционное кодирование, сохраняющее информацию о расположении патча в изображении.
- Полученные векторы патчей формируют последовательность токенов, которая подаётся на вход трансформера.
🔑 Основные особенности:
- Замена свёрток
- Патчевое кодирование позволяет обойтись без традиционных CNN, формируя последовательность для трансформера.
- Фиксированная размерность
- Каждый патч кодируется в вектор одинаковой размерности, что упрощает обработку последовательности.
- Позиционное кодирование
- Добавляет информацию о пространственном расположении патча для сохранения структуры изображения.
📌 Примеры применения:
- Vision Transformer
- Используется для кодирования изображений в патчах перед подачей на transformer encoder.
- Image Classification
- Патчевое кодирование позволяет получать эмбеддинги изображений для классификации объектов.
- Segmentation и Detection
- Используется как предварительная обработка перед сегментационными или детекционными head.
⚖️ Преимущества и недостатки:
Преимущества:- Позволяет эффективно представлять изображение в виде последовательности токенов для трансформеров.
- Сохраняет глобальные и локальные зависимости через self-attention.
- Гибкость: одинаковый подход работает для изображений разного размера при соответствующей настройке патчей.
- Может теряться часть локальной информации при больших патчах.
- Высокие вычислительные требования при малых патчах и больших изображениях.
- Потребность в позиционном кодировании для сохранения пространственной структуры.
🧠 Связанные понятия:
- Vision Transformer (ViT) — архитектура, использующая patch embedding для обработки изображений.
- Self-Attention — механизм, применяемый к последовательности патчей для моделирования взаимосвязей.
- Positional Encoding — кодирование позиции патча для сохранения структуры изображения.
- Tokenization — аналогичный процесс в NLP, где слова превращаются в токены.