AIDL简介
“人工智能前沿讲习班”(AIDL)由中国人工智能学会主办,旨在短时间内集中学习某一领域的基础理论、最新进展和落地方向,并促进产、学、研相关从业人员的相互交流。对于硕士、博士、青年教师、企事业单位相关从业者,预期转行AI领域的爱好者均具有重要的意义。2018年AIDL活动正在筹备,敬请关注公众号获取最新消息。
导读
在中国人工智能学会举办的第一期《人工智能前沿讲习班》上,Intel公司陈玉荣博士做了题为《面向视觉理解的高效深度学习算法设计》的报告。报告重点介绍了如何提高深度学习效率的方法。本文根据陈玉荣博士的报告内容整理发布,对相关领域的研究工作具有长期价值。
讲师简介
陈玉荣博士,英特尔首席研究员/高级研究总监、英特尔中国研究院认知计算实验室主任,负责领导面向英特尔智能计算平台的视觉认知(视觉分析和理解)和机器学习研究工作。带领团队研发基于深度学习的视觉识别及人脸分析技术,并为英特尔实感技术,客户端应用和物联网端对端视频解决方案提供关键技术(人脸物体检测识别、人脸关键点检测跟踪,表情识别等)。他带领团队在ACM ICMI举办的自然环境下的情感识别挑战赛EmotiW2015及EmotiW2017的音-视频识别任务中两次获得第一名。由于在基于深度学习的视觉理解,先进视觉分析和多模态情感识别方面取得卓越研究成就,他的团队连续获得了英特尔研究院2014、2015和2016年度全球最高学术奖-戈迪奖(以英特尔公司创始人戈登·摩尔命名)。陈玉荣博士于2002年毕业于清华大学获博士学位,于2004年从中科院软件所博士后出站加入英特尔。在国际学术会议和期刊上发表学术论文50余篇,拥有10余项美国/国际专利及30余项专利申请。
为什么要做视觉相关的工作?
如今视觉感知的无处不在和低部署成本导致了视觉数据爆炸的问题。目前终端、云端的数据绝大多数是视频为主的视觉数据。根据Cisco的预测,到2020年IP视频流量将占所有消费者互联网流量的80%以上并仍有上涨的趋势。我们所面临的巨大挑战是:如何处理和理解这些海量视觉数据?想象下,拍完照片或者录完视频,我们会花多少功夫去整理这些照片或视频,如果有好的算法、好的工具来帮助整理这些数据,那将是一项非常有意义的工作。
什么是视觉理解?
视觉理解技术是实现上面任务的最主要的分析手段。视觉理解是计算机视觉中的主要部分。计算机视觉分两部分,第一个部分是做成像处理;第二个部分是针对视频和图片进行分析和理解,它的处理对象是物体,它的目标是从图像和视频中获取knowledge,包括人脸检测和识别、文本识别、情感识别、物体分类、物体检测、场景分类以及视频分类等等。其中最重要的也是最基本的任务是视觉识别。
这是ILSVRC分类任务赛项历年的比赛结果,可以看到2012年,Deep Learning算法AlexNet(卷积神经网络算法)把结果(Top-5错误率)提高了40%,提升幅度很大,从此以后Deep Learning算法被广泛使用。到2015年,Deep Learning网络ResNet采用了152层,结果达到了3.57%,这个结果超过了人类的平均水平。
“目前,ConvNets已几乎成为所有识别和检测任务的主流方法,并在一些任务中接近人类水平。”
——LeCun, Bengio, Hinton,Deep Learning, Nature, May 2015
提高深度学习效率的方法
提高深度学习效率有两种方法,一种是针对特定任务设计特定的高效网络,再用数据做训练。另一种是对DNN模型进行压缩近似,降低其空间和时间复杂度。包括可以容忍一定识别率下降的各种压缩近似技术,以及一些更高级的基于learning的方式在训练过程中得到更加高效的网络结构。
一、有效的CNN算法设计
1.1 多物体检测——HyperNet
传统的物体检测算法主要是基于滑动窗的算法,近年来基于候选区域(Region Proposal)的方法逐渐成为主流。最经典的算法之一是RCNN算法,优点是检测准确度高,不足之处是训练是一个多级过程,在空间和时间上都很昂贵,而且检测(Inference)速度慢。
另一个算法是SPP,即空间金字塔池化算法。SPP把整个图输入到CNN,经过多层卷积操作可以得到卷积特征,然后在最后卷积层的特征图上加一层空间金字塔池化层,接着把所有的特征通过多尺度池化形成一个固定长度的表达,最后输入到全连接层。SPP的优点是比RCNN快很多,缺点是训练也是一个多级过程,只在全连接层进行微调。
Fast RCNN,ICCV 2015年的论文,借鉴了RCNN和SPP的思想,可以把它简单理解为一种对SPP的简化方法。SPP是多尺度,而Fast RCNN是7×7的固定尺度。另外,Fast RCNN把SVM替换成softmax直接来做分类,然后把bbox regression放到网络中。Fast RCNN的优点是速度进一步提高,训练接近端到端,在卷积层和全连接层都进行微调。但是速度不能达到实时。
Faster-RCNN,NIPS 2015年的论文,它是通过滑窗的方式在卷积层的feature上加anchor机制,将提取Region Proposal的过程也放到网络中,不需要单独用算法去做proposals。Faster-RCNN实现了端到端的训练,是第一个将Region Proposal和Object Detection融合到一个框架中的算法,速度更快。但是也不能达到实时,仍然依赖Region Proposal。
HyperNet,这是陈玉荣博士团队在物体检测方面的研究工作。方法是融合多个卷积层的特征,形成一个Hyper feature map,将多层的patch进行融合。多个卷积层的融合可以检测到小物体,从而提高检测精度。这个框架有两个小网络,一个网络做Region Proposal Generation,另一个网络做Object Detection。Hyper feature被这两个网络共享。它的优点是recall高,复杂度低。在PASCAL VOC 2007测试集上,HyperNet的准确度比RCNN 和 Fast-RCNN都要高。
HyperNet_SP是HyperNet的加速版本,将3×3×4的卷积层放到ROI池化的前面。优点:一是减少ROI池化的channel数,二是将原来的卷积加全连接操作变为全连接操作,两者都能加速。结果表明,HyperNet_SP可以将Region Proposal生成过程加速40倍,将检测过程加速6倍,总体上加速5.7倍,而且保证检测准确率不会下降太多。
其他相关工作:YOLO算法,一种基于回归的端到端多物体检测算法,在GPU上可以达到四五十帧每秒的处理速度,但是检测准确率下降了;SSD结合回归的思想,同时加入anchor机制,提高了速度和检测准确率;另外OHEM和R-FCN都是用全卷积神经网络直接得到物体检测结果,不需要用Region Proposal。
在物体检测方面还有很多工作可以研究。对特定场景我们可以定制一个特定算法,基本上可以满足精度和速度的要求。但是在general情况下,多类物体检测的精度和速度还有很大提升空间,所以目前多类物体检测还是比较热的研究方向。
1.2 情感识别——HoloNet
表情是人类表达情感的最主要的方式,因此表情识别是情感识别的最主要的方面。人脸表情是人脸肌肉运动的结果,所以表情识别需要对人脸肌肉运动和人脸表情的关系做解码。除了视频以外还有音频,声音是人类表达情感的另一种主要方式。因此,音-视频情感识别是目前情感识别的一种最主要的方式。
陈玉荣博士团队基于手工定义特征(Hand-crafted feature)提出了两种表情识别算法,一是Geometric FeatureRelationlet,一种基于人脸关键点的线性回归的算法,另一个是AU-Aware Features andInteractions,一种基于人脸patch的多任务学习算法。两个算法在CK+ 和 MMI 数据集上都达到了很好的结果。
前两种算法都是基于手工定义特征提出的,下面讨论用deep learning做情感识别。
陈玉荣博士团队设计了HoloNet,针对情感识别任务融合了目前CNN的很多思想,包括CReLU、残差结构及inception-residual structure等等。用CReLU代替ReLU的好处是减少冗余filters。采用残差网络可以增加网络的深度,更易收敛。Inception with residual structure可以增大网络的宽度,能提取多尺度的特征。
与其他CNN相比,HoloNet速度提升明显。陈玉荣博士团队的论文《HoloNet: Towards Robust Emotion Recognition in theWild》在EmotiW2016(ACM ICMI’16)中获得最具影响力论文。
目前情感识别的大致趋势:采用基于Deep Learning的方法、结合手工定义或学习到的特征、增加额外的数据提高识别准确率。
二、模型压缩和学习高效的DNNs
2.1 模型压缩和学习高效的DNNs
目前有很多模型压缩的方法,比如浮点转定点、量化、SVD降维、低秩近似等等。
除了模型压缩,另一个方法是通过learning的方式来得到高效的DNNs。这方面的工作主要是15年和16年提出的Pruning with retraining(NIPS’15, ICLR’16, ISCA’16),它的好处是保证accuracy 不loss、Model-free、适合和其他压缩技术相结合,以及可以采用特定硬件加速。
2.2 Dynamic Network Surgery
这是陈玉荣博士团队在NIPS 2016提出的名为Dynamic Network Surgery的深度神经网络压缩算法,它有效地解决了处理大型网络时重训练时间长,误剪枝率高的问题。该算法采取了剪枝(Pruning)与嫁接(Splicing)相结合、训练与压缩相同步的策略完成网络压缩任务。通过网络嫁接操作的引入,避免了错误剪枝所造成的性能损失,从而在实际操作中更好地逼近网络压缩的理论极限。该算法采用比Pruning with retraining更短的重训练时间,取得了比Pruning with retraining更高的压缩率,可以轻易地将LeNet和AlexNet这两个经典网络的参数总量分别压缩108倍和17.7倍而不降低识别准确率。
感谢AIDL志愿者邓琪瑶协助整理!