why 2017最佳论文作者解读 CVPR CVPR DenseNet 和 2017 what 的 how (why20130806TFB)

文章编号:45549 资讯动态 2024-12-09 卷积神经网络2017CVPR

雷锋网 AI 科技评论按:CVPR 2017上,康奈尔大学博士后黄高博士(Gao Huang)、清华大学本科生刘壮(Zhuang Liu)、facebook 人工智能研究院研究科学家 Laurens van der Maaten 及康奈尔大学计算机系教授Kilian Q. Weinberger 所作论文《 Densely Connected Convolutional Networks 》当选 CVPR 2017 最佳论文,与苹果的首篇公开论文《 Learning From Simulated and Unsupervised Images through Adversarial Training 》共获这一殊荣。

在大会期间,雷锋网 AI 科技评论第一时间与获奖论文作者黄高博士及刘壮取得联系,以下为两位作者对DenseNet 的详细介绍及常见疑问解答,雷锋网 AI 科技评论做了不改动原意的编辑和整理。

DenseNet 的基本结构

DenseNet 是一种具有密集连接的卷积神经网络。在该网络中,任何两层之间都有直接的连接,也就是说,网络每一层的输入都是前面所有层输出的并集,而该层所学习的特征图也会被直接传给其后面所有层作为输入。下图是 DenseNet 的一个示意图。

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

如果记第 l 层的变换函数为 H_l(通常对应于一组或两组 Batch-normalization,ReLU 和 Convolution 的操作),输出为 x_l,那么我们可以用一个非常简单的式子描述 DenseNet 每一层的变换:

x_l = H_l([x_0, x_1, …, x_{l-1}])

可以看到,DenseNet 的思想非常简单,从理解到实现都不难(代码已经开源,并且 Github 上有用各种框架写的第三方实现)。可能很多人更关心的问题是为什么要提出 DenseNet,它有什么用,为什么会有用以及怎么把它用好。

DenseNet 是受什么启发提出来的?

DenseNet 的想法很大程度上源于我们去年发表在 ECCV 上的一个叫做随机深度网络(Deep networks with stochastic depth)工作。当时我们提出了一种类似于 Dropout 的方法来改进Resnet。我们发现在训练过程中的每一步都随机地「扔掉」(drop)一些层,可以显著的提高 ResNet 的泛化性能。这个方法的成功至少带给我们两点启发:

DenseNet 的设计正是基于以上两点观察。 我们让网络中的每一层都直接与其前面层相连,实现特征的重复利用;同时把网络的每一层设计得特别「窄」,即只学习非常少的特征图(最极端情况就是每一层只学习一个特征图),达到降低冗余性的目的。 这两点也是 DenseNet 与其他网络最主要的不同。需要强调的是,第一点是第二点的前提,没有密集连接,我们是不可能把网络设计得太窄的,否则训练会出现欠拟合(under-fitting)现象,即使 ResNet 也是如此。

DenseNet 有什么优点?

省参数。 在 ImageNet 分类数据集上达到同样的准确率,DenseNet 所需的参数量不到 ResNet 的一半。对于工业界而言,小模型可以显著地节省带宽,降低存储开销。

省计算。 达到与 ResNet 相当的精度,DenseNet 所需的计算量也只有 ResNet 的一半左右。计算效率在深度学习实际应用中的需求非常强烈,从本次 CVPR 会上大家对模型压缩以及 MobileNet 和 ShuffleNet 这些工作的关注就可以看得出来。最近我们也在搭建更高效的 DenseNet,初步结果表明 DenseNet 对于这类应用具有非常大的潜力,即使不用 Depth Separable Convolution 也能达到比现有方法更好的结果,预计在近期我们会公开相应的方法和模型。

另外,我们还提出了一个可实现自适应推理的多尺度 DenseNet,用于提高深度学习模型的推理效率。这个方法的主要思想是用浅层的特征来预测相对「简单」的图片,而只用深层的特征来预测比较「难」的图片。由于很多实际应用中,简单的图片占有较大的比例,而它们并不需要非常深的模型也能被正确预测,因此这种自适应推理方法可以有效的降低深度模型推理时的平均计算开销,而不降低精度。感兴趣的读者请关注我们的 arXiv 论文 《Multi-Scale Dense Convolutional Networks for Efficient Prediction》(),代码参见。

抗过拟合。 DenseNet 具有非常好的抗过拟合性能,尤其适合于训练数据相对匮乏的应用。这一点从论文中 DenseNet 在不做数据增强(data augmentation)的 CIFAR 数据集上的表现就能看出来。例如不对 CIFAR100 做数据增强,之前最好的结果是 28.20% 的错误率,而 DenseNet 可以将这一结果提升至 19.64%。对于 DenseNet 抗过拟合的原因有一个比较直观的解释:神经网络每一层提取的特征都相当于对输入数据的一个非线性变换,而随着深度的增加,变换的复杂度也逐渐增加(更多非线性函数的复合)。相比于一般神经网络的分类器直接依赖于网络最后一层(复杂度最高)的特征,DenseNet 可以综合利用浅层复杂度低的特征,因而更容易得到一个光滑的具有更好泛化性能的决策函数。实际上,DenseNet 的泛化性能优于其他网络是可以从理论上证明的:去年的一篇几乎与 DenseNet 同期发布在 arXiv 上的论文(AdaNet: Adaptive Structural Learning of Artificial Neural Networks)所证明的结论(见文中 Theorem 1)表明类似于 DenseNet 的网络结构具有更小的泛化误差界。

密集连接不会带来冗余吗?

这是一个很多人都在问的问题,因为「密集连接」这个词给人的第一感觉就是极大的增加了网络的参数量和计算量。 但实际上 DenseNet 比其他网络效率更高,其关键就在于网络每层计算量的减少以及特征的重复利用。DenseNet 的每一层只需学习很少的特征,使得参数量和计算量显著减少。 比如对于 ImageNet 上的模型,ResNet 在特征图尺寸为 7x7 的阶段,每个基本单元(包含三个卷积层)的参数量为 2048x512x1x1+512x512x3x3+512x2048x1x1=4.5M,而 DenseNet 每个基本单元(包含两个卷积层,其输入特征图的数量一般小于 2000)的参数量约为 2000x4x32x1x1 + 4x32x32x3x3 = 0.26M,大幅低于 ResNet 每层的参数量。这就解释了为什么一个 201 层的 DenseNet 参数量和计算量都只有一个 101 层 ResNet 的一半左右。

还有一个自然而然的问题就是,这么多的密集连接,是不是全部都是必要的,有没有可能去掉一些也不会影响网络的性能?论文里面有一个热力图(heatmap),直观上刻画了各个连接的强度。从图中可以观察到网络中比较靠后的层确实也会用到非常浅层的特征。

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

我们还做过一些简单的实验,比如每一层都只连接到前面最近的 m 层(例如 m=4),或者奇(偶)数层只与前面的偶(奇)数层相连,但这样简化后的模型并没有比一个相应大小的正常 DenseNet 好。当然这些都只是一些非常初步的尝试,如果采用一些好的剪枝(prune)的方法,我觉得 DenseNet 中一部分连接是可以被去掉而不影响性能的。

DenseNet 特别耗费显存?

不少人跟我们反映过 DenseNet 在训练时对内存消耗非常厉害。这个问题其实是算法实现不优带来的。当前的深度学习框架对 DenseNet 的密集连接没有很好的支持,我们只能借助于反复的拼接(Concatenation)操作,将之前层的输出与当前层的输出拼接在一起,然后传给下一层。对于大多数框架(如 Torch 和 TensorFlow),每次拼接操作都会开辟新的内存来保存拼接后的特征。这样就导致一个 L 层的网络,要消耗相当于 L(L+1)/2 层网络的内存(第 l 层的输出在内存里被存了 (L-l+1) 份)。

解决这个问题的思路其实并不难,我们只需要预先分配一块缓存,供网络中所有的拼接层(Concatenation Layer)共享使用,这样 DenseNet 对内存的消耗便从平方级别降到了线性级别。在梯度反传过程中,我们再把相应卷积层的输出复制到该缓存,就可以重构每一层的输入特征,进而计算梯度。当然网络中由于 Batch Normalization 层的存在,实现起来还有一些需要注意的细节。为此我们专门写了一个技术报告(Memory-Efficient Implementation of DenseNets,)介绍如何提升 DenseNet 对内存的使用效率,同时还提供了 Torch, PyTorch, MxNet 以及 Caffe 的实现,代码参见:

Torch implementation:

PyTorch implementation:

MxNet implementation:

Caffe implementation:

新的实现极大地减小了 DenseNet 在训练时对显存的消耗,比如论文中 190 层的 DenseNet 原来几乎占满了 4 块 12G 内存的 GPU,而优化过后的代码仅需要 9G 的显存,在单卡上就能训练。

另外就是网络在推理(或测试)的时候对内存的消耗,这个是我们在实际产品中(尤其是在移动设备上)部署深度学习模型时最关心的问题。不同于训练,一般神经网络的推理过程不需要一直保留每一层的输出,因此可以在每计算好一层的特征后便将前面层特征占用的内存释放掉。而 DenseNet 则需要始终保存所有前面层的输出。但考虑到 DenseNet 每一层产生的特征图很少,所以在推理的时候占用内存不会多于其他网络。

使用 DenseNet 有什么需要注意的细节?

总的来说,训练 DenseNet 跟训练其他网络没有什么特殊的地方,对于训练 ResNet 的代码,只需要把模型替换成 DenseNet 就可以了。如果想对 DenseNet 的模型做一些改进,我们有一些建议供参考:

DenseNet 用于图像语义分割和物体检测等视觉任务效果如何?

由于 DenseNet 不容易过拟合,在数据集不是很大的时候表现尤其突出。在一些图像分割和物体检测的任务上,基于 DenseNet 的模型往往可以省略在 ImageNet 上的预训练,直接从随机初始化的模型开始训练,最终达到相同甚至更好的效果。由于在很多应用中实际数据跟预训练的 ImageNet 自然图像存在明显的差别,这种不需要预训练的方法在医学图像,卫星图像等任务上都具有非常广阔的应用前景。

在图像语义分割任务上,CVPR 2017 的一篇 workshop 文章 《The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation》 () 表明,基于 DenseNet 的全卷积网络(FCN)模型在不需要预训练的情况下甚至可以达到比其他预训练方法更高的精度,并且比达到相同效果的其他方法的模型要小 10 倍。

同样,在物体检测任务上,我们即将发表在 ICCV 2017 上的工作也表明,基于 DenseNet 的检测方法可以在不需要 ImageNet 预训练的情况下达到 state-of-the-art 的效果,并且模型参数相比较其他模型要少很多。这是目前为止第一个不用 ImageNet 预训练的基于深度学习的物体检测系统。文章会在 8 月初放到 arxiv,敬请关注。

头图 via,正文图片由作者提供

特约稿件,未经授权禁止转载。详情见 转载须知 。

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

全局中部横幅
广州市巴乐图装饰工程有限公司

广州市巴乐图装饰设计工程有限公司是一家专业从事幼儿园、早教中心、教育机构的整体规划,设计与施工为一体的大型人文艺术与技术相结合的企业,经过悉心的研究和探索,我们汇悟出超前的设计理念,储备并培养了大量的技术人才,拥有一批高水准的设计精英和门类齐全的能工巧匠。本公司专注于幼儿园外观洋装、室内装潢、活动广场、园林绿化景点工程及园内周边配套设施。一直以来公司在设计上的独具匠心,施工上的精心细琢,材料上的健康环保,质量上的标准精良,服务上的全心全意赢得广大教育机构的认可。我们以经济实用、美观大方、别具匠心的原则,

木船制造,木船制造厂,旅游观光船,观光船厂家,兴化市殿宝木船制造有限公司

木船制造,木船制造厂,旅游观光船,观光船厂家,兴化市殿宝木船制造有限公司

菊花网

菊花网致力于菊花的相关内容整合网站,关于菊花的相关知识,使用方法,盆栽观赏,泡茶等,涵盖菊科、菊属、菊目植物,菊花网都有你喜欢的,喜欢菊花的朋友,就来菊花网。

榆林市榆阳区聚源制氧厂

榆林市榆阳区聚源制氧厂,榆林氧气,榆林乙炔,榆林氮气

上海包包回收

爱奢优品上海门店是上海专业的二手奢侈品回收实体店,主要提供包包回收、手表回收、黄金回收、首饰回收和钻石回收等正品二手奢侈品回收业务,提供2022年实时的上海地区二手奢侈品回收价格,支持上门回收,快速变现。

UU在线工具

UU在线工具是一个免费便捷的在线工具站,无需下载,即来即用,简洁高效,让数据处理更简单和高效。

郑州跑步机,河南按摩椅,健身器材,速尔跑步机,西屋按摩椅,艾力斯特按摩椅,乔山跑步机,荣泰按摩椅,奥佳华按摩椅,戴美斯健身器材,健身房器材

弘康体育是从事跑步机,按摩椅,健身器材的专业供应商-400-6789-397,旗下有乔山,速尔,BH,泰诺健,力健,星驰,荣泰,奥佳华,星牌,戴美斯,红双喜等国内国际一线品牌,为消费者提供专业科学全方位的健身服务.

润华轴承

自贡市润华轴承有限公司是一家生产塑料轴承及塑料耐磨、润滑、减振材料的专业厂家,长期服务于汽车、摩托车领域。主要产品为减振器推力轴承、活塞环、聚氨酯缓冲块和塑料件等系列产品,以及摩托车链条调节板耐磨带及机床导轨带等聚四氟乙烯制品。

台州市尾霸汽摩配件有限公司

尾霸是一家专业从事摩托车铝合金尾架改装、开发、生产的高科技服务型公司。

北京奥龙飞腾科技有限公司

北京奥龙公司专注教育软件开发,着力于校园数字化网上办事大厅解决方案,提供智慧校园平台,走班制选课排课系统,公寓管理系统,MBA报考培养管理系统,研究生信息管理系统,教务管理系统,迎新离校系统,图书馆管理系统,掌上数字校园移动平台,实现校园移动办公!免费咨询电话:010-89756772

金属破碎机

河南通世机械设备有限公司是一家专业生产撕碎机、破碎机等环保设备的实体厂家,主要产品有金属破碎机、金属撕碎机、废铝撕碎机、废钢撕碎机、垃圾撕碎机等机械设备,价格合理,质量可靠。咨询电话:18838004976。

宁波流水线

旭翔机械设备是宁波流水线厂家,主营:喷涂生产设备;PLC控制无尘【手】自动喷漆线、悬挂线、地轨线、喷粉柜、工业烤箱、自动装配流水线等,欢迎致电详询。

全局底部横幅