源码及论文地址:https://github.com/BVLC/caffe/wiki/Model-Zoo#network-in-network-model


这篇paper改进了传统的CNN网络,采用了少量的参数就轻松击败了Alexnet网络,Alexnet网络参数大小是230M,采用这篇paper的算法才29M,减小了将近10倍。另外,这篇paper提出的网络结构,是对传统CNN网络的一种改进。
先看一下摘要,对NIN有个简单的了解:

文章中的两个创新点:
1. MlpConv卷积层
传统卷积层时下图左侧方式的,可以理解为是一个简单的单层网络,而MlpConv可以看成是每个卷积的局部感受野中还包含了一个微型的多层网络,用来提高非线性。利用多层Mlp的微型网络,对每个局部感受野的神经元进行更加复杂的运算,而以前的卷积层,局部感受野的运算仅仅只是一个单层的神经网络罢了。

一个MlpConv的网络结构如下:

layers {name: "conv1"type: CONVOLUTIONbottom: "data"top: "conv1"blobs_lr: 1blobs_lr: 2weight_decay: 1weight_decay: 0convolution_param {num_output: 192pad: 2kernel_size: 5weight_filler {type: "gaussian"std: 0.05}bias_filler {type: "constant"}}
}
layers {name: "relu1"type: RELUbottom: "conv1"top: "conv1"
}
layers {name: "cccp1"type: CONVOLUTIONbottom: "conv1"top: "cccp1"blobs_lr: 1blobs_lr: 2weight_decay: 1weight_decay: 0convolution_param {num_output: 160group: 1kernel_size: 1weight_filler {type: "gaussian"std: 0.05}bias_filler {type: "constant"value: 0}}
}
layers {name: "relu_cccp1"type: RELUbottom: "cccp1"top: "cccp1"
}
layers {name: "cccp2"type: CONVOLUTIONbottom: "cccp1"top: "cccp2"blobs_lr: 1blobs_lr: 2weight_decay: 1weight_decay: 0convolution_param {num_output: 96group: 1kernel_size: 1weight_filler {type: "gaussian"std: 0.05}bias_filler {type: "constant"value: 0}}
}
layers {name: "relu_cccp2"type: RELUbottom: "cccp2"top: "cccp2"
}

其实结构很简单,就是三个卷积层的堆叠,我们用Netscope可视化后可以看到一个MlpConv层的结构如下图:

2. 全局平均池化(Global Average Pooling)
传统的卷积神经网络卷积运算一般是出现在低层网络。对于分类问题,最后一个卷积层的特征图通过量化然后与全连接层连接,最后在接一个softmax逻辑回归分类层。这种网络结构,使得卷积层和传统的神经网络层连接在一起。我们可以把卷积层看做是特征提取器,然后得到的特征再用传统的神经网络进行分类。

然而,全连接层因为参数个数太多,往往容易出现过拟合的现象,导致网络的泛化能力不尽人意。于是Hinton采用了Dropout的方法,来提高网络的泛化能力。

本文提出采用全局均值池化的方法,替代传统CNN中的全连接层。与传统的全连接层不同,我们对每个特征图一整张图片进行全局均值池化,这样每张特征图都可以得到一个输出。这样采用均值池化,连参数都省了,可以大大减小网络,避免过拟合,另一方面它有一个特点,每张特征图相当于一个输出特征,然后这个特征就表示了我们输出类的特征。这样如果我们在做1000个分类任务的时候,我们网络在设计的时候,最后一层的特征图个数就要选择1000。

论文中提到的全局平均池化的优点:
1. 相比于用全连接操作,feature map和类别之间用池化操作更自然些;
2. 参数量少了很多;
3. 全局平均池化考虑了图像的空间特性,因此对输入的空间变换有很好的鲁棒性。
在实验部分,作者在CIFAR-10数据库上给出了验证:

第一行是MlpConv结构+全连接,由于存在过拟合,因此结果不是很好;第二行加入了dropout,结果提升了一些。第三行采用全局池化,结果是最优的。

最后,NIN采用的网络结构是:

论文阅读:Network In Network相关推荐

  1. [论文阅读] Action Semantics Network: Considering the Effects of Actions in Multiagent System

    [论文阅读] Action Semantics Network: Considering the Effects of Actions in Multiagent System 原文链接:https: ...

  2. 论文阅读-Endmember-Guided Unmixing Network (EGU-Net) 端元指导型高光谱解混网络

    标题:端元引导分解网络(EGU-NET):一种通用的自监督高光谱分解深度学习框架 期刊: IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTE ...

  3. [论文阅读] Shallow Attention Network for Polyp Segmentation

    论文地址:https://arxiv.org/abs/2108.00882 代码:https://github.com/weijun88/SANet 发表于:MICCAI'21 Abstract 准确 ...

  4. 论文阅读 [TPAMI-2022] Locally Connected Network for Monocular 3D Human Pose Estimation

    论文阅读 [TPAMI-2022] Locally Connected Network for Monocular 3D Human Pose Estimation 论文搜索(studyai.com) ...

  5. LiDAR-based Panoptic Segmentation via Dynamic Shifting Network(论文阅读笔记)

    LiDAR-based Panoptic Segmentation via Dynamic Shifting Network(论文阅读笔记) 环形扫描骨干网络.动态漂移.一致性驱动的融合 一.重点内容 ...

  6. Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记

    Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记 这篇论文介绍 ...

  7. 【论文阅读】[CVPR 2018] PU-Net: Point Cloud Upsampling Network. [tensorflow] [rec. oth.]

    文章目录 [论文阅读][CVPR 2018] PU-Net: Point Cloud Upsampling Network. [tensorflow] [rec. oth.]

  8. 论文阅读 [TPAMI-2022] ManifoldNet: A Deep Neural Network for Manifold-Valued Data With Applications

    论文阅读 [TPAMI-2022] ManifoldNet: A Deep Neural Network for Manifold-Valued Data With Applications 论文搜索 ...

  9. 论文阅读—Relation-Aware Graph Attention Network for Visual Question Answering

    论文阅读-Relation-Aware Graph Attention Network for Visual Question Answering 一.标题 用于视觉问答的关系感知图注意力网络 二.引 ...

  10. 【论文阅读】Adaptive Clustering-based Malicious Traffic Classification at the Network Edge

    [论文阅读]Adaptive Clustering-based Malicious Traffic Classification at the Network Edge 原文标题:Adaptive Clu ...

最新文章

  1. Python 多进程pool.map()方法的使用
  2. Mybatis用#{}从传递过来的参数中取值
  3. CAS(比较并交换)学习CAS实现原子性+volatile实现可见性,cas与synchronized比较的优缺点
  4. mysql模糊查询与预编译_mysql预编译模糊查询恶心了我一天的时间,终于弄好了。但是还有一点不明白。如下:...
  5. Redis mysql查询结果_Redis Select 命令
  6. 软件测试 学习之路 计算机基础
  7. PostgreSQL 获取拼音首字母的函数 - 摘自互联网
  8. ECharts(Enterprise Charts 商业产品图表库)初识
  9. 什么是肿瘤免疫逃逸?
  10. 如何使移动设备字体大小自适应
  11. 被“淘宝”的章文嵩西邮之行
  12. 江苏大学的计算机,毛启容-江苏大学计算机科学与通信工程学院
  13. linux服务器后台运行Python程序
  14. apollo自动驾驶进阶学习之:ST与ST迭代过程
  15. Excel中工作表间的关联链接方法
  16. DVWA环境搭建教程-手把手最详细介绍
  17. python sqrt函数的使用
  18. Vimium-chrome操作神器
  19. linux删除0kb文件夹,肿么删除.nomedia文件
  20. Active Map v2000 1CD

热门文章

  1. 关于【C++项目:无法解析的外部符号】
  2. 关于StreamReader的构造函数
  3. CNCF宣布Envoy项目正式毕业
  4. 自定义Checkbox让复选框居中对于RadioButton同样适用
  5. _protoype原型初识.
  6. 【转】如何拿到半数面试公司Offer——我的Python求职之路
  7. Oracle闪回原理-Logminer解读redo(r11笔记第17天)
  8. Apache Mina2.x网络通信框架使用入门
  9. 关于C++默认拷贝构造函数产生的问题的讨论
  10. VS2010数据库项目不能正常工作解决方案(转)