IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 卷积神经网络NIN -> 正文阅读

[人工智能]卷积神经网络NIN

1. 概述

在传统的CNN网络中,使用卷积(Convolution)操作来提取感受野中的特征,卷积操作是由一个线性变换与非线性激活函数组成,为了能增强CNN网络的局部辨识能力,2014年Network In Network[1]的结构被提出,其使用多层感知机的网络结构替换感受野上的线形变换和非线性激活函数,以此来增强模型的局部建模能力。

2. 算法的基本思想

2.1. NIN的卷积层

在传统的CNN网络中,卷积层的操作包括卷积操作,非线性变换(如使用ReLU激活函数),具体过程如下图所示:

在这里插入图片描述

卷积层的操作是在feature map进行卷积和非线性变换,得到新的feature map,如上图中左侧的feature map在经过卷积层后得到右侧的feature map,图中两个feature map的绿色部分是对应的。为了能增强CNN网络的局部辨识能力,NIN中在卷积层中的卷积+非线性变换后采用了多层神经网络的结构,进一步增强模型的局部建模能力,具体过程如下图所示:

在这里插入图片描述

这样一个卷积+非线性变换+mlp+mlp就组成了新的卷积层,在NIN中称为mlp卷积层,与之前的卷积层对比如下图所示:

在这里插入图片描述

上述的mlp等价于卷积核大小为 1 × 1 1\times1 1×1的卷积操作+非线性变换

2.2. Global Average Pooling

在传统的CNN网络中,经过多层的Convolution+Pooling的操作后得到一系列最终的feature map,针对分类问题,通常通过Flatten的操作将多个feature map转换成一维的向量,下图以 3 3 3个feature map为例:

在这里插入图片描述

在单个feature map中,以同样的方式将其转换成一维向量,具体过程如下图所示:

在这里插入图片描述

在转换成一维向量后,再通过全连接网络实现最终的分类目标,这种方式存在的一个最大的问题是过拟合。Dropout是处理过拟合有效的方式,在NIN中提出使用全局平均聚合(Global Average Pooling)来代替全连接层。全局平均聚合的具体做法是要求在最后一个mlpconv层产出对应分类个数的feature map,并在每一个feature map上使用平均聚合,如在分类个数为 3 3 3的情况下,全局平均聚合的具体过程如下:

在这里插入图片描述

采用全局平均聚合的优点主要有,第一,最终的每个feature map与指定的分类类目是对应的,如上图中的蓝色的feature map与第一个分类类目是对应的;第二,全局平均聚合中没有参数。

2.3. NIN的网络结构

通过将传统的CNN网络中的卷积层替换成MLP卷积层,同时将最后的全连接网络替换成全局平均聚合,便得到了最终的NIN网络结构,如下图所示:

在这里插入图片描述

参照[2]的参数格式,可以绘制出如下的网络结构:
在这里插入图片描述

其中,上图中紫色的部分即为卷积核大小为 1 × 1 1\times1 1×1的卷积操作,由一个卷积conv和两个cccp组成MLP卷积层。最终的pool4实现了全局平均聚合。以conv1,relu0,cccp1,relu1,cccp2,relu2,pool0为例:

  • conv1:输入( 224 × 224 × 3 224\times224\times3 224×224×3),输出( 54 × 54 × 96 54\times54\times96 54×54×96,其中,卷积核的大小为 11 × 11 11\times11 11×11,步长为 4 4 4,卷积核的个数为 96 96 96
  • relu0:输入( 54 × 54 × 96 54\times54\times96 54×54×96),输出( 54 × 54 × 96 54\times54\times96 54×54×96
  • cccp1:输入( 54 × 54 × 96 54\times54\times96 54×54×96),输出( 54 × 54 × 96 54\times54\times96 54×54×96,其中,卷积核的大小为 1 × 1 1\times1 1×1,步长为 1 1 1,卷积核的个数为 96 96 96
  • relu1:输入( 54 × 54 × 96 54\times54\times96 54×54×96),输出( 54 × 54 × 96 54\times54\times96 54×54×96
  • cccp2:输入( 54 × 54 × 96 54\times54\times96 54×54×96),输出( 54 × 54 × 96 54\times54\times96 54×54×96,其中,卷积核的大小为 1 × 1 1\times1 1×1,步长为 1 1 1,卷积核的个数为 96 96 96
  • relu2:输入( 54 × 54 × 96 54\times54\times96 54×54×96),输出( 54 × 54 × 96 54\times54\times96 54×54×96
  • pool0:输入( 54 × 54 × 96 54\times54\times96 54×54×96),输出( 27 × 27 × 96 27\times27\times96 27×27×96,其中,核大小为 3 × 3 3\times3 3×3,步长为 2 2 2

图中后续的MLP卷积层与此类似,最后的全局平均聚合以conv4-1024,relu10,cccp7-1024,relu11,cccp8-1024,relu12,pool4为例:

  • conv4-1024:输入( 6 × 6 × 384 6\times6\times384 6×6×384),输出( 6 × 6 × 1024 6\times6\times1024 6×6×1024,其中,卷积核的大小为 3 × 3 3\times3 3×3,步长为 1 1 1,padding为 1 1 1,卷积核的个数为 1024 1024 1024
  • relu10:输入( 6 × 6 × 1024 6\times6\times1024 6×6×1024),输出( 6 × 6 × 1024 6\times6\times1024 6×6×1024
  • cccp7-1024:输入( 6 × 6 × 1024 6\times6\times1024 6×6×1024),输出( 6 × 6 × 1024 6\times6\times1024 6×6×1024,其中,卷积核的大小为 1 × 1 1\times1 1×1,步长为 1 1 1,卷积核的个数为 1024 1024 1024
  • relu11:输入( 6 × 6 × 1024 6\times6\times1024 6×6×1024),输出( 6 × 6 × 1024 6\times6\times1024 6×6×1024
  • cccp8-1024:输入( 6 × 6 × 1024 6\times6\times1024 6×6×1024),输出( 6 × 6 × 1000 6\times6\times1000 6×6×1000,其中,卷积核的大小为 1 × 1 1\times1 1×1,步长为 1 1 1,卷积核的个数为 1000 1000 1000),在此将feature map的个数转换成与分类类目个数一致
  • relu12:输入( 6 × 6 × 1000 6\times6\times1000 6×6×1000),输出( 6 × 6 × 1000 6\times6\times1000 6×6×1000
  • pool4:输入( 6 × 6 × 1000 6\times6\times1000 6×6×1000),输出( 1 × 1 × 1000 1\times1\times1000 1×1×1000,其中,核大小为 6 × 6 6\times6 6×6,步长为 1 1 1),至此实现了全局平均聚合

3. 总结

在NIN卷积网络中,有两个点优化,第一,在传统的卷积层中加入MLP,进一步提升局部特征的提取能力;第二,引入全局平均聚合,将feature map与最终的分类类目对应,缓解因全连接网络引起的过拟合。

参考文献

[1] Lin M , Chen Q , Yan S . Network In Network[J]. Computer Science, 2013.

[2] https://dgschwend.github.io/netscope/#/preset/nin

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:52:59  更:2022-09-30 00:56:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:37:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码