Global Pooling
关于pooling发展的趋势:
由于pooling太过粗暴,操作复杂,目前业界已经逐渐放弃了对pooling的使用。替代方案 如下:
- 采用 Global Pooling 以简化计算;
- 增大conv的 stride 以免去附加的pooling操作
Global Average Pooling
最早在《Network in Network》中提出,取代全连接层,减少参数量和降低过拟合。
实现:用一个大小等于输入的feature map尺寸的池化层代替全连接层把W×H×C的tensor降成一个1×1×C的vector输出(以进行分类)。
优点:
- 使得feature map与分类任务直接关联
- 参数量大大减少,也使得计算量大大减小
- 作为正则化方法有效缓解过拟合问题
去掉全连接的GAP强制将feature map与对应的类别建立起对应关系,softmax相当于分数的归一化,GAP的输出可以看成是与每个类别相似程度的某种度量,GAP的输入feature map可以解释为每个类别的置信度图(confidence map)——每个位置为与该类别的某种相似度,GAP操作可以看成是求取每个类别全图置信度的期望。因为只有卷积层,很好地保留了空间信息,增加了可解释性,没有全连接层,减少了参数量,一定程度上降低了过拟合。
引自【Network in Network(2013),1x1卷积与Global Average Pooling】
可能的缺点:
- 收敛速度变慢
【使用全局平均池化层有什么好处 - 知乎】 - 特征不稳定
【global average pooling可能导致特征不稳定】
Position Information is Encoded Channel-Wise in CNNs
Paper:《Global Pooling, More than Meets the Eye:
Position Information is Encoded Channel-Wise in CNNs》
Where:ICCV 2021
其实早就有人提出,降采样(pooling和Stride>2的conv)会破坏图像的平移不变性。
原本假设:Global Pooling收缩空间维度之后,应该在产生平移不变性的同时删除空间信息。
(理论性太强,这讲的是可解释性,看的一头雾水,先搁置)
NMS(Non-Maximum Suppression)
目的:选出目标检测中在同一目标位置上的最佳候选框。
输入:候选框及其置信度,设定阈值
IoU(intersection-over-union):交并比,两个框交集面积除以并集面积
- 根据置信度得分进行排序
- 选择置信度最高的比边界框添加到最终输出列表中,将其从边界框列表中删除
- 计算所有边界框的面积
- 计算置信度最高的边界框与其它候选框的IoU
- 删除IoU大于阈值的边界框
重复上述过程,直至边界框列表为空
缺点:
- 容易在检测密集区域误删其他目标的候选框
- 需根据经验确定阈值,太小易误删,太大易误检
Soft-NMS
NMS算法对置信度的处理:
s i = { s i , I o U ( M , b i ) < N t 0 , I o U ( M , b i ) ≥ N t s_i=\left\{ \begin{aligned} s_i&,\ IoU(M,b_i)< N_t \\ 0&,\ IoU(M,b_i)\geq N_t \end{aligned} \right. si={
si0, IoU(M,bi)<Nt, IoU(M,b