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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习图像分类(八):FractalNet -> 正文阅读

[人工智能]深度学习图像分类(八):FractalNet

深度学习图像分类(八):FractalNet



前言

FractalNet(分型网络),2016年Gustav Larsson首次提出,为了证明Residual对于极深网络并不是必须的,通过一种分形的结构,达到了类似于教师-学生机制、深度监督的效果。提出了drop-path,对子路径进行随机丢弃。剧透一下,这个网络跟DenseNet非常之像,详见文章。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Fractal

  • 分形网络不像resNet那样连一条捷径,而是通过不同长度的子路径组合,网络选择合适的子路径集合提升模型表现

  • 分形网络体现的一种特性为:浅层子网提供更迅速的回答,深层子网提供更准确的回答。

在这里插入图片描述

  1. 图中以粉红色的卷积层Convolution为基础层,实际上可以为其它类型的层或者子网络;
  2. 绿色的Join层一般可以用相加或concat,这里采取了相加然后取平均,因此所有基础层可以使用一样的channel数量
  3. fC(z) 中C表示列数,z表示输入,C=1表示一个基础层
  4. fC+1(z) 则如图所示,在右边叠加两个fC(z) ,左边接一个基础层
  5. 以此类推,当C等于4的时候,可以得到图中的f4(z)
  6. f4(z)作为一个block中,如图中最右边的网络所示,完整的网络接了5个block,block之间用Pool层连接,最后是预测层
  7. 令block个数为B,每个block中的列数为C,网络的总深度为B?2C?1

二、Drop-path

路径舍弃,新的正则化规则
ResNet收敛快,但还是要经过基本的卷积结构,卷积通用的问题是缺少有效的正则化方法。对于深的如ResNet采用BN,对于宽的如WideResNet采用Dropout。而FractalNet是基于路径,舍弃一些路径,是一种新的正则化方法(与Stochastic Depth Net中的随机失活几乎一样,好奇的可以翻我之前的博文)。

对路径舍弃采用了 50% 局部以及 50% 全局的混合采样
局部:连接层以固定几率舍弃每个输入,但我们保证至少一个输入保留。如第1、3个
全局:为了整个网络选出每条路径,并限制其为单列结构,激励每列成为有力的预测器,每列只做卷积。如第2、4个
在这里插入图片描述
实验训练的时候,mini-batch之间交叉使用Local和Global

三、 Teacher-student

teacher-student网络,模型裁剪时会用到,原来庞大的网络是teacher,剪裁的小网络是student,训练时可以将它们两个的loss连接,在训练大网络时它会反馈一定的信息给小网络,就像是大网络教小网络怎么学。

分形网络中也有这种思想,在进行BP时随机舍弃一些路径,就会导致原先的路径不同了,计算出来的梯度不能作用在原先的路径上,要作用在其他路径上。用原先的网络去学,优化的时候优化其他路径。

这个想法与知识蒸馏非常相似,好奇的小伙伴可以去搜一下。

四、Result

在cifar10和cifar100上效果较好,ImageNet上一般。对于超分形网络在cifar100++,增加深度可以极大地提高精度,直到最终的收益递减(160层左右),而普通网络如果太深就无法训练。

在这里插入图片描述

  • +表示使用了水平镜像翻转和平移,++表示使用了更多的数据增强,实验主要和ResNet对比
  • 用drop-path训练,可以从网络提取最深的单独列,在表格数据中可以看出也取得了不错的表现
  • 不使用数据增强时,分形网络的表现超过了ResNet,可以看出分形网络更不容易过拟合
  • 使用数据增强时,分形网络取得了和ResNet变种差不多的表现
  • 不使用数据增强的时候,drop-path提升了表现
  • 使用数据增强的时候,drop-path提升或者没有下降太大的表现

五、Compared with DenseNet

重新回顾一下Fractal结构图:
在这里插入图片描述
先看看左图,描述的是网络的单个模块(block)的结构。注意,这里的fC不是CNN中常用到的全连接层, 而是指分形次数为 C 的模块。fC 模块的表达式如下:
在这里插入图片描述
其中, ‘圆圈加号’ 是一个聚合(join)操作,本文推荐使用均值,而非常见的concat 或 addition。

中间图就是一个典型的 C=4 的block。把这些block堆叠起来,加上pooling和prediction层,就是完整的分类网络了,也就是右图。

网络结构看完了,FratalNet并不存在像ResNet那样skip connect的结构。但是,实际上如果把fC模块改成:
在这里插入图片描述
这就变成一个类似DenseNet的结构了。。。
而众所皆知,DenseNet某种意义上是ResNet的改进版。。。所以个人感觉其实FratalNet也算是ResNet的近亲,这大概也是为什么业界还是ResNet用得多的原因吧——反正都差不多,不如挑个结构最简单的。为了方便大家理解,这里以Fractal的画图方式画一下Dense Block(包含4层):

在这里插入图片描述
怎么样, 是不是很神奇~ 对DenseNet不了解的可以翻我之前的博文。


总结

  • 论文的实验说明了路径长度才是训练深度网络的需要的基本组件,而不单单是残差块
  • 分形网络和残差网络都有很大的网络深度,但是在训练的时候都具有更短的有效的梯度传播路径
  • 分形网络简化了对这种需求(更短的有效的梯度传播路径)的满足,可以防止网络过深
  • 多余的深度可能会减慢训练速度,但不会损害准确性
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:02:58  更:2022-04-01 00:04:24 
 
开发: 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/26 12:32:39-

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