Densely Connected Convolutional Networks/密集连接卷积网络

摘要:

第一段:denseNet的连接方式和优点

最难研究表明:如果网络中包含接近输入层和接近输出层之间的短连接,那么模型可以更深入,更精确和有效的进行训练。本文提出了DenseNet。它具有以下优点:1)缓解梯度消失问题2)增强特征的传播。3)鼓励特征的复用。4)大幅减少网络参数。

简介:

第一段:网络结构的改进和计算机硬件的发展使得训练真正的深度卷积网络成为现实

卷积神经网络已经成为视觉目标检测最主流的方法,尽管CNN在20年前就已经提出,但直到近期,受益于网络结构的改进和计算机硬件性能的提升,才使得训练特别深的网络成为现实。最初的LeNet-5只有5层,到VGG的19层,再到最近的HightWay Net和ResNet才突破100层的障碍。

第二段:解决输入信息或梯度消失的方法有个共同的特点:都建立了短连接

随着CNN的不断加深,一个新的研究问题出现了:输入的信息或梯度通过很多层后,在到达网络的末尾(或开始时)时会消失。近期有许多解决这个问题或类似问题的研究。ResNets和Hightway Networks使用恒等连接将旁路信号从一层传到下一层。 Stochastic depth通过早训练过程中随机丢弃网络层来缩短ResNets。从而获得更好的信息和梯度流。FractalNets 重复结合几个平行层,这些平行的网络层有着不同数量的卷积块,来获得更大的标称深度,同时在网络中保持多个短连接。尽管这些不同方法在网络架构和训练处理上都不相同,但他们有一个共同的特点:他们都在前面层和后续层建立了短连接。

第三段:

在本文中,作者将这种方法提炼成一种简单的连接模式:为确保最大化网络层之间的信息流动,所有的层都和其它层直接连接(具有相同特征图尺寸的层)。为保留前向传播的特性,每层将之前所有的层作为额外的输入,并且该层的输入也作为后续所有层的输入。下图展示了这种结构。

更为重要的是,与ResNet不同,我们没有在将这些特征在传递个下一层之前使用求和的方式将其合并。而是采用concatenate的方式。因此,第l层有l个输入,包含之前所有卷积快的输出。该层的特征图将被输入到后续的L-l层。L层的网络将会有L(L+1)2个连接,不同于传统的L个连接。因为其密集的连接方式。

第四段:

一个直观的感觉是这种密集连接方式有更少的参数,相较于传统的卷积神经网络。因为这种方式不需要重复学习冗余的特征。传统的前向传播架构可以被看做是一层一层传递的有状态的算法。每一层从前一层去读状态并将其传递给下一层。这改变了状态,但也传递了需要保存的信息。ResNet通过添加恒等映射明确的保留这种信息。近期【13】对ResNet的改进表明了许多层的贡献非常小,并且实际上可以在训练的过程中随机丢弃。这使得ResNet的状态非常接近于(展开的)循环神经网络。RseNet的参数数量非常多,因为其每层都有自己的参数。我们提出的DenseNet架构清楚的区分添加到网络的信息和需要保存的信息。DenseNet的网络层非常窄(例如每层只有12个卷集核),每层只向网络的“整体知识”添加少量的特征图,保存原有的特征图不改变。在最后的分类做决策时使用网络的所有特征图。

第五段:

除了更高的参数效率外,DenseNet的另一大优势是改善了整个网络的信息和梯度的流动,这使得网络容易被训练。每层都直接连接损失函数的梯度和最初的原始输入信号。从而产生隐含的深层监督。这将有助于训练更深的网络架构。此外,我们观察到密集连接有一定正则化的作用,这将减小在较小训练集上过拟合的风险。

相关工作:

第一段:

网络架构的探索自从最初的发现以来一直是神经网络研究的一部分。 最近神经网络的流行再度兴起了这个研究领域。 现代网络中越来越多的层放大了架构之间的差异,并且激发了对不同连接模式的探索以及旧研究思路的重新审视。

第二段:

已经发现通过跳跃连接来利用CNN中的不同层级特征对于各种视觉的任务时非常有效的。Hightway Networks 是最早提出超过100层的网络架构之一,它提供了一种有效训练超过100层网络的方法。使用bypass path旁路连接和门控单元。其中bypass path被认为是训练非常深网络的关键因素。ResNet使用恒等映射作为旁路连接。在各大图像分类任务取得成功。Stochastic depth通过在训练期间随机丢弃层来改善ResNet。这表明不是所有的层都是需要的,并且强度在深度网络中存在大量的冗余。

第三段:

另一种让网络更深不同的方法(例如使用跳跃连接)是增加网络的宽度。GoogLeNet使用“Inception module”组件,这个组件连接不同尺寸卷积核产生的特征图。早【38】中,提出了一个包含于残差模块的ResNet的变种结构。事实上,在深度足够的情况下,简单的增加每层卷积核的数量就可以提升ResNet的性能。

第四段:

DenseNet发掘网络潜在特征复用的能力,不是去绘制极深或极宽网络的代表性的力量。从而产生易于训练和更好参数效率的浓缩模型。连接不同层学习的特征图可以增加后续层输入的变化,并调高效率。这是DenseNet和ResNet的主要区别。相比于Inception networks,DenseNet连接了不同层的特征。总体来说,DenseNet更加简洁和高效。

第五段:

还有一些其他的网络结构的创新,也取得了具有竞争力的结果。NIN卷基层的滤波器包含多层感知机,来提取更加复杂的特征。

DenseNet:

考虑这样一种情况,单一图像x0输入一个卷积神经网络。这个网络包含L层,每一层都实现一个非线性变换Hl(∙)Hl(∙)可以是一系列组合的操作,例如Batch Normalization(BN),Rectified Linear Units(ReLU),Pooling,或者Convolution(Conv)。用Xl表示第L层的输出。

ResNets:传统的前向传播网络把第L层的输出作为第L+1层的输入。可以用以下公式表示这种变换。

ResNet添加一个跳跃连接,用恒等映射函数绕过非线性变换。

ResNet的一个优点是梯度可以同恒等映射的旁路连接直接从后面层流向前面的层。然而,恒等映射和输出使用相加的方式结合,可能会阻碍信息在网络中的流动。

Dense connectivity:第L层接受其前面所有层的特征图作为输入:

在实施时,将使用concatenate成一个tensor。

Composite function:w 将Xl组合函数定义为三个连续的操作:batch normalization(BN),Rectified linear Unit(ReLU),和一个3x3的卷积。

Pooling layers:DenseNet的concatenate操作的要求是特征图的尺寸必须一致。然而,改变特征图尺寸的下采样层在卷积神经网络中是必不可少的一部分。为了方便进行下采样,我们将网络分为几个密集连接的Dense blocks。并将这些Dense blocks之间的网络层称为过渡层(transition layers)。它包含卷积核池化层。过渡层包含以下三部分:batch normalization,1x1卷积层,2x2平均池化层。

Growth rate:如果每个变换函数Hl产生k个特征图,意味着第L层将有个特征图作为输入。k0代表输入层的通道数。DenseNet和现有的其他网络架构一个重要的区别是DenseNet的网络非常窄,例如k=12。我们将超参k称为网络的增长率。在后续的实验中将展示很小的增长率足够在我们测试的数据集上取得很好的结果。一个很好的解释是每个网络层可以使用在当前bolck中之前的特征图,因此,可以访问网络的“集体知识”。可以将特征图看作是网络的全局状态。每层将自己的k个特征图增加到这个全局状态中,增长率用来控制每层向全局状态增加多少新的信息量。全局状态一旦写入,可以在网络的任务地方访问,并且,不同于传统网络架构,不需要一层一层的复制它。

Bottleneck layers:w尽管每层只产生k个特征图的输出,事实上,它有更多的输入。【37,11】提出的1x1卷积层可以作为bottleneck layers(瓶颈层),在进行3x3卷积前减少输入特征图的数量,以此提升计算效率。我们发现这个1x1卷积的设计对DenseNet网络特别有效。所以我们将其作为网络的bottleneck layers。例如,将BN-ReLU-Conv(1x1)-BN-BeLU-Conv(3x3)的版本作为Hl。将之称为DenseNet-B。在我们的实验中,让1x1卷积层产生4k张特征图。

Compression(压缩):为了让模型更加的紧凑,进一步降低了过度层特征图的数量。如果一个Dense block包含m个特征图;则后续的Transition layse生成θm

个特征图输出。0<θ<1称为压缩率。当θ=1时,通过过渡层的特征图数量不变。我们将θ<1的DenseNet作为DenseNet-C。并在实验中将设为θ=0.5。

Implementation Details:在除了ImageNet的其他数据集上使用的DenseNet有三个Dense blocks。并且每个Dense block的层数相同。在进入第一个Dense block之前,对输入图像执行16个(DenseNet增加率的两倍)输出通道的卷积。卷积层使用3x3大小的卷积核,并且在卷积输入的周围填充0来保持卷积后特征图大小不变。在过渡层中的2x2pooling后接1x1的卷积。在最后一个dense block的后面接一个GAP层,然后加上softmax层进行分类。三个Dense block的特征图大小分别是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}。

在ImageNet的实验中,DenseNet-BC结构包含4个Dense blocks,并以224x224作为输入图像大小。最初的卷积层使用7x7大小,stride2的卷积核生成2k个特征图。更精确的网络参数信息见下表:

论文翻译-Densely Connected Convolutional Networks相关推荐

  1. [论文评析]Densely Connected Convolutional Networks,CVPR,2017

    Densely Connected Convolutional Networks, 文章信息 背景与动机 DenseNet Dense block DenseNet DenseNet的集中经典配置 总 ...

  2. 论文阅读——Densely Connected Convolutional Networks

    前言 之前有一段时间看了挺多深度学习方面的论文,但是由于时间方面的问题一直没来得及进行总结.最近一段时间突发奇想把自己看论文时的学习笔记给记录一下,由于之前没写过博文,所以排版可能会有点emmm... ...

  3. Densely Connected Convolutional Networks 阅读

    https://blog.csdn.net/u014380165/article/details/75142664 论文:Densely Connected Convolutional Network ...

  4. 深度学习论文翻译解析Densely Connected Convolutional Networks

    在开始学习之前推荐大家可以多在FlyAI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力.FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台.每周免费提供项目开源算法样例,支持 ...

  5. 论文笔记:Densely Connected Convolutional Networks (2017 CVPR)

    [引用格式]:G. Huang, Z. Liu, L. Van Der Maaten and K. Q. Weinberger, "Densely Connected Convolution ...

  6. 【Network Architecture】Densely Connected Convolutional Networks 论文解析

    [Network Architecture]Densely Connected Convolutional Networks 论文解析 目录 0. Paper link 1. Overview 2. ...

  7. 论文笔记:Densely Connected Convolutional Networks(DenseNet模型详解)

    [ 转载自http://www.yyliu.cn/post/7cabb4ff.html ] CVPR 2017上,清华大学的Zhuang Liu.康奈尔大学的Gao Huang和Kilian Q.We ...

  8. Densely Connected Convolutional Networks(论文解读三)

    目录 DenseNet:论文解读 1. Abstract 2. Related work 2.1 通过级联来加深网络 2.2 通过 shortcut 连接来加深网络 2.3 通过加宽网络来使网络更深 ...

  9. 《Densely Connected Convolutional Networks》论文心得

    <Densely Connected Convolutional Networks>论文心得 作者及其所在团队在国内外相关领域所处水平: 黄高:美国康奈尔大学计算机系博士后主要研究领域为深 ...

最新文章

  1. VS code配置c环境
  2. GitHub最热!码代码不得不知的所有定律法则
  3. java restful中文乱码_restful服务接口访问乱码 和 505错误
  4. 智能会议系统(25)---linphone代码分析
  5. 用python画派大星代码_Python多线程处理数据,并打印进度条
  6. OsharpNS轻量级.net core快速开发框架简明入门教程-基于Osharp实现自己的业务功能...
  7. 【STM32】UART串口通信无法通信问题(SSCOM)
  8. 电子设计大赛-电源类题目分析
  9. 某易易盾滑块流程加参数分析
  10. 黑马程序员—一张帖看完黑马所有学科、班级就业薪资贴
  11. 小说阅读,原生小说APP源码出售,可二次开发 四端互通:android端,ios端,h5端,公众号端
  12. 人脸识别(81关键点)经典开源核心代码
  13. IE浏览器高通网站打不开dump分析选择目录总结
  14. 1.Lunix系统安装及重置root密码
  15. 梅宫主:穷人的命富人的命
  16. 保存数据时报:Incorrect string value: '\xF0\x9F\x91\x8D' for column 'f_char_name' at row 1
  17. smartupload下载
  18. Windows下文件或文件夹不能删除时的解决办法
  19. 常见加密算法的Python实现
  20. JQData | A股投资指南-单因子选股的有效性验证

热门文章

  1. 草图大师模型 sketchup模型下载 sketchup模型免费下载 SU模型下载
  2. 慕课笔记:jQuery(一)——样式篇
  3. 凡客登录页面html代码,凡客.html
  4. 去水印视频软件免费版,免费去水印的视频软件
  5. STM32F103C8T6高级控制和通用定时器通道引脚分布
  6. 一些常用的正则表达式例如邮箱,手机号等
  7. Shell Docs
  8. 【转载】JAVA知识点集锦(上)
  9. 【3D视觉创新应用竞赛作品系列​】 基于点云的视觉引导系统
  10. 华为C8812E打开log日志功能