论文阅读 || 图像分类系列 —— DenseNet(很详细)

深度学习——稠密连接网络(DenseNet)原理讲解+代码(torch) DenseNet(稠密连接网络)是由Cornell大学的Gao Huang等人于2017年提出的深度学习网络架构。它的设计灵感来自于ResNet(残差网络)以及其前身 Highway Networks 的思想。这是作者发表的一篇CVPR顶会上的一篇论文,代码的地址,大家可以自行下载。 阅读详情
AI摘要

DenseNet是一种创新的卷积神经网络结构,通过密集连接模块优化特征复用,有效减轻梯度弥散,抑制过拟合,减少参数量。在CIFAR、SVHN和ImageNet数据集上展现卓越性能。

目录

1 网络结构加深的演变

2 Dense模块的介绍

3 DenseNet实现过程

3.1 DenseNet优点

3.2 网络结构

4 实验

4.1 数据处理

4.2 模型训练超参数

4.3 在CIFAR和SVHN上的实验结果

4.4 ImageNet分类结果

5. 讨论


论文地址:Densely Connected Convolutional Networks

1 网络结构加深的演变

  1. 到VGG时,网络的深度为19层,表现良好性能。但继续加深宽度性能并无提升,且参数计算量较大
  2. 使用shortcut连接。该连接方式是非常深的网络结构训练变得简单的关键因素。residual模块使用的就是shortcut连接(防止退化,最差是恒等映射)
  3. (1)Stochastis depth(随机深度)被提出作为一种成功的训练1202层resnet的方式:在训练期间随机丢弃一些层来改善深层Resnet的训练。这总操作类似于dropout,增加网络的泛化性。但同时说明并不是所有的层都是必要的,有冗余层存在。
    (2)另外,一些resnet的变种往往可以用更浅层的模型,达到和深层的模型差不多的性能,这些说明了现有更深的卷积神经网络学习得到的很多特征都是冗余的。
  4. 增加网络宽度也是一种提升网络效果的方法(Inception)。

DenseNet的优化方式(与增加宽度和深度不同):特征复用。作者充分利用skip connection,让模块内的每一层接受它前面所有层的输出,增加了后续输入的变化并提高了效率。如此形成了更易训练、高效利用参数的浓缩结构。

 

2 Dense模块的介绍

密集连接卷积网络,它以前馈方式将每层的信息与后面其他层进行连接。模块内所有的层,都要接受前面所有层的信息。模块内部有L层,就有L(L+1)/2个连接。(注意:下图的L=5,由H1,H2,H3,H4,transition layer构成的)

                                

3 DenseNet实现过程

3.1 DenseNet优点

  1. 1.可以减轻梯度弥散问题,有效的抑制过拟合。每层可以直接从损失函数和原始输入信号中获取梯度,改善整个网路中的信息流和梯度流,这可以看做一种较为深入的监督,有助于训练更深的网络。
  2. 加强特征传播,使用特征重用
  3. 大大减少参数数量

3.2 网络结构

(1) 计算方式

以下公式中,定义为复合函数:BN+Relu+Conv

  • 【普通神经网络】
                        
  • 【残差模块】
                            (feature map 进行相加处理)
  • 【DenseNet模块】
                             (feature map 进行concat处理)

(2) 相邻Dense模块之间的过渡层:BN+Conv+Pooling

由于稠密模块的输出map和输入map大小保持一致,所以搭建成的DenseNet时,降采样的操作需要在模块之间进行。

(3) 增长率k控制的全局信息:

增长率k,即每个block内每层输出的feature map的channels(模块内部的每层输出channels相同)。k0是输入层的channels值。那么第k层就有k0+k*(L-1)个channels。论文中,k设置了较小的数(比如12),这个超参数k成为网络的增长率
可以理解,用增长率控制模型的宽度

(4) bottleneck_layer层

  • 模块内的使用:这里每个dense block的3*3卷积前面都包含了一个1*1的卷积操作,就是所谓的bottleneck layer,目的是减少输入的feature map数量,既能降维减少计算量,又能融合各个通道的特征。DenseNet-B。
  • 模块间的使用:作者为了进一步压缩参数,在每两个dense block之间又增加了1*1的卷积操作,模块间的转换层定义成Translation layer。

(5) 模型压缩

如果一个dense block有m个特征图,我们让之后的过渡层生成θm个输出特征图,其中0<θ<1表示compression系数。我们定义θ<1的DenseNet为DenseNet-C,并且在我们的实验中θ=0.5。如果bottleneck和过渡层都有θ<1,我们称该模型为DenseNet-BC。

DenseNet:BN-ReLU-Conv(3x3)
DenseNet-B:BN-ReLU-Conv(1x1)-BN-ReLU-Conv(3x3)
DenseNet-C:DenseNet + θ<1(Translation layer)

于在ImageNet数据集上的实验,我们使用4个dense block的DenseNet-BC结构,图片的输入是224x224。最开始的卷积层有2k(64)个卷积,卷积核是7x7,步长是2;其余所有层的特征图都设为 k。下图

4 实验

4.1 数据处理

CIFAR

  • 32x32的彩色图。CIFAR-10(C10)是10类,CIFAR-100(C100)是100类。训练集50000、测试集10000,训练集中选5000为验证集。
  • 数据集增强:采用广泛应用于这两个数据集的标准数据增强方法 --(翻转+随机裁剪)
  • 预处理:使用各通道的均值和标准差对数据进行归一化

SVHN(街景数据)

  • 32x32的彩色图。训练集73257,测试集26032,有531131张作为额外的训练。训练集中选取6000为验证集。
  • 数据增强:无
  • 预处理:将像素值除以255,使它们在[0,1]范围内

ImageNet

  • ILSVARC 2012分类数据集有1.2百万张训练集,50000张验证集,共1000类。
  • 数据增强:进行
  • 测试图片:使用尺寸为224*224的single-crop和10-crop

4.2 模型训练超参数

  • CIFAR和SVHN
    • batchsize=64
    • 分别训练300轮、40轮
    • 初始学习率为0.1。分别在训练总轮数的50%和75%时,学习率变为原来的0.1
  • ImageNet
    • batchsize=256
    • 训练90轮
    • 初始学习率为0.1,在30和40轮学习率分别变为原来的0.1
    • 另外:受GPU的内存的限制,最大的模型(DenseNet-161)的batchsize=128。训练100轮并在90轮将学习率变为原来的0.1
  • 优化器:SGD
  • 权重衰减:10*e-4Nesterov动量设为0.9
  • Droupout:对于三种没有使用数据增强的数据,如C10、C100和SVHN,我们在每个卷积层(除了第一层)之后增加了一层dropout层,并且设置失活率为0.2

4.3 在CIFAR和SVHN上的实验结果

粗体代表超越以往最佳,蓝色代表最佳

【准确率】【CIFAR】上表格的最后一行,L=190、k=40的DenseNet-BC网络的结果,性能超过先存在的所有模型:错误率C10+为3.46%,C100+为17.8%(远低于wide ResNet网络)。【SVHM】L=100、k=24的DenseNet(使用dropout)也远超wideResNet的最好结果。但是250层DenseNet-BC并没有进一步改善性能,分析是因为SVHM是一个相对容易的任务,过深的模型可能会过拟合。

【容量】不考虑bottleneck时,L和k越大,模型能力越好。这归功于模型容量的增加。
C10+的模型容量1M--7M--27.2M,误差率5.24%--4.1%--3.74%。C100+也能说明问题。表明DenseNet可以使用更大更深的模型来增加表征能力,不容易出现过拟合或深层残差网络优化困难等问题

【参数效率】DenseNet比其他网络结构更有效的利用参数。具有压缩和瓶颈层结构的DenseNet-BC参数效率最高。例如DenseNet的250层模型只有15.3M个参数,但始终优于其他模型

  • 与1001层的pre-activation ResNet相比,具有L=100,k=12的DenseNet-BC实现了相当的性能(C10+:错误率为4.62%和4.51%,而对于C100+,错误率分别为22.71%和22.27%),但参数数量少了90%

【拟合分析】我们可以看到C10上,通过将k=12增加到k=24,参数增加了4倍,网络的变大(这里是参数增多)反而导致误差略微下降:从5.77%增加到5.83%。解决方案:DenseNet-BC的压缩和瓶颈层是抑制过拟合趋势的有效方式

4.4 ImageNet分类结果

保证两种网络之间的公平对比,采用Facebook提供的Resnet的Torch实现,来消除数据预处理和优化设置之间的所有其他因素的影响。只需要将网络结构部分由Resnet替换成DenseNet-BC,并保持所有试验设置完全相同。对比结果:

从上面的折线图可以看出,两种网络在同等误差率时,DenseNet-BC比Resnet有更低的参数和计算量。
 

5. 讨论

【模型的简化性】网络的特征复用,使网络的得到更为简便的模型。更少的参数达到更好的效果

【隐含的深度监督】稠密连接使每一层到达最终输出,都有快速通道(通道上会有少量的transition层),每一层都可以从损失函数中获得监督信息(理解为一种“深度监督”),迫使中间层也学习判断特征。

【随机连接vs确定连接】【stochastic depth regularzation】(残差网络的随机深度正则化,后来发表的论文,对resnet做的改进):在深度随机中,残差网络随机丢弃一些层,让该层前后层直接相连,池化层保留。【DenseNet】模块内部的稠密连接,使每两层之间都存在直连通道。两种方式,都起到了正则效果

【特征复用】DenseNets允许每一层获得之前所有层(通道上会有少量的transition层)的特征图。
做一个实验来判断训练的网络是否有效的特征复用:在C10+数据上训练了L=40、k=12的DenseNet。block内部的每个卷积 l,我们计算与其s层连接的平均权重。三个dense block的热量图如下图

(三角形的第一行,表示block的输入信息被l层利用程度)

  1. 在同一个block中,所有层都将它的权重传递给前面层作为输入。这表明:block内部,每个浅层的特征会被高层卷积不同程度上的成功利用;
  2. 过渡层的权重也可以传递给前面的dense block的所有层。这表明:DenseNet的信息可以以很少的间接方式从第一层流向最后一层;
  3. 第二三个dense block内的所有层分配最少的权重给过渡层的输出,表明过渡层输出很多冗余特征。
  4. 第三个分类器也使用通过整个dense block的权重,但更关注最后的特征图,表明网络的最后也会产生一些高层次的特征。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

神经网络-DenseNet网络结构 DenseNet(Densely Connected Convolutional Networks)是一种深度卷积神经网络(CNN)架构,首次由 Gao Huang 等人在 2017 年提出。DenseNet 的主要特点是,其在网络的每一层中与前面所有层进行连接,从而形成了一个“紧密连接”的网络结构。与传统的 CNN 架构相比,DenseNet 通过这种 dense connectivity 设计,可以有效地缓解梯度消失的问题,并利用深层网络的优势。 阅读详情

相关推荐

图像分类经典论文阅读笔记(VGGNet、Google Net、ResNet、DenseNet、SENet、ResNeXt)

下图就是Inception网络架构的两个模块,(a)是原始版本,但是每个Inception模块都会增加维度,最后会导致计算爆炸。为什么维度一定会增加?(结合后面的Concatenate操作)因为存在一个池化层,而池化层的维度和输入的维度是一致的,所以不管其他三个卷积的卷积核个数到底是多少,最终得到的输出结果维度都会增加。如果输入的维度是x,那么输出的维度至少也是x+3。(b)是改进后的模块,通过加入1 x 1卷积,实现降维,可以降低参数量和计算量。

weixin_47365232的博客 1371

经典网络DenseNet介绍

经典网络DenseNet(Dense Convolutional Network)由Gao Huang等人于2017年提出,论文名为:《Densely Connected Convolutional Networks》,论文见:https://arxiv.org/pdf/1608.06993.pdf DenseNet以前馈的方式(feed-forward fashion)将每个层与其它层连接起来。在传统卷积神经网络中,对于L层的网络具有L个连接,而在DenseNet中,会有L(L+1)/2个连接。每一层的

网络资源是无限的 3万+

【论文阅读笔记】[Semantic Segmentation] FC-DenseNet阅读笔记

jingwenlai 2018-8-15 # 简介 &amp; 主要贡献 Tiramisu - FC-DenseNet (https://arxiv.org/abs/1611.09326), 经典的semantic image segmentation的方法基于CNN,主要包含3个组件: (a) 一个downsampling path,主要用来提取特征 (b) 一个upsampling ...

jingwenlai_scut 4064

DenseNet详解

​ 目录 一、DenseNet网络的背景 二、DenseNet网络结构 四、DenseNet优缺点 五、DenseNet代码实现 一、DenseNet网络的背景 DenseNet模型的基本思路与ResNet一致,但它建立的是前面所有层与后面层的密集连接(即相加变连结),它的名称也是由此而来。 DenseNet的另一大特色是通过特征在通道上的连接来实现特征重用。这些特点让DenseNet的参数量和计算成本都变得更少了(相对ResNet),效果也

tt丫的博客 3万+

DPN(Dual Path Networks)论文阅读笔记

文章目录DPN(Dual Path Networks)论文阅读笔记2017Abstract1. Introduction2. Related work3. Revisiting ResNet, DenseNet and Higher Order RNN4. Dual Path Networks4.1 Dual Path Architecture4.2 Dual Path Networks5. Experiments5.1 Experiments on image classification task5.1

weixin_43422466的博客 1477

【论文阅读笔记】High Quality Monocular Depth Estimation via Transfer Learning

High Quality Monocular Depth Estimation via Transfer Learning paper:https://arxiv.org/pdf/1812.11941.pdf code:https://github.com/ialhashim/DenseDepth 摘要 从单张照片中进行准确的深度估计对于场景理解、三维重建等应用来说是一项基础性的任务。现有深度...

阿辉的博客 5061

【论文阅读】DenseNet网络结构详解及代码复现

1. DenseNet论文详解 Abstract: 如果在靠近输入和靠近输出层之间包含更短的连接,那么卷积神经网络可以很大程度上更深,更准确和高效地进行训练。根据这一结果,我们提出了DenseNet(密集卷积网络): 对于每一层,所有前一层地特征图作为输入,而这一层地特征图用作所有后续层地输入。优势有:缓解了梯度消失问题,加强了特征传播,鼓励特征复用,并很大程度上减小了参数的数量。 1.1. Introduction 随着卷积神经网络的不断加深,出现了一个问题——关于输入或梯度在经过很多层到达网络的终点(.

想当咸鱼的猫 1万+

DenseNet(密集连接的卷积网络)

DenseNet是指Densely connected convolutional networks(密集卷积网络)。它的优点主要包括有效缓解梯度消失、特征传递更加有效、计算量更小、参数量更小、性能比ResNet更好。它的缺点主要是较大的内存占用。

走在深度学习前沿的小宋 2万+

DenseNet论文阅读

翻译近期的研究表明,如果卷积网络在靠近输入和靠近输出的层之间包含较短的连接,它们可以变得更深、更准确,并且训练更加高效。在本文中,我们基于这一观察,提出了密集卷积网络(DenseNet),它以前馈的方式将每一层与其他所有层相连。而传统的卷积网络有 L 层时,只有 L个连接(每一层与其后一层之间有一个连接),而我们的网络则有个直接连接。对于每一层,所有前面层的特征图都作为输入,同时它自己的特征图也会作为输入传递给所有后续层。

weixin_57648437的博客 1445

【Lua面试】2021年Lua面试题分享(4.25更新)

lua深拷贝和浅拷贝的区别?如何实现深拷贝? lua中ipairs和pairs的区别? 链接: link.

qq_21407523的博客 2万+

新入手的Atmel-ICE产品说明

【一句话自我介绍】 我是Atmel最新推出的功能强大的调试编程工具,适用于Atmel ARM® Cortex®-M的Atmel SAM和AVR® 系列芯片。 【我支持的软件】 完美支持Atmel Studio 6.2以上版本直接支持ICC8AVR以上版本支持烧录ICCAVR、CVAVR、IAR等生成的HEX文件 【我支持的器件】 支持AVR 32-bit MCUs的JTA

kaloha3的专栏 1万+

论文阅读——DenseNet:Densely Connected Convolutional Networks

论文阅读之DenseNet Densely Connected Convolutional Networks 时间:2017(CVPR 2017 BestPaper) DenseNet将前面层所有输出均作为后面层的输入,传统的L层CNN只有L个前后层连接,DenseNet有L(L+1)/2的连接,前面层所有的feature map都将作为本层的输入,而本层的输出也将作为所有后续层的输入。 Dens...

qq_37151108的博客 770

深入解析FPGA中的GTX高速收发器架构与设计原理

本文深入解析了FPGA中GTX高速收发器的核心架构与设计原理。文章将GTX比作数据“高速公路”,详细拆解了其PMA(物理媒介适配层)与PCS(物理编码子层)的双层结构,阐述了串并转换、时钟恢复等关键技术,并提供了时钟源选型(QPLL/CPLL)、上电复位流程及信号完整性调试等实战指南,是掌握高速接口设计的必备知识。

f6g7h8i9j的博客 219

【论文阅读笔记3】DenseNet和分类网络汇总

 可参考:DenseNet 简介  论文:Densely Connected Convolutional Networks 一、介绍        这篇论文是CVPR2017 的best paper,主要探讨了如何改进网络结构提升网络性能的方法,提出了dense block,密集连接的概念。        DenseNet具有以下一些优点: 减轻梯度消失问题 增强特征的传播 促进特征...

m0_37935211的博客 1511

c# U盘禁用---守护进程(插入,拔出,卸载等操作)

一、简介 传统的对U盘禁用,我们多采用修改注册表的方式,详情参考:https://blog.youkuaiyun.com/qq_25372599/article/details/79815407;本文将介绍一种其他的方式–后台守护程序。其原理非常简单:当守护程序检测到U盘的插入信号,我们自动卸载U盘,致使系统无法识别U盘,达到禁用U盘的效果。 二、程序设计 2.1 变量定义 strin...

星星之火燃亮码空 2847

Stata实战:DID平行趋势检验完整操作指南(附reghdfe+coefplot代码)

本文提供了一份使用Stata进行DID平行趋势检验的完整实战指南。文章详细讲解了从数据准备、生成相对时间变量,到利用reghdfe命令构建动态效应模型,以及使用coefplot命令进行结果可视化的全流程操作。核心在于通过检验政策前交互项的显著性,验证处理组与对照组是否满足平行趋势假设,为后续因果推断奠定可靠基础。

weixin_29231725的博客 1381

论文阅读|Read Research Papers吴恩达|整理中

How to Read Research Papers (Andrew NgStanford Deep Learning Lectures)

sinat_40759442的博客 1068

不止于连接:用VS Code Remote-SSH深度开发树莓派(Ubuntu 22.04环境实战)

本文详细介绍了如何在Ubuntu 22.04环境下使用VS Code的Remote-SSH功能进行树莓派深度开发。通过SSH配置、VS Code扩展安装和远程环境优化,开发者可以在本地高效编写代码,同时在树莓派上直接运行和测试,解决性能瓶颈问题。文章还提供了高级功能如端口转发、多项目管理和远程调试的实战技巧。

didui8202的博客 352

论文阅读笔记---Densnet

Densnet https://blog.youkuaiyun.com/Gentleman_Qin/article/details/84638700 与inception 的加宽网络结构以及ResNet的加深网络结构不同,DenseNet着重于对每一层feature maps的重复利用。在一个Dense block中,每一个卷积层的输入都是前几个卷积层输出的concatenation(拼接),这样即每一次都结...

xys430381_1的专栏 744

收放卷伺服控制系统详细算法介绍(电子齿轮+张力PID卷绕轴控制功能块)

收放卷控制系统涉及的内容非常多,这里我们介绍全伺服系统利用电子齿轮指令实现主从轴的比例随动速度控制,收放卷控制算法介绍常用链接如下1、收放卷+排线控制收放卷+排线控制系统框图-优快云博客文章浏览阅读24次。1、收放卷前馈量计算FC收放卷前馈量计算FC(CODESYS ST源代码)-优快云博客文章浏览阅读16次。1、收放卷前馈量计算FC(博途PLC):收放卷前馈量计算FC(梯形图+SCL代码)-优快云博客文章浏览阅读534次。2、收放卷前馈量计算FC。

RXXW_Dor的博客 3122

【Coze】在Coze平台使用源码创建工作流

Coze平台提供低代码工作流搭建功能,支持通过图形化界面快速构建自动化任务流程。用户可通过资源库创建工作流,导入JSON配置生成节点结构,连接起始节点并配置输入/输出字段(需定义数据类型)。平台提供试运行功能验证流程执行,支持可视化调试与发布上线。该方案适用于快速部署标准化业务逻辑,实现端到端的自动化处理。

Mr数据杨 2432

[unfinished]论文阅读《CondenseNet: An Efficient DenseNet using Learned Group Convolutions 》

参考: http://blog.youkuaiyun.com/u014380165/article/details/78747711paper:https://arxiv.org/abs/1711.09224 code:https://github.com/ShichenLiu/CondenseNet(PyTorch)

bojackhosreman的博客 1919

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【深度学习】医疗图像识别论文阅读笔记(二)

原文发布在我的幕布里 论文阅读笔记:Deep Neural Networks Improve Radiologists’ Performance in Breast Cancer Screening 深度学习方法应用于乳腺癌放射线X光图像辨别——分类 计算机视觉领域主要应用CNN方法,目前取得了很大成果 应用于Breast cancer screening 2 challenges...

weixin_43912994的博客 964

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

论文阅读 HCGNet:《Gated Convolutional Networks with Hybrid Connectivity for Image Classification》

论文地址:https://arxiv.org/pdf/1908.09699.pdf 文章目录摘要介绍相关工作重温ResNet和DenseNet懒了,直接把我自己做的ppt截上来记录一下 :D 摘要 ResNet + DenseNet混合连接 轻量级门结构 介绍 ResNet (He et al. 2016) 引入了残差连接来实现每个微块的输入和输出特征的添加。 DenseNet (Huang et al. 2017) 通过将跳过连接从添加更改为连接来保持密集连接。它们的特征聚合连接不仅可以鼓励特征.

平什么阿的博客 2483

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

论文阅读笔记(十):CondenseNet: An Efficient DenseNet using Learned Group Convolutions

划重点啦划重点!现将CondenseNet论文中的核心语句摘录下来,以便快速浏览论文主干,翻译不当的地方,还请指正。 It combines dense connectivity between layers with a mechanism to remove unused connections. The dense connectivity facilitates feature re...

sunshine_010的博客 1590

CondenseNet论文阅读笔记

CondenseNet 目录 CondenseNet 目录 论文简介 本文一些记忆点 1)本文思想来源分析: 问题来源分析 解决方法 2) 具体剪枝操作设计: 3)Group Lasso: 4)选择合适的学习率: 5) 相对于原始DenseNet的一些变化: 1) increasing growth rate(IGR): 2)Fully dense connectivity (FD...

头狼博客 1733
上一篇: 论文阅读 || 深度学习之空洞卷积
下一篇: 论文阅读 || 目标检测系列 —— RCNN详解
magic_ll
博客等级 码龄9年 3万+粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值