论文Network in network (ICLR 2014)是对传统CNN的改进,传统的CNN就交替的卷积层和池化层的叠加,其中卷积层就是把上一层的输出与卷积核(即滤波器)卷积,是线性变换,然后再加上一个非线性变换的激活函数(比如:relu),但是在NIN中并有像CNN中这样,
1.它们的区别之一是卷积层不一样:
CNN: 卷积层= 卷积+激活函数
NIN:卷积层=mlpconv层= 卷积+MLP = 卷积+1*1卷积+1*1卷积=卷积+relu+1*1卷积+relu+1*1卷积+relu
a.一个mlpconv层的cafe实现代码见:深度学习(二十六)Network In Network学习笔记-ICLR 2014
b.问题:我在想如果把NIN的mlpconv层中的relu变成maxout会怎么样?有人做这方面工作了吗?
答:好像论文“Batch-normalized Maxout Network in Network”就是这样做的
2.NIN与CNN的区别之二是softmax前一层不一样:
CNN:全连接层+softmax
NIN:全局均值池化+softmax
alexnet的参数要230多M,而NIN只要29M,且准确率更高
3.NIN的结构:
data---conv1(96,11,4)=(滤波器数,卷积核大小,stride)---relu0---cccp1---relu1---cccp2---relu2---pool1(3*3,2)=(kernel_size,stride)---
conv2(256,5,1)---relu3---cccp3---relu4---cccp4---relu5---pool2(3*3,2)--
conv3(384,3,1)---relu6---cccp5---relu7---cccp6---relu8---pool3(3*3,2)---dropout(0.5)---
conv4(1024,3,1)---relu9---cccp7---relu10---cccp8---relu11---pool4(6*6,1)---softmax
注意:cccp=conv(1,1)即:“隐隐层”就是一个1×1的卷积层
基础资料:
论文翻译见:深度学习(二十六)Network In Network学习笔记-ICLR 2014;
NIN结构详细解释:(Paper)Network in Network网络分析