CNN

(2013, NIN)Network in Network

2019-01-10  本文已影响0人  运动小爽

1. 论文亮点一

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

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

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

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

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

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

2. 论文亮点二

NIN网络第二个亮点是:

mlpconv层长什么样子?

如下图所示:


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

下图是论文中提出的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上面达到了巅峰。但是这也不能掩盖全连接层会造成模型的参数量剧增的事实,超大的模型复杂度使得模型更容易过拟合,阻碍了模型的泛化性能。

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

5. 总结

NIN网络有两个突出亮点:

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

上一篇下一篇

猜你喜欢

热点阅读