全局平均池化

原文https://zhuanlan.zhihu.com/p/345183296

一、全局平均池化

全局平均池化层(GAP)在2013年的《Network in Network》 (NIN)中首次提出,于是便风靡各种卷积神经网络。为什么它这么受欢迎呢?

一般情况下, 卷积层用于提取二维数据如图片、视频等的特征,针对用于具体任务(分类, 回归, 图像风格)等,卷积层后续会用到不同类型的网络, 拿分类问题举例, 最简单的方式就是将卷积网络提取出的特征(feature map)输入到softmax全连接层对应不同的类别. 首先, 这里的feature map是二维多通道的数据结构, 类似于三个通道(红黄绿)的彩色图片, 也就是这里的feature map具有空间上的信息; 其次, 在GAP被提出之前, 常用的方式是将feature map直接拉成一维向量(下图左), 但是GAP不同, 是将每个通道的二维图像做平均, 最后也就是每个通道对应一个均值(下图右).

可以看到, GAP的设计非常简单直接, 但是为什么要这么做呢? 或者说GAP区别于全连接的方式有哪些优势呢?

  1. 抑制过拟合. 直接拉平做全连接层的方式依然保留了大量的空间信息, 假设feature map是32个通道的1010图像, 那么拉平就得到了321010的向量, 如果是最后一层是对应两类标签,那么这一层就需要32002的权重矩阵, 而GAP不同, 将空间上的信息直接用均值代替, 32个通道GAP之后得到的向量都是32的向量, 那么最后一层只需要32*2的权重矩阵.相比之下GAP网络参数会更少,而全连接更容易在大量保留下来的空间信息上面过拟合.

可以看到, GAP的设计非常简单直接, 但是为什么要这么做呢? 或者说GAP区别于全连接的方式有哪些优势呢?

  1. 抑制过拟合. 直接拉平做全连接层的方式依然保留了大量的空间信息, 假设feature map是32个通道的1010图像, 那么拉平就得到了321010的向量, 如果是最后一层是对应两类标签,那么这一层就需要32002的权重矩阵, 而GAP不同, 将空间上的信息直接用均值代替, 32个通道GAP之后得到的向量都是32的向量, 那么最后一层只需要32*2的权重矩阵.相比之下GAP网络参数会更少,而全连接更容易在大量保留下来的空间信息上面过拟合.

可以看到, GAP的设计非常简单直接, 但是为什么要这么做呢? 或者说GAP区别于全连接的方式有哪些优势呢?

  1. 抑制过拟合. 直接拉平做全连接层的方式依然保留了大量的空间信息, 假设feature map是32个通道的1010图像, 那么拉平就得到了321010的向量, 如果是最后一层是对应两类标签,那么这一层就需要32002的权重矩阵, 而GAP不同, 将空间上的信息直接用均值代替, 32个通道GAP之后得到的向量都是32的向量, 那么最后一层只需要32*2的权重矩阵.相比之下GAP网络参数会更少,而全连接更容易在大量保留下来的空间信息上面过拟合.

  2. 可解释的雏形. 在《NIN》原文当中有这样一句话, GAP相比全连接更加自然地加强了类别和feature map之间的联系, (这个类别指的是分类的类别)因此, feature map可恶意很容易地解释成categories confidence maps. 后半句可能有些难以理解, 这块我们在第二节展开来讲. 如果之前对Class Activation Mapping (CAM)有过了解的同学可能会不禁感叹: “这其实就是CAM的核心思想!”

  3. 输入尺寸更加灵活. 在第1点的举例里面可以看到feature map经过GAP后的神经网络参数不再与输入图像尺寸的大小有关, 也就是输入图像的长宽可以不固定.

除了这些优势, GAP也有个缺点: 训练的收敛速度会变慢.

二、可解释性拓展

长期以来,大家都希望可以解释神经网络这个”黑盒”, 尤其是深度学习在图像领域大放异彩, 解释性也越来越被广泛关注. Class Vactivation Mapping (CAM) 论文发表于2016年CVPR(比GAP原文提出晚了2~3年), 是针对图像分类问题的一种经典的可解释方法, 而其本身也和全局平均池化有千丝万缕的联系. 这里先看看CAM的效果, 下图第一行是蘑菇和企鹅的图片, 第二行是分类的解释–高亮的区域很好地匹配了蘑菇和企鹅的位置, 换句话说, 证明神经网络和我们人类在判断这些图片的时候的关注点是一致的!

那么CAM是怎么实现的呢? CAM又是如何跟GAP扯上关系的呢?

举个例子, 比如feature map是5个通道, 那么经过GAP之后变成了一维向量x, 且一个元素对应一个通道, 所以x是51的向量; 然后分类层假如我们要分两类, 那么就需要25的权重矩阵W, W的第一行和x对应元素相乘并相加(内积), 就得到了类别0的概率:

同理有类别1的概率(简便期间, 图上省略了softmax激活函数, 但实际上概率要经过softmax得到.)从上面式子可以看出, W第一i行的哪个权重越大, 代表这个通道的均值对类别-0结果的贡献/重要性越大, 而这个通道的均值又是来自于feature map的对应通道, 那么是不是说这个权重也就代表了二维feature map对结果的重要性呢? 到这里CAM的核心思想就有了, 那么再来看论文原片的图片就非常容易理解了. 上面的式子是对GAP之后的均值进行加权得到分类的概率, 而CAM是把GAP之前的feature map进行加权得到了分类的解释, 是不是大道至简, 非常巧妙呢?

当然,对于图像分类的可解释性方法还有很多,比如Grad-CAM, Grad-CAM++等,本期不展开讨论。