对于一个网络,我们先使用了maxpooling进行池化,得到的网络模型架构如下:
然后我们删除了其中的最大池化层,得到了网络模型架构如下:
这种删除最大池化层的网络模型架构有如下两点问题:
1.这种架构不利于学习特征的空间层级结构。卷积神经网络学到的高级模式相对于初始输入来说仍然很小,这可能不足以学会对目标任务进行预测。我们需要让最后一个卷积层的特征包含输入的整体信息。
2.最后一层的特征图对每个样本共有222264=30976个元素。这太多了。如果你将其展平并在上面添加一个大小为512层的Dense层,那一层将会有1580万个参数,这对于一个小型模型来说,会导致严重的过拟合。
综上所述,使用下采样的原因,一是减少需要处理的特征图的元素个数,二是通过让连续卷积层的观察窗口越来越大(即窗口覆盖原始输入的比例越来越大)
,从而引入空间过滤器的层级结构。
请注意,最大池化不是实现下采样的唯一方法。我们还可以在前一个卷积层中使用步幅stride来实现。此外,我们也可以使用平均池化来代替最大池化,其方法是将每个局部的输入图块变换为取该图块各通道的平均值而不是最大值。但是最大池化的效果往往比这些替代方法更好。简而言之,原因在于特征中往往编码了某种模式或概念在特征图的不同位置是否存在,而观察不同特征的最大值而不是平均值能够给出更多的信息。因此,最合理的子采样策略是首先生成密集的特征图(通过无步进的卷积),然后观察特征每个小图块上的最大激活,而不是查看输入的稀疏窗口(通过步进卷积)或对输入图块取平均,因为后两种方法可能导致错过或者淡化特征是否存在的信息。