【图像分类系列】(一)--Network In Network

简介: 【图像分类系列】(一)--Network In Network

一、摘要

我们提出了一种新的深度网络结构,称为“网络中网络”(network In network, NIN),以增强模型在接受域内局部补丁的可识别性。传统的卷积层使用线性滤波器,然后是非线性激活函数来扫描输入。相反,我们构建具有更复杂结构的微神经网络,以在接受域内抽象数据。我们用一个多层感知器来实例化这个微神经网络,它是一个有效的函数逼近器。特征图是通过类似于CNN的方式在输入上滑动微网络获得的;然后它们被送入下一层。深度NIN可以通过叠加多个上述结构来实现。通过微网络增强的局部建模,我们能够在分类层中利用特征图的全局平均池化,这比传统的全连接层更容易解释,也更不容易出现过拟合。我们展示了NIN在CIFAR-10和CIFAR-100上的最先进的分类性能,以及在SVHN和MNIST数据集上的合理性能。

注解:作者在本篇文章中提出了一种新的网络结构块,它是类CNN结构来实现特征提取,采用MLP实例化增强模型对图像块局部的建模

二、介绍

卷积神经网络由交替的卷积层和池化层组成。卷积层取线性滤波器和底层接收域的内积,然后在输入的每个局部部分上使用非线性激活函数。产生的输出被称为特征图。

注解:通常的CNN卷积模型都是采用卷积层+池化层+非线性激活函数构成

CNN中的卷积滤波器是一个用于底层数据patch的广义线性模型(GLM),我们认为使用GLM的抽象水平较低。通过抽象,我们的意思是该特性对相同概念的变体是不变的。用一个更有效的非线性函数逼近器代替GLM,可以提高局部模型的抽象能力。当潜在概念的样本是线性可分的,即概念的变体都位于GLM定义的分离平面的一侧时,GLM可以达到较好的抽象程度。因此,传统的CNN隐式地假定潜在的概念是线性可分的。然而,相同概念的数据通常存在于非线性流形上,因此捕获这些概念的表示通常是输入的高度非线性函数。在NIN中,GLM被一个“微网络”结构所取代,该结构是一个一般的非线性函数逼近器。在这项工作中,我们选择多层感知器作为微网络的实例,它是一个通用的函数逼近器和一个可通过反向传播训练的神经网络。

我们称之为mlpconv层的结果结构与CNN在图1中进行了比较。线性卷积层和mlpconv层都将局部接受域映射到输出特征向量。mlpconv利用多层感知器(MLP)将输入的局部贴片映射到输出特征向量,多层感知器由多个具有非线性激活函数的全连接层组成。MLP在所有本地接收域之间共享。feature map是通过以类似CNN的方式滑动MLP在输入上获得的,然后馈送到下一层。NIN的整体结构是多层mlpconv层的叠加。它被称为“网络中的网络”(NIN),因为我们有微网络(MLP),它们是构成整体深度网络的元素。

注解:改进后的模型叫做MlpConv,它与传统不同的地方就是在原来的Conv结构中添加了MLP结构,将滑动图像块提取到的局部特征输入到了MLP中进行非线性激活

在CNN中,我们没有采用传统的全连接层进行分类,而是通过全局平均池化层直接输出最后一个mlpconv层的特征图的空间平均值作为分类的置信度,然后将得到的向量送入softmax层。在传统的CNN中,很难解释来自目标代价层的类别级信息是如何传递回之前的卷积层的,因为在这两者之间的全连接层充当了一个黑盒。相比之下,全局平均池更有意义,更易于解释,因为它加强了特征映射和类别之间的对应,这是通过使用微网络的更强的局部建模实现的。此外,全连接层容易出现过拟合,严重依赖dropout正则化,而全局平均池本身就是一个结构正则化器,它天生就防止了整体结构的过拟合。

注解:传统卷积图像分类在输出层会将feature map提取到的高阶特征进行全连接,然后进行softmax,改进后的就是采用了通道全局平均池化,也就是让每个特征图代表一个类别

三、卷积神经网络

经典的卷积神经元网络[1]由交替堆叠的卷积层和空间池层组成。卷积层由线性卷积滤波器生成特征图,然后是非线性激活函数(rectifier、sigmoid、tanh等)。以线性整流器为例,其特征图计算如下:

image.png

当潜在概念的实例是线性可分的时候,这个线性卷积对于抽象是足够的。然而,实现良好抽象的表示通常是输入数据的高度非线性函数。在传统的CNN中,这可能会通过使用一个过度完整的集合过滤器来覆盖潜在概念的所有变化而得到补偿。也就是说,可以学习单个线性滤波器来检测同一概念的不同变化。但是,对于一个概念使用太多的过滤器会给下一层带来额外的负担,下一层需要考虑来自上一层的所有变体的组合。就像在CNN中,来自更高层次的过滤器映射到原始输入中的更大的区域。它通过结合来自下面一层的较低层次的概念来生成更高层次的概念。因此,我们认为,在将每个局部补丁结合到更高层次的概念之前,对它们进行更好的抽象是有益的。

然而,maxout网络强加了一个先验,即潜在概念的实例位于输入空间的一个凸集内,这并不一定成立。当潜在概念的分布比较复杂时,有必要使用一个更一般的函数近似器。我们试图通过引入新颖的“网络中网络”(Network In Network)结构来实现这一点,该结构在每个卷积层中引入一个微网络,为局部补丁计算更抽象的特征。在之前的几个工作中,已经提出了在输入上滑动一个微网络。例如,Structured Multilayer Perceptron (SMLP)在输入图像的不同patch上应用一个共享的多层感知器;在另一项工作中,一个基于神经网络的过滤器被训练用于人脸检测。但是,它们都是针对具体问题设计的,并且都只包含一层滑动网络结构。NIN是从更一般的角度提出的,将微网络整合到CNN结构中,追求对各级特征更好的抽象。

四、Network In Network

4.1 MLP卷积层

由于没有关于潜在概念分布的先验信息,因此我们希望使用一个通用函数近似器来提取局部补丁的特征,因为它能够近似潜在概念的更抽象的表示。径向基网络和多层感知器是两种著名的通用函数逼近器。我们选择多层感知器在这项工作中有两个原因。首先,多层感知器与卷积神经网络的结构是兼容的,卷积神经网络使用反向传播训练。其次,多层感知器本身可以是一个深度模型,这与特征重用的精神是一致的。本文将这种新型层称为mlpconv, MLP代替GLM对输入进行卷积。图1说明了线性卷积层和mlpconv层之间的区别。mlpconv层的计算如下:

这里n是多层感知器的层数。多层感知器采用整流线性单元作为激活函数。

从跨通道(跨feature map)池化的角度来看,方程2等价于在一个正卷积层上级联的跨通道参数池化。每个池化层对输入的特征图进行加权线性重组,然后再经过整流线性单元。交叉通道池化的特征图在下一层中一次又一次地交叉通道池化。

这种级联的跨信道参数池结构允许跨信道信息进行复杂的、可学习的交互。跨通道参数池化层也等价于具有1x1卷积核的卷积层。这种解释使得理解NIN的结构更加简单。

4.2 全局平均池化

传统的卷积神经网络在网络的底层进行卷积。为了进行分类,对最后一个卷积层的特征映射进行向量化,并将其馈送到全连接层中,随后是一个softmax logistic回归层。该结构是卷积结构与传统神经网络分类器的桥梁。它将卷积层作为特征提取器,并按照传统方法对得到的特征进行分类。

但全连通层容易出现过拟合,从而影响了整个网络的泛化能力。Dropout是Hinton et al.提出的一种正则化方法,它在训练过程中随机将全连通层的一半激活量设为0。它提高了泛化能力,在很大程度上防止了的过拟合。

在本文中,我们提出了另一种策略,即全局平均池化,来替代CNN中传统的全连接层。其思想是在最后一个mlpconv层为分类任务的每个对应类别生成一个特征图。我们不是在特征图上添加完全连接的层,而是取每个特征图的平均值,然后将得到的向量直接输入softmax层。在全连接层上使用全局平均池的一个优点是,通过加强特征映射和类别之间的对应,它更适合于卷积结构。因此,特征映射可以很容易地解释为类别置信度映射。另一个优点是,在全局平均池中没有需要优化的参数,因此在这一层避免了过拟合。此外,全局平均池化对空间信息进行了汇总,因此对输入的空间转换具有更强的鲁棒性。

注解:作者使用全局平均池化有效解决了过拟合的问题,还有个好处就是全剧平均池化层不需要任何训练参数,可以提高模型效率

我们可以把全局平均池看作是一个结构正则化器,它明确地将特征映射强制为概念(类别)的置信度映射。这是由mlpconv层实现的,因为它们比glm更接近置信度映射。

4.3 Network In Network网络结构

NIN的总体结构是一个mlpconv层的堆栈,其上是全局平均池化和目标代价层。子采样层可以添加到mlpconv 4层之间,就像CNN和maxout网络一样。图2显示了带有三个mlpconv层的NIN。在每个mlpconv层中,都有一个三层感知器。NIN和微网络的层数都是灵活的,可以针对特定的任务进行调整。

注解:最后一层使用全局平均池化,如果对于一个分类任务存在1000个分类,那么该层将会有1000个feature map,每个feature map转化为1个类别进行全局输出,全局平均池化就是该feature map所有值相加然后取均值代表该feature map的置信水平。

五、总结

我们提出了一种新的深度网络,称为“网络中的网络”(NIN)用于分类任务。这种新结构由使用多层感知器对输入进行卷积的mlpconv层和替代传统CNN全连接层的全局平均池化层组成。Mlpconv层较好地模拟了局部补丁,而全局平均池作为结构正则化器防止了全局过拟合。利用NIN的这两个组件,我们在CIFAR-10、CIFAR-100和SVHN数据集上展示了最先进的性能。通过特征映射的可视化,我们证明了来自NIN最后一个mlpconv层的特征映射是类别的置信度映射,这激发了通过NIN执行对象检测的可能性。

References

[1] Yann LeCun, Leon Bottou, Yoshua Bengio, and Patrick Haffner.

[2] Y Bengio, A Courville, and P Vincent. Representation learning: A review and new perspectives. IEEE transactions on pattern analysis and machine intelligence, 35:1798–1828, 2013.

[3] Frank Rosenblatt. Principles of neurodynamics. perceptrons and the theory of brain mechanisms. Technical report, DTIC Document, 1961.

[4] Alex Krizhevsky, Ilya Sutskever, and Geoff Hinton. Imagenet classification with deep convolutional neural networks. In Advances in Neural Information Processing Systems 25, pages 1106–1114, 2012.

[5] 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.

[6] Quoc V Le, Alexandre Karpenko, Jiquan Ngiam, and Andrew Ng. Ica with reconstruction cost for efficient overcomplete feature learning. In Advances in Neural Information Processing Systems, pages 1017–1025, 2011.

[7] Ian J Goodfellow. Piecewise linear multilayer perceptrons and dropout. arXiv preprint arXiv:1301.5088, 2013.

[8] Ian J Goodfellow, David Warde-Farley, Mehdi Mirza, Aaron Courville, and Yoshua Bengio. Maxout networks. arXiv preprint arXiv:1302.4389, 2013.

[9] C¸ aglar G ˘ ulc¸ehre and Yoshua Bengio. Knowledge matters: Importance of prior information for ¨ optimization. arXiv preprint arXiv:1301.4083, 2013.

[10] Henry A Rowley, Shumeet Baluja, Takeo Kanade, et al. Human face detection in visual scenes. School of Computer Science, Carnegie Mellon University Pittsburgh, PA, 1995.

[11] Matthew D Zeiler and Rob Fergus. Stochastic pooling for regularization of deep convolutional neural networks. arXiv preprint arXiv:1301.3557, 2013.

[12] Alex Krizhevsky and Geoffrey Hinton. Learning multiple layers of features from tiny images. Master’s thesis, Department of Computer Science, University of Toronto, 2009.

[13] Yuval Netzer, Tao Wang, Adam Coates, Alessandro Bissacco, Bo Wu, and Andrew Y Ng. Reading digits in natural images with unsupervised feature learning. In NIPS Workshop on Deep Learning and Unsupervised Feature Learning, volume 2011, 2011.

[14] Jasper Snoek, Hugo Larochelle, and Ryan P Adams. Practical bayesian optimization of machine learning algorithms. arXiv preprint arXiv:1206.2944, 2012. 9

[15] Li Wan, Matthew Zeiler, Sixin Zhang, Yann L Cun, and Rob Fergus. Regularization of neural networks using dropconnect. In Proceedings of the 30th International Conference on Machine Learning (ICML-13), pages 1058–1066, 2013.

[16] Mateusz Malinowski and Mario Fritz. Learnable pooling regions for image classification. arXiv preprint arXiv:1301.3516, 2013. [17] Nitish Srivastava and Ruslan Salakhutdinov. Discriminative transfer learning with tree-based priors. In Advances in Neural Information Processing Systems, pages 2094–2102, 2013.

[18] Nitish Srivastava. Improving neural networks with dropout. PhD thesis, University of Toronto, 2013.

[19] Ian J Goodfellow, Yaroslav Bulatov, Julian Ibarz, Sacha Arnoud, and Vinay Shet. Multi-digit number recognition from street view imagery using deep convolutional neural networks. arXiv preprint arXiv:1312.6082, 2013.

recognition from street view imagery using deep convolutional neural networks. arXiv preprint arXiv:1312.6082, 2013.

[20] Clement Farabet, Camille Couprie, Laurent Najman, Yann Lecun, et al. Learning hierarchical ´ features for scene labeling. IEEE Transactions on Pattern Analysis and Machine Intelligence, 35:1915–1929, 2013.


目录
相关文章
|
机器学习/深度学习 TensorFlow 语音技术
Convolutional Neural Network,简称 CNN
卷积神经网络(Convolutional Neural Network,简称 CNN)是一种深度学习模型,主要用于图像识别、物体检测、语音识别等任务。CNN 通过局部感知、权值共享和下采样等操作,能够有效地提取图像特征,从而实现对图像的分类和识别。
219 4
|
机器学习/深度学习 数据采集 算法
卷积神经网络(Convolutional Neural Network
机器学习是一种人工智能技术,通过让计算机从数据中学习和提取规律,从而实现对未知数据的预测和决策。卷积神经网络(Convolutional Neural Network,简称 CNN)是机器学习中的一种方法,主要应用于图像识别、语音识别、文本处理等领域。
130 4
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络(Convolutional Neural Network,CNN)
卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,特别适用于处理具有网格结构的数据,如图像和语音等。CNN的核心思想是通过卷积操作和池化操作来提取输入数据的特征,并通过全连接层进行分类或回归任务。
160 0
|
机器学习/深度学习 数据挖掘 TensorFlow
How to Deploy a Neural Network on TH1520
How to Deploy a Neural Network on TH1520
359 0
How to Deploy a Neural Network on TH1520
《A Kernel Redundancy Removing Policy for Convolutional Neural Network》电子版地址
A Kernel Redundancy Removing Policy for Convolutional Neural Network
67 0
《A Kernel Redundancy Removing Policy for Convolutional Neural Network》电子版地址
|
机器学习/深度学习 设计模式 PyTorch
深度学习:NiN(Network In Network)详细讲解与代码实现
深度学习:NiN(Network In Network)详细讲解与代码实现
502 0
深度学习:NiN(Network In Network)详细讲解与代码实现
|
机器学习/深度学习 计算机视觉
Siamese network总结
本文介绍了Siamese (连体)网络的主要特点、训练和测试Siamese网络的步骤、Siamese网络的应用场合、Siamese网络的优缺点、为什么Siamese被称为One-shot分类,以及Siamese的损失函数。
Siamese network总结
|
Kubernetes 容器 Perl
k8s基础网络Cluster Network模型
k8s基础网络Cluster Network模型
169 0
k8s基础网络Cluster Network模型
|
机器学习/深度学习 TensorFlow Go
Convolutional Neural Network (CNN)
我自己写的代码和该教程略有不一样,有三处改动,第一个地方是用归一化(均值为0,方差为1)代替数值缩放([0, 1]),代替的理由是能提升准确率 第二处改动是添加了正则化,在Conv2D和Dense Layer中均有添加,可以抑制模型过拟合,提升val_acc 第三处改动是对模型训练五次进行acc取平均值,因为keras训练模型会有准确率波动,详细代码见文末链接
182 0