DenseNet发明者黄高:动态模型好在哪里?
自2012年至今,计算机视觉领域蓬勃发展,各种模型不断涌现,短短 8 年时间,计算机视觉领域便发生了天翻地覆的变化。那么如何看待过往变化,当下研究又如何?
12月10日晚,在【青源Talk】第 3 期上,清华大学助理教授,智源青年科学家黄高将计算机视觉中的深度神经网络结构设计从2012年至今的发展,划分为三个阶段,并分析了各个阶段的特点:
-> 2012-2015,为快速发展期;
-> 2015-2017,为成熟期;
-> 2017-至今,为繁荣期。
在此之后,黄高重点讲解了当下 CV 深度模型设计领域的两大研究方向,NAS 和动态网络,特别是后者。听其报告,我们能够感受到黄高的工作优美、简单且自然。
在演讲之后的交流中,黄高向与会的学生们强调了一条科研经验:研究需要韧性。
整理 | 贾伟、周寅张皓
校对 | 廖璐
黄高是清华大学自动化系助理教授,博士生导师。2015年获清华大学博士学位,2015年至2018年在美国康奈尔大学计算机系从事博士后科研工作。主要研究领域为深度学习和计算机视觉,提出了主流卷积网络模型DenseNet。目前在NeurIPS,ICML,CVPR等国际顶级会议及IEEE多个汇刊共计发表学术论文50余篇,被引用18000余次。获CVPR最佳论文奖、达摩院青橙奖、世界人工智能大会SAIL先锋奖、中国自动化学会优秀博士学位论文、全国百篇最具影响国际学术论文、中国人工智能学会自然科学一等奖和吴文俊优秀青年奖等荣誉,入选智源青年学者计划。
1
视觉模型的发展
在过去一些年里,计算机视觉领域涌现出许多经典的深度学习的网络架构。这说明网络的架构在深度学习(计算机视觉)中尤为重要。原因是什么?
黄高认为网络架构的重要性体现在四个方面,分别为:表达能力、优化特性、泛化性能和计算/存储效率。
表达能力:不同网络结构,其表达能力显然不同。举例来说,线性模型,无论多深,仍然只是线性模型,其表达能力有限。优化性能:ResNet出现之前,所谓的“深度网络”并不很深,当时最深的GoogleNet、Inception等也仅 20 多层。这并非当时硬件不足,主要原因是梯度反传过程会出现梯度消失问题。ResNet以及后续的DenseNet通过结构上的改进,可以很好地改善这种问题。泛化性能:从本质上来说,神经网络是一个函数,训练网络即是拟合。网络的结构定义了函数的特性,同时也关系到它的泛化能力。计算/存储效率:当达到同样精度时,有的模型需要很大,有的模型却比较小;有的模型消耗计算资源很高,有的模型却相对要小得多。
2
神经网络结构三个阶段
从2012年至今,计算机视觉领域的深度学习网络模型经历了天翻地覆的变化。如何看待这些变化?
黄高将这 8 年多的黄金时期划分为三个阶段,分别为:2012-2015,快速发展期;2015-2017,成熟期;2017-至今,繁荣期。
如下图所示:
2012-2015的快速发展期:2012年,AlexNet在ImageNet比赛中一举挑战各种传统模型,让大家意识到深度学习在视觉任务中的潜力,从而掀起了一股研究热潮。随后不断涌现的很多深度模型都是围绕ImageNet进行设计,包括后来的VGG、GoogleNet等。这一阶段发展非常快速,每种模型都是从各自的角度对优化特性、泛化能力等进行改进。
2015-2017的成熟期:这一阶段的标志性事件是ResNet的提出。ResNet的跳层连接思想给大家带来了极大的启发,让模型设计有了一个明确的概念指引,于是迅速出现了诸如DenseNet,ResNeXt等知名模型。这个阶段,研究者逐渐认识到,模型设计并不需要过多的技巧和变化,存在一些简单而基本的设计原则可以依据。
2017年至今的繁荣期:17年之后,深度学习在工业界的应用变得更加广泛,于是针对不同的应用场景,便出现了不同角度的模型设计和优化。目前研究较热的方向包括面向边缘端的轻量级模型、网络架构搜索(NAS)、动态模型、Transformer等。
3
网络架构搜索的What and How
自动架构搜索(Automatic Architecture Search)的本质是让算法自己去设计网络架构。自Google的NAS(Nerual Architechure Search)方法提出后,NAS逐渐成为备受关注的研究领域,研究者们希望能够从模型设计开始降低人工干预程度,最终实现机器的自动学习(Auto-ML)。现在有一个专门的网站(www.automl.org)汇总该方向上的相关研究。
对比以下模型,最左边(ResNet)为手工设计模型,右边三个(GENet、NASNet、ENASNet)为结构搜索后得到的模型。从直观上可以看出,人工设计模型相对比较规整,而搜索得到的模型则一般比较复杂。
NAS是将模型设计转化为搜索问题,通过在定义的模型搜索集中寻找最优的参数配置实现结构设计。因此,搜索集的定义往往是NAS任务的关键。
其次,在确定搜索集后,需要选择合适的搜索算法。当前的搜索方法主要有:强化学习方法(NASNet, Progressive NAS)、进化算法与遗传算法(GeNet,AmoebaNet)、可微分方法(DARTS,Fbnet)等。
另外,模型评估为搜索的结果提供可靠的比较依据。往往评估模型达到一定精度所需的计算量,以此评价模型的优劣。方法目前也存在一些问题,例如理论计算量与实际应用时存在偏差。
因此,网络架构搜索主要有四个核心问题:
1、搜什么:定义搜索问题。
2、从哪里搜:定义搜索空间;
3、怎么搜:设计搜索算法;
4、如何评估:说明搜索对象。
4
动态神经网络
在2017年之前的主流深度模型都属于静态模型,一旦训练结束,其参数和结构便固定了下来。这种模型的缺点是,设计上一步到位,但在应用时却无法根据具体需求而做调整。
1、Small - Easy,Big - Hard
如上图所示,从12年至17年,模型在数据集上的准确率逐步提升,但这种提升的背后,则是计算量的巨大开销,往往为了提高零点几个点,模型便需要增加几十层。这给我们导致了一个印象,认为模型越大性能越好。
但大模型相比小模型,到底好在哪里?
黄高认为:Bigger Models are needed for those noncanonial images.
如上图所示,尽管数据集中有大量“正常”【马】的照片,但由于数据的长尾分布特点,必然会存在一些非常规的图片。若想将这些非常规图片正确预测出来,神经网络在特征提取上就需要有更丰富、更高级的特征。但这里存在的问题是,大多数图片可能仅需少量层的网络便可以正确识别出来;但为了处理极少数非常规的图片,却需要耗费大量的算力。
所以,我们为什么要用相同的代价来处理所有的图片呢?
换句话说,我们是否可以用小且便宜的模型来处理容易识别的图片,用大且昂贵的模型处理难识别的图片呢?
按照这种初始的想法,存在一个问题,即在现实中没有一个“上帝”告诉模型,哪张图是容易的,哪张图是难的。
黄高等人提出一种多尺度的DenseNet模型,如下图所示,模型中包含许多分类器在中间提取特征并做分类,然后在每个出口做一次判断,预测值大于阈值,那么就输出判断;而如果小于阈值,便送入下一层分类器继续计算,直到预测值大于相应阈值。
这种模型,相比于DenseNet,同样的性能可以做到2~5倍的提速。
可视化结果:
这个工作中一个亮点在于,阈值是可以设定的,这种特点非常适用于边缘设备。阈值越低,精度相应也就相对降低,但模型运算速度却能够变得更快;反之,阈值越高,精度越高,速度则变慢。对于边缘设备,传统的静态模型在训练好后,精度是固定的,计算时间是固定的,耗电量也是固定的。作为对比,动态模型的好处在于,当设备电量较低时,可以将阈值调低,从而以牺牲一点精度的代价去换取更长的电池续航时间,从而在精度和电量之间做一个自适应平衡。
在黄高等人近期的一项最新工作中,他们将这种思想做了进一步的拓展——分辨率自适应。简单来说,在不同的图片中,有的识别物体占比较大,而有的则较小。(如上图两张猫头鹰的图片)那么如果识别物体占比较大,用分辨率低一些的图片就足以完成识别任务;如果识别物体占比较小,可以选择更高清一些的图片。
具体如下图所示,先用低分辨率图片进行计算,如果置信度高于阈值,则输出结果;如果低于阈值,则使用更高分辨率的图片、更深的网络进行计算,直至置信度大于阈值。
2、更进一步:空间自适应
前面提到的自适应主要是样本级别的自适应,针对与图像数据还可以考虑空间维度的自适应。
如下图所示,人的视觉会关注不同的空间区域,比如街道,车辆,行人;但是对于另外的窗台,花纹,则会选择性忽略。这说明人在看一张图片时,并不会在所有的像素上投入同样多的精力。但现有网络的卷积操作,并不能适应图片的空间信息,而是简单地对图片的不同区域做同样的处理。
黄高针对这一问题,提出了 Sampling and Interpolation 的方法。正如其名,该方法先进行稀疏采样和计算,然后通过插值的方式进行稠密重建。如下图所示:
具体方法则是:对于输入 X,并不直接进行卷积计算获取其特征,而是先进行稀疏采样,将采样结果进行稀疏卷积,从而获得一个稀疏的特征图;根据稀疏特征图进行插值后获得重建特征图。
这里关键的一点在于,采样的模型并非随机采样,其参数是可学的,依赖于数据,因此对于不同物体,生成的mask则不同。mask事实上告诉了模型哪些区域应该重点关注,从而指导SparseConv去计算;SparseConv并不会提取所有像素的特征。
黄高等人的另一项关于空间自适应的工作,发表在NeurIPS 2020 上。他们注意到,人在做视觉识别时,是一个渐进、迭代的过程。例如看一张图,我们初步瞥一眼,知道它是一只鸟;然后我们会更加关注它的头部、身体、尾部等,从而获取更多的特征。
依据这种思想,黄高等人提出了GFNet(Glance and Focus Network),基本思想如下图所示,通过降低图像分辨率来模拟最初的glance,如果模型预测置信度不够,则通过使用局部的图像模拟人仔细观察获得信息,丰富模型观察到的细节。
具体模型框架如下:
值得强调的是,模型中所采用的都是通用框架,因此从理论上说,可以在方法中兼容任何已有的深度网络(手工设计的或搜索出来的)。
实验结果如下:
5
研究需要韧性
报告之后,黄高与现场的学生进行了线下问答交流。
在交流中,黄高多次强调这样一个观点:“研究需要韧性。”
他提到:当初在有DenseNet想法时,并不被周围的人看好;但他和合作者一直坚持把结果做了出来,最终证明了这项工作的价值。
黄高工作中的韧性自很早的时候就有所展现。2009年前后,在AI领域,深度学习的工具并未如此普及,优化方法、梯度回传这些在现在看来简单到仅仅需要一行代码的操作,在那时黄高的工作中,都需要一次次手动实现。因此,那时候的研究者都在想着如何节省算力缩减模型连接,以减少工作量。但当时黄高便已有另外的思考:如果每层的信息都能逐层向前传,那模型的信息通道将更加通畅,那么虽然每层连接变多,传递底层信息到高层所需的模型层数就可以大大减少。这一想法,也启发了他后来对 DenseNet的设计。
黄高说,当初在DenseNet获得最佳论文的推特下,很多人惊讶于模型想法的简洁优美,但同时,也有许多研究者表示惋惜,因为或多或少曾经也有过这样的思考,但由于缺乏动力,或者是遇到挫折,没能坚持推进研究。
在交流的最后,主持人刘知远副教授问到:“如果给在场的学生一句take away message,你会说什么?”
黄高思考良久,仍然坚定地说:“研究是需要韧性的。我相信在场的大家都十分优秀,但做研究,遇到挫折是常态,一个好的想法中途会有太多因素让它夭折,但最终需要的是一股韧劲才能坚持下来,将想法化为现实。”
参考论文
[1] Huang, Gao, et al. "Densely connected convolutional networks." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.
[2] Wang, Yulin, et al. "Glance and Focus: a Dynamic Approach to Reducing Spatial Redundancy in Image Classification." Advances in Neural Information Processing Systems 33 (2020).
[3] Huang, Gao, et al. "Multi-scale dense networks for resource efficient image classification." arXiv preprint arXiv:1703.09844 (2017).
[4]Xie, Zhenda, et al. "Spatially Adaptive Inference with Stochastic Feature Sampling and Interpolation." arXiv preprint arXiv:2003.08866 (2020).
举报/反馈