Global average pooling (GAP)

date
Jun 28, 2021
Last edited time
Mar 27, 2023 09:04 AM
status
Published
slug
Global_average_pooling(GAP)
tags
DL
CV
summary
Global average pooling 与 everage pooling 的区别
type
Post
Field
Plat
Fully Connected layer
很长一段时间以来,全连接网络一直是 CNN 分类网络的标配结构。一般在全连接后会有激活函数来做分类,假设这个激活函数是一个多分类 softmax,那么全连接网络的作用就是将最后一层卷积得到的 feature map stretch 成向量,对这个向量做乘法,最终降低其维度,然后输入到 softmax 层中得到对应的每个类别的得分。
然而,全连接层过多的参数容易造成过拟合。
Global Average Pooling
notion image
每个讲到全局池化的都会说 GAP 就是把 avg pooling 的窗口大小设置成 feature map 的大小,这虽然是正确的,但这并不是 GAP 内涵的全部。GAP 的意义是对整个网络从结构上做正则化防止过拟合
GAP 直接从 feature map 的通道上下手,如果我们最终有 1000 类,那么最后一层卷积输出的 feature map 就只有 1000 个 channel,然后对这个 feature map 应用全局池化,输出长度为 1000 的向量,这就相当于剔除了全连接层黑箱子操作的特征,直接赋予了每个 channel 实际的类别意义。
Jesse comment:还是可以在 GAP 之后加一个全连接层,然后 feature map channel 数不一定就要跟类别数一样了。见下:
实验证明,这种方法非常有效。
这样做还有另外一个好处:不用在乎网络输入的图像尺寸。同时需要注意的是,使用 gap 也有可能造成收敛变慢。

© Lazurite 2021 - 2024