Ворота внимания в U-Nets

Подробное объяснение Attention U-Net

Узнайте о новых воротах внимания, которые автоматически фокусируются на целевых структурах изображения.

В этой истории я объясняю Attention U-Net из Attention U-Net: узнаем, где искать поджелудочную железу, написанного Oktay et. al. Документ был написан в 2018 году и предлагал новый механизм ворот внимания (AG), который позволяет U-Net фокусироваться на целевых структурах различного размера и формы.

Контур

  1. Что такое внимание?
  2. Почему нужно внимание в U-Net
  3. Как реализовано внимание?
  4. Анализ

1. Что такое внимание?

Внимание в контексте сегментации изображений - это способ выделить только соответствующие активации во время обучения. Это снижает затраты вычислительных ресурсов на нерелевантные активации, предоставляя сети лучшие возможности обобщения. По сути, сеть может обращать «внимание» на определенные части изображения.

а. Жесткое внимание

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

Поскольку он недифференцируемый, это означает, что для данной области изображения сеть может либо обращать «внимание», либо нет, без промежуточных значений. В результате невозможно выполнить стандартное обратное распространение, и для расчета точности на различных этапах обратного распространения требуется выборка методом Монте-Карло. Учитывая, что точность зависит от того, насколько хорошо выполняется выборка, необходимы другие методы, такие как обучение с подкреплением, чтобы сделать модель эффективной.

б. Мягкое внимание

Мягкое внимание работает за счет утяжеления различных частей изображения. Области с высокой релевантностью умножаются на больший вес, а области с низкой релевантностью помечаются меньшим весом. По мере обучения модели больше внимания уделяется регионам с более высоким весом. В отличие от пристального внимания, эти веса могут применяться ко многим участкам изображения.

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

Жесткое внимание:

  1. Выбирает только патч за раз, чтобы обратить внимание на
  2. Недифференцируемый и требует обучения с подкреплением

Мягкое внимание:

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

2. Почему нужно внимание к U-Net?

Чтобы понять, почему внимание в U-Net выгодно, нам нужно взглянуть на используемые пропускаемые соединения.

Во время повышающей дискретизации на расширяющемся пути воссозданная пространственная информация неточна. Чтобы противодействовать этой проблеме, U-Net использует пропускаемые соединения, которые объединяют пространственную информацию из пути понижающей дискретизации с путем повышающей дискретизации. Однако это приводит к множеству избыточных извлечений низкоуровневых объектов, поскольку представление объектов на начальных уровнях плохое.

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

3. Как реализуется внимание?

Врата внимания, представленные Октаем и др. использует дополнительное мягкое внимание.

а. Выход из строя ворот внимания

  1. Ворота внимания принимают два входа: векторы x и g.
  2. Вектор g берется из следующего нижнего слоя сети. Вектор имеет меньшие размеры и лучшее представление объектов, поскольку он исходит из более глубоких слоев сети.
  3. На приведенном выше примере вектор x будет иметь размеры 64x64x64 (фильтры x высота x ширина), а векторный g было бы 32x32x32.
  4. Вектор x проходит через последовательную свертку, так что его размеры становятся 64x32x32, а вектор g проходит через свертку 1x1, например что его размеры стали 64x32x32.
  5. Два вектора суммируются поэлементно. В результате этого выровненные веса становятся больше, а невыровненные веса становятся относительно меньшими.
  6. Результирующий вектор проходит через слой активации ReLU и свертку 1x1, которая сжимает размеры до 1x32x32.
  7. Этот вектор проходит через сигмовидный слой, который масштабирует вектор в диапазоне [0,1], создавая коэффициенты внимания (веса), где коэффициенты, близкие к 1, указывают на более важные особенности.
  8. Коэффициенты внимания повышаются до исходных размеров (64x64) вектора x с использованием трилинейной интерполяции. Коэффициенты внимания поэлементно умножаются на исходный x вектор, масштабируя вектор в соответствии с релевантностью. Затем это передается в соединении пропуска как обычно.

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

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

б. Реализация в Керасе

4. Анализ

Результаты, полученные Oktay et al. показывают, что Attention U-Net со значительным отрывом превзошла обычную U-Net по общему показателю Dice Coefficient Score. Хотя Attention U-Net имеет больше параметров, это ненамного больше, а время логического вывода лишь незначительно больше.

В заключение, ворота внимания - это простой способ последовательного улучшения U-Net в большом количестве наборов данных без значительных накладных расходов с точки зрения вычислительных затрат.

Чтобы получить полную реализацию U-Net с предварительно реализованными уровнями внимания, повторения и начального уровня, пожалуйста, проверьте https://github.com/robinvvinod/unet/.