В предыдущем разделе мы представили двумерные сверточные слои, которые могут помочь нам обнаружить края объектов изображения. Будь то исходное изображение или промежуточный признак, обработанный ядром свертки, это математическая операция, основанная на пикселе. На реальных изображениях интересующий нас объект не всегда появляется в фиксированном положении пикселя: даже если мы используем штатив, чтобы зафиксировать камеру для непрерывной съемки одного и того же объекта, существует высокая вероятность смещения положения пикселя. Это приведет к тому, что на выходе соответствующие ребра одного и того же объекта могут оказаться в разных позициях на выходе свертки, что вызовет неудобства при последующем распознавании образов. Кроме того, конечной целью обработки изображений для большинства задач компьютерного зрения является идентификация объектов на картинке, поэтому нет необходимости детально детектировать каждый пиксель, а лишь найти примерный контур объекта на картинке. Объединение слоев можетУменьшить чрезмерную чувствительность сверточных слоев к положению.
Как и сверточные слои, объединяющие слои вычисляют выходные данные по элементам в окне фиксированной формы (так называемом окне объединения) входных данных за раз. В отличие от сверточного слоя, который вычисляет взаимную корреляцию между входными данными и ядром, слой пула напрямую вычисляет максимальное или среднее значение элементов в окне пула. Эта операция также называется максимальным пулом или средним пулом соответственно. В двумерном максимальном объединении окно объединения начинается с верхнего левого угла входного массива и скользит по входному массиву в порядке слева направо и сверху вниз. Когда окно объединения перемещается в определенную позицию, максимальным значением входного подмассива в окне является элемент в соответствующей позиции в выходном массиве.
На рисунке выше показано максимальное объединение с формой окна объединения 2 × 2, заштрихованная часть — это первый выходной элемент, а входной элемент используется для его вычисления. Высота и ширина выходного массива равны 2 соответственно, а 4 элемента получаются путем взятия максимального значения операции max. Например, первый элемент вывода 4 = max(0, 2, 3, 4).
Объединение 2D-усреднений работает аналогично объединению 2D-максимумов, но заменяет оператор максимального значения оператором среднего значения. Слой объединения с формой окна объединения p×q называется слоем объединения p×q, а операция объединения в нем называется объединением p×q.
тип | Max pooling | Average pooling |
---|---|---|
Расчет | выбрать максимальное значение текущего окна | выбрать среднее значение текущего окна |
Рассмотрим пример обнаружения границ объекта. Теперь мы принимаем выходные данные сверточного слоя в качестве входных данных для максимального объединения 2 × 2. Пусть вход сверточного слоя будетX
, выход слоя пулаY
. Предположим, что край объекта выборки 1 находится вX[i, j]
иX[i, j+1]
вверху край объекта образца 2X[i, j+1]
иX[i, j+2]
Выше, при использовании максимального слоя пула 2 × 2, мы все еще можем обнаружить шаблон, распознаваемый сверточным слоем, если он не смещается более чем на один элемент по высоте и ширине.
Как и сверточный слой, объединяющий слой также может дополнять высоту и ширину ввода и регулировать шаг окна для изменения выходной формы. Отступы и шаг объединенного слоя работают так же, как отступы и шаг сверточного слоя.
При обработке многоканальных входных данных слой пула объединяет каждый входной канал отдельно, а не добавляет входы каждого канала канал за каналом, как в сверточном слое. это означаетКоличество выходных каналов слоя пула равно количеству входных каналов.
В сверточных нейронных сетях сверточные слои и объединяющие слои обычно появляются парами.