【啃书吧:深度学习与MindSpore实践】第五章 5.2 池化
初读:2021年5月6日至2021年5月8日
啃书进度会在目录中标出来。本次目标是完成第5章 5.2节 池化(P57-P59)。
5.1节介绍了通过增加步长来减小输出矩阵大小的方法。池化(Pooling)是另一种常用的降维操作。书中图5.6显示对4×4的特征图进行降维,对其中每个2×2的区域进行池化。
常见的池化有两种:
- 最大池化:选择局部区域中的最大值,能够获取局部信息,更好地保留纹理上的特征。如果不用观察物体在图片中的具体位置,只关心其是否出现,使用最大池化效果较好。
- 平均池化:计算局部区域的平均值,往往能保留整体数据的特征,更适用于突出背景信息时使用。
通过池化,重要的、更有利于特定任务的信息得以保留,而不重要的信息被丢弃,从而达到降维、减少计算复杂度的目的。
同卷积操作类似,池化操作也可以通过重叠、定义步长等参数。与卷积操作不同的是,池化操作在单个矩阵上进行,卷积则是核矩阵在输入矩阵上的操作,可能把池化理解成一种特殊的核矩阵。
书中图5.7展示了LeNet卷积网络的构成。输入图片为32×32的灰度图片,先利用6个5×5的卷积核,得到大小6×28×28的特征图,这是网络的第一层。第二层为池化操作,对特征图进行降维,得到6×14×14的特征图。经过后面两层卷积池化操作后,得到16×5×5的特征图,经过最后一层卷积操作,输出120×1的特征向量,最后经过两层全连接层,得到最终的输出向量,即类别表达。本书3.4节“用MindSpore实现简单神经网络”对LeNet网络各层参数进行了详细讲解,可以相互参照着看。