因为在YOLO里面看到了使用Global Average Pooling替换全连接层,同时也在其他网络里面发现也都使用了Global Average Pooling替换全连接层。因此,打算来读一下这篇提出了Global Average Pooling的Network in Network。

封面来源《9nine》

前言

  Network in Network(下面简称NIN)认为CNN中的卷积核是基础数据补丁的广义线性模型(GLM),同时他认为GLM的抽象层次比较低。用更有效的非线性函数逼近器代替GLM,可以提高局部模型的抽象能力。当潜在概念的样本线性可分离时,GLM可以达到很好的抽象程度,即概念的变体都存在于GLM定义的分离平面的一侧。因此,传统的CNN隐式地假设潜在概念是线性可分的。然而,同一概念的数据往往存在于非线性流形上,因此捕获这些概念的表示通常是输入的高度非线性的函数。在NIN中使用了一种通用的非线性函数逼近器的“微型网络”结果来替代GLM。在NIN一文中就是选择了多层感知器MLP作为非线性函数逼近器。
  在NIN一文中提出了两个创新点:Mlpconv和Global Average Pooling

Mlpconv

  在没有关于潜在先验分布的情况下,使用通用函数逼近器来提取局部补丁的特征是可行的,因为它能够逼近潜在概念的更抽象的表示。径向基网络(Radial basis network)和多层感知器(multilayer perceptron)是两个知名的通用函数逼近器。NIN一文中选择使用多层感知是基于以下两个原因。这种新型的层就叫做mlpconv。

  1. 多层感知器和卷积神经网络一样,都是通过反向传播进行训练
  2. 多层感知器自身也是一个深度模型,符合特征再利用的原则

传统卷积


GLM中的卷积结构如上图所示,以激活函数为Relu为例子,其计算如下

fi,j,k=max(ωkTxi,j,0)f_{i,j,k} = max(\omega_k^Tx_{i,j},0)

mlp卷积


mlp中的卷积格式如上所示,以Relu激活函数为例子,其计算公式如下

fi,j,k11=max(ωk11Txi,j+bk1,0)fi,j,knn=max(ωknnTfi,jn1+bkn,0)\begin{matrix} f_{i,j,k_1}^1 = max({\omega_{k_1}^1}^Tx_{i,j}+b_{k_1},0)\\ \vdots \\ f_{i,j,k_n}^n = max({\omega_{k_n}^n}^Tf_{i,j}^{n-1}+b_{k_n},0) \end{matrix}

  这种跨通道参数池化层与1×1的卷积核等效,实际上就是1×1的卷积实现。这使得NIN的结构容易理解。

关于1×1卷积

conv
  卷积核的计算如上图所示,输出通道与卷积核的个数是相等的。对于输入单通道的单个1×1卷积核,此时就相当于feature map乘以一个系数,而当输入为多个通道的时候,相当于把多个feature map线性加权求和再通过一个激活函数,其功能与全连接相似,权重共享,参数更少。

Global Average Pooling

  传统的卷积神经网络在做分类任务的时候,会对最后一个卷积层得到的特征图向量化并送入全连接层,再经过一个softmax逻辑回归。但是全连接层容易过拟合,阻碍网络泛化性,直到Hinton等人提出dropout,提升了其泛化能力,预防过拟合。
  NIN中提出了另一种策略,也就是全局平均池化来替代全连接。在最后一个mlpconv层生成的每张特征图直接求平均,得到结果向量输入到softmax。全局平均池化相比全连接层的优点在于通过增强特征图与类比间的对应关系使卷积结构保留的更好,使特征图分类是可信的得到很好的解释;另一个优点是全局平均池化层中没有参数需要优化,因此避免了过拟合;此外,全局平均池化汇聚了空间信息,所以对输入的空间转换更有鲁棒性。

总结

  1. 改变卷积结构,使用1×1卷积,相当于一个微型的全连接层,提高卷积层抽象能力。
  2. 使用全局平均池化替代全连接避免过拟合,对输入的空间转换更有鲁棒性。

参考

[1] Lin M , Chen Q , Yan S . Network In Network[J]. Computer Science, 2013.