跟池化层,一般情况下,池化层的作用一般情况下就是下采样与像素迁移不变性。根据步长区分,池化可以分为重叠池化与区域池化,图示如下:

池化算力 kubernetes 池化方式_神经网络

上面的池化都是使用窗口内的最大值,因此又称为最大值池化,除了最大值池化,还有均值池化可以使用,关于最大值池化与均值池化的计算方式图示如下:

池化算力 kubernetes 池化方式_python_02

图1

这个时候很多人会讨论,均值池化与最大值池化哪种方式最好的问题,其实我只要给大家看一张图,大家就会马上明白,所谓最好是个无聊的问题:

池化算力 kubernetes 池化方式_python_03

图2

可见无论是哪种池化方式都有自己的弊端!

全局池化方式

上面的池化方式主要是在卷积层中使用,在卷积神经网络设计中还有一类池化,称为全局池化方式,这里池化主要包括全局均值池化与全局最大池化,图示如下:

池化算力 kubernetes 池化方式_python_04

图3

池化算力 kubernetes 池化方式_python_05

图4

此外还有一种相对来说比较少见的全局池化方式,它称为:全局深度池化,假设的它输入是图4左侧部分,则池化之后的输出之后w跟h值仍然为6保持不变,但是深度d=1,不管之前的d值是多大,深度池化之后的d=1,全局深度池化还可以进一步细分为全局深度均值池化与全局深度最大值池化

变种池化方式

上面都是常用跟比较正常的池化方式,最近池化方式还产生一些比较特殊的池化方式。这些池化方式主要包括:

01

混合池化

最大值池化主要提取最大激活,而均值池化则通过抑制最大激活来实现池化,这两中方式都有弊端,为了克服这两张池化方式的弊端,有人提出了混合池化方式,它公式表示如下:

池化算力 kubernetes 池化方式_卷积_06

其中参数使用随机选择,当为0时候是均值池化,当为1时候为最大值池化

02

Lp池化

通过正则化改进比最大池化的效果要好,其公式表示如下:

池化算力 kubernetes 池化方式_池化算力 kubernetes_07

当p=1,时候它就是均值池化效果

当p等于无穷大时候,其效果接近于最大池化效果

当p>1 时候兼有均值池化与最大池化的效果

03

世故池化

它的工作方式解析如下:

池化算力 kubernetes 池化方式_池化算力 kubernetes_08

池化算力 kubernetes 池化方式_池化算力 kubernetes_09

04

空间金字塔池化(SPP池化)

通过池化输出指定大小的特征向量,从而限制网络输出的大小,SPP层一般位于卷积神经网络的最后一个卷积层,通过SPP池化固定大小输出,然后交给全链接层处理。SPP层池化过程图示如下:

池化算力 kubernetes 池化方式_卷积_10

05

ROI池化(Region of Interest Pooling)

是在RCNN系列网络中使用的池化层,主要用来实现把不同比率或者分辨率大小的输入特征转换为固定大小特征。ROI Pooling图示如下:

池化算力 kubernetes 池化方式_神经网络_11

05

MOP池化(Multi-scale order-less pooling 

基于多尺度的池化方式,提升了卷积网络的不变性同时没有破坏卷积网络的可鉴别性,分布从全局与局部池化中提取特征,图示与说明如下:

池化算力 kubernetes 池化方式_python_12

06

超像素池化(Super-pixel Pooling)

超像素本质上是一张过度分割的图像,一般都是基于像素分组的方式生成,图像的超像素表示在对象检测、语义分割、显著性检测、光流与深度估算、对象跟踪上都有广泛有用。一个典型的超像素分割图示如下:

池化算力 kubernetes 池化方式_python_13

通过一个超像素池化网络(SPN)实现低水平的图像结构提取从而提供给弱监督情景下的图像语义分割与学习。

07

光谱池化

图像池化不光发生在空间域,还可以通过DFT变换,在频域空间实现池化,一个使用光谱池化最大池化的例子如下:

池化算力 kubernetes 池化方式_卷积_14

不同的池化采样方式得到的不同清晰度与分辨率的图像。

08

基于排名的均值池化

这种池化方式的好处事可以克服最大池化与均值池化方式的不足,公式如下:

池化算力 kubernetes 池化方式_python_15

图示解释如下:

池化算力 kubernetes 池化方式_python_16