Network in network
作为GoogLeNet等Inception网络的设计提供了一个很好的开端,NIN这篇论文提供了一个很好trick,因此在分析Inception系列之前,我们先来扒一扒这篇network in network
Title: Network in network
Author and affiliation: Min Lin; 新加坡国立大学
Year: 2014
Datasets: CIFAR-10, CIFAR-100, SVHN, MINST
Main contributions:
该论文旨在增强对于局部patch在感受野范围内的辨别能力。
1.多层堆叠的复杂结构
传统的卷积网络的每一层都是由每个patch与卷积核进行加权求和,然后接上一个激活函数以增强模型的线性表达能力,也就是运用了GLM广义线性模型来进行特征提取。但这种模型对于线性可分的concept(对于concept中的所有变量都属于GLM定义的分割面的一侧)也许是可以的,而CNN也正是以这个假设为前提的。但对于非线性的情况,GLM的能力就显得有些不够了,虽然可能通过很多的滤波器去提取所有可能的特征,但这种模式带来的参数规模是巨大的,因此需要引入更有效的非线性模型去加强模型的表达能力。
由于对于输入数据的分布是未知的,因此需要用一个通用的函数逼近器。径向基网络和多层感知机MLP是比较常用的通用函数逼近器。作者使用用MLP[1]作为一种“微型网络”作为层来去逼近数据模型,并用后馈来对网络进行训练。主要有两大原因:第一,MLP与卷积神经网络的结构是兼容的,都可以通过后馈来训练网络,MLP只是增加了网络的隐层个数;第二,MLP本身也是一种深度模型,因此这与特征复用的思想是一致的。如下图可见,MLP包含了多个全连接层在两层的特征图之间。通过这种堆叠的方式来增强模型的非线性表达能力,同时比运用一大堆滤波器节省参数。
![](https://i-blog.csdnimg.cn/blog_migrate/7341a55db2ddeadaed8c21303edad682.png)
MLP通过下式进行计算:
其中n为MLP中的隐层数量(论文中取了n=2),k为特征图对应的索引。在每一个隐层后都会接一个ReLu激活函数。
作者使用MLP去替代了传统cnn中使用的GLM,结构区别见下图,MLP通过多层隐层网络,增加了模型的非线性表达能力。论文中的MLP在传统卷积后接了两个全连接层(等价于1*1的卷积层),隐层的第一层的神经单元就是patch中每个通道对应的每个像素赋予权重和bias后的计算值,然后再向后继续重复这种计算n-1次,通过这种方式,通过对特征图的线性组合实现了多通道之间的信息融合。
ps:径向基RBF网络的输入层到隐藏层之间不是通过权值和阈值进行连接的,而是通过输入样本与隐藏层点之间的距离(与中心点的距离)连接的。RBF网络可以逼近任一的非线性网络,具有良好的泛化能力,且收敛速度快。RBF激活函数可通过下式大致了解下,之后会出篇专门介绍RBF的博客,这篇还是把重点放在MLP上吧~
此外,作者还将MLP与maxout网络进行了对比[3]。maxout网络一种基于MLP的模型,每个maxout模型内部可以有多个仿射变换,如下图的maxout网络模型。输入层经过三个仿射变换(可以理解为三个channels的特征提取器)进行特征提取,我们不再用任何非线性激活函数去处理隐层的输出,而是去这三个变换中的最大值最为这一层的输出。需要注意的是,这里的选取最大值是跨通道的,即在所有通道中去选择同一位置像素的最大值。通过这种方式,它通过线性变换组合了多个放射变换,使得整个maxout网络是非线性变换。
通过高等数学的可以知道任意的凸函数都可由分段线性函数来拟合,而maxout可以近似于一种分段函数的实现。因此maxout可以去逼近任一凸函数。
论文中提出的MLP(激活函数使用的是ReLu)与maxout网络相比,它属于通用函数逼近器,而maxout属于凸函数逼近器。因此MLP在拟合不同分布的输入上有更好的能力。
2.全局平均池化替换全连接层
在传统的神经网络中,最后一个卷积层通常会被向量化输入到全连接层,然后接一个softmax进行分类。但全连接层由于神经元多,参数量大,常常容易引起过拟合问题,影响了模型的泛化能力。dropout [2]是一种解决这个问题的方式。
作者提出了另一种方式直接替换掉了全连接层,那就是全局平均池化。这种方法将卷积的最后一层(在NIN中也就是MLP的最后一层)的结果,对于每个类别有一张特征图(也就是将最后一层的特征图数设为类别数)然后进行全局平均池化,其结果将被直接输入到softmax中进行分类,得到每一个类别的预测值。
这样做的好处是:
a. 由于对网络的最后一层特征图直接进行池化作为分类器的输入,因此这种模式下可以使得特征图与类别之间的对应关系得到了增强。在下图的NIN可视化图中也可以看出,最后一个MLP层的特征图的最大激活区域与输入图像的真实物体的区域是相同的。
b. 这一层没有多余参数,因此对比起全连接层可以在一定程度上避免过拟合
c. 全局平均池化结合了图像的空间信息,因此这种模型对于输入的空间转换更鲁棒。
Architecture:
该论文的网络框架其实就是三层卷积,每个卷积层中都包含了一个MLP增强非线性能力。最后是一个全局平均池化层(GAP)层和softmax层。
Results:
作为正则化因子,在NIN中,除了最后一层,其余层都是用了dropout。其中的预处理部分同[3]中Goodfellow的一样。
预处理:
a. CIFAR-10
图像的尺寸为32*32的RGB图像,作者用未经过数据增强和使用了数据增强的
b. CIFAR-100
c. SVHN
在SVHN上虽然不是效果最好的,但效果也还可以。
d. MNIST
在MNIST上虽然不是效果最好的,但效果与最好的十分相近。
e. GAP作为正则项
GAP层和全连接层很相似,都对特征向量做了线性转换,但使用了不同的转换矩阵。GAP的转换矩阵是事先定义的并且仅在共享相同值的块对角线元素上是非零的。这部分的实验验证了使用GAP的效果确实比使用全连接层要好一点。
Github:
Reference:
[1] Frank Rosenblatt. Principles of neurodynamics. perceptrons and the theory of brain mechanisms. Technical report, DTIC Document, 1961.
[2] Geoffrey E Hinton, Nitish Srivastava, Alex Krizhevsky, Ilya Sutskever, and Ruslan R Salakhutdinov. Improving neural networks by preventing co-adaptation of feature detectors. arXiv preprint arXiv:1207.0580, 2012.
[3] Ian J Goodfellow, David Warde-Farley, Mehdi Mirza, Aaron Courville, and Yoshua Bengio. Maxout networks. arXiv preprint arXiv:1302.4389, 2013.
作者:miya_xu 出处:https://blog.csdn.net/u012885745/article/details/84714124 欢迎转载或分享,但请务必声明文章出处。