卷积神经网络中池化层的详细介绍

原文链接:https://blog.csdn.net/a486259/article/details/131311587

https://zhuanlan.zhihu.com/p/476242144  https://blog.51cto.com/u_16099337/6715905

池化层的本质是一个下采样,因为数据经过卷积之后维度越来越高,而且特征图没有多大改变,在连续多个卷积之后,会产生一个很大的参数量,不仅会大大的增加网络训练的难度,还容易造成过拟合的现象,所以通常会在卷积层之后放一个池化层对数据进行压缩,降低维度,减少参数量。具体操作是将一个像素点与它周围的数据点进行聚合统计,缩减特征图的尺寸,然后对其相邻的区域取均值或最大值,进一步减少参数量。通过池化操作,提取的特征对光线等因素的适应能力也有所增强。池化操作能够对上一层的特征图进行融合,因为相邻区域的参数具有较强的关联性,还能够防止发生过拟合现象。常用的池化操作主要有两种:最大池化(max-pooling) 和平均池化(mean-pooling)。

卷积神经网络自2012年,到2023年经历了翻天覆地的变化。最早的卷积神经网络由卷积层、池化层和全连接层所构成。其中卷积层用于提取图像的特征,池化层削减特征数量,全连接层用于对特征进行非线性组合并预测类别。然而在transformer横行的年代,池化层几乎要在神经网络中消失了。趁着池化层还能在少部分主流模型中看到,记录一下各种池化层。本博文一共介绍了7种简单的池化层,此外还介绍了一下卷积神经网络的基本结构。

在深度学习中,池化层只是削减特征的一种运算规则,其并没有参数。按其运算规则区分,有平均池化层、最大池化层、全局平均|最大池化层、随机池化层、混合池化、中值池化层、组合池化层等。其中前3个为常见池化操作,后面的比较少见。

除了这7种池化方法外,在极市平台的 https://jishuin.proginn.com/p/763bfbd5c125 中还介绍了幂平均池化(根据幂运算值使用平均|最大池化)、DPP池化(该池化可以放大空间变化并保留重要的图像结构细节)、Local Importance Pooling(局部重要性池化)和Soft Pooling(软池化)等

池化的概念是在 AlexNet 网络中提出的,之前叫做降采样,

max_ pooling 也是在 AlexNet 中提出来的,它的效果明显好于 mean_pooling,已经被作为池化的首选方式
max_pooling 的优势在于:
1.mean _pooling 是线性变换【取均值-线性】,max_pooling 是非线性变换【取max-非线性】,模型表达能力强
2.max pooling 相当于减少了被激活的神经元,类似于 dropout,既减少参数,又防止过拟合
3.从感性的角度讲,max pooling 只关注典型特征,放弃普通特征,有助于提高模型精度。

2.1 平均池化层

平均池化是以一定的步长对特征图的特定区域内的像素点求其平均值。一般情况下也是选取步长为 2,尺寸为 2×2 的滤波器。
参考 https://zhuanlan.zhihu.com/p/77040467
在前向传播过程中,计算图像区域中的均值作为该区域池化后的值;在反向传播过程中,梯度特征分均配到各个位置。根据下图效果,可以看出均值池化与低通滤波存在一定相似度,可以将高频信息进行滤除(模糊掉图像边缘,忽略掉噪声点),尽可能保存纹理信息,其对于以纹理特性分类的数据或许有用。

平均池化取每个矩形区域中的平均值,可以提取特征图中所有特征的信息进入下一层,而不像最大池化只保留值最大的特征,所以平均池化可以更多保留些图像的背景信息。

在实际应用中,均值池化往往以全局均值池化的形式出现。常见于SE模块以及分类模块中。极少见于作为下采样模块用于分类网络中。

2.2 最大池化层

最大池化是以一定的步长对特征图的特定区域内的像素点求得最大值。一般情况下是选取步长为 2,尺寸为 2×2 的滤波器。
在前向过程,选择图像区域中的最大值作为该区域池化后的值;在反向过程中,梯度通过前向过程时的最大值反向传播,其他位置的梯度为0。根据下图效果,可以看出平均池化效果与高通滤波存在一定相似度,将低频信息进行滤除(移除细纹理,只保留最大值),对一个2x2的区域只保留最大的值(类似于relu操作)。

其反向传播时,示意如上图,可以看到只有最大值所对应的区域有梯度值得到优化,而其它区域则没有梯度值。

这种方式摒弃了网络中大量的冗余信息,使得网络更容易被优化。同时这种操作方式也常常丢失了一些特征图中的细节信息,所以最大池化更多保留些图像的边缘信息。

2.3 全局池化层
全局池化层(Global Average Pooling,GAP)是平均|最大池化层的空间泛化,在平均|最大池化层中通常需要设置pool_size(池化区域的大小),而全局全局池化层则是默认为pool_size为WxH,将所有的数据一次性计算出结果(平均|最大池化层需要进行滑窗,滑动一次计算出一个结果)。故此,全局池化层有全局平均池化层和全局最大池化层。

GAP对整个网络在结构上做正则化防止过拟合,直接剔除了全连接层中黑箱的特征,直接赋予了每个channel实际的类别意义。除此之外,使用GAP代替全连接层,可以实现任意图像大小的输入(以往的CNN使用flatten操作将2d数据转成1维,不同的输入size,输出的特征维度不同,故只能固定图像输入尺寸)。GAP对整个特征图求平均值,也可以用来提取全局上下文信息,全局信息作为指导进一步增强网络性能。

全局池化层通常被放置在卷积基于全连接层中间,或者是CBAM(Channel attention)中。

2.4 随机池化层
参考自:https://zhuanlan.zhihu.com/p/77040467

随机池化是ICLR2013的一篇论文Stochastic Pooling所提出的,其结合了平均池化层和最大池化层的优缺点。随机池化的方法非常简单,只需对特征区域元素按照其概率值大小随机选择,元素值大的被选中的概率也大(避免了总是最大值被选中)。

2.5 混合池化
参考自:https://jishuin.proginn.com/p/763bfbd5c125
其受dropout的启发,用随机过程代替了常规的确定性池化操作,在模型训练期间随机采用了最大池化和平均池化方法,并在一定程度上有助于防止网络过拟合现象。混合池化以随机方式改变了池调节的规则,这将在一定程度上解决最大池和平均池所遇到的问题。

混合池化优于传统的最大池化和平均池化方法,并可以解决过拟合问题来提高分类精度。此外该方法所需要的计算开销可忽略不计,而无需任何超参数进行调整,可被广泛运用于CNN。

2.6 中值池化层
参考图像处理中的中值滤波所实现,基本上没有在CNN网络中看到。使用排序后的中值作为输出值,其前向传播与反向传播与最大池化类似。

博主推断其看是能提取图像纹理特征,但很难具备稳定性(中值在网络深层容易受感染),只可用在网络浅层中。在实际使用过程中,不支持将学习率设置的较大,且极难优化。

与最大池化相比,最大值虽然也不是很稳定,但是在整个训练过程中均以数值大小来描述特征对结果的影响力,故在整个体系下其还是具备稳定性的。

2.7 组合池化层

​ 组合池化则同时利用最大值池化与均值池化两种的优势而引申的一种池化策略,其与混合池化的区别在于确定性(组合池化是确定的使用两个池化方式,混合池化是不确定的使用两个池化方式)。常见组合策略有两种:Cat与Add。其代码描述如下:

def add_avgmax_pool2d(x, output_size=1):
    x_avg = F.adaptive_avg_pool2d(x, output_size)
    x_max = F.adaptive_max_pool2d(x, output_size)
    return 0.5 * (x_avg + x_max)

def cat_avgmax_pool2d(x, output_size=1):
    x_avg = F.adaptive_avg_pool2d(x, output_size)
    x_max = F.adaptive_max_pool2d(x, output_size)
    return torch.cat([x_avg, x_max], 1)

  

3、总结
自从2021年Transformer被引入到视觉模型后,卷积神经网络基本上要末路了,虽然此后也有ConvNeXt、SegNeXt成功挑战过Transformer的地位,但也无力挽回卷积神经网络的大势已去。

ConvNeXt使用了一些列的训练技巧(AdamW 优化器、Mixup、Cutmix、RandAugment、Random Erasing等数据增强技)和随机深度和标签平滑等正则化方案,也不过是勉强将 ResNet-50 模型的性能从 76.1% 提高到了 78.8%。而,Transformer并不需要使用如此复杂的增强策略,仅需要不断扩充训练集即可。整个模型没有池化层做特征降维

SegNeXt号称是在语义分割上使用卷积模型超过了Transformer模型,实则是使用了Transformer模型的中patch embeding,并用MLP层替换了multi head self-attention,其与卷积神经网络的关系并不大。整个模型没有池化层

在这些先进的模型结构中,再也不会使用池化层来提取图像特征(特征降维),以后得卷积神经网络通用结果或许会被重新定义。

 

posted @ 2024-04-11 17:10  yinghualeihenmei  阅读(173)  评论(0编辑  收藏  举报