(2013, NIN)Network in Network

1. 论文亮点一

这是在VGG-Net和GoogleNet之前提出的一个CNN分类模型,在我看来,这篇论文最大的亮点是:

  • 提出使用全局平均池化层 ,取代经典CNN分类器如AlexNet、LeNet-5中的全连接层。

传统的CNN分类网络如AlexNet、LeNet-5,甚至2014年出现的VGG-Net,其典型架构是:

  • 网络浅层部分执行一系列卷积/下采样操作,用于提取图像的抽象特征,充当一个特征提取器(feature extractor);
  • 网络顶层部分是一个传统的全连接层/多层感知机MLP,充当一个分类器(classifier)。
  • 特征提取器部分的最后一层输出的feature map,经过向量化(vectorized)后喂入分类器执行分类任务,最后通过一个softmax层输出类别概率。

这类网络架构的一个显著特点是模型的参数数量大得惊人。

  • AlexNet包含约6000万个模型参数,其中最后一个全连接层输出的feature map尺寸为256x6x6。那么全连接层部分产生的权重数量(不算bias)=256x6x6x4096+4096x4096+4096x1000=5862万,即全连接层占了整个模型参数的97.7%;

我们知道,网络的模型参数越多,模型越容易过拟合,那么,如果为什么不把全连接层给砍掉呢?这是NIN网络做的一个重大贡献。

那问题来了,用什么层来代替全连接层,执行分类器的职责?

论文使用了一个全局平均池化层。嗯,这种做法很CNN。

2. 论文亮点二

NIN网络第二个亮点是:

  • 使用mlpconv层取代了传统的conv层

mlpconv层长什么样子?

如下图所示:


左边是传统的卷积层/conv层,右边是mlpconv层。从实现上面来讲:

  • 一个mlpconv层相当于在一个普通的conv层之后,又接了两个1x1的卷积层。嗯,一个mlpconv层其实就是将3个卷积层堆叠起来:第一个卷积层的卷积参数和普通conv层一致,接下来的两个卷积层的卷积核固定为1x1,步长stride=1,no padding,输出通道数和第一个卷积层一致。当然,每一个卷积层之后都接了一个Relu非线性层。这样后面两个1x1的卷积操作就类似于一个多层感知机/mlp,这是mlpconv层取名的由来;
  • 另外,mlpconv层本身就是一个微型网络(micro network),所以整个分类网络是由一个个微型网络堆叠在一起组成的,这是这篇论文名称network in network的由来。

下图是论文中提出的NIN网络结构:


整个NIN分类网络由3个堆叠的mlpconv层,最后接一个全局平均池化层构成。

3. 为什么mlpconv层比普通的conv层更好?

论文中的回答:

CNN中的卷积层是一个通用的线性模型(generalized linear model,GLM),使用GLM对图像内容的抽象化程度较低。使用一个非线性的函数近似器来代替GLM可以提高模型的局部建模能力,众所周知,包含一个隐藏层的多层感知机/mlp是一个万能的函数近似器。因此,作者选择了一个多层感知机来代替卷积层,用于更好地提取图像的局部特征。

我的理解:

从实现角度来讲,一个mlpconv层其实包含了3个卷积层(1个普通卷积层+2个1x1卷积层),这样,普通卷积层用于提取图像的局部特征,1x1卷积层用于进一步融合/抽象不同通道的feature map中提取到的特征。另外,由于每一个卷积层后面都有一个Relu非线性层,那么一个mlpconv层其实执行了3层Relu非线性操作,和传统的conv层相比(1个卷积层+1个Relu层),这使得模型对于非线性决策函数的建模得到增强。

更一般的讲,我觉得mlpconv层其实也就是增加了卷积层数量,从VGG-Net中可以看到卷积网络的深度对CNN网络的性能至关重要。

因此,实际上NIN做的事情就是使用的更多的卷积层,提取到了图像中更高级/抽象的语义特征。caffe的model zoo里面有一个用于ImageNet数据集的NIN结构,如下图所示:

该NIN网络包含了4个mlpconv层,从卷积层数量来讲,该NIN网络包含了4x3=12个卷积层(虽然1x1的卷积层不能增强CNN网络的感受野,但是也融合了不同通道中不同feature map的特征,也具有一定的抽象能力),和包含5个卷积层的AlexNet相比,该NIN模型的表现稍优。

4. 为什么最后可以直接对卷积特征执行全局平均池化得到分类结果?

虽然引入了dropout层后,使用卷积层+全连接层的CNN网络架构在AlexNet上面取得了成功,并且该类结构设计在后来的VGG-Net上面达到了巅峰。但是这也不能掩盖全连接层会造成模型的参数量剧增的事实,超大的模型复杂度使得模型更容易过拟合,阻碍了模型的泛化性能。

这篇论文提出了使用全局平均池化层来代替传统的全连接层:

  • 其思想是:在最后一个mlpconv层,针对每一个目标类别生成一个feature map;
  • 具体实现是:在最后一个1x1卷积时,将feature map的输出通道设置来和模型的分类类别数一致,比如针对ImageNet的1000分类,那么上图中,最后的cccp8-1024卷积层的输出通道就设置为1000,这样,不同通道的feature map就和相应的类别一一对应,最后通过计算每一个通道的feature map的平均值(即全局平均池化层),喂入softmax层,直接得到每个类别的概率;
  • 其实,对于CNN网络来说,使用全局平均池化层的思想更加自然。这相当于在某个类别和对应的feature map之间建立了一一对应的关系,这样,对应的feature map就可以解释为相应类别的置信度映射(confidence map)。对于非常深的CNN网络来说,最后一个卷积层的feature map已经是对图像内容的高度抽象(嗯,前提是得使用很多个卷积层,得到比较高级的语义特征),因此直接使用最后一层的feature map的平均值就能反应图像所属的类别。

5. 总结

NIN网络有两个突出亮点:

  • 使用全局平均池化层代替传统的全连接分类层,可以直接对前面用卷积层提取到的高度抽象的feature map进行分类。另一个重大的好处是,全局平均池化层不包含模型参数。极大地降低了模型的参数数量,相当于网络的一个结构化的正则器(structural regularizer),使得模型复杂度大大降低,泛化性能增强。
  • mlpconv层的使用,其实NIN对人们最重要的启发并不是mlpconv层,说白了其实也就是将卷积层数加深了,Relu层的增多使得模型的建模能力增强。NIN对人们最重要的启发其实是1x1卷积层的使用(有意思的是,NIN中仅仅使用1x1的卷积层来加深网络,提高模型的建模能力),后面的Inception系列和ResNet系列都大量的使用了1x1卷积,因为1x1卷积不仅可以进一步融合不同通道的特征之外,还可以灵活地对feature map的通道数进行升维和降维,典型的是使用1x1卷积降低feature map的通道数,从而减少下一层卷积操作产生的模型参数。具体在GoogleNet里面体现的很直观。关于1x1卷积层的讨论可以参考这个论坛

这两大亮点,足以使得NIN这篇论文成为经典。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容