DenseNet算法详解 (目标检测backbone)
算法背景
论文名称:Densely Connected Convolutional Networks
论文链接:ttps://arxiv.org/abs/1608.06993
论文日期:2018.01.28
代码:https://github.com/liuzhuang13/DenseNet
若在输入层与输出层之间包含更短的连接,那么更深的神经网络结构会训练地更准确、更有效。因此在本文中,设计了DenseNet神经网络结构,其中的每一层都以前馈方式连接到其他每一层。
之前的神经网络有L层,就有L个连接,DenseNet网络含有L(L+1)/2个连接。对于每一层,所有前面的预测层的feature map都作为输入。然后输出的feature map作为后面所有层的输入。
优势:
- 解决了梯度消失(vanishing-gradient)问题;
- 增强了特征传播;
- 增强了特征复用;
- 大大地减少了参数量。
本文在CIFAR-10, CIFAR-100, SVHN与 ImageNet等数据集上进行了对比实验,DenseNets的准确率有了很大的提升。
算法简介
算法提出背景:
由于计算机硬件的进步,允许神经网络结构变得更深。原始的LeNet5由5层组成,VGG由19层组成,去年的Highway Networks与ResNet超过了100层。
随着CNN神经网络结构变得更深,一个新的问题被提出:由于输入或梯度的信息通过了许多层,当到达神经网络的输出时可能会造成梯度消失。
其他算法解决方案:
ResNets和Highway Networks通过恒等连接从一层绕过信号到下一层,随机深度通过在训练过程中随机丢弃层来缩短ResNet,以便提供更好的信息和梯度流。
FractalNets重复将几个平行层序列与不同数目的卷积块组合,得到一个大的标称深度,同时保持网络中的多条短路径。
这些方法都是为了创造了从靠近输入层的网络层到靠近输出层的网络层的短路径。
DenseNets算法:
本文提出了DenseNets,为了确保网络层之间最多的信息流,本文将所有的网络层与其它前面的层相连,为了保留前馈特性,每个层从前面的所有层获得额外的输入,并将自己的特征映射传递到后续的所有层。
与ResNets相反,在特征传到网络层之前,从不通过求和来组合它们;而是通过将它们连接起来组合它们。
两大优势:</