论文链接:Densely Connected Convolutional Networks
代码github:code
1.网络结构
该网络参考了ResNet(解决了网络深的时候梯度消失问题)、GoogleNet的inception(网络宽的问题)。如图所示,为稠密链接,每层以前一层的输出为输入,对于L层的网络,一共有L个链接,对于densenet,则有 L(L+1)2 .
加深网络结构首先需要解决的是梯度消失问题,解决方案是:尽量缩短前层和后层之间的连接。比如上图中,H4层可以直接用到原始输入信息X0,同时还用到了之前层对X0处理后的信息,这样能够最大化信息的流动。反向传播过程中,X0的梯度信息包含了损失函数直接对X0的导数,有利于梯度传播。
DenseNet的几个优点:
1、减轻了vanishing-gradient(梯度消失)
2、加强了feature的传递
3、更有效地利用了feature
4、一定程度上较少了参数数量
2.Dense Block 结构
如下图所示,每层实现了一组非线性变换 Hl(.) ,可以是Batch Normalization (BN) ,rectified linear units (ReLU) , Pooling , or Convolution (Conv). 第l层的输出为 xl 。
对于ResNet: xl=