• 回答数

    2

  • 浏览数

    149

小小爱小吃
首页 > 论文发表 > resnet论文发表时间

2个回答 默认排序
  • 默认排序
  • 按时间排序

天可莲见

已采纳

大名鼎鼎的DenseNet,17年CVPR的best paper(当然有争议是后话),不得不读。黄高博士的扛鼎之作,之前在读他的Snapshot-Ensembles时感觉就很舒服,整个文章逻辑很清楚,实验对比做的也十分全面,相信这篇best paper更是没有问题,会给读者一种爽的感觉。

2019.2.20 2852次。绝对值很高,但相比其他经典网络,ResNet,GoogLeNet之类,有些差距。

本篇在16年8月挂到arXiv上,中了2017年CVPR,是继16年何大神的ResNet之后,第二个华人的best paper, 这里 有个作者本尊的talk,现场讲解。一作Gao Huang(黄高)05年北航的本科生(GPA第一),15年清华博士毕业(读了6年。。),后来在康奈尔待了3年做博后,此刻在清华作青椒,本篇是在康奈尔时的工作。二作刘壮(同等贡献)也是碉堡,现在在伯克利做博士生,之前是清华姚班的(13级),发这篇文章时还在清华,也就是说 本科生 。。。最近以一作的身份新发了一篇《Rethinking the Value of Network Pruning》,中了19年的ICLR,同时也是18年NIPS的best paper award。。这个世界太疯狂了,这都不是潜力股了,而是才华横溢溢的不行了。

官方实现在这里:

黄高个人主页在这里:

刘壮个人主页在这里:

先前的研究中说明只要网络包含短路连接,基本上就能更深,更准确,更有效的训练。本文基于这个观察,引入了密集卷积网络(DenseNet),它以前馈方式将每个层连接到所有层。传统的卷积网络L层有L个连接,而DenseNet有 个直接连接。对于每一层,它前面所有层的特征图都当作输入,而其本身的特征图作为所有后面层的输入(短路连接被发挥到极致,网络中每两层都相连)。DenseNet具有几个引入注目的优点: 可以缓解梯度消失问题,加强特征传播,鼓励特征重用,并大幅减少参数数量。

随着CNN变得越来越深,一个新的研究问题出现了:随着输入信息或梯度通过多层,它在到达网络结尾(或开始)处就消失了。ResNets和Highway Networks通过恒等连接将信号从一层传输到下一层。Stochastic depth通过在训练期间随机丢弃层来缩短ResNets,以得到更好的信息和梯度流。FractalNets重复组合几个并行层序列和不同数量的卷积块,以获得较深的标准深度,同时在网络中保持许多短路径。尽管上述方法的网络结构都有所不同,但它们有一个共同特征:创建从早期层到后期层的短路径。

本文提出一个简单的连接模式:为了确保网络中各层之间的最大信息流, 将所有层(匹配特征图大小)直接相互连接 。为了保持前向传播性质,每个层从所有前面的层获得附加输入,并将其自身特征图传递给所有后续层。

至关重要的是,与ResNets相比,在传递给下一层之前, 不是通过求和来合并特征,而是通过concat来合并特征 。因此, 层有 个输入,包括所有先前卷积块的特征图。其特征图被传递到后续所有 层。这在L层网络中引入了 个连接,而不是传统架构的L个连接。正是因为这种密集连接模式,所以称本文方法为密集连接网络( Dense Convolutional Network DenseNet)。

相比传统卷积网络,这种密集连接模式有有一点可能违反直觉的是,它需要更少的参数,因为无需重新学习冗余的特征图。本文提出的DenseNet架构显式区分了添加到网络的信息和保留的信息。DenseNet的层非常窄(如每层只有12个滤波器),只给网络的"集体知识"增加一小组特征图,并保持其余的特征图不变。

除了更好的参数利用率之外,DenseNet的一大优势是它改善了整个网络中的信息流和梯度,使得网络更易于训练。每层都可以直接访问损失函数和原始输入信号的梯度( 我屮,这不就是GoogLeNet当时为解决梯度消失而在中间层引入分类器那种ugly办法的替代吗 ),从而导致隐式的深度监督。这有助于训练更深的网络。

与DenseNet相似的级联结构早在1989年就提出来了。。Adanet的提出差不多是与DenseNet并行的,跨层连接也相似(话说竞争真激烈。。)

本文作者提出的另一个网络Stochastic depth说明并非所有层都需要,在深度残差网络中存在大量冗余的层。本文的部分灵感也来源于此。

相比从极深或极宽的架构中提取表示能力,DenseNet是通过 特征重用 来利用网络的潜力,得到易于训练和高参数效率的压缩模型。相比从不同层拼接特征的Inception网络,DenseNet更简单有效(看来Inception因其结构复杂性没少被批判)。

定义 为单张输入图像,网络由 层组成,每一层实现非线性变换 ,其中 为层的索引号。 可以是BN,ReLU,Pooling,Conv等操作的复合函数,定义 层的输出为 。

传统的层连接: 。ResNets增加了跳跃连接: 。ResNets的一个优势是梯度可以通过恒等函数直接从后面的层流向前面的层。然而,恒等函数和 的输出通过加法合并,有可能会阻碍网络的信息流。

本文引入与ResNets不同的连接模式:从任意层到所有后续层的直接连接(图1)。结果就是,第 层接收所有之前层的特征图作为输入: 。为了便于实现,concat 的多个输入为单一张量。

受ResNet v2启发,定义 为三个连续运算的复合函数:BN,ReLU,3 x 3 Conv

当特征图的大小改变时,concat运算是不可能的,然鹅,卷积网络的一个关键组成部分就是下采样层,通过它可以改变特征图大小。为了便于在架构中进行下采样,将网络划分为多个密集连接的密集块(dense blocks),如图2所示。

将密集块之间的层称为过渡层(transition layers),它们进行卷积和池化。本文实验中的过渡层由BN,1 x 1卷积和 2 x 2平均池化组成。

如果每个函数 生成 个特征图,它后面跟着的 层有 个输入特征图,其中 是输入层的通道数。DenseNet和现有网络架构的一个重要区别是DenseNet可以有非常窄的层,如 。本文将超参数 定义为网络的成长率(growth rate)。对此的一种解释是,每一层都可以访问其块中所有前面的特征图,即,网络的『集体知识』。可以将特征图视为网络的全局状态。每一层增加自己的 个特征图到这个状态。成长率反映了每层由多少新信息对全局状态有贡献。全局状态一旦写入,就可以被网络中的任何地方访问,而不像传统网络那样,无需从一层复制到另一层。(全文精华应该就是这一段了)

1x1 conv非常有用(提升计算效率),本文也大用特用。本文定义DenseNet-B的 为 BN-ReLU-Conv(1x1)-BN-ReLU-Conv(3x3)

为了使模型更紧凑,可以减少过渡层的特征图数量。如果密集块包含 个特征图,定义接下来的过渡层生成 个特征图,其中 表示压缩率。定义 的DenseNet为DenseNet-C,本位实验中设置为 。当同时使用瓶颈层和压缩过渡层时,定义模型为DenseNet-BC。

非ImageNet数据集采用同一个架构,由3个密集块构成。ImageNet的架构如表1所示

CIFAR SVHN ImageNet

所有网络都用SGD。

CIFAR和SVHN的batch size为64,epoch分别为300和40,初始学习率为0.1,在50%和75%的epoch时分别除10。

ImageNet的batch size为256,90个epoch,初始学习率为0.1,在30和60epoch时分别除10。

weight decay为 ,动量为0.9。用He初始化。

对于CIFAR和SVHN,还在每个卷积层后接了dropout层(除第一个卷积层外),丢失率为0.2。

看表2的最后一行

DenseNet可以利用更大更深模型表示能力的增长。

如图4所示

主要用DenseNet-BC和ResNet作比较。

表面上看,DenseNets和ResNets没什么不同,两个式子的差别仅仅是输入从加法变为concat,然而,这种看似很小的修改导致两种网络架构的行为明显不同。

因为鼓励特征重用,所以得到更紧凑的模型。

如图4所示。

对DenseNets准确率提升的一种解释是各个层通过短路连接从损失函数接收额外的监督(某种深度监督)。DenseNets用隐式的方式执行相似的深度监督:网络顶部的单个分类器通过最多两到三个过渡层为所有层提供直接监督。 然而,由于在所有层之间共享相同的损失函数,因此DenseNets的损失函数和梯度基本上不那么复杂。

和随机深度的对比,随机深度有点类似DenseNet:如果所有中间层都随机丢弃,那么在相同的池化层之间的任意两层都有可能直接连接。

DenseNet就是好,就是好啊就是好。在遵循简单的连接规则的同时,DenseNets自然地整合了恒等映射,深度监督和多样化深度的属性。

又是一篇没有什么数学公式的paper,越来越感觉深度学习像物理,很多结果都是基于做实验得到的。通过对实验的观察对比分析,找出实验中的缺陷不足,从而去改进,然后发paper。黄高博士的写作套路还是非常讨喜的,特别是开头的地方,娓娓道来,一步一步告诉你为什么要这么做,为什么要引入这一步。此外,DenseNets和作者本人的工作『随机深度』也有千丝万缕的关系,看来功夫做扎实了,沿着一条道路是可以出一系列成果的。

这是个好问题。。是要进一步衍生ResNet吗?

提出密集连接结构,将ResNet的跳跃连接发扬光大为两两连接

效果比ResNet还好,通过减少滤波器个数(文中称作成长率),参数量也下来了

感觉效果提升并没有那么明显,被后续出来的ResNeXt超过了

各种网络结构的实现:

黄高本人视频讲解:

作者本人的解答: CVPR 2017最佳论文作者解读:DenseNet 的“what”、“why”和“how”

DenseNet的3个优势:

199 评论

赤脚医师

残差网络(Residual Network简称ResNet)是在2015年继Alexnet Googlenet VGG三个经典的CNN网络之后提出的,并在ImageNet比赛classification任务上拔得头筹,ResNet因其简单又实用的优点,现已在检测,分割,识别等领域被广泛的应用。 ResNet可以说是过去几年中计算机视觉和深度学习领域最具开创性的工作,有效的解决了随着网络的加深,出现了训练集准确率下降的问题,如下图所示:

做过深度学习的同学应该都知道,随着网络层数的增加而导致训练效果变差的一个原因是梯度弥散和梯度爆炸问题(vanishing/exploding gradients),这个问题抑制了浅层网络参数的收敛。但是这个问题已经通过一些参数初始化的技术较好的解决了,有兴趣的同学可以看参考文献中的以下几篇文章:[2][3][4][5][6]。 但是即便如此,在网络深度较高的时候(例如图中的56层网络)任然会出现效果变差的问题,我们在先前的Alexnet Googlenet VGG三个模型中可以看出,网络的深度在图片的识别中有着至关重要的作用,深度越深能自动学习到的不同层次的特征可能就越多,那到底是什么原因导致了效果变差呢?

Fig. 3 左侧19层的VGG模型的计算量是 19.6 billion FLOPs 中间是34层的普通卷积网络计算量是3.6 billion FLOPs。 右边是34层的ResNet计算量是3.6billion FLOPs,图中实线的箭头是没有维度变化的直接映射,虚线是有维度变化的映射。通过对比可以看出VGG虽然层数不多但是计算量还是很大的,后面我们可以通过实验数据看到34层的ResNet的表现会比19层的更好。

从图中可以看出在效果上,34层的残差网络比VGG和GoogleNet都要好,A,B,C三种方案中C方案效果最好,但是B,C方案在计算量上比A方案要大很多,而效果提升的又很少,所以论文作者建议还是使用A方案较为实用。 下面我们介绍层数在50及以上的残差网络的结构: Deeper Bottleneck Architectures。这种结构是作者为了降低训练时间所设计的,结构对比如下图所示:

ResNet通过残差学习解决了深度网络的退化问题,让我们可以训练出更深的网络,这称得上是深度网络的一个历史大突破吧。也许不久会有更好的方式来训练更深的网络,让我们一起期待吧! 目前,您可以在 人工智能建模平台 Mo 找到基于tensorflow 的34层的残差网络(ResNet)实现样例,数据集是CIFAR-10 (CIFAR的十分类数据集),这个样例在测试集上的精度为90%,验证集上的精度为98%。主程序在ResNet_Operator.py中,网络的Block结构在ResNet_Block.py中,训练完的模型保存在results文件夹中。 项目源码地址: 参考文献: [1] _K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385,2015. [2] Y. LeCun, L. Bottou, G. B. Orr, and K.-R.M¨uller. Efficient backprop.In Neural Networks: Tricks of the Trade, pages 9–50. Springer, 1998. [3] X. Glorot and Y. Bengio. Understanding the difficulty of training deep feedforward neural networks. In AISTATS, 2010. [4] A. M. Saxe, J. L. McClelland, and S. Ganguli. Exact solutions to the nonlinear dynamics of learning in deep linear neural networks.arXiv:1312.6120, 2013. [5] K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers:Surpassing human-level performance on imagenet classification. In ICCV, 2015. [6] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In ICML, 2015.

Mo (网址: momodel.cn )是一个支持 Python 的 人工智能在线建模平台 ,能帮助你快速开发、训练并部署模型。

Mo 人工智能俱乐部 是由网站的研发与产品设计团队发起、致力于降低人工智能开发与使用门槛的俱乐部。团队具备大数据处理分析、可视化与数据建模经验,已承担多领域智能项目,具备从底层到前端的全线设计开发能力。主要研究方向为大数据管理分析与人工智能技术,并以此来促进数据驱动的科学研究。

251 评论

相关问答

  • 论文发表时间取得时间

    论文发表一般需要的时间如下: 1、普刊即省级国家级一般安排周期是1到3个月。 2、本科学报的安排周期一般为2到4个月。 3、北大核心以上级别期刊的安排周期

    Z黑暗中獨舞 6人参与回答 2023-12-09
  • 论文发表时间和出版时间

    刊期和出刊时间的区别是什么?刊期就是期刊的出版周期,常见的出版周期打击阿斗非常熟悉,半月刊、月刊、双月刊、季刊等,都是常见的期刊出版周期,出刊时间是一个更为具体

    养生达人帅帅 4人参与回答 2023-12-10
  • 论文发表时间是online时间

    关于刊出日期和检索日期怎么查方法如下sci期刊发表时间不一定看得到,哪怕看online时间、见刊时间或检索时间,一般也只能确定具体的年份和月份,甚至只能确定年份

    xiaxia910000 3人参与回答 2023-12-09
  • 论文发表时间和证书时间

    论文发表时间是指文章见刊时间。 首先如果论文发表纯属作者个人爱好,那么发表时间就是文章见刊时间。但是如果论文发表是用来评职称晋升的,就需要特别注意一下了,职称论

    candys0814 4人参与回答 2023-12-11
  • 论文投稿时间和发表时间

    从投稿到发表周期大概是7-10个月,审稿在1-2个月。如果是核心期刊的话,周期在12-16个月,核心期刊审稿就得2-4个月。如果是找淘淘论文网发表的话,普刊,从

    迟到的春风 3人参与回答 2023-12-11