GlobalAveragePooling2D(gap全局平均池化层)

概述

Global Average Pooling,简称GAP,全局平均池化层

最早在 Network In Network 中提出(第3.2节)

认为是可以 替代 全连接层 的一种新技术。

在keras发布的经典模型中,可以看到不少模型甚至抛弃了全连接层,转而使用GAP,如下:
https://github.com/keras-team/keras-applications/blob/master/keras_applications/vgg16.py

传统方式

在常见的卷积神经网络中,卷积层负责对图像进行特征提取,在获取特征后,传统的方法是接上 全连接层(FC) 之后再进行 激活分类

缺点

  1. 参数量极大,有时候一个网络超过80~90%的参数量在最后的几层FC层中;

  2. 容易过拟合,很多CNN网络的过拟合主要来自于最后的fc层,因为参数太多,却没有合适的正则化(regularizer);过拟合导致模型的泛化能力变弱;

  3. 实际应用中非常重要的一点,paper中并没有提到:FC要求输入输出是fix的,也就是说图像必须按照给定大小,而实际中,图像有大有小,fc就很不方便;

GAP原理

用 GAP 替代 全连接层(FC)。

如上图,假设卷积层的最后输出是6 × 6 × 3 的三维特征图,GAP是求出 每一层特征图 的所有像素点的 平均值,

所有像素值的和/(6*6)

这样 3个特征图 就会输出 3个平均值,组成1*1*3的向量,再进行 softmax 计算

优点

  1. GAP在特征图与最终的分类间转换更加简单自然;

  2. 不像 全连接层(FC) 需要大量训练调优的参数,降低了空间参数会使模型更加健壮,抑制 过拟合效果更佳。

keras api

https://www.malaoshi.top/show_1EF4BaBYUx44.html

感谢:
https://www.cnblogs.com/hutao722/p/10008581.html
https://blog.csdn.net/qq_30159015/article/details/79725520


原文出处:/show_1EF4YsF7RPkg.html