池化算法也是 CNN 网络中非常常见的算法。
池化这一算法理解起来比较简单,从名字中或许可以看到一些东西:从一个像素池子中选取一些有代表性的像素出来。
常见的池化有最大池化和平均池化。最大池化就是从像素池子中选取最大值出来,而平均池化就是从像素池子中选取平均值出来。
下面是一个最大池化的动图示意图。
如上,假设左侧最大的黑色方框为输入图片,紫色的2x2的方框为池化的核函数,也就是上面说的那个像素池子的大小。
从计算过程来看,池化操作和卷积类似,也是一个核函数在原始图像上扫描,由左往右,由上而下,然后根据池化的类型从像素池子中选取不同的值作为输出。
上图表示的是最大池化,也就是每次选取一个紫色像素池子中的最大值,作为对应位置的输出,平均池化就是计算像素池子中的所有像素的平均值,作为对应位置的输出,就这么简单。
关于池化的参数,池化和卷积很像,也有padding参数、stride参数,但没有dilation参数,也就是不会将池子(池化核)膨胀,这些参数的用法和作用与卷积一样,这里就不再赘述了。
为什么需要池化
首先池化比卷积简单很多,它少了通道维度的累加操作。也就是说,它的所有操作只在一个图像长和宽的平面上进行,有多少个通道,就重复进行多少次。
少了通道的累加操作,会使得池