资讯

最大池化是什么?在每个小窗口里只保留最大值

2026-11-053 分钟阅读百科
TL;DR最大池化(Max-Pooling)是卷积神经网络中最常用的池化方式,在特征图的局部窗口(常为 2×2、步长 2)中取最大值作为输出,从而缩小尺寸、降低计算量,并保留数值最大的特征响应、带来对微小平移的不变性;反向传播时梯度只传给窗口中的最大值位置,它会丢失精确位置信息,现代网络常以步长卷积替代。

最大池化(Max-Pooling)是卷积神经网络中最常用的一种池化操作:在特征图上划分出一个个小窗口,每个窗口中只保留数值最大的那一个,其余的都丢弃。这样,特征图的尺寸就缩小了,同时保留下了每个区域中最突出的特征。本站另有“池化”词条介绍池化的一般概念,这里详细说明最大池化。

怎么计算

最常见的设置是使用 2 乘 2 的窗口、步长为 2:窗口每次移动两个位置,相邻的窗口互不重叠。在每个窗口的 4 个数中取最大的那一个作为输出。比如一个窗口中的四个数是 1、3、2、5,输出就是 5。经过这样的最大池化,特征图的高和宽都缩小为原来的一半,面积缩小为四分之一。最大池化对每个通道分别进行,不改变通道的数量,也没有任何需要学习的参数。AlexNet 中还使用了 3 乘 3 窗口、步长为 2 的重叠最大池化,相邻窗口之间有重叠。

为什么取最大值

在卷积神经网络中,特征图上的每个数值表示某个特征在这个位置被检测到的强度,比如某个卷积核专门检测竖直的边缘,数值越大,说明这里越像一条竖直的边缘。最大池化保留每个区域中数值最大的响应,相当于在问:“这个区域里有没有出现这个特征?”而不太关心它出现在区域中的哪个精确位置。对于图像识别来说,这种做法通常很有效:判断一张图片里有没有猫,关键是有没有猫的特征出现,而它在图中偏左还是偏右一两个像素并不重要。

最大池化的作用

降低计算量和内存占用:特征图变小后,后续各层需要处理的数据大大减少。扩大感受野:池化之后,后面层中的每个神经元对应着原始图像中更大的区域,能够“看到”更大范围的内容。带来一定的平移不变性:当输入中的特征轻微地移动了一两个像素,只要它仍然在同一个池化窗口内,最大池化的输出就不会改变。这让网络对物体位置的微小变化不那么敏感。提供一定的抗干扰能力:只保留数值最大的响应,那些较弱的、可能由噪声引起的响应被丢弃了。

反向传播时怎么处理

最大池化在每个窗口中只选了一个值作为输出,所以在反向传播计算梯度时,梯度只会传给窗口中那个取到最大值的位置,其他位置的梯度都是零。为此,在前向计算时需要记录下每个窗口中最大值所在的位置。

与平均池化的比较以及局限

平均池化取窗口内所有数值的平均,保留了区域的整体信息,结果更加平滑;最大池化则突出最显著的特征。在卷积神经网络的中间层,最大池化通常效果更好,也更常用;而在网络的最后,全局平均池化常被用来把整张特征图汇总为一个向量。最大池化的主要缺点是会丢失信息,尤其是特征的精确位置,这对于图像分割、目标检测中的精确定位等任务可能不利。杰弗里·辛顿就曾批评最大池化丢弃了特征之间的空间关系,这也是他提出胶囊网络的动机之一。在现代的网络设计中,很多网络改用步长大于 1 的卷积层来进行下采样,让网络自己学习如何汇总信息;视觉 Transformer 等模型也通常不再使用传统的池化层。