2017-CVPR-DenseNet

这里写图片描述

idea来源:

在随机深度网络(deep networks with stochastic depth)paper中,提出一种类似dropout的方法改进ResNet,作者发现在训练时每一步被随机丢掉一些层,可以显著提高ResNet的泛化性能。这带给作者两点启发:

  1. 神经网络的设计并不一定要是一个递进层次结构,也就是说网络中的某一层可以不仅仅依赖于紧邻的上一层的特征,而可以更依赖于更之前学到的特征。
  2. 随机丢弃一些层不会破坏算法的收敛性,说明ResNet具有冗余性,每一层都只提取了很少的特征(即所谓的残差)。

因此,作者提出两点:

  1. 让网络中的每一层都直接与前面的层相连,实现特征的重复利用;
  2. 把网络的每一层设计的特别窄(即只学习非常少的feature map),达到降低冗余性的目的。
    这里写图片描述

DenseNet优点:

  1. 缓解梯度消失问题

    把前面的层带到后面来,ResNet中“残差”思想体现。paper里说的是“create short paths from early layers to later layers”。

  2. 增强feature的传递,使feature重复利用(省计算,效率高)

  3. 减少参数数量(节省带宽,降低存储开销)

    在CNN设计中,参数数量,计算力,内存占用等都是极为重要的考虑,Bottleneck layer设计(1x1卷积的使用)、down-sampling设计(stride convolution,pooling)、dropout、BN、No FC(全卷积网络的设计)等都是有利于省参数、省计算的操作。模型压缩需要重点关注一下!

  4. 抗过拟合

    原因解释:神经网络每一层提取到的特征都相当于对输入数据的一个非线性变换,而随着深度的增加,变换的复杂度也逐渐增加(更多非线性函数的复合)。相比于一般神经网络的分类器直接依赖于网络最后一层(复杂度最高)的特征,DenseNet可以综合利用浅层复杂度低的特征,因而可以更容易得到一个光滑的具有更好泛化性能的决策函数。

    y由于DenseNet不容易过拟合,在数据集不是很大的时候表现尤其突出。可以省略在ImageNet上的预训练,在医学图像,卫星图像等(与预训练的ImageNet自然图像有明显差别)任务上具有非常广阔的应用前景。
    这里写图片描述

相关链接

  1. paper:Densely Connected Convolutional Networks

  2. Torch implementation:
    https://github.com/liuzhuang13/DenseNet/tree/master/models

    PyTorch implementation:
    https://github.com/gpleiss/efficient_densenet_pytorch

    MxNet implementation:
    https://github.com/taineleau/efficient_densenet_mxnet

    Caffe implementation:
    https://github.com/Tongcheng/DN_CaffeScript

  3. 具体细节:DenseNet算法详解

  4. 参考:CVPR 2017最佳论文作者解读:DenseNet 的“what”、“why”和“how”|CVPR 2017

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值