文章目录
- 前言
- 一、摘要
- 二、网络架构
- 2.1. densenet
- 2.2. dense block
- 2.3 与resnet对比
- 2.4 pytorch代码
- 三.实验结果
- 四.结论
前言
从今天开始总结一下之前看的一些深度学习相关的论文。
今天的这篇还是比较经典的论文:密集连接网络。在很多国内的硕士毕业论文里都出现过,作为一个改进的模块。
论文地址:https://arxiv.org/pdf/1608.06993.pdf
一、摘要
摘要还是完整的截取一张图:
翻译一下就是:最近的研究表明,如果卷积网络包含接近输入层和接近输出层之间更短的连接,那么它的训练就可以更深入、更准确、更有效。在本文中,我们接受了这一观察结果,并引入了稠密卷积网络(DenseNet),该网络以前馈方式将每一层连接到其他每一层。传统的L层卷积网络有L个连接(每一层和随后的一层之间各有一个连接),而我们的网络有L(L+1) 2个直接连接。对于每一层,前面所有层的特征图被用作输入,它自己的特征图被用作所有后续层的输入。densenet有几个引人注目的优点:它们减轻了梯度消失问题,加强了特征传播,鼓励特征重用,并大大减少了参数的数量。我们在四个高度竞争的目标识别基准任务(CIFAR-10、CIFAR-100、SVHN和ImageNet)上评估了我们提出的体系结构。densenet在大多数技术上获得了显著的改进,同时需要更少的计算来实现高性能。
这咋一看哈,感觉这个模型可用在轻量化的改进上,我的眼睛一下就绿了。接下来我在后面挑一些我觉得的重点内容学一学。
二、网络架构
2.1. densenet
首先是densenet的整体架构:
主要构成是dense block和transition layers(过渡层)。过渡层包括一个批处理规范化层和一个1×1卷积层,然后是一个2×2平均池化层。
2.2. dense block
红色打圈的部分就是dense block,然后图的右下角经过了一个过渡层transition layers。dense block内部实行了密集连接。denseblock内部又由各个dense layer组成。
2.3 与resnet对比
resnet和densenet的区别(从公式就可以看出一些端倪):
首先是resnet的连接公式:本层信号和前一层信号相加(用的是➕号)
然后是densenet的公式:之前所有层信号的叠加(这应该对应torch里的concat操作)
2.4 pytorch代码
作者的github是https://github.com/liuzhuang13/DenseNet.
但是点进去后发现pytorch版本的代码打不开了,其他caffe,tensorflow等的代码还可以用。
pytorch的代码可以在github上看别人写的:
总体来说还算比较简单的网络了
三.实验结果
第一次实验:Classification Results on CIFAR and SVHN
结果如下
总记的话就是四点:
精度高,容量大,参数使用效率高(相同性能参数小),不容易过拟合。
第二次实验:Classification Results on ImageNet
结果如下
总记的话就是:
densenet的性能与最先进的ResNets相当,同时只用更少的参数和计算就能达到类似的性能。
四.结论
densenet趋向于随着参数数量的增加而在准确性上不断提高,而没有任何性能退化或过拟合的迹象。在多个设置下,它在几个高度竞争的数据集上实现了最先进的结果。此外,densenet需要更少的参数和更少的计算来实现最先进的性能。由于我们在研究中采用了针对残差网络优化的超参数设置,我们认为,通过对超参数和学习速率调度进行更详细的调整,可以进一步提高densenet的精度。在遵循简单的连接规则的同时,DenseNets自然地集成了身份映射、深度监管和多样化深度的属性。它们允许特征在整个网络中重用,因此可以学习更紧凑的模型,根据我们的实验,也可以学习更精确的模型。由于其紧凑的内部表示和减少的特征冗余,densenet可能是各种基于卷积特征的计算机视觉任务的良好特征提取器,例如,[4,5]。我们计划在未来的工作中利用densenet研究这种特征迁移。
重点看看打粗部分就可以了,根据国内硕士论文的情况,这篇论文可以作为模型轻量化的参考基准文献之一。