Два года назад, когда я впервые изучал статью «Преобразователь зрения» [1], мне было не очень ясно, как визуализируется модельное внимание. Сегодня, когда я в очередной раз посетил ViT, я попытался разобраться, как работает эта визуализация.
В основном я учился из хорошего блога [2] и иллюстративного блокнота Jupyter [3].
Для начала давайте суммируем некоторые основные свойства механизма визуализации внимания ViT:
- единицей внимания является токен (патч изображения)
- визуализация выполняется путем вычисления яркости 0–1 (т. е. веса внимания) для каждого токена.
- внимание можно визуализировать для любой головы (внимание) на любом уровне
Основное задействованное вычисление — Attention Rollout [2], в котором поток внимания в ViT оценивается на следующих этапах:
- передать интересующее изображение в ViT и получить набор слоев внимания [A^l_h]_l,h, каждый слой l имеет hголовок внимания и каждый A^l_h представляет собой матрицу (N+1) на (N+1) (N — количество токенов исправления изображения + 1 токен CLS)
- агрегировать (можно сделать со средним, максимальным, минимальным...) вниманием над головами, чтобы [A^l_h] уменьшилось до [A^l]
- вычислить развертывание внимания (оценив поток внимания в сети ViT) на уровне l с помощью следующего итеративного уравнения:
5. Убираем 1-й столбец из A^l_{rollout} [обратите внимание, что форма этого столбца будет (N+1)], которая оценивает веса собственного внимания токена CLS до все токены в последовательности. Эти веса могут отражать общее внимание модели, поскольку представление токена CLS является тем, в соответствии с которым модель делает прогнозы для последующих задач.
6. Наконец, мы нормализуем веса внимания в диапазоне от 0 до 1, изменяем изображение обратно в исходную 2D-форму [не забудьте сначала убрать внимание маркера CLS] и используем эти веса как легкость изображения, чтобы указать внимание как своеобразная карта значимости.
Вот оно! Надеюсь, это будет полезно для понимания.
Вышеприведенный алгоритм четко закодирован в 4-м блоке блокнота [3] с наглядным примером (я очень ценю их работу. Это очень помогает мне в обучении).
Ссылка: