论文:Densely Connected Convolutional Networks
代码:https://github.com/liuzhuang13/DenseNet
出处:CVPR2017 | 康奈尔大学 清华大学 Facebook
越来越深的神经网络会带来梯度消失问题,ResNet 和 Highway Network 使用了恒等映射的方式,让网络都超过了 100 层且效果良好,也就是给梯度增加了一条高速路,可以顺畅的在浅层和深层之间传输。
但这些传输只能在前后两层之间传递,没有最大化信息传输,所以作者提出了 DenseNet。
DenseNet 挣脱了加深和加宽模型的思路,而是通过最大限度的特征重用和旁路的思想来提升网络效果。
下图展示了一个 Dense block 内部的结构,一个 block 内部会有多个卷积层,每个卷积层的输入来自前面所有层的输出,前面所有层的特征输出会 concat 然后送入当前层。
Dense 连接只会在每个 Dense block 内部进行,不会进行跨 block 的 Dense 连接
DenseNet 的动机:让信息在网络中的所有层中传递最大化
DenseNet 的做法:在一个 block 内部(即特征图大小都相同),将所有的层都进行连接,即第一层的特征会直接传输给后面的所有层,后面的层会接受前面所有层的输出特征。如图 1 所示。
DenseNet 的特征是如何结合的:不像 ResNet 那样相加起来,而是 concat,所以越往后通道越多
DenseNet 的参数少的原因:DenseNet 的通道很少(如每层 12 个通道),且层浅
首先看一下 ResNet 的网络结构:每层接收上一层的特征输出和上一层的原始输出
然后再来看 DenseNet 的网络结构:每层接收前面所有层的特征输出,然后进行对应层的特征提取
DenseNet 的结构:
ResNet 的结构:
DenseNet 的优点: