卷积神经网络 (CNN) 中的池化层减少了特征图的空间维度,同时保留了重要信息,提高了计算效率,并帮助网络专注于更广泛的模式。它们通过对输入的区域进行下采样来操作,通常使用最大池化(选择窗口中的最大值)或平均池化(计算窗口的平均值)等操作。例如,一个步长为 2 的 2x2 池化窗口会将特征图的宽度和高度减半。这种压缩减少了后续层中的参数数量,从而降低了内存使用率和计算成本。池化还引入了一定程度的平移不变性,使网络对输入数据的微小变化不那么敏感,这对于图像分类等对象位置可能不同的任务非常有用。
池化层实现的平移不变性有助于 CNN 更好地泛化。例如,如果 CNN 使用卷积滤波器检测图像中的边缘,池化可确保这些边缘的轻微移动不会显着改变传递到后续层的特征图。最大池化在这里特别有效,因为保留最强的激活(例如,区域中最突出的边缘)可以保留关键特征,同时丢弃不太相关的细节。这使得更深层可以专注于更高级别的模式,例如纹理或形状,而不是精确的像素位置。在实践中,像 LeNet-5 这样的架构使用平均池化,而像 VGG 和 ResNet 这样的现代 CNN 通常采用最大池化。如果没有池化,网络将需要更多的计算来处理高分辨率特征图,这使得大型输入的训练变得不切实际。
除了效率和不变性之外,池化层还简化了网络学习分层特征的能力。早期层捕获精细细节(例如,边缘),池化逐渐将这些细节聚合为更粗糙、更抽象的表示(例如,对象部件)。但是,某些架构用步长卷积代替池化,这通过卷积层中更大的步长值来实现下采样。这种方法可以减少信息丢失,但会增加参数数量。池化仍然很受欢迎,因为它简单有效——例如,典型的 CNN 可能会在卷积块之后使用多个最大池化层,以逐渐缩小空间维度,同时放大主要特征。开发人员可以试验池化类型(最大、平均或学习)和窗口大小,以平衡特定任务的效率和准确性。