DenseNet模型
来源:互联网 发布:z3 Python 编辑:程序博客网 时间:2024/04/29 21:35
《Densely Connected Convolutional Networks》阅读笔记
代码地址:https://github.com/liuzhuang13/DenseNet
首先看一张图:
稠密连接:每层以之前层的输出为输入,对于有L层的传统网络,一共有
这篇论文主要参考了Highway Networks,Residual Networks (ResNets)以及GoogLeNet,通过加深网络结构,提升分类结果。加深网络结构首先需要解决的是梯度消失问题,解决方案是:尽量缩短前层和后层之间的连接。比如上图中,
DenseNet有如下优点:
1.有效解决梯度消失问题
2.强化特征传播
3.支持特征重用
4.大幅度减少参数数量
接着说下论文中一直提到的Identity function:
很简单 就是输出等于输入
传统的前馈网络结构可以看成处理网络状态(特征图?)的算法,状态从层之间传递,每个层从之前层读入状态,然后写入之后层,可能会改变状态,也会保持传递不变的信息。ResNet是通过Identity transformations来明确传递这种不变信息。
网络结构:
每层实现了一组非线性变换
对于ResNet:
这样做的好处是the gradient flows directly through the identity function from later layers to the earlier layers.
同时呢,由于identity function 和 H的输出通过相加的方式结合,会妨碍信息在整个网络的传播。
受GooLeNet的启发,DenseNet通过串联的方式结合:
这里
由于串联操作要求特征图
Growth rate:由于每个层的输入是所有之前层输出的连接,因此每个层的输出不需要像传统网络一样多。这里
虽然说每个层只产生
文中将带有Bottleneck layers的网络结构称为DenseNet-B。
除了在DenseBlock内部减少特征图的数量,还可以在transition layers中来进一步Compression。如果一个DenseNet有m个特征图的输出,则transition layer产生
同时包含Bottleneck layer和Compression的网络结构为DenseNet-BC。
具体的网络结构:
实验以及一些结论
在CIFAR和SVHN上的分类结果(错误率):
接着看一组对比图:
前两组描述分类错误率与参数量的对比,从第二幅可以看出,在取得相同分类精度的情况下,DenseNet-BC比ResNet少了
同样的在ImageNet上的分类结果:
右图使用FLOPS来说明计算量。通过比较ResNet-50,DenseNet-201,ResNet-101,说明计算量方面,DenseNet结果更好。
- DenseNet模型
- DenseNet
- DenseNet
- DenseNet
- 深度学习之基础模型-DenseNet
- 论文笔记:Densely Connected Convolutional Networks(DenseNet模型详解)
- DenseNet-caffe
- ResNet && DenseNet
- DenseNet 简介
- DenseNet 网络
- DenseNet结构
- DenseNet note
- FCN-DenseNet
- ResNet && DenseNet(原理篇)
- ResNet && DenseNet(实践篇)
- ResNet && DenseNet(原理篇)
- 我读DenseNet
- DenseNet算法详解
- 什么是图像强度(image intensity)
- cvResize()
- C++中头文件(.h)和源文件(.cpp)写法
- (一)学习Android自带的demo项目
- 工作-基础数据统计
- DenseNet模型
- HDU2055_An easy problem
- 类与类之间的关系总结
- jdom读取xml
- 优秀logo,最基础的设计技巧(五)
- svn常用功能
- Pip install on windows
- 【UI布局优化】Hierarchy Viewer-优化你的UI
- WindowBuilder:Anonymous class creation can not be evaluated.