Пулинг
Локальный пулинг
Операция пулинга (pooling), как и для случая временных рядов, призвана уменьшить пространственную размерность выхода за счёт разбиения карты признаков на фрагменты и применения агрегирующей операции к каждому фрагменту.
Чаще всего используются
-
максимизирующий пулинг (max pooling, агрегирующая операция - взятие максимума)
-
усредняющий пулинг (average pooling, агрегирующа я операция - усреднение)
Пример применения этих видов пулинга 2x2 приведён ниже для одного канала:
Пулинг применяется к каждому каналу независимо. Например, при его применении к RGB изображению, он применяется независимо к R,G и B каналу. У стандартных пулингов, приведённых выше, нет настраиваемых параметров, а гиперпараметрами выступает размер агрегируемой области (kenrel size) и сдвиг (stride), причём сдвиг обычно выбирается равным стороне квадрата, по которому производится агрегация, т.е. каждый раз агрегация производится по непересекающимся элементам, как на рисунке.
Он обеспечивает приближённую инвариантность к небольшим сдвигам.
Максимизирующий пулинг извлекает признак того, что исходный признак присутствует где-либо в области, по которой производилась агрегация. А усредняющий пулинг извлекает среднюю представленность признака в области.
Глобальный пулинг
Так же, как и для случая временных рядов, можно применять глобальную агрегацию (global pooling) по всем пространственным координатам. Если на входе было каналов, то на выходе получим -мерный вектор, состоящий из агрегированных значений каналов по всем пространственным координатам, как показано ниже:
Это полезно, чтобы перевести изорбажение произвольного размера в вектор фиксированной размерности перед его обработкой многослойным персептроном (например, для классификации изображений).
Если число каналов совпадает с числом классов, то результат глобального пулинга можно трактовать как преактивации, SoftMax от которых приведёт к итоговым вероятностям классов. Этот подход обладает повышенной интерпретируемостью, поскольку визуализируя канал, соответствующий каждому из классов, можно понять, какие области изображения голосуют за тот или иной класс (обладая максимальными значениями и внося максимальный вклад в его вероятность).
Пирамидальный пулинг
Глобальный пулинг, агрегируя по всем пространственным координатам, теряет всю пространственную информацию. Если необходимо представить изображение в виде вектора фиксированного размера, сохранив хотя бы часть пространственной информации, то рекомендуется использовать пространственный пирамидальный пулинг (spatial pyramid pooling, [1]).
В этом виде пулинга в кажестве гиперпараметров задаётся набор сеток фиксированного размера, например 1x1 и 4x4, после чего карта признаков изображения разбивается этими сетками на области, после чего к каждой области применяется глобальный пулинг, а результаты этих пулингов объединяются (конкатенируются), как показано на рисунке:
Например, если речь идёт о пирамидальном максимизирующем пулинге, то для 4-х канального представления изображения его выходом будут максимальные значения в рамках каждого канала целиком, а также максимальные значения в рамках каждой области 1,2,3,4 в рамках каждого канала, то есть вектор из 4+4*4=20 значений.
Пирамидальный пулинг также переводит изображение произвольного размера в вектор фиксированной размерности, но теперь пространственная информация частично сохранена, поскольку теперь мы знаем хотя бы в какой из 4-х областей был достигнут какой максимум.
Пирамидальный пулинг также часто используют с более мелкими сетками 8x8 и 16x16.
Литература
- 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.