池化方法(2):GAP,SPP,RoIPooling,RoIAlign

池化方法(2):GAP,SPP,RoIPooling,RoIAlign

 

1、全局平均池化(Global Average Pooling,GAP)

池化方法(2):GAP,SPP,RoIPooling,RoIAlign_第1张图片

CNN网络中一般在全连接后会有激活函数来做分类,假设这个激活函数是一个多分类softmax,那么全连接网络的作用就是将最后一层卷积得到的 feature map 展开成向量,对这个向量做乘法,最终降低其维度;然后输入到softmax层中得到对应的每个类别的得分GAP的思路就是将上述两个过程合二为一。

在NIN (Network in Network) 中提出了GAP的概念,GAP的真正意义是:对整个网络在结构上做正则化防止过拟合。其直接剔除了全连接层中黑箱的特征,直接赋予了每个channel实际的l类别意义,全连接存在的问题:参数量过大,降低了训练的速度,且很容易过拟合。

同时GAP可以实现任意图像大小的输入。但是可能会造成收敛速度减慢。

Global Average Pooling全局平均池化的一点理解

 

2、空间金字塔池化(Spatial Pyramid Pooling,SPP)

池化方法(2):GAP,SPP,RoIPooling,RoIAlign_第2张图片池化方法(2):GAP,SPP,RoIPooling,RoIAlign_第3张图片

一般的CNN都需要输入图像的大小是固定的,这是因为全连接层的输入需要固定输入维度,但卷积操作对图像尺度没有限制,而且现实中,输入的图像尺寸总是不能满足输出时要求的大小,通常的处理手法是对输入图像进行裁剪(crop)和拉伸(warp)。

空间金字塔池化,是先让图像进行卷积操作,然后转化成维度相同的特征输入到全连接层,输入图像可以是任意尺寸。提高了图像的尺度不变(scale-invariance),降低了过拟合(over-fitting)。由于把一个feature map从不同的角度进行特征提取再聚合的特点,显示了算法的鲁棒性,提高了模型的精度。

假设conv5输出的大小为a*a,需要得到n*n大小的池化结果,可以让窗口大小sizeX为,步长为 。下图以conv5输出的大小为13*13为例:

池化方法(2):GAP,SPP,RoIPooling,RoIAlign_第4张图片

用不同大小池化窗口作用于卷积特征,我们可以得到1X1,2X2,4X4的池化结果,由于conv5中共有256个过滤器,所以得到1个256维的特征,4个256个特征,以及16个256维的特征,然后把这21个256维特征链接起来输入全连接层,通过这种方式把不同大小的图像转化成相同维度的特征。

SPP(Spatial Pyramid Pooling)详解

SPP空间金字塔池化技术的直观理解

 

3、RoIPooling + RoIAlign

RoIPooling、RoIAlign笔记

你可能感兴趣的:(阅读笔记)