Average pooling
Зачем это нужно? Во-первых, уменьшение размерности сокращает вычисления и память при работе с большими изображениями. Во-вторых, усреднение делает модель устойчивее к мелким сдвигам и шуму: если объект сместился на пару пикселей, средние по блокам почти не меняются. Это помогает избегать переобучения на случайные детали и улучшает обобщение.
Интуитивно это похоже на взгляд через матовое стекло: мелкие детали исчезают, но крупные формы становятся явными. Average pooling проходит по карте признаков скользящим окном, например 2×2, и для каждого окна выдаёт одно усреднённое число. Если рядом с тёмными пикселями был яркий, на выходе получится сероватое пятно. Сеть сохраняет общую интенсивность, но теряет точное расположение деталей — для многих задач это полезно.
Конкретный пример: при распознавании кошек после свёрточных слоёв карта признаков показывает, где находятся уши. Если кошка повернула голову, эти пиксели сдвигаются. Average pooling усредняет активации по небольшой области, и признак «есть уши» остаётся высоким независимо от позиции. Классификатор уверенно говорит «кошка», даже если изображение слегка обрезано или объект не в центре.
Итог: average pooling — простой, но необходимый инструмент свёрточных сетей. Он сжимает данные, сглаживает шум и добавляет инвариантность к небольшим сдвигам, оставаясь одной из самых быстрых и объяснимых операций. Вместе с максимальным объединением он формирует стандартные этапы современных архитектур компьютерного зрения.
Поделиться