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 的一个示意图。

 2017最佳论文作者解读:DenseNet 的“what”、“why”和“how”| 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),直观上刻画了各个连接的强度。从图中可以观察到网络中比较靠后的层确实也会用到非常浅层的特征。

 2017最佳论文作者解读:DenseNet 的“what”、“why”和“how”| 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,正文图片由作者提供

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

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

全局中部横幅
“qq.ip138.com”的百度权重查询结果

查询百度权重和百度的关键字排名,查询360权重和360的关键字排名

上海展台设计和搭建公司

提供高性价比展会解决方案,展台搭建,美陈道具制作,活动搭建,特装展位装修布置,免费设计,本地工厂价格。立即咨询,享受优质又实惠的展览服务。

圣宠智慧云商

智慧云商spetmall.com-圣宠宠物3公里实体店铺服务商城,为您提供正品低价的宠物用品、优质便捷的洗澡美容寄养服务以及健康纯种的宠物猫狗活体上门购买。商品源自品牌厂家,囊括宠物粮食零食、食品、保健品、药品、玩具用品;猫咪、狗狗、小宠等活体;洗澡、美容、寄养等服务。满足近距离购物需求。

北京市大兴区人民医院

医院始建于1954年,经过兴医人60余年的建设,已发展成为京南地区集医、教、研、防为一体的三级综合医院。现为北京市医保A类医院、首都医科大学大兴教学医院,大兴区区域医疗中心。拥有北京市内科、外科、全科等住院医师规范化培训基地、3+2助理全科医师规范化培训基地。

华俊配送中心

广东华俊餐饮集团有限公司主营:华俊餐饮管理、珠海华俊餐饮、华俊配送中心、华俊配送、华俊餐厅、华俊餐饮、珠海农副产品批发、食材配送中心、食堂食材配送、食材配送、农副产品批发、员工食堂承包、公司食堂承包、厨房设计、承包公司食堂、承包食堂。想要了解更多农副产品批发价格的内容,可以关注我们。我们秉承与客户互相理解与信任,增进客户和企业之间的了解,探究客户需求,解答客户疑问,与客户建立良好的合作关系,让饮食文化和企业文化相结合,推动企业的后勤管理,实现互惠共赢。

钢护筒卷管,Q345B厚壁卷管,钢板卷管,打桩用大口径卷管,丁字焊卷管

山东昊月金属制品有限公司电话:183-0635-1786主营:钢护筒卷管,Q345B厚壁卷管,钢板卷管,打桩用大口径卷管,丁字焊卷管等产品,产品质量可靠,规格型号齐全,欢迎来电咨询!

7.biz

www.7.biz|商业搜索引擎,是中小企业实现采购搜索和网络营销的B2B电子商务平台。帮助中小企业更快,更有效的达成交易。

仓储篷房

正德装配式篷房是一家专注装配式建筑系统的篷房生产厂家,主要生产、制造仓储仓库篷房、婚礼婚庆篷房、展会展览篷房以及提供其他篷房产品销售业务。各种篷房价格报价合理,如需篷房请拨打15906113200。

热镀锌螺栓

锣锶紧固科技(无锡)有限公司是一家专业热镀锌螺丝和不锈钢螺丝生产厂家,公司致力于电网能源行业使用的热浸锌螺栓的研发和销售,主要产品有不锈钢螺栓系列、热镀锌螺栓系列和达克罗螺栓系列。

减肥瘦身,瑜伽运动,瘦脸瘦腿知识分享

聚瘦减肥网(www.jujushou.com)分享减肥瘦身、瑜伽运动减肥、瘦脸瘦腿减肥知识,以及各类科学消耗热量卡路里,运动减脂,锻炼肌肉,健康饮食减肥,塑造精致大小腿的减肥心得。

优文解说

优文影视解说网专注于分享影视电视剧动漫解说文案、影视电视剧动漫文案解说词,为广大影视剪辑爱好者提供丰富的影视剪辑文案影视剪辑素材,以及分享影视剪辑的技巧和教程,为您的剪辑工作保驾护航。

全局底部横幅