套娃的开始——Network in Network网络学习笔记

前言

《Network in Network》是2014年ICLR的一篇文章,文章当时较为创新,对后面的一些模型产生了一些较为深远的影响,现在看来,尽管文章较为久远,仍不失为经典论文,对现在的吾辈来说仍值得细细品读学习。

文章亮点

1、用MLP conv代替传统卷积层
NIN这篇论文指出,在常规卷积层后加上若干个1X1的卷积层,每个卷积核视为一个神经元,多个1X1卷积的线性组合就可以看作是一个全连接层。一般卷积操作可以看成特征的提取操作,而一般卷积一层只相当于一个线性操作,所以其只能提取出线性特征。所以该作者就像能否在卷积层后也加入一个MLP使得每层卷积操作能够提取非线性特征。
套娃的开始——Network in Network网络学习笔记_第1张图片
一般来说假如当前层与下一层都是一个通道,那么1X1卷积核似乎作用不大,但是上下层分别为m层和n层的话,它可以可以起到一个跨通道聚合的作用,降维(或者升维)数据,起到减少参数的目的。 而因为卷积操作本身就可以做到各个通道的重新聚合的作用,所以1×1的卷积核也能达到这个效果。
下面利用几张图来诠释一下1X1卷积层的作用过程:

输入一张feature map,经过两层mlpcon输出一张feautre map
套娃的开始——Network in Network网络学习笔记_第2张图片
输入两张feature map,经过两层mlpcon输出两张feautre map
套娃的开始——Network in Network网络学习笔记_第3张图片
通俗理解是输入为224x224x3的图像,第一层卷积为11x11x3x96(也就是96个11x11x3的卷积核,另外还有步长),卷积完后是54x54x96的数据,然后过96个1x1x96的卷积核(mlp conv1),还是一个54x54x96的数据,然后再过96个1x1x96的卷积核(mlp conv2),还是一个54x54x96的数据,最后polling。
套娃的开始——Network in Network网络学习笔记_第4张图片

2、Global Average Pooling
一般来说,在NIN之前,最后一张特征图会被“拍扁”转化为向量,然后输入到全连接层,之后在输入到softmax层进行预测,但鉴于全连接层参数数量过于庞大,很吃算力,且容易过拟合。于是NIN选择用Global Average Pooling(全局平均池化)来处理最后一张feature map,得到的向量直接输入到softmax层,全局平均池化直接关联分类任务,且不用额外优化模型参数,使模型参数与计算量大大减少,并且一定程度上避免了过拟合。
套娃的开始——Network in Network网络学习笔记_第5张图片
作者通过研究与实验发现,GAP具有一定的正则化作用。

结构

因为NIN网络最主要特点就是在网络中嵌入微型网络,最后层取全局平均池化,而这两者在之前我们已经讨论过,其他都与以往的结构差不多,故再看全局的结构,就容易理解多了。
套娃的开始——Network in Network网络学习笔记_第6张图片

测试结果

1、CIFAR-100数据集
套娃的开始——Network in Network网络学习笔记_第7张图片
不多说,当时最牛逼

2、SVHM数据集
套娃的开始——Network in Network网络学习笔记_第8张图片
虽然也挺牛逼的,但与DropConnect有一定的差距。

3、MINST数据集
套娃的开始——Network in Network网络学习笔记_第9张图片
该数据集可能较为简单,很多网络都取得了小于1%的错误率,但采用NIN+Dropout不尽人意,并没有超过传统的Conv.maxout+Dropout。

总结

Network in Network网络首次采用的1X1卷积核并采用全局平均池化降低网络复杂度,避免了过拟合。这些创新点都对后面的一些文章产生了一定的借鉴意义,并且与最初的AlexNet网络相比,大大减少了计算量与参数,重要的是,因为去掉了全连接层,使得网络可以接受任意大小的图像。但我们也不能浅尝辄止,只求这些而不思进取,毕竟技术在发展,正有这些牛逼的前辈,让我们站在巨人的肩膀上,我们才能攀得更高。路漫漫其修远兮,吾辈还需努力。

你可能感兴趣的:(Deeplearning)