С момента появления Трансформаторных сетей механизм внимания в глубоком обучении пользуется большой популярностью как в сообществах машинного перевода, так и в сообществах НЛП. Однако в компьютерном зрении сверточные нейронные сети (CNN) по-прежнему являются нормой, и самовнимание только начало постепенно проникать в основную часть исследований, либо дополняя существующие архитектуры CNN, либо полностью заменяя их. В этом посте я постараюсь осветить последние достижения в области визуального самовнимания и выделить его возможные преимущества. Для этой задачи я представлю три разных документа (включая тот, который был принят для предстоящей конференции NeurIPS 2019), которые, на мой взгляд, очень хорошо иллюстрируют современное состояние самовнимания в компьютерном зрении.

В первой статье, которую я представлю, Гуан и др. [1] исходит из сообщества анализа медицинских изображений, где я чувствую себя как дома. В отличие от естественных изображений (фотографий) медицинские изображения часто очень похожи по внешнему виду. Они приобретаются с использованием аналогичных параметров приобретения из стандартных позиций. Для радиологов опыт чтения изображений в основном связан с тем, что они знают, где именно искать, чтобы найти определенную патологию. Поэтому неудивительно, что внимание сыграло большую роль в анализе медицинских изображений даже раньше, чем в других областях исследований.

В данной статье делается попытка повысить эффективность автоматической классификации заболеваний грудной клетки на рентгеновских снимках грудной клетки. Ранее предлагались сети, которые обнаруживают и классифицируют патологии на рентгеновском снимке грудной клетки, просто глядя на глобальное изображение. Таким образом, многозначная классификация выполняется либо с использованием двоичной перекрестной энтропии (BCE) в качестве функции потерь, либо с помощью какого-либо другого механизма маркировки (например, структура кодировщика-декодера, использующая LSTM в качестве декодера для фиксируют взаимозависимости между метками [2]). Проблема с использованием всего рентгеновского изображения для классификации заключается в том, что на медицинских изображениях область поражения может быть очень маленькой по сравнению со всем изображением и даже может располагаться где-то вдоль границ, вызывая большое количество шума для классификатора и снижение точности обнаружения. Кроме того, рентгеновские снимки грудной клетки часто не совмещены (например, в примере на Рисунке 1, второй ряд). Это несовпадение приводит к появлению неправильных границ вокруг изображения и также может отрицательно повлиять на классификацию.

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

Сеть состоит из трех филиалов:

  • Глобальная ветвь, обрабатывающая все изображение и определяющая рентабельность инвестиций при кадрировании,
  • Местное отделение, демонстрирующее механизм внимания и обрабатывающее обрезанное изображение,
  • Ветвь слияния, объединяющая выходные данные глобальной и локальной ветвей и выполняющая окончательную классификацию с использованием плотных слоев.

Все ветви являются классификационными сетями, которые в конце выполняют многоклассовую классификацию (как показано на рисунке 2) для прогнозирования наличия патологий. Помимо классификации, глобальная ветвь используется для создания тепловой карты, определяющей обрезанную область. Тепловая карта создается путем подсчета максимальных значений по каналам на определенном высокоуровневом слое. Затем создается маска того же размера, что и тепловая карта. Если значение развернутой карты интенсивности для каждого канала в определенной позиции (x, y) больше некоторого порога, маске назначается 1 в этой позиции. В противном случае маска будет иметь значение 0. После этого область обрезки определяется так, чтобы все точки со значением маски 1 находились внутри области обрезки. Затем обрезанная часть изображения пропускается через локальную ветку. Кроме того, выходы обеих ветвей объединены в ветви слияния для выполнения дополнительной классификации.

Сеть обучается в три этапа:

  • Тонкая настройка глобальной ветки, предварительно обученной ImageNet.
  • Вывод маски для получения обрезанных изображений и выполнения точной настройки локальной ветви. Таким образом, веса в глобальной ветви фиксируются.
  • Объединение выходных данных глобальной и локальной ветвей и точная настройка ветви слияния с замораживанием весов других ветвей.

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

Чтобы понять, что делает модель с точки зрения внимания, мы должны сначала узнать разницу между мягким и жестким вниманием. По сути, внимание перевешивает определенные характеристики сети в соответствии с некоторыми внешними или внутренними (самовнимание) весами. Таким образом, мягкое внимание позволяет этим весам быть непрерывными, в то время как жесткое внимание требует, чтобы они были двоичными, то есть 0 или 1. Эта модель является примером жесткого внимания, потому что она вырезает определенную часть изображения. по существу, повторное взвешивание оригинала так, чтобы обрезанная часть имела вес 1, а остальная часть - 0.

Главный недостаток жесткого внимания состоит в том, что оно не дифференцируемо и не может быть обучено от начала до конца. Вместо этого авторы используют активацию определенного уровня для определения рентабельности инвестиций и обучения сети сложному многоступенчатому процессу. Чтобы тренировать врата внимания, мы должны использовать мягкое внимание (например, с помощью сигмоида или softmax). Далее мы рассмотрим некоторые модели с мягким вниманием.

Сети сжатия и возбуждения

Вместо того, чтобы уделять пристальное внимание и перекалибровать веса с точки зрения обрезки карт признаков, Hu et al. [3] рассмотрели изменение веса откликов по каналам на определенном уровне CNN с помощью мягкого самовнимания для моделирования взаимозависимостей между каналами сверточных функций. С этой целью авторы вводят строительный блок сжатия и возбуждения (см. Рисунок 3).

Блок Squeeze-And-Excitation работает следующим образом: для любого преобразования функций F_tr из X в U (например, свертка) , есть преобразование F_sq, которое объединяет отклики глобальных объектов по пространственным экстентам (H, W). Это операция сжатия. За операцией сжатия следует операция возбуждения F_ex, которая представляет собой операцию самовыравнивания, которая создает отклик веса для каждого канала. Выходной сигнал F_tr впоследствии умножается по каналам на результат возбуждения (это обозначено как F_scale на рисунке 3). Математическое описание операции сжатия:

Таким образом, u_c являются выходами операции F_tr. Операция сжатия создает глобальное вложение с использованием глобального среднего пула. Также можно использовать глобальный максимальный пул, хотя авторы отмечают, что средний пул немного увеличивает общую производительность. Блок возбуждения, с другой стороны, описывается

Таким образом, возбуждение умножает выходные данные блока сжатия на полученные веса W1, передает выходные данные через функцию ReLU δ, многократно умножает выходные данные на другой набор весов W2 и использует сигмовидную функцию в конце, чтобы гарантировать, что результирующие веса канала будут положительными. Таким образом, W1 уменьшает размерность на коэффициент r (который можно рассматривать как гиперпараметр) , , тогда как W2 снова увеличивает его до исходного количества каналов. Наконец, характеристики канала F_tr умножаются на веса, полученные из блока возбуждения. Это можно рассматривать как функцию самовнимания на каналах, использующих глобальную информацию.

Основная идея блока Squeeze-And-Excitation состоит в том, чтобы включить глобальную информацию в процесс принятия решений в сети; тогда как свертка смотрит только на локальную пространственную информацию в определенном радиусе, блок Squeeze-And-Excitation агрегирует информацию из всего воспринимающего поля. Интересное наблюдение авторов состоит в том, что веса возбуждения относительно схожи для разных классов на более ранней стадии сети и становятся более конкретными на более поздних стадиях. Это коррелирует с обычным предположением, что нижние уровни изучают более общие характеристики входных данных, в то время как более высокие уровни становятся все более разборчивыми. Кроме того, блок Squeeze-And-Excitation не имеет особого смысла на последнем этапе сети, где большинство возбуждений становится равным 1. Это можно объяснить тем, что последний этап сети уже содержит большую часть глобальной информации и нет нового информационного содержания, вносимого операцией сжатия и возбуждения.

Главное преимущество подхода Squeeze-And-Excitation состоит в том, что он очень гибкий: авторы упоминают интеграцию с широко используемыми архитектурами, такими как ResNet (см. Рисунок 4), Inception или ResNeXt. На практике блок может быть добавлен либо на каждом этапе сети, либо только на определенных этапах. Кроме того, он создает лишь незначительные накладные расходы с точки зрения количества обучаемых параметров. Например, SE-ResNet-50, использующий блок Squeeze-And-Excitation, использует только ~ 2,5 миллиона дополнительных параметров по сравнению с исходной ResNet, которая уже содержит 25 миллионов параметров. Таким образом, это составляет лишь 10% -ное увеличение сложности.

В статье авторы представляют большое количество примеров обучающих архитектур, усиленных блоком Squeeze-And-Excitation. В частности, они смогли достичь самых современных результатов классификации в испытании ILSVRC 2017, достигнув ошибки в топ-5 всего в 2,251%.

Автономное внимание к себе

В последней статье, которую я представлю, NeurIPS 2019, идея самовнимания в CNN развивается еще дальше, используя автономные блоки самовнимания вместо того, чтобы усиливать сверточные слои самовниманием. Фактически, авторы представляют слой самовнимания, который можно использовать для замены свертки при уменьшении количества параметров.

Давайте рассмотрим операцию свертки, чтобы обосновать замену. Операции свертки состоят из умножения весовой матрицы определенного размера (например, 3x3) на каждую окрестность в позиции (i, j) и пространственного суммирования результата. Это позволяет разделить вес между разными пространственными положениями. Кроме того, количество весов не зависит от размера ввода.

Подобно свертке, слой самовнимания, предложенный в статье, также работает с небольшой окрестностью вокруг (i, j), которая называется блоком памяти. Затем для каждого блока памяти одностороннее внимание вычисляется следующим образом:

Таким образом, q_ij = W_q x_ij - это запросы, k_ab = W_k x_ab - ключи и v_ab = W_v x_ab - значения, вычисленные как линейные преобразования из объекты в позиции (i, j) и ее окрестности. Матрицы W - это выученные преобразования. Как видно из формулы, преобразованный центральный пиксель x_ij функционирует как запрос, при этом ключи и значения суммируются по окрестностям. К логитам также применяется функция softmax для получения весов, которые затем умножаются на значения. Если вы не знаете, что такое запросы, ключи и значения, прочтите эту статью. В этой статье авторы используют многогранное внимание, что просто означает, что элементы пикселей разбиты по глубине на N групп одинакового размера, внимание вычисляется для каждой группы индивидуально с помощью разные матрицы W, и результаты объединяются. На рисунке 6 представлено графическое описание блока визуального самовнимания.

Одна проблема с использованием подхода, описанного выше, заключается в том, что в блоке внимания не закодирована позиционная информация, и, следовательно, формула инвариантна к перестановкам отдельных пикселей. Позиционная информация важна для задач зрения: если вы хотите, например, обнаружить человеческое лицо, вам нужно будет знать, где искать рот, нос, уши и т. Д. В оригинальной статье-преобразователе [5] авторы используют синусоидальные вложения для позиции в качестве дополнительного входа. В [4], однако, используются вложения относительного 2D-положения из-за их большей точности для задач компьютерного зрения. Эти относительные вложения получаются путем вычисления относительных расстояний от позиции (i, j) до каждого соседнего пикселя (a, b). Эти расстояния разделены на расстояния между строками и столбцами r_a-i и r_b-j. Эти вложения объединяются в матричную форму и умножаются на запрос q_ij следующим образом:

Это гарантирует, что веса, вычисленные функцией softmax, модулируются расстоянием и содержанием ключа и запроса.

Как видно из приведенного выше описания, визуальное самовнимание - это форма локального внимания. Слой внимания фокусируется только на блоке памяти, а не на всей карте функций. Преимущество этого подхода состоит в том, что количество параметров резко сокращается, а веса между различными пространственными позициями распределяются. Авторы упоминают, что их сети самовнимания все еще медленнее в обучении и выводе, чем их аналоги из CNN, однако они связывают это с высоко оптимизированными сверточными ядрами, а также с отсутствием оптимизированного оборудования для уровня внимания.

Авторы также представляют некоторые результаты, которые они получили в ImageNet, заменив свертку 3x3 в ResNet своим блоком самовнимания. Обратите внимание, что они оставляют свертки 1x1 (которые в основном представляют собой полносвязные слои, рассчитываемые на пиксель) и сверточную основу (первые несколько сверточных слоев в сети нетронутыми. С этими изменениями они превосходят базовый уровень (стандартный ResNet) в все протестированные архитектуры (ResNet-26, ResNet-38 и ResNet-50) при использовании на 12% меньше FLOPS и на 29% меньше параметров.

использованная литература

[1] Гуань, Цинцзи и др. «Ставьте диагноз как рентгенолог: сверточная нейронная сеть, управляемая вниманием, для классификации заболеваний грудной клетки». Препринт arXiv arXiv: 1801.09927 (2018).

[2] Яо, Ли и др. «Учимся диагностировать с нуля, используя зависимости между ярлыками». Препринт arXiv arXiv: 1710.10501 (2017).

[3] Ху, Цзе, Ли Шэнь и Ган Сунь. «Сети сжатия и возбуждения». Материалы конференции IEEE по компьютерному зрению и распознаванию образов. 2018.

[4] Рамачандран, Праджит и др. «Автономное внимание к себе в моделях зрения». Препринт arXiv arXiv: 1906.05909 (2019).

[5] Васвани, Ашиш и др. «Внимание - это все, что вам нужно». Достижения в области нейронных систем обработки информации. 2017 г.