池化

概念

池化分为最大池化(用的多一些)和平均池化

最大池化是选出区域内最大值作为池化后的值,如下图所示:

均值池化 python 均值池化的作用_池化


平均池化是选择区域内平均值作为池化后的值,如下图所示:

均值池化 python 均值池化的作用_池化_02


概念很浅显,但是对于刚入门的人来说,很难知道池化到底能干啥,局限性是什么。

池化作用:

1.减少运算量,这个还好理解,因为数据量变少了,后期计算量肯定也少了

2.防止过拟合,因为池化可以把一张大图变成一张小图,但是保留了重要特征,这样使得模型学习时能够学习更泛化的特征、更有代表的特征,而不是背景、亮度这种不是最重要的信息。

3.引入平移不变性,这个会比较难理解,但是我们可以看下面两张图(借用子豪兄视频的图片):

均值池化 python 均值池化的作用_深度学习_03


均值池化 python 均值池化的作用_深度学习_04


可以看到,人脸在平移后人眼的位置发生变化,但经过池化层后结果是一样的,所以一个物体识别结果跟他在图片什么位置是无关的

局限性

由于引入平移不变性,不可避免得导致图像中物体位置信息丢失,这对目标定位是不利的。所以需要上采样来获得物体位置信息来实现目标检测这一功能。

全局平均池化

有一个非常著名的操作叫全局平均池化,他除了池化的优点,还可以用来代替全连接层,大大减少运算参数:

均值池化 python 均值池化的作用_均值池化 python_05

全连接层中每一个output node都需要和所有layers链接,例如竖直队列长度为n,那么计算量是nxn,但是全局平均池化不需要,它只需n次运算即可,每一个layer经过一次池化得到一个channel。