Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
nin神经网络_深度学习基础(三)NIN_Network In Network,希望能够帮助你!!!。
该论文提出了一种新颖的深度网络结构,称为“Network In Network”(NIN),以增强模型对感受野内local patches的辨别能力。与传统的CNNs相比,NIN主要的创新点在于结构内使用的mlpconv layers(multiple layer perceptron convolution layers)和global average pooling。下面先介绍二者:MLP Convolution Layers
如Fig.1所示,传统卷积网络中的 linear convolution layer由linear filter+nonlinear activation构成,而mlpconv layer内部是一个micro network(在论文中作者选择multilayer perceptron(MLP)作为 micro network)。作者之所以尝试寻找一种新的layer代替 linear convolution layer,是因为传统的卷积层存在着明显的缺陷。一是CNN中的卷积核是 data patch 上的一个广义线性模型(Generalized linear model,GLM),它的 abstraction 程度较低(这里的abstraction是指特征对同一概念(concept)的变体是不变的)。如果将GLM换成一个更有效的非线性函数逼近器就能够增强 local model 的abstraction能力。二是当latent concepts的samples线性可分时,GLM才能达到很好的abstraction程度,比如concepts的变体全都在GLM定义的分界面一侧,我们在使用传统卷积时实际上是假设 the latent concepts是线性可分的。但是,相同concept的data往往是呈非线性流形(nonlinear manifold)分布的,因而对应那些concepts的表示(representations)通常是输入的高度非线性函数。当latnet concepts的samples是线性可分时,linear convolution的abstraction能力是足够的。线性不可分时,传统的CNN会通过利用一系列完备的filters覆盖latent concepts的所有变体来弥补线性划分的不足。也就是说,对于同一个concept,使用不同的linear filters来检测不同的变体(variations)。但是,单个concept有太多filters的话下一层需要考虑到所有来自前面layers的combinations of variations,这会给下一层增加额外的负担。正如CNN中那样,来自higher layers的filters会在原始输入上映射出更大的区域,这样通过combinig来自低层的lower level concepts会产生一个higher level的concept。因此作者认为,在将lower level concepts combining成higher level concepts之前,在每一个local patch上进行更好的abstraction会很有意义。(patch:每次filter进行卷积时input或faeture maps参数计算的小区域;concept: 应该是希望检测的objects的高级特征,如船舶、飞机等,论文后面说是categories;abstraction: 对同一concept的变体提取的特征不变的特征提取)
为此,作者将GLM替换为一个“micro network”结构,它是一个通用非线性函数逼近器(general nonlinear function approximator)。论文中作者选择多层感知器(multilayer perceptron,MLP)作为micro network,原因有如下两点:1) 多层感知器与卷积神经网络结构兼容,可以使用反向传播算法进行训练
2) 多层感知器本身可以是一个深度模型(Deep model),这与feature re-use的精神是一致的
mlpconv layer执行的计算如下:
式中,n是多层感知器层数,从max()也可以看出多层感知器中使用的激活函数是Rectified linear unit。该计算过程等同于在一个传统的卷积层之后连接级联的跨通道参数池化层。每
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章