趋近智
卷积层从输入中提取特征后,会生成特征图。这些特征图虽然包含信息,但通常保持较高的空间分辨率(宽度和高度)。在后续层中处理这些大型特征图可能计算成本高昂,并可能使网络对输入中特征的精确位置过于敏感。池化层提供了一种系统地减小特征图空间维度的方法来解决此问题。
池化,也称为子采样或降采样,它对特征图局部区域的信息进行概括。它有助于创建更紧凑、对输入图像中的小偏移或失真具有稍强鲁棒性的表示。可以将其视为创建了一个较低分辨率的概要,它保留了前一个卷积层检测到的必要特征。
池化操作独立地在每个输入特征图上滑动一个窗口(通常称为池化滤波器或核)。对于窗口的每个位置,它将该窗口内的值聚合成一个单一的输出值。窗口随后根据指定的步幅滑动,类似于卷积。
与卷积层不同,池化层通常没有可学习的参数(权重或偏差)。聚合函数(如最大值或平均值)是固定的。这使得它们更简单且计算成本更低。
定义池化操作的主要参数有:
池化操作是卷积神经网络 (CNN) 中常用的技术,主要有两种类型:
最大池化从池化窗口覆盖的特征图区域中选择最大值。
考虑一个4x4输入特征图和步幅为2的2x2最大池化操作:
输入特征图:
[[ 1, 3, 2, 4],
[ 5, 6, 7, 8],
[ 9, 0, 1, 2],
[ 3, 4, 5, 6]]
池化窗口 (2x2), 步幅 (2)
左上窗口:max(1, 3, 5, 6) = 6
右上窗口:max(2, 4, 7, 8) = 8
左下窗口:max(9, 0, 3, 4) = 9
右下窗口:max(1, 2, 5, 6) = 6
输出特征图 (2x2):
[[ 6, 8 ],
[ 9, 6 ]]
平均池化计算池化窗口内所有元素的平均值。
使用相同的4x4输入图,步幅为2的2x2平均池化操作将得到:
输入特征图:
[[ 1, 3, 2, 4],
[ 5, 6, 7, 8],
[ 9, 0, 1, 2],
[ 3, 4, 5, 6]]
池化窗口 (2x2), 步幅 (2)
左上窗口:avg(1, 3, 5, 6) = 15/4 = 3.75
右上窗口:avg(2, 4, 7, 8) = 21/4 = 5.25
左下窗口:avg(9, 0, 3, 4) = 16/4 = 4.00
右下窗口:avg(1, 2, 5, 6) = 14/4 = 3.50
输出特征图 (2x2):
[[ 3.75, 5.25 ],
[ 4.00, 3.50 ]]
一种变体是全局池化(包括全局最大池化或全局平均池化)。它不使用小窗口,而是将池化操作应用于每个特征图的整个空间维度(宽度和高度)。如果输入特征图的维度为 H×W×C,全局池化会生成大小为 1×1×C 的输出,有效地将每个通道的特征图缩减为一个单一数值。这通常在网络的末端使用,以在送入最终分类层之前大幅减小维度。
这是一个小例子,说明了步幅为2的2x2最大池化操作。
示例:将步幅为2的2x2最大池化操作应用于4x4输入特征图。输出图中的每个值对应于输入中2x2非重叠区域的最大值。
池化层通常插入在连续的卷积层之间(通常在对卷积输出应用激活函数之后)。CNN中的常见模式是:
CONV -> ReLU -> POOL -> CONV -> ReLU -> POOL -> ... -> Flatten -> Fully Connected -> Output
这种结构允许网络首先学习分层特征(CONV + ReLU),然后周期性地降低空间分辨率,同时保留重要信息(POOL)。这种缩减有助于管理计算负载,并对特征定位的变化建立一定的容忍度。
总之,池化是CNN中的一项基本操作,它减小特征图的空间维度,降低计算量,并引入一定程度的平移不变性,与卷积层的特征提取作用相辅相成。最大池化是使用最频繁的变体,因为它在保留强特征激活方面有效。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造