Перейти к основному содержимому

Пулинг

Локальный пулинг

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

Чаще всего используются

  • максимизирующий пулинг (max pooling, агрегирующая операция - взятие максимума)

  • усредняющий пулинг (average pooling, агрегирующая операция - усреднение)

Пример применения этих видов пулинга 2x2 приведён ниже для одного канала:

Пулинг применяется к каждому каналу независимо. Например, при его применении к RGB изображению, он применяется независимо к R,G и B каналу. У стандартных пулингов, приведённых выше, нет настраиваемых параметров, а гиперпараметрами выступает размер агрегируемой области (kenrel size) и сдвиг (stride), причём сдвиг обычно выбирается равным стороне квадрата, по которому производится агрегация, т.е. каждый раз агрегация производится по непересекающимся элементам, как на рисунке.

Он обеспечивает приближённую инвариантность к небольшим сдвигам.

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

Глобальный пулинг

Так же, как и для случая временных рядов, можно применять глобальную агрегацию (global pooling) по всем пространственным координатам. Если на входе было CC каналов, то на выходе получим CC-мерный вектор, состоящий из агрегированных значений каналов по всем пространственным координатам, как показано ниже:

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

Интерпретируемость

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

Пирамидальный пулинг

Глобальный пулинг, агрегируя по всем пространственным координатам, теряет всю пространственную информацию. Если необходимо представить изображение в виде вектора фиксированного размера, сохранив хотя бы часть пространственной информации, то рекомендуется использовать пространственный пирамидальный пулинг (spatial pyramid pooling, [1]).

В этом виде пулинга в кажестве гиперпараметров задаётся набор сеток фиксированного размера, например 1x1 и 4x4, после чего карта признаков изображения разбивается этими сетками на области, после чего к каждой области применяется глобальный пулинг, а результаты этих пулингов объединяются (конкатенируются), как показано на рисунке:

Например, если речь идёт о пирамидальном максимизирующем пулинге, то для 4-х канального представления изображения его выходом будут максимальные значения в рамках каждого канала целиком, а также максимальные значения в рамках каждой области 1,2,3,4 в рамках каждого канала, то есть вектор из 4+4*4=20 значений.

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

Пирамидальный пулинг также часто используют с более мелкими сетками 8x8 и 16x16.

Литература

  1. He K. et al. Spatial pyramid pooling in deep convolutional networks for visual recognition //IEEE transactions on pattern analysis and machine intelligence. – 2015. – Т. 37. – №. 9. – С. 1904-1916.