FractalNet: Ultra-Deep Neural Networks without Residuals
ICLR 2017
Gustav Larsson, Michael Maire, Gregory Shakhnarovich

文章提出了什么(What)

  1. ResNet提升了深度网络的表现,本文提出的分形网络也取得了优秀的表现,通过实验表示,残差结构对于深度网络来说不是必须的。
  2. ResNet缺乏正则方法,本文提出了drop-path,对子路径进行随机丢弃

为什么有效(Why)

  1. 分形网络不像resNet那样连一条捷径,而是通过不同长度的子路径组合,网络选择合适的子路径集合提升模型表现
  2. drop-path是dropout(防止co-adaption)的天然扩展,是一种正则方法,可以防止过拟合,提升模型表现
  3. drop-path提供了很好的正则效果,在不用数据增强时也取得了优秀的结果
  4. 通过实验说明了带drop-path训练后的总网络提取的单独列(网络)也能取得优秀的表现。
  5. 分形网络体现的一种特性为:浅层子网提供更迅速的回答,深层子网提供更准确的回答。

分形网络是怎么做的(How)

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

两种drop-path

实验训练的时候,mini-batch之间交叉使用Local和Global

  1. Local:对join层的输入dropout,但是至少保证要有一个输入
  2. Global: 对于整个网络来说,只选择一条路径,且限制为某个单独列,所以这条路径是独立的强预测路径

模型对比的实验

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

20层分形网络的模型细节

  1. 每个卷积层后面加了BN(先卷积,再BN,再relu激活)
  2. B=5,C=3
  3. 训练集都是32*32*3的图像,使用2*2的Max-pooling,经过5次下采样后32*32会变成1*1,最后的预测层使用softmax
  4. 为了实现方便,对于每一个block,调换了最后面的pool和join的顺序
  5. 五个block的卷积核数量默认为64,128,256,512,512
  6. 每个block最后的dropout概率设为0,0.1,0.2,0.3,0.4
  7. 整个网络的local drop-path设为0.15
  8. caffe实现,学习率为0.02,momentum为0.9,batchsize为100,使用Xavier初始化参数
  9. CIFAR-10/CIFAR-100迭代了400轮,SVHN迭代了20轮
  10. 每当“剩余epoch数减半”时,学习率除以10(比如剩余epoch为200时,剩余epoch为100时,剩余epoch为50时候)

其它实验

  1. 分形网络到了160层开始出现退化
  2. 平常的网络到了40层就出现了退化,到了160层不能收敛
  3. 使用了drop-path的分形网络提取的单独列(网络)比平常的网络取得了更优的表现,而且克服了退化问题(平常网络40层就退化)
  4. 这里的实验减小了每个block的channels,为16,32,64,128,128,batchsize设置为50

学习曲线

  1. 40层分形网络的学习曲线中,可以看到Col#4 开始学习时很慢,当其它子网学习趋近稳定时,Col#4学习速度提升
  2. 左图平常网络的学习曲线中没有这种性质(蓝色虚线)
  3. 假设分形网络会触发和深度监督,横向的“学生-教师”信息流类似的效果,那么可以这样分析,当分形网络依赖于单独使用Col#3来输出,当drop-path丢弃Col#3的时候,网络则会促进Col#4的学习,使得Col#4学的东西能代替Col#3,这是一个迷你的学生-教师问题

总结

  1. 论文的实验说明了路径长度才是训练深度网络的需要的基本组件,而不单单是残差块
  2. 分形网络和残差网络都有很大的网络深度,但是在训练的时候都具有更短的有效的梯度传播路径
  3. 分形网络简化了对这种需求(更短的有效的梯度传播路径)的满足,可以防止网络过深
  4. 多余的深度可能会减慢训练速度,但不会损害准确性

论文笔记:分形网络(FractalNet: Ultra-Deep Neural Networks without Residuals)的更多相关文章

  1. 论文笔记——Data-free Parameter Pruning for Deep Neural Networks

    论文地址:https://arxiv.org/abs/1507.06149 1. 主要思想 权值矩阵对应的两列i,j,如果差异很小或者说没有差异的话,就把j列与i列上(合并,也就是去掉j列),然后在下 ...

  2. 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior

    [论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...

  3. 论文翻译:2018_Source localization using deep neural networks in a shallow water environment

    论文地址:https://asa.scitation.org/doi/abs/10.1121/1.5036725 深度神经网络在浅水环境中的源定位 摘要: 深度神经网络(DNNs)在表征复杂的非线性关 ...

  4. 论文笔记之:Learning Multi-Domain Convolutional Neural Networks for Visual Tracking

    Learning Multi-Domain Convolutional Neural Networks for Visual Tracking CVPR 2016 本文提出了一种新的CNN 框架来处理 ...

  5. 【论文笔记】Pyramidal Convolution: Rethinking Convolutional Neural Networks for Visual Recognition

    地址:https://arxiv.org/pdf/2006.11538.pdf github:https://github.com/iduta/pyconv 目前的卷积神经网络普遍使用3×3的卷积神经 ...

  6. Deep Learning 16:用自编码器对数据进行降维_读论文“Reducing the Dimensionality of Data with Neural Networks”的笔记

    前言 论文“Reducing the Dimensionality of Data with Neural Networks”是深度学习鼻祖hinton于2006年发表于<SCIENCE > ...

  7. 论文笔记:Mastering the game of Go with deep neural networks and tree search

    Mastering the game of Go with deep neural networks and tree search Nature 2015  这是本人论文笔记系列第二篇 Nature ...

  8. 论文笔记-IGCV3:Interleaved Low-Rank Group Convolutions for Efficient Deep Neural Networks

    论文笔记-IGCV3:Interleaved Low-Rank Group Convolutions for Efficient Deep Neural Networks 2018年07月11日 14 ...

  9. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

随机推荐

  1. MySQL IFNULL基本用法

    MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数. 否则,IFNULL函数返回第二个参数. 两个参数可以是文字值或表达式. 以下说明了IFNU ...

  2. TensorFlow函数(六)初始值生成函数

    1.常量生成函数 tf.constant(value, dtype) 生成一个初始值为常量value的数组 value:指定的常量 dtype:数据类型 tf.zeros(shape, dtype) ...

  3. 【Agile123】Automated Test in Agile

    https://www.infoq.com/articles/thoughts-on-test-automation-in-agile Start Small Balance the cost vs. ...

  4. Java泛型学习二

    通配符的使用 上一篇中知道,Box<Number>和Box<Integer>实际上都是Box类型,现在需要继续探讨一个问题,那么在逻辑上,类似于Box<Number> ...

  5. Google 地图切片URL地址解析

    一.Google地图切片的投影方式及瓦片索引机制 1.地图投影 Google地图采用的是Web墨卡托投影(如下图),为了方便忽略了两极变形较大的地区,把世界地图做成了一个边长等于赤道周长的正方形(赤道 ...

  6. jmeter报错之“请在微信客户端打开链接”

    这是一个还没解决的问题,这里纯粹记录自己思考的过程,后续给自己参考. 先说明情景:对微信公众号的一个接口进行调用跑通,后续可能需要压测(是的,仅仅是调通一个接口而已o(╥﹏╥)o) 1.按照我理解的正 ...

  7. fdisk与parted分区

    我所接触的linux分区分为两种,一种是使用fdisk分区,另外一种是parted分区.前者是针对MBR模式分区的,后者是针对GPT模式分区的 fdisk分区: fdisk -l ---->查看 ...

  8. ios 开发UI篇—UITextView

    概述 UITextView可滚动的多行文本区域 UITextView支持使用自定义样式信息显示文本,并支持文本编辑.您通常使用文本视图来显示多行文本,例如在显示大型文本文档的正文时. UITextVi ...

  9. 微信小程序<每日查看>开发总结

    之前一直在做iOS平台的App和SDK开发,发现微信小程序还蛮有意思的,花了将近几天的时间,从看书学习到萌发想法,最后开发出一款小应用,现在花点时间总结一番!作为自我勉励和后续继续学习动力- 先上效果 ...

  10. 兼容性/pollyfill/shim/渐进增强/优雅降级

    http://ued.ctrip.com/blog/browser-compatibility-testing-tools-in-firefox-compatibility-detector.html ...