【卷积神经网络详解与实例3】——池化与反池化操作
3、池化与反池化
为了有效地减少计算量,CNN 使用的一个有效工具被称为 “池化 (Pooling)”。池化就是将输入图像进行缩小,减少像素信息,只保留重要信息。
3.1 三种池化操作
池化的定义比较简单,通常情况下,池化区域是 2*2 大小,然后按一定规则转换成相应的值,例如取这个池化区域内的最大值、平均值等,以这个值作为结果的像素值。池化最直观的作用便是降维,常见的池化有最大池化、平均池化和随机池化。池化层不需要训练参数。
最大池化(max-pooling)
定义:即对局部的值取最大;
作用:可以获取局部信息,可以更好保留纹理上的特征;
使用:如果不用观察物体在图片中的具体位置,只关心其是否出现,则使用最大池化效果比较好。
平均池化(mean-pooling)
定义:对局部的值取平均;
作用:平均池化往往能保留整体数据的特征,能凸出背景的信息。
随机池化
定义:根据概率对局部的值进行采样,采样结果便是池化结果;
作用:随机池化中元素值大的被选中的概率也大,但不是像最大池化总是取最大值。随机池化一方面最大化地保证了Max值的取值,一方面又确保了不会完全是max值起作用,造成过度失真。除此之外,其可以在一定程度上避免过拟合。
概念非常容易理解,其示意图如下所示:
3.2 重叠池化
一般在CNN中使用的池化都是不重叠的,但是池化也可以重叠,重叠池化和卷积操作类似,可以定义步长等参数,其和卷积的不同在于:卷积操作将窗口元素和卷积核求内积,而池化操作求最大值/平均值等,窗口的滑动等原理完全相同。
3.3 反池化
池化操作中最常见的最大池化和平均池化,因此最常见的反池化操作有反最大池化和反平均池化,其示意图如下:
反最大池化需要记录池化时最大值的位置,反平均池化不需要此过程。