Авторы: Ксения Рябинова, Марк Страхов

Редактура: Тимур Фатыхов

Spatial attention

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

Существует огромное количество вариантов пространственного механизма внимания, но все они так или иначе могут быть отнесены к одной из следующих категорий:

  1. Основанные на RNN: RAM, GlimpseNet, DRAW, etc.;
  2. Предсказывающие релевантные регионы явно: STN, DCN, DCNv2, etc.;
  3. Основанные на self-attention механизме:
    1. Эффективный self-attention: CCNet, EMANet, etc.;
    2. Локальный self-attention: SASA, SAN, etc.;
    3. Визуальные трансформеры: DETR, ViT, etc.

Обзор всевозможных групп и подгрупп не представляется возможным, поэтому мы остановимся на самом интересном и хайповом варианте — на визуальных трансформерах. Они основаны на механизме self-attention.

Подробный разбор базового визуального трансформера мы представим в следующей статье, посвященной архитектуре ViT.

Self-attention

Self-attention в компьютерном зрении имеет много различных вариантов реализации, но основная его задача — выделение важных областей вдоль осей H и W на изображении или карте признаков. Поэтому его и причисляют к пространственному механизму внимания. В общем случае self-attention в компьютерном зрении задается следующим образом:

Представим — у нас есть изображение или карта признаков $F \in \R^{C \times H \times W}$. Тогда self-attention сначала вычисляет некоторые сущности $Q-queries, K-keys, V-values$, такие, что $Q, K, V \in \R^{C\rq \times N}, N = H \times W$ (о них мы вам рассказывали в предыдущих постах) с помощью линейных проекций или операций решейпинга. А после этого производит вычисление самих attention-score’ов и взвешивание:

$$ A = (a)_{i,j} = Softmax(QK^{T})\\ Y = AV $$

где $A \in \R^{N \times N}$ — матрица attention-score’ов, в которой $a_{i,j}$ некоторым образом характеризует важность взаимосвязи между элементом $i$ и элементом $j$. Элементами $i$ и $j$ могут быть совершенно разные вещи:

Разные реализации механизма self-attention подразумевают разные сущности, поверх которых строятся векторы $Q, K, V$. Поэтому обязательно обращайте внимание в статьях на то, для каких сущностей считаются attention-score’ы.