主要记载关于全局平均池化层(Global Average Pooling, GAP)中如下两点的理解:
1. GAP的原理
2. 相对于全连接层,GAP具有更少的参数
为了直观地说明全局平均池化层相对于全连接层具有更少的参数,我们可以构造一个简单的例子。假设有一个卷积神经网络(CNN)的输出层前是一个特征图(Feature Map),其维度为 C×H×W,其中:
- C 是通道数(Channel Number),代表特征图的深度。
- H 和 W 分别是特征图的高度和宽度。
现在我们要将这个特征图映射到一个分类任务的输出向量,该向量的长度为N(代表类别数)。
1. **使用全连接层(FC)**:
全连接层会对输入的每个样本(即特征图)的所有元素进行线性变换,生成输出向量。若特征图大小为C×H×W ,则输入的总元素数为C×H×W 。全连接层与输入的每个元素都对应一个权重,再加上一个偏置项,因此该全连接层所需的参数总数为:
其中,前一部分是权重参数,后一部分是偏置参数。
2. **使用全局平均池化层(GAP)**:
全局平均池化层对每个通道(即特征图的深度方向)进行全局平均,即将每个通道内的所有像素点取平均值,形成一个长度为C的向量。接着,这个向量可以直接作为分类器(如逻辑回归或softmax函数)的输入。全局平均池化层没有学习参数,因此其参数数为:
注意,尽管GAP后的分类器(如softmax层)可能有参数(如偏置项),但这些参数与输入特征图的尺寸无关,且数量远小于全连接层的参数。
**对比**:
显而易见,全局平均池化层没有任何需要学习的参数,而全连接层的参数数量与输入特征图的大小(即 ( C×H×W )以及输出类别数 N 均直接相关。在大多数情况下,特征图的尺寸远大于输出类别数,因此全连接层的参数数量通常远大于全局平均池化层。这体现了全局平均池化层在参数效率上的优势,尤其是在处理高分辨率特征图时,能显著减少模型的参数量,降低过拟合风险,并提高计算效率。但是GAP缺点是会使收敛变慢