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 全局平均池化 防止过拟合
相关推荐
一点.点2 小时前
李沐动手深度学习(pycharm中运行笔记)——04.数据操作
pytorch·笔记·python·深度学习·pycharm·动手深度学习
追逐☞4 小时前
机器学习(10)——神经网络
人工智能·神经网络·机器学习
娃娃略4 小时前
【AI模型学习】双流网络——更强大的网络设计
网络·人工智能·pytorch·python·神经网络·学习
我的golang之路果然有问题4 小时前
案例速成GO+redis 个人笔记
经验分享·redis·笔记·后端·学习·golang·go
韩明君5 小时前
前端学习笔记(四)自定义组件控制自己的css
前端·笔记·学习
灏瀚星空6 小时前
从基础到实战的量化交易全流程学习:1.1 量化交易本质与行业生态
人工智能·笔记·学习·数学建模·信息可视化
Jumbuck_106 小时前
基于OpenMV+STM32+OLED与YOLOv11+PaddleOCR的嵌入式车牌识别系统开发笔记
笔记·stm32·嵌入式硬件
努力做小白6 小时前
Linux扩展
linux·c语言·笔记
pedestrian_h6 小时前
gin框架学习笔记
笔记·学习·go·web·gin
豆沙沙包?7 小时前
7.学习笔记-Maven进阶(P75-P89)-进度(p75-P80)
笔记·学习·maven