2017年CVPR最佳论文,改进了ResNet,降低了模型的复杂度,进一步减少了梯度消散的问题。

  1. ResNet存在的问题:
    a. 文中提到在ResNet中,由于shortcut操作时与卷积的结果使用的是相加方式,并且只与未通过卷积层的数据相连,导致在许多贡献不多的层中,实际上一个又一个的模块就是在重复的,这些层在训练中都是可以被丢弃的,但由于每一层都有他自己的参数,导致模型非常的大。
  2. DenseNet做出的改进:
    a. 使用了Concat方式,连接了更多的层,使得参数更少,效率更高。
    b. 这样的连接方式提高了特征的复用性,提高了整个网络中信息和梯度的流量,使得整个网络的训练更加简单。
    c. 增加了正则效果,减轻了过拟合。
    d. 文中的两个公式就能很清楚的表现两个结构的差别,第一个公式是ResNet的结构,第二个公式是DenseNet的结构:
  3. ResNET加se resnet加se后结果没有提升_ResNET加se


  4. ResNET加se resnet加se后结果没有提升_数据集_02

  5. DenseNet的核心模块
    a. Dense connectivity:每一层就是上文提到的那个公式,,其中每层的连接使用的方法为拼接而非相加,用图来表示如下:
  6. ResNET加se resnet加se后结果没有提升_卷积_03

  7. b. Composite function:每个H()包含了三个操作,BN,ReLU,Conv
    c. Growth rate:指的是在设计网络是,特征图数量的递增速度,和ResNet不同,DenseNet网络相对比较窄,其实这个k值就是每个卷积层的通道数。
    d. Bottleneck layers:虽然每层的通道数不多,但是我们每次会将前面的所有结果进行拼接,所以每一个block里较后的层数的通道数仍然会非常大,所以在每次做3
    3卷积之前,对拼接后的结果进行一次11的卷积,使它的通道数变为固定的4k
    e. Compression:在每一个block后,我们实际使用的是所有层拼接的结果,而不是简单的最后一层卷积结果,所以我们在添加一层1*1卷积,降低通道数。
    f. 文中给出的用于ImageNet数据集的结构,k=32:
  8. ResNET加se resnet加se后结果没有提升_卷积_04

  9. 网络性能比较
  10. ResNET加se resnet加se后结果没有提升_卷积_05

  11. 可以看到在相近的参数数量下,DenseNet的准确率明显优于ResNet