导言:

传统的卷积网络在一个前向过程中每层只有一个连接,ResNet增加了残差连接从而增加了信息从一层到下一层的流动。FractalNets重复组合几个有不同卷积块数量的并行层序列,增加名义上的深度,却保持着网络前向传播短的路径。相类似的操作还有Stochastic depth和Highway Networks等。

这些模型都显示一个共有的特征,缩短前面层与后面层的路径,其主要的目的都是为了增加不同层之间的信息流动。DenseNet基于此提出了一种新的连接模式--Dense connections。

传统L层的网络仅有L个连接,在DenseNet中使用了L(L+1)/2个连接。这样做有几个明显的优点:避免了梯度消失问题,加强了特征传播,实现特征复用(feature reuse),以及实质上减少了参数量。

DenseNet在CIFAR-10, CIFAR-100, SVHN, 和ImageNet上超过了大部分的SOTA模型,使用更少的计算实现了更好的效果。

DenseNet网络结构

DenseNet使用Dense connections构成三个Dense Block,再通过几层卷积和池化。其中Dense Block中的Dense connections是通过concat实现的。

在ResNet中,残差连接的识别函数为Xi = Hi (Xi-1) +Xi-1,这里i指层数。而DenseNet中的识别函数为 Xi = Hi( [X0, X1, X2... Xi-1] )。(注:一个输入经过卷积,BN,激活函数,得到输出,这个过程可认为是一个识别函数Hi)

考虑到是使用Concat连接,若每个Block层数和通道数太多,将导致Block巨大,这里Block中每层的通道数都比较小(在本文中通道数用K表示,k取12,24,40)。这里K也表示growth rate。如每个识别函数产生k个通道,则第i层将有k0 + k x( i-1)个输入通道。

在DenseNet中,Block的结构是BN + ReLU +3x3Conv。而在DenseNet-B中使用了Bottleneck, Block的结构是BN+ReLU+1x1 Conv+BN+ReLU+3x3 Conv,在1x1处降维以减少参数。在DenseNet-C中为了使得模型更小,使用了一个超参数θ,对于通道数为k的block,其通道数在DenseNet-C中变为θk, θ取0.5。(注:DenseNet中是没有使用Bottleneck和超参数θ的,对于同时使用Bottleneck和θ的模型成为DenseNet-BC)。

DenseNet在ImageNet上的结构如上所示,这里的Block都是BN+ReLU+3x3Conv结构。

实现细节

除了用于ImageNet数据集的模型有四个Dense Block,其他都只有三个,在第一个dense block前有16通道输出、3x3卷积核大小的卷积层用于处理输入图片,(DenseNet-BC是32通道),每层卷积都使用了1个像素的padding以保持输出大小不变,在两个Dense blocks之间使用1x1卷积和2x2平均池化作为Transition Layer,在最后一个Dense blocks后使用全局平均池化,以及softmax分类器。

三个Dense blocks的feature map大小分别是32x32, 16x16, 8x8。对于一般的DenseNet,有三种结构配置:{L=40, k=12},{L=100, k=12},{L=100, k=24}。而对于DenseNet-BC结构,使用如下三种网络配置:{L=100, k=12},{L=250, k=24},{L=190, k=40}。这里L指的是模型的总层数,不是dense block的层数。(注:BN,pooling,ReLU都是不计入层数中的)。

图像输入大小为:224x224。

DenseNet理论依据

Dense connections使得前几层的信息在后面层中可以直接获得,信息得到很好的保留,增加了不同层之间的信息流动以及梯度传播,这使得模型更加容易训练。这种在每一层都使用前面所有层的信息的方式,称之为特征复用(feature reuse),其他论文里出现这个feature reuse。

每一层都可以直接获得来源于Loss function的梯度和输入信号(这里指的直接来源于Loss function的梯度其实指的是dense block,而不是DenseNet),从而实现了隐式的深监督(Implicit Deep Supervision),这也有利于训练更深的网络。

此外,它还有正则化效果,这使得它可以使用更小的模型尺寸,而不会出现过拟合。

结论

这里C10表示CIFAR-10数据集。

DenseNet与ResNet在ImageNet上的实验对比,明显可知DenseNet效果更好。

本文来源于公众号 CV技术指南 的模型解读系列。

欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。

 在公众号中回复关键字 “技术总结” 可获取以下文章的汇总pdf。

其它文章

北京大学施柏鑫:从审稿人视角,谈谈怎么写一篇CVPR论文

Siamese network总结

计算机视觉专业术语总结(一)构建计算机视觉的知识体系

欠拟合与过拟合技术总结

归一化方法总结

论文创新的常见思路总结

CV方向的高效阅读英文文献方法总结

计算机视觉中的小样本学习综述

知识蒸馏的简要概述

优化OpenCV视频的读取速度

NMS总结

损失函数技术总结

注意力机制技术总结

特征金字塔技术总结

池化技术总结

数据增强方法总结

CNN结构演变总结(一)经典模型

CNN结构演变总结(二)轻量化模型

CNN结构演变总结(三)设计原则

如何看待计算机视觉未来的走向

CNN可视化技术总结(一)-特征图可视化

CNN可视化技术总结(二)-卷积核可视化

CNN可视化技术总结(三)-类可视化

CNN可视化技术总结(四)-可视化工具与项目

DenseNet模型解读相关推荐

  1. 【模型解读】“全连接”的卷积网络,有什么好?

    [模型解读]"全连接"的卷积网络,有什么好? 这是深度学习模型解读第8篇,本篇我们简单介绍Densenet. 作者&编辑 | 言有三 1 从skip connect到den ...

  2. DenseNet详细解读

    这篇文章是Densely Connected Convolutional Networks的解读,在精简部分内容的同时补充了相关的概念.如有错误,敬请指正. 论文地址:https://arxiv.or ...

  3. 「模型解读」从2D卷积到3D卷积,都有什么不一样

    https://www.toutiao.com/a6711317983035130371/ 接着模型解读系列,在中国科幻作家刘慈欣的科幻小说<三体Ⅲ·死神永生>中,首次提出了降维打击这个概 ...

  4. Caffe 运行平台支持DenseNet模型

    https://www.toutiao.com/a6671617314464465412/ 在计算机视觉领域,卷积神经网络(CNN)已经成为最主流的方法,比如GoogLenet.VGG-19.Ince ...

  5. 【分割模型解读】感受野与分辨率的控制术—空洞卷积

    这是专栏<分割模型解读>的第3篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 前两篇文章介绍了编解码分割结构,今天具体聊聊解码器中涉及到的空间分辨率恢复问题. 作者 ...

  6. 【模型解读】深度学习网络之Siamese Network网络

    文章首发于微信公众号<有三AI> [模型解读]深度学习网络只能有一个输入吗 继续我们之前的专栏<模型解读>,今天说多输入网络,很久没写了因为实在是有更重要的事情. 平常我们所见 ...

  7. 【模型解读】浅析RNN到LSTM

    卷积神经网络使用固定大小的矩阵作为输入(比如一张图片),然后输出一个固定大小的向量(比如不同分类的概率),适合于图像分类,目标检测,图像分割等.但是除了图像外,还有非常多的信息是非固定长度或者大小的, ...

  8. 【模型解读】从2D卷积到3D卷积,都有什么不一样

    接着模型解读系列,在中国科幻作家刘慈欣的科幻小说<三体Ⅲ·死神永生>中,首次提出了降维打击这个概念,这是本质上区别于同一维度的攻击,破坏性也更大. 而现在我们要说的是从二维卷积升级到三维卷 ...

  9. 【模型解读】深度学习网络只能有一个输入吗

    继续我们之前的专栏<模型解读>,今天说多输入网络,很久没写了因为实在是有更重要的事情. 平常我们所见的深度学习模型,都是输入一个图像或者视频序列,输出分类,分割,目标检测等结果,但是还有一 ...

最新文章

  1. Linux下的权限掩码umask
  2. Django 生成验证码或二维码 pillow模块
  3. bootanimation文件名_Android开机logo制作
  4. 【最常用】两种java中的占位符的使用
  5. PHP(二)——HTML基础
  6. 虚拟主机 php .htacess,LiteSpeed添加虚拟主机+支持htaccess图文教程
  7. CodeForces 173B Chamber of Secrets spfa
  8. springboot+flowable第二节(流程基本操作)
  9. 解决iframe在ios中无法滚动的bug
  10. 天津理工大学计算机调剂信息,天津理工大学2020考研调剂信息
  11. linux下qt生成dll,Qt 创建和使用动态链接库 - cibiren2011的专栏 - 博客频道 - CSDN.NET...
  12. 阿里算法工程师模拟题2018/5/7
  13. Javascript - Cookie
  14. 关于动网论坛、动力起航、自由动力、动易、动感购物、乔客、织梦CMS.
  15. [安装 ADB 驱动]-手动安装 ADB 驱动得以进入 Android 手机系统
  16. vs code 代码格式化整理
  17. 最全面的Android混淆
  18. Linux命令:md5sum
  19. 2021-03-23美团面试
  20. 蛋蛋弹车3-具有功能安全EPS系统设计(电机控制算法-PID)

热门文章

  1. 【2011NOIP普及组】T3. 瑞士轮 试题解析
  2. idea中设置jdk
  3. 有什么软件可以免费压缩图片?
  4. AutoJs学习-动态解密
  5. 当心收入被支出吞噬(zt)
  6. BIM技术都是如何应用于水利工程中
  7. 超全面!用户生命周期分析攻略
  8. 字母数字特殊字符部分unicode对照表
  9. windows该任务映像已损坏或已篡改。(异常来自HRESULT:0x80041321)
  10. 【微信小程序系列】小程序简单连接后端数据库完整示例(附免费下载的源码)(Servlet)