【深度学习】Network In Network--在CNN中构建MLP

来源:互联网 发布:Js定义字符串编码 编辑:程序博客网 时间:2024/06/06 10:52

论文名称:《Network in Network》
论文地址: https://arxiv.org/abs/1312.4400

对于1x1卷积核的应用,大家可能对GoogeLenet的Inception中1x1的印象会更深刻一点,在Inception结构中,1x1卷积核起着降维的作用,来降低3x3,5x5卷积核的计算量。
事实上,1x1卷积核在2015的ResNet中也有被用到,其中1x1卷积核不仅对输入特征进行降维,也对输出特征进行升维,在降低计算量的同时,没有降低网络的表现力。

真正把1x1卷积核玩出花样的应该要追溯到2014 ICLR上的Network in Network上。这篇文章很有意思,对我启发很大。

整体网络架构

这里写图片描述

全文有两个insight:

1. MLP Convolution Layers

这个insight我特别佩服,因为他改变了整个传统CNN的结构模式。以往传统的CNN都是convolution + activation function 来提取特征。其中convolution可以看做是广义线性模型,这也就意味着convolution是假设在特征线性可分这一条件上的。然而这个条件往往不会被满足,因此往往我们一般会采取过完备的filters去提取特征,但这会导致特征维度的大量增加,也就会导致计算量的增加。

那么是否可以在卷积中引入多层感知器呢(MLP)?因为这样就可以在相应的流行空间中提取任意的非线性特征。于是作者将GLM convolution替换成了MLP convolution.
在结构形式也是十分的简单:3x3+relu–1x1+relu–1x1+relu

用公式的表现形式为:
这里写图片描述

GLM convolution和MLP convolution的对比如下:
这里写图片描述

2. Global Average Pooling

global average pooling的两个优点如下:
1)global average pooling 比 fully connect方式更简单直观

One advantage of global average pooling over the fully connected layers is that it is more native to the convolution structure by enforcing correspondences between feature maps and categories

2)不需要额外参数,过拟合风险小

Another advantage is that there is no parameter to optimize in the global average pooling thus overfitting is avoided at this layer


总结:

1)NIN网络在结构上非常新颖,但是却能够用传统的卷积方式去实现。
2)整个网络采用的参数量相当小
3)实验结果不错

放一个caffe model的链接:
http://ethereon.github.io/netscope/#/preset/nin

阅读全文
0 0
原创粉丝点击