network in network

首先文章作者把传统CNN网络看成一个广义的线性模型GLM(generalized linear model)后面跟一个非线性激活函数(现在多用ReLU),而假设特征能够被GLM抽象即线性可分,那么对它的抽象程度是不够的(level of abstraction is low),或者说我们要假设特征是线性可分的(这是个强假设)。如果我们用一个非线性的模型代替GLM,无疑会提高整个模型对特征的抽象程度,而且不必有强假设的依赖(事实上大部分机器学习任务是线性不可分的)


传统的CNN为解决这种不可分问题,会选择多个filter,即增加k的个数,来保证所有的变形都被分到正确的concept里,但是这样会造成两个问题 :1)首先随着k值增加,参数的个数随之急剧增加   2)k值较大对于下一层的学习也造成了影响,因为对于当前这一层当中相同概念的不同变形的filter,下一层必须要能够有一定的抽象处理。


MLP层(即文章中的micro network)解决了这两个问题,这也是文章主要的两个创新点(MLP convolutional layer、Global Average Pooling)之一.下面我们分别讲述这两个方面。


(1)MLP convolutional layer


相比于传统CNN卷积做法,multilayer perceptron的卷积核,实际相当于先做一个一般的卷积,再做几个1*1的卷积(只改变filter的个数,不改变feature map的大小),这一点与GoogleNet顺序相反,GoogleNet在inception v1结构里先做1*1的卷积,目的是减少参数量。


MLP的优点:

  • 非常有效的通用函数近似器
  • 可用BP算法训练,可以完美地融合进CNN
  • 其本身也是一种深度模型,可以特征再利用


(2)Global average pooling 


Global average pooling的合理性在于,经过了一个多层的复杂的网络之后,每一个filter代表的都是high-level的信息,而不是low-level的像一些曲线或者纹理之类的信息。对于这种high-level的信息,对整个feature map做pooling相当于检测这个map中有没有这个filter要检测的concept,这个pooling的结果已经可以很好地用来做分类或者检测之类的工作,不需要fully connected之后再训练分类器。

采用了NIN改进CNN后,我们增强了局部模型的表达能力,这样我们可以在分类层对特征图进行全局平均池化,这种方式更有意义和容易解释(可将最后一层输出的特征图的空间平均值解释为相应类别的置信度!为什么可以这样解释呢?因为在采用了微神经网络后,让局部模型有更强的抽象能力,从而让全局平均池化能具有特征图与类别之间的一致性),所以MLP可以看做是Global average pooling的前提工作。


全局平均池化的优势:

  • 通过加强特征图与类别的一致性,让卷积结构更简单
  • 大大减少参数,避免了全连接层的参数优化,所以这一层可以避免过拟合(因为全局平均池化本身就是一种结构性的规则项
  • 它对空间信息进行了求和,因而对输入的空间变换更具有稳定性

总结:NIN的主要贡献我认为是MLP卷积层,这与VGG net、GoogleNet的增加网络深度思想是相通的,我理解增加网络的深度会提高对特征的抽象程度所以得到更好结果。




参考博客:

http://www.cnblogs.com/anyview/p/5105181.html

http://blog.csdn.net/hiterdu/article/details/45418545

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值