深度学习之基础模型-FractalNet
来源:互联网 发布:游戏美工原画招聘 编辑:程序博客网 时间:2024/06/06 14:18
We introduce a design strategy for neural network macro-architecture based on self-similarity. Repeated application of a simple expansion rule generates deep networks whose structural layouts are precisely truncated fractals.
思想
对于网络结构比较深的卷积模型训练起来非常困难,而残差网络的出现,给深度卷积网络带来了非常大的便利。但作者认为残差不是建立深度网络唯一的基础和方法。深度卷积网络中真正的关键所在训练过程中网络关于信息的传递能力。作者采用了一种类似student-teacher的学习机制,结合drop-path也能够使得深度卷积模型训练的非常好。
模型结构
论文主要有两方面贡献:
- 介绍了一种FractalNet。可以代替ResNet,构建非常深的网络结构。说明residual不是极深网络所必需的
- 同时实验分析,作者解释了FractalNet和一系列被加入到之前网络现象之间的联系。
定义:令
进而对于一系列分形结构可以写成递归结构:
其中,
从而可以看出,对于网络
连接层的几种选择,包括叠加和加法操作都是比较合理的。论文中。作者提出了一种求均值操作,这种操作对于军机网络也是比较合适的,因为对于每一个fractal模块中的卷积的channel都相同。平均操作看似和ResNet中的加法操作相同,但实际上也存在不同:
- ResNet明确了直接通过和残差信号的区别。在FractalNet中,没有信号是优先通过的。每一个连接层的输入都是其他层的输出。网络本身并不能区分出哪些是主要的,哪些是次要的。
- drop-path正则化使得每一个输入都独立可靠。这样也是的网络减少了内隐学习(implicitly learning)中将一部分信号当作另一部分的残差的回报。
- 网络中,即使单独使用一列用作子网络来预测,也能达到很高的效果。
这些性质说明了连接层不是残差的一个代替品。
Regularization via Drop-path
非常重要的一点,作者发明了drop-path训练方法。该方法不仅具有正则化作用,而且能够阻止网络机构的co-adapting。
- Local:使每一个输入都是固定概率的舍弃,但保证至少有一条通路
- Global:对于整个网络保留一条通路。严格限制该通路为fractalNet中的一列,从而可以提升单独的每一列称为一个强预测器。
注:数据增强能够减弱对正则化的需求。其中ResNet就利用数据增强,使得CIFAR-100的效果从44.76%提升至27.22%。
实验分析
采用SGD with momentum进行训练。每一个卷积层都是用了batch-normalization和ReLU操作。
实验1:
与其他模型进行比较
- fractalNet(depth20)已经超过了原是的ResNet
- 利用drop-path进行训练,在CIFAR-100数据集上,使得网络的效果从35.34提升到28.20,而没有正则化的ResNet只有47.76%,ResNet with stochastic Depth效果也只有37.80%,从而表明drop-path的操作非常具有价值
- fractalNet单列子网络也能达到很好的效果
实验2:
ImageNet数据集
- fractalNet与ResNet具有相同的深度的情况下,效果也非常接近,但好于VGG。
实验3:
探索网络深度对模型的影响
- 网络越深,效果越好。但也存在一个瓶颈(网络太深导致无法训练)
实验4:
分析fractalNet每一列模型的效果
- 从上图可以看出,深度越深的子网络,效果越好
- 同深度的子网络基本上都要好于同深度的plainNet
- 当网络深度达到一定程度后,plainNet出现了退化现象,而fractalNet表现越来越好(可能归功于student-teacher的学习机制的效果)
实验5:
训练过程分析
- 相比较于plainNet,fractalNet的收敛速度更快,效果也更好
- 训练过程中,fractalNet出现了大幅度的loss下降,而plainNet则表现相对平稳,这可能是由于fractalNet网络的其他部分训练开始趋于稳定
结论
本实验fractalNet证明了对于极深的网络,最终的连接路径起到了最为重要的基础作用,residuals只是偶然发生的。FractalNet和ResNet的共同点都是提供了有效的短路径,使得训练过程中,梯度更好的反向传播。
参考文献
https://arxiv.org/abs/1605.07648
http://blog.csdn.net/wspba/article/details/73251731
http://blog.csdn.net/sunbaigui/article/details/51702563
http://blog.csdn.net/langb2014/article/details/68068127
- 深度学习之基础模型-FractalNet
- 深度学习之基础模型---AlexNet
- 深度学习之基础模型-NIN
- 深度学习之基础模型-VGG
- 深度学习之基础模型—resNet
- 深度学习之基础模型-Inception-V3
- 深度学习之基础模型-mobileNet
- 深度学习之基础模型-Xception
- 深度学习之基础模型-ShuffleNet
- 深度学习之基础模型-DenseNet
- 深度学习之基础模型-PolyNet
- 深度学习之基础模型-SEP-Nets
- 深度学习之基础模型-总结
- 深度学习之基础模型—InceptionV1(GoogLeNet)
- 深度学习之基础模型-Inception-V2(BN)
- 深度学习之LeNet模型
- 深度学习之AlexNet模型
- 深度学习之模型finetuning
- confluence迁移
- Linux系统之ks脚本安装虚拟机与dhcp网络配置
- CentOS 7 下使用Systemctl来管理系统服务
- React Native布局之flex
- 在Openwrt上安装alar以便进行录音,播音功能
- 深度学习之基础模型-FractalNet
- Android自定义折线图
- mysql5.7.19版本数据表名不区分大小写
- word转出图片(使用免费插件)03
- 图形学基础:第1章 颜色
- Java用MyEclipse 连接数据库
- Google Map开发系列(七)——使用谷歌地图API实现自定义控件
- 续厨师与母亲的厨艺问题的一些想法
- Android常见动画以及分类