Network in Network

				版权声明:本文为博主原创文章,未经博主允许不得转载。					https://blog.csdn.net/zhufenghao/article/details/52526611				</div>
							<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
							            <div id="content_views" class="markdown_views prism-github-gist">
						<!-- flowchart 箭头图标 勿删 -->
						<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg>
						<h2 id="1-cnn"><a name="t0"></a>1. CNN</h2>
  • CNN中的滤波器是一种广义的线性模型(GLM),它的抽象水平较低,而抽象可以使特征具有不变性。要让GLM有好的抽象,样本中隐含的概念必须是线性可分的。因此一般的CNN默认的先验是样本中隐含概念是线性可分的,而实际情况往往是非线性可分的。为了弥补这一缺点,一般的CNN会使用一些过完备的滤波器来探测所有隐含概念的变种(即需要很多个滤波器探测同样的隐含概念的不同变种),而这样会使得高层因为考虑所有变种的组合而负担过重。而如果在每一个局部单元中有更好的抽象,就会在高层组合概念的过程中受益。在NIN中将GLM替换成更强的非线性微网络(micro network)可以增强抽象能力。这种微网络需要可以逼近任何连续的函数,可以选择MLP(称为mlpconv层),它同时可以使用BP来训练。
  • 和一般的卷积层一样,mlpconv层也可以将局部感受野映射输出为特征,通过在输入中滑动即可得到特征图,其中的MLP在所有感受野中共享。在mlpconv层中MLP是基本元素,如同CNN中的滤波器。在NIN中mlpconv层是基本层,mlpconv层堆叠就构成了NIN。
  • 不使用一般CNN中使用的全连接层做分类,而是直接将最后mlpconv层特征图经过一个全局平均池化层(空间平均)来输出类别分数向量,最后送入softmax层。一般CNN由于全连接层被看作为一个黑盒而不能理解类别信息如何反向传播到之前的卷积层,而全局平均池化层增强了类别和特征图之间的关联。另外全连接层容易过拟合并强烈依赖dropout来正则化,而全局平均池化层自身就是一个结构化的正则项防止过拟合。
  • maxout网络中,特征图的减少是通过在仿射特征图上进行跨通道最大池化来实现的,多个线性函数的最大化可以得到分段线性函数去逼近任意的凸函数,因而它可以分割凸集中的隐含概念。但需要满足隐含概念分布在凸集上的先验,而这并不总是成立的。

使用relu的卷积层特征图的某一个点表示为

fi,j,k=max(wTkxi,j+bk,0)fi,j,k=max(wkTxi,j+bk,0)

其中(i,ji,j)上的一次卷积。具体为

  • 对上一层32个特征图的相同位置(i,ji,j3的滤波器到所有的位置上,就输出了本层1张特征图。
  • 将上述过程重复64次就可以得到本层64张特征图。

使用maxout层特征图的某一个点表示为

fi,j,k=maxm(wTkmxi,j+bkm)fi,j,k=maxm(wkmTxi,j+bkm)

其中mm。具体为

  • 对上一层32个特征图的相同位置(i,ji,j3的滤波器到所有的位置上,就输出了本层1张特征图。
  • 将上述过程重复64次就可以得到本层64张特征图。

2. NIN

1. MLP卷积层

  • 选择MLP的两个原因:它与CNN的结构相符,可以使用BP训练,并且它自身也可以是深层网络,这符合特征重用的思想。

使用relu的mlpconv层中MLP各层的某一个点表示为

f1i,j,k1fni,j,kn==max(w1k1Txi,j+bk1,0)max(wnknTfn1i,j+bkn,0)fi,j,k11=max(wk11Txi,j+bk1,0)⋮fi,j,knn=max(wknnTfi,jn−1+bkn,0)

其中nn则都为全连接相乘。具体为

  • 将上一层1个特征图位置为(i,ji,j3的MLP输入层到所有的位置上,就输出了本层1张特征图。
  • 将上述过程重复64次就可以得到本层64张特征图。

如果从跨通道池化的角度看,上述过程可以看作在一般的卷积层后面级联一系列参数化跨通道池化,每一个池化都对输入特征图进行加权线性重组,接着经过一个relu单元。跨通道池化可以理解为将上一层特征图所有通道的同一位置像素,全连接到下一层特征图的同一位置像素,像素在不同位置移动就得到了下一层特征图。这样的级联的参数化跨通道池化也等价于使用1××1卷积层。比如输入(10, 25),全连接参数(25, 16),则可转化为(10, 25, 1, 1)卷积(16, 25, 1, 1)。

对于上一层32通道,本层有64通道,MLP隐层16的例子而言,其实现过程如下:

  • 输入特征图(32, h, w)
  • 使用一般的卷积层(16, 32, 3, 3),得到输出(16, h, w),其中16是MLP隐层单元个数
  • 后接1××1卷积层(64, 16, 1, 1),得到输出(64, h, w),其中64是输出特征图个数

其参数共有wR16×32×3×3 + 64×16×1×1w∈R16×32×3×3 + 64×16×1×1。因此这样的实现和真正的MLP卷积层有所区别。

Cross Channel Pooling

2. 全局平均池化

  • 一般的CNN在顶层会展开成向量,然后输入到全连接MLP中最后到softmax层用于分类。这种结构将CNN和MLP联系到一起,CNN作为特征提取器,MLP作为分类器。但是全连接的MLP容易过拟合,应该配合dropout。
  • 全局平均池化代替全连接MLP:在最后的mlpconv层输出和类别数量相同的特征图,然后取每张特征图的平均,最后得到的向量输入softmax层用于分类。
  • 对比:全局平均池化与全连接MLP都是对特征图的非线性变换,只是变换矩阵不同。全局平均池化的变换矩阵固定且仅有对角线上非零且为同值,而全连接MLP则有着复杂的变换关系。实验得出全局平均池化的正则效果比全连接MLP+dropout效果更好,且在一般的CNN中具有通用性。
  • 优点:对于卷积结构加强了特征图与类别之间的关联性,并且没有需要优化的参数从而避免过拟合,另外,将空间信息相加可以提高对输入中空间变化的鲁棒性。

3. 实验结果

  • 所有的实验都使用3个mlpconv层,每一个mlpconv层后接一个最大池化层(降采样为一半)。
  • 除了最后一个mlpconv层,每个mlpconv层后都有dropout。
  • 顶层全部使用全局平均池化代替全连接MLP。
  • 正则项使用权值衰减(weight decay)同ImageNet Classification with Deep Convolutional Neural Networks
  • 预处理、验证集分割同Maxout Network

1. CIFAR-10

每层特征图数量选择和Maxout Network相同,局部感受野和权值衰减2个超参数使用验证集选择。接着固定超参数使用训练集所有数据进行重新训练。10.41%(不使用扩充数据集)8.81%(使用平移、水平翻转的扩充数据集)

2. CIFAR-100

不改变超参数,唯一区别是输出100个特征图。35.68%(不使用扩充数据集)

3. SVHN

结构同CIFAR-10。2.35%(不使用扩充数据集)

4. MNIST

结构同CIFAR-10。0.47%(不使用扩充数据集)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值