特点: dense shortcut connections
结构: DenseNet 是一种具有密集连接的卷积神经网络。在该网络中,任何两层之间都有直接的连接,也就是说,网络每一层的输入都是前面所有层输出的并集,而该层所学习的特征图也会被直接传给其后面所有层作为输入
源码: DenseNet

简介
DenseNet 引人注目的好处:
- 缓解了深层网络梯度消失的问题
- 加强了 feature propagation
- 支持 feature reuse
- 大量的减少了参数数量(DenseNet非常窄,即 channel 少)
- Dense Connections 具有正则化效果
研究表明: 输入或者梯度信息经过多层神经网络传递之后,在到达网络的尾部或者首部时,可能会消失(即变成零)。
与 ResNet 的比较:
Crucially, in contrast to ResNets, we never combine features through summation
before they are passed into a layer; instead, we combine features by concatenating
them.
Stochastic depth 通过在训练期间随机丢弃层来改善 ResNet 的训练过程,这表明并非所有层都可能是需要的,从而说明了 ResNet 中存在大量的冗余。
DenseNet 结构

down-sampling 是卷积网络中必要的操作,而它会改变 feature map 的尺寸,所以将网络划分为多个 Dense Block, 每个 Block 中的 feature map 大小相同。
1.合成函数:
\[
\begin{align}
x_l &= H_l([x_0, x_1, \cdots,x_{l-1}]) \\
H_l &= BN→ReLU→Conv(1\times1)→BN→ReLU→Conv(3\times3) \\
\end{align}
\]
2.池化层:
\[BN→ReLU→Conv(1\times1) → AvePooling\]
3.Growth rate
即 Dense Block 中每层输出的 feature maps 的 Channel 数, eg, k=12
4.压缩
设通常池化层的输出 Channel 个数为 \(m\),我们通过参数 \(θ\),调节池化层输出 Channel 的个数为 \(θm\)
5.执行细节:
Conv(3×3), s=1, zero-padding
Avg_Pool, 2×2