池化Pooling是卷积神经网络中常见的一种操作,Pooling层是模仿人的视觉系统对数据进行降维,其本质是降维。在卷积层之后,通过池化来降低卷积层输出的特征维度,减少网络参数和计算成本的同时,降低过拟合现象。

 

一文弄懂各大池化Pooling操作_机器学习

 

一文弄懂各大池化Pooling操作_python_02

 

一文弄懂各大池化Pooling操作_人工智能_03

 

一文弄懂各大池化Pooling操作_python_04

最大池化(Max Pooling)是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。即,取局部接受域中值最大的点。同理,平均池化(Average Pooling)为取局部接受域中值的平均值。

 

一文弄懂各大池化Pooling操作_人工智能_05

 

一文弄懂各大池化Pooling操作_机器学习_06

Global Pooling就是Pooling的滑窗size和整个Feature Map的size一样大。在滑窗内的具体pooling方法可以是任意的,所以就会被细分为Global Average Pooling,Global Max Pooling等。

 

一文弄懂各大池化Pooling操作_人工智能_07

 

一文弄懂各大池化Pooling操作_python_08

Stochastic pooling是论文《Stochastic Pooling for Regularization of Deep Convolutional Neural Networks》中提到的一种池化策略,大意是只需对特征区域元素按照其概率值大小随机选择,元素值大的被选中的概率也大。

 

一文弄懂各大池化Pooling操作_人工智能_09

Mix Pooling是同时利用最大值池化Max Pooling与均值池化Average Pooling两种的优势而引申的一种池化策略。常见的两种组合策略:拼接Cat与叠加Add。

 

一文弄懂各大池化Pooling操作_人工智能_10

 

一文弄懂各大池化Pooling操作_深度学习_11

SoftPool是一种变种的Pooling,它可以在保持池化层功能的同时尽可能减少池化过程中带来的信息损失。上图展示了SoftPool操作的Forward阶段与Backward阶段,6*6大小的区域表示的是激活映射a。

 

一文弄懂各大池化Pooling操作_python_12

 

一文弄懂各大池化Pooling操作_人工智能_13

 

一文弄懂各大池化Pooling操作_python_14

Local Importance-based Pooling提出通过一个基于输入特征的子网络自动学习重要性。它能够自适应地确定哪些特征更重要,同时在采样过程中自动增强识别特征。具体思路是,在原feature map上学习一个类似于attention的map,然后和原图进行加权求平均。需要说明的是,这里采样的间隔其实还是固定的,不符合上述描述的第一条,但是作者认为,由于importance是可变,从而实现变形的感受野。

 

一文弄懂各大池化Pooling操作_python_15

 

一文弄懂各大池化Pooling操作_机器学习_16

S3Pool提出一种随机位置池化策略,集成了随机池化Stochastic Pooling与最大值池化Max Pooling。

 

一文弄懂各大池化Pooling操作_人工智能_17

 

一文弄懂各大池化Pooling操作_深度学习_18

 

一文弄懂各大池化Pooling操作_深度学习_19

图池化是基于条件随机场的,它是将图池化视为一个节点聚类问题,并使用CRF在不同节点的分配之间建立关系。并通过结合图拓扑信息来推广这个方法,使得图池化可以控制CRF中的成对团集。

 

一文弄懂各大池化Pooling操作_深度学习_20

 

一文弄懂各大池化Pooling操作_计算机视觉_21

Region of Interest Pooling是在目标检测任务中广泛使用的操作。它对于来自输入列表的每个感兴趣区域,它采用与其对应的输入特征图的一部分并将其缩放到某个预定义的大小。这可以显着加快训练和测试时间,它允许重新使用卷积网络中的特征映射,同时也允许以端到端的方式训练物体检测系统。