卷积神经网络最常见的是卷积层Convolution,与此同时,池化层也被广泛应用在神经网络中,目的是为了减小模型大小,提高训练速度,也增强了提取特征的鲁棒性。
本课简单介绍了池化层的工作原理,主要是两种方式:max和average
一、池化 Max pooling
顾名思义:取每个子区域中的最大值就是Max pooling
这下面这个例子中,
f
=
2
,
s
=
2
f=2,s=2
f=2,s=2(这两个超参数不需要学习,池化层只是计算了神经网络某一层中的静态属性)
直观理解最大化操作的功能:只要在任何一个象限内提取到某个特征,都会将最大值保留在最大化池的输出中。利用最大化池在实验中表明效果普遍非常好,上述的直观理解也被广泛引用。
对于
n
×
n
n\times n
n×n图像,
p
p
p为填充数量,
f
f
f为过滤器大小,
s
s
s为步长,池化层输出维度的计算方法和卷积的方法一致:
⌊
n
+
2
p
−
f
s
+
1
⌋
\lfloor \frac{n+2p-f}{s}+1\rfloor
⌊sn+2p−f+1⌋
需要注意的是,如果输入是三维,那么输出是对应的三维,有相同的通道数。
在最大池化中,很少用Padding,所以通常不填充,输出维度:
⌊
n
−
f
s
+
1
⌋
\lfloor \frac{n-f}{s}+1\rfloor
⌊sn−f+1⌋
二、池化 Average pooling
【最大池化】比【平均池化】更常使用,有一个例外:当神经网络深度非常深时,用平均池化的方法分解规模较大的表示层。