ENIGMA AI
ENIGMA AI

Как изображение превращается в последовательность, чтобы подать на вход энкодера?

встречается 1× Machine Learning middle architecture

Как ответить

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

Подробный процесс:

  1. Исходное изображение — тензор формы [C, H, W] (или [H, W, C]), где C — число каналов (например, 3 для RGB).
  2. Нарезка на патчи: разбиваем на квадратные патчи размера P × P. Количество патчей N = (H / P) × (W / P). Обычно H и W делятся на P нацело.
  3. Выравнивание (flatten): каждый патч размером P × P × C разворачиваем в одномерный вектор длины C × P².
  4. Линейная проекция: полученный вектор умножаем на обучаемую матрицу E размером (C × P²) × d, где d — размер эмбеддинга модели. Получаем вектор-токен длины d.
  5. Позиционное кодирование: добавляем к каждому вектору информацию о положении патча (sin/cos или обучаемые позиционные эмбеддинги). Без этого порядок для трансформера неразличим.
  6. Специальный токен (для классификации): в начало последовательности добавляем обучаемый вектор [CLS] — он потом передаётся в голову классификатора.

Итоговая последовательность: [CLS] + N патчей — это и подаётся на вход энкодеру. Для типичного ViT (например, ViT-B/16) P=16, H=W=224, N=196, d=768.

Если энкодер — RNN (редкий случай), вместо патчей обычно выравнивают пиксели или используют свёртки для уменьшения размера, а затем flatten строк или столбцов. Но для трансформеров патчевый подход — основной.

Ключевые тезисы

  • Изображение (C, H, W) превращается в последовательность N патчей через flatten и линейную проекцию.
  • Стандарт для ViT: патчи 16×16, затем эмбеддинг + позиционное кодирование.
  • Позиционное кодирование обязательно — без него модель не различает порядок патчей.
  • Добавление [CLS] токена для задач классификации (можно и среднее по всем токенам).

Что спросят дальше

  • — Какие проблемы возникают при нарезке изображения на патчи с точки зрения разрешения и перекрытия?
  • — Как обрабатываются изображения, размер которых не делится нацело на P (например, H=227)?
  • — В каких моделях вместо патчей используют фичи с CNN — в чём разница и когда такой подход оправдан?

Готовьтесь к собеседованию с ENIGMA AI

AI-суфлёр подсказывает ответы прямо на собеседовании в реальном времени — незаметно для интервьюера.

Скачать приложение