MAX Pooling 最大值池化和AVG pool平均池化

学习 · 2022-10-18 · 40 人浏览

MAX Pooling 最大值池化

max pooling 的操作如下图所示:整个图片被不重叠的分割成若干个同样大小的小块(pooling size)。每个小块内只取最大的数字,再舍弃其他节点后,保持原有的平面结构得出 output。

注意区分max pooling(最大值池化)和卷积核的操作区别:池化作用于图像中不重合的区域(这与卷积操作不同)

image-20221018140550444

这个图中,原来是4*4的图片。

由于不会重合,所以filter的大小和步长stride是相等的,为2.

粉色区域最大值为6,得到的该区域结果是6,绿色是8,黄色是3,紫色是4.

有一个动图:

img

PS:发现其实是有重叠池化的(overlapping pooling)相邻池化窗口之间会有重叠区域,此时filter的大小sizeX>stride步长。

Max Pooling的作用

作用1:invariance(不变性)

invariance(不变性)

  • translation(平移)不变性
  • rotation(旋转)不变性
  • scale(尺度)不变性
  1. translation平移

image-20221018141243397

图中左边两个大图,表示数字1,但是两个的位置不同,上者经过向右平移得到下者。经过池化后,得到了相同的结果

  1. rotation 旋转

20191012100518132

左边大图表示的是汉字“一”(姑且这么理解吧,明白就行)。经过两次池化得到了相同的结果。

  1. scale

20191012100647230

左边大图表示的是数字0,经过两次池化得到了相同的结果。

再举一个例子:

img

考虑黄色区域中黑色的形状-----“横折”。经过22的filter之后,得到了33的output;

步长为1的滑动,2*2的和

经过3*3的最大池化后,都得到了1*1的output 为3.

可以看出,“横折”这个形状,在经过池化后得到的结果是相同的,这就减小下一层输入大小,减小计算量和参数个数,降维(减小feature map的尺寸)

作用2:增大感受野

可能跟作用1的结论有些因果关系。

首先它第一个作用是降低feature map的尺寸,减少需要训练的参数;其次,因为有缩小的作用,所以之前的4个像素点,现在压缩成1个。那么,相当于我透过这1个点,就可以看到前面的4个点,这不就是把当前map的感受野一下子放大了嘛

AVG pool 平均池化

pytorch中函数:

nn.AdaptiveAvgPool2d(output_size)
#例子
self.avgpool = nn.AdaptiveAvgPool2d((7, 7))

作用:

自适应平均池化,指定输出(H,W)

池化
Theme Jasmine by Kent Liao