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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 谈Inception网络结构 -> 正文阅读

[人工智能]谈Inception网络结构

1 x 1 卷积核

? ? ? ? 此观点是在 Network in Network(NIN)中提出,那这样的卷积有什么用处呢?先回顾下相关基础概念吧~

? ? ? ? 卷积核: 可以看作对某个**局部**的加权求和;它是对应局部感知,它的原理是在观察某个物体时我们既不能观察每个像素也不能一次观察整体,而是先从局部开始认识,这就对应了卷积。卷积核的大小一般有1x1 , 3x3 和 5x5的尺寸(一般是奇数x奇数)

? ? ? ? 下面通过吴恩达老师的课件,对1 x 1卷积运算的理解。例如对于如下的二维矩阵,做卷积,相当于直接乘以2

? ? ? ? 对于三维矩阵,用 1 x 1 卷积核做卷积

? ? ? ? 如上图,如果是一张6×6×32的图片,1×1卷积所实现的功能是遍历这36个单元格,计算左图中32个数字和过滤器中32个数字的元素积之和,然后应用ReLU非线性函数。当有多个过滤器时,就好像有多个输入单元,其输入内容为一个切片上所有数字,输出结果是6×6过滤器数量。

? ? ? ? 当设置多个1*1filter时,可以起到一个跨通道聚合的作用,所以进一步就可以随意增减输出的通道数,也就是降维(或升维),起到减少参数的目的。

? ? ? ? 1×1卷积可以从根本上理解为对这32个不同的位置都应用一个全连接层,全连接层的作用是输入32个数字(过滤器数量标记为 n C [ l + 1 ] n_C^{[l+1]} nC[l+1]?,在这36个单元上重复此过程),输出结果是6×6×#filters(过滤器数量)

Tips:用卷积核实现全连接层,可以康康这篇文章 【机器学习】关于CNN中1×1卷积核和Network in Network的理解

综上, 1 x 1卷积核的作用:

  1. 降维/升维
    ? ? ? ? 但 1×1 并没改变输出的宽度和高度
  2. 增加非线性
    ? ? ? ? 1*1卷积核,可以在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数,如ReLU),把网络做的很深
  3. 跨通道信息交互【这点没搞懂😵】

使用1x1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3x3,64 channels的卷积核后面添加一个1x1x28 channels的卷积核,就变成了3x3x28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28 channels,这就是通道间的信息交互

注:新手不太懂,如有错误,请指出,互相交流学习加油🤓
或许可以再看看 这篇 1X1卷积核到底有什么作用呢?

卷积过程,咱们看下这个动画,加深下:

大致理解了 1 x 1 卷积核,接下来学习下 Inception模块。
Inception历经了V1、V2、V3、V4等多个版本的发展,不断趋于完善

Inception V1

? ? ? ? 在Inception模块未出现时,绝大部分的神经网络都是 卷积层 + 池化层 的顺序连接,最后再加上 全连接层,主要通过增加网络深度和宽度提高精度(如VGG),这也导致了参数量大,过拟合等问题。

? ? ? ? Google最开始提出的原始Inception网络结构如下图:

? ? ? ?那通过设计该稀疏网络结构,但能产生稠密的数据,既能增加神经网络表现,又能保证计算资源的使用效率。【通过使用不同的卷积核,达到在同一层就可以提取到稀疏(3x3,5x5)、不稀疏(1x1)的特征,牛掰,666】

? ? ? ? 我们可以看到该结构将常用的卷积核(1x1 , 3x3 , 5x5【当然尺寸可根据实际情况适当调整】)和池化操作堆叠一起(卷积、池化后的尺寸相同,将通道相加),一方面增加了网络的宽度,另一方面也增加了网络对尺度的适应性。

? ? ? ? 通过池化操作减少空间大小,降低过度拟合。并且在这些层之上,在每一个卷积层后都要做一个ReLU操作,以增加网络的非线性特征。借用吴恩达老师深度学习课程的图:

? ? ? ? 该原始版本,所有的卷积核都在上一层的所有输出上进行卷积,导致5x5的卷积核所需的计算量就太大了,造成了特征图的厚度很大。为了改善这种现象,借鉴Network-in-Network的思想,在3x3前、5x5前、max pooling后分别加上了1x1的卷积核,使用1x1的卷积核实现降维操作(也间接增加了网络的深度),以起到了降低特征图厚度的作用,这也就形成了Inception v1的网络结构,如下图所示:

基于Inception构建了GoogLeNet的网络结构如下(共22层):
在这里插入图片描述

对上图说明如下:
(1)GoogLeNet采用了模块化的结构(Inception结构),方便增添和修改;
(2)网络最后采用了average pooling(平均池化)来代替全连接层,该想法来自NIN(Network in Network),事实证明这样可以将准确率提高0.6%。但是,实际在最后还是加了一个全连接层,主要是为了方便对输出进行灵活调整;
(3)虽然移除了全连接,但是网络中依然使用了Dropout ;
(4)为了避免梯度消失,网络额外增加了2个辅助的softmax用于向前传导梯度(辅助分类器)。辅助分类器是将中间某一层的输出用作分类,并按一个较小的权重(0.3)加到最终分类结果中,这样相当于做了模型融合,同时给网络增加了反向传播的梯度信号,也提供了额外的正则化,对于整个网络的训练很有裨益。而在实际测试的时候,这两个额外的softmax会被去掉。

其余的有时间再认真康康

Inception V2

Inception V3

Inception V4

参考文章

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:44:45  更:2021-08-16 11:45:20 
 
开发: 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年11日历 -2024/11/27 20:37:33-

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