NIN网络中的网络

是什么

intro

  • LeNet→AlexNet→VGG→NiN→GoogLeNet→ResNet
  • LeNet→AlexNet→VGG
    • 卷积层模块充分抽取空间特征
    • 全连接层输出分类结果
    • AlexNet & VGG 改进在于把两个模块加宽 、加深(加宽指增加通道数,那加深呢?(层数增加叭
  • NiN:串联(多个卷积层和"全连接层"构成的小网络)来构建一个深层网络

网络架构截自原文

input:224 \times 224 \times 3

(说实话,我真的很好奇,它的网络结构,输入,操作,到输出,但既然很多资料都没写,那也许就是不重要叭,大概了解就好了。

如图,是一个NIN的结构,包括3个mplconv层 + 1个全局平均池化层,一个mplconv中是一个3层的感知机(1卷积层+2个全连接层) 作者表示,mpl中感知机层数是可以调整的,同样mlpconv层作为一个微型网络结构,也可以被用在卷积层之间,个数随需调整。

上图的网络架构:

  • NiN = 3 \times mplconv层 + 1 \times GAP全局池化层
  • 1个mplconv层 = 1个微型神经网络 ∴ NiN(网络中的网络)
  • 1个mplconv层 内部由多层感知机实现 = (1个conv + 2个fc层)
  • mpl感知机的层数是可以调整的
  • mlpconv代替了传统的卷积层
  • GAP代替了传统CNN模型中末尾的全连接层

经典网络结构(三):NiN (network in network)

  • NiN 块 是 NiN 中的基础块
    • NIN块=1个卷积层+2个1×1的卷积层
      • 串联而成
      • 每一次卷积之后都会进行非线性激活
    • 第一个卷积层的超参数可以自行设置
    • 第二个和第三个卷积层的超参数是固定的
  • NIN
    • 卷积窗口(有AlexNet的影子)
      • 卷积窗口形状为11×11、5×5、3×3的卷积层、输出通道数与AlexNet一致
      • 每个NIN块后接一个stride=2 pool_size=3×3的最大池化层
    • 去掉了AlexNet最后的3个全连接层
      • 使用了输出通道数=标签类别数的NIN块
      • GAP对每个通道中的元素求平均并直接用于分类 (GAP 全局平均池化 Global Average Pooling)

为什么

公式吧推导,代码吧,可能

怎么实现

是谁

2014年新加坡国立大学(颜水成)
Pytorch之经典神经网络CNN(六)------NiN(Fashion-MNIST)(全局平均池化GAP)(1*1卷积)(mlpconv)(k-fold validation)

在哪儿

2014年ICLR的一篇paper

啥时候

2014年

评价(优点、缺点)

【深度学习】NIN (Network in Network) 网络

改进1

  • 提供了网络层间映射的一种新可能
  • 增加了网络卷积层的非线性能力

改进2

假设分类任务有C个类别。

先前CNN中最后一层为特征图层数(共计N)的全连接层,要映射到C个类别上;

改成全局池化层,最后一层特征图层数(共计C)的全局池化层,恰好对应分类任务的C个类别。

GAP优点

  • 传统CNN结构,卷积以后全连接层,经过softmax输出分类,最后的全连接层有过拟合的风险
  • GAP
    • 最后的特征图层数 = 输出类别数
    • 没有全连接层,需要学习的参数大大减少,避免了FC层过拟合的发生

Summary 两个要点

  • mlpconv = MLP(11的conv) + 2Conv 增加非线性变换,更好的学习局部特征
  • GAP 全局平均池化 防止过拟合
相关推荐
努力变厉害的小超超9 分钟前
ArkTS中的组件基础、状态管理、样式处理、class语法以及界面渲染
笔记·鸿蒙
aloha_7895 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
dsywws6 小时前
Linux学习笔记之vim入门
linux·笔记·学习
孙同学要努力6 小时前
全连接神经网络案例——手写数字识别
人工智能·深度学习·神经网络
A-超8 小时前
vue3展示pag格式动态图
笔记
u0101526588 小时前
STM32F103C8T6学习笔记2--LED流水灯与蜂鸣器
笔记·stm32·学习
weixin_518285058 小时前
深度学习笔记10-多分类
人工智能·笔记·深度学习
丘狸尾9 小时前
ubuntu【桌面】 配置NAT模式固定IP
笔记
王俊山IT9 小时前
C++学习笔记----10、模块、头文件及各种主题(二)---- 预处理指令
开发语言·c++·笔记·学习
慕卿扬9 小时前
基于python的机器学习(二)—— 使用Scikit-learn库
笔记·python·学习·机器学习·scikit-learn