导读
2016年12月,中国人工智能学会举办了第一期《人工智能前沿讲习班》,国内视觉大数据学者王亮老师做了题为《深度学习与视觉计算》的报告。王亮老师在报告中介绍了视觉大数据的概念与特征、深度学习的发展背景与在计算机视觉领域的应用现状。本文根据王亮老师当日报告内容整理发布,详见后文。
讲者简介
王亮,研究员,博士生导师。1997年和2000年分别获安徽大学工学学士和硕士学位,2004年获中国科学院自动化研究所工学博士学位。2004-2010年分别在英国帝国理工大学、澳大利亚莫纳什大学、澳大利亚墨尔本大学及英国巴斯大学工作,历任助理研究员、研究员和讲师。2010年入选中国科学院“百人计划”(终期优秀),2015年获得国家杰出青年科学基金,2016年获得第十四届中国青年科技奖,2018年入选首都科技领军人才培养工程。
目前是模式识别国家重点实验室副主任,中国计算机学会计算机视觉专委会秘书长,中国图象图形学学会视觉大数据专委会主任,中国电子学会青年科学家俱乐部副主席,中国图像视频大数据产业技术创新战略联盟秘书长,中科院脑科学与智能技术卓越中心骨干人才。王亮博士主要从事机器学习、计算机视觉、模式识别、数据挖掘等相关领域的研究工作。现已出版编(专)著7部,在主要的国内外学术期刊和国际学术会议上发表论文200余篇,谷歌引用1万余次。他现为或曾为IEEE TIFS、IEEE TSMC-B、PR等国际学术刊物的编委,曾获得中科院院长奖学金特别奖、中科院优秀博士论文及全国百篇优秀博士论文提名奖等荣誉。他是电子电气工程师学会(IEEE)高级会员,国际模式识别学会(IAPR)会士。
全文目录
一、视觉大数据
1.1 视觉大数据的来源
1.2 大规模视觉计算的特点
1.3 视觉大数据带来的挑战
1.4 大规模视觉计算的关键问题
1.5 小结
二、深度学习的发展背景
2.1 传统数据分析方法
2.2 深度学习的特点
2.3 深度学习的应用
2.4 人工神经网络的发展历程
2.5 深度学习的兴起与发展
2.6 卷积神经网络和递归神经网络
2.7 小结
三、深度学习在计算机视觉领域的应用现状
3.1 物体分割与识别
3.2 多标签图像检索
3.3 数据关系学习
3.4 视频分析
3.5 神经网络可视化
四、深度学习的的未来研究方向
4.1 深度图像分析
4.2 深度视频分析
4.3 大规模的深度学习
4.4 无监督(半监督)学习
4.5 大规模多模态学习
4.6 类脑智能研究
一、视觉大数据
人类感知外部世界的信息中有70%以上是由视觉系统所接收和处理的。从光学成像设备产生那时起,人们就在不断地对其进行改进,希望能够更加真实地记录客观世界。随着采集设备的普及,视觉大数据记录了人们生活的方方面面,所产生的数据量也在以前所未有的速度增加。
1.1 视觉大数据的来源
视觉大数据主要来源于互联网、移动互联网、广电网、视联网等。例如Facebook的注册用户超过8亿,每天上传的图片超过3亿张,视频超过300万个;从2009年到2014年,视频监控数据每年都以PB量级增长。时至今日,我们已然进入了视觉大数据时代,如何有效地利用视觉数据?将视觉数据转化为视觉红利?这需要我们对视觉大数据进行深入分析与理解。
视觉大数据的分析与理解在很多方面都有重要应用,比如休闲娱乐、自动驾驶、网络信息过滤、公安刑侦、机器人、视频监控、考勤安检等。视觉大数据的分析与理解是模式识别的前沿研究方向,也是当前比较火的人工智能突破口之一。
1.2 大规模视觉计算的特点
传统的视觉计算是对视觉信息或者数据的分析与处理,而大规模视觉计算是对大规模的视觉信息的分析与处理,它具有规模大、类别多、来源广这三个主要特点。
1.3 视觉大数据带来的挑战
大规模视觉计算带来了什么挑战?第一,跨景跨媒。跨场景指的是视觉数据来自于不同的应用场景;跨媒体指的是图像或者视频数据的出现通常还可能伴随着语音或文本,例如网络多媒体数据。第二,海量庞杂。视觉大数据不仅数据规模庞大,而且数据所包含的内容广泛,例如可能有娱乐视频、体育视频、新闻视频、监控视频等。第三,多源异质。同样的视觉数据可能来自于不同的数据源,例如体育视频可能来自于广播电视或者手机拍摄,数据可能来自RGB成像或者近红外成像。正是由于跨景跨媒、海量庞杂、多源异质等这些挑战,使得大规模视觉计算要比传统的视觉计算更加复杂和困难。
在小规模的PascalVOC数据集(20类目标,小于2万张图片)上,传统算法的分析精度很容易达到90%以上。但是对于大规模的ImageNet数据集(1000类目标,130万张图片),同样的算法其分析精度通常低于75%。这也是大规模视觉计算所带来的挑战。
1.4 大规模视觉计算的关键问题
大规模视觉计算有哪些关键问题?算法层面包含大规模特征表达、大规模模型学习、大规模知识迁移;系统层面包含大规模数据库构建、大规模数据处理平台。在系统层面,数据库是大规模视觉计算的根本,没有数据库就如同巧妇难为无米之炊。因此,建设大规模数据库是很重要的工作。计算机视觉领域著名的华人科学家李飞飞创建的ImageNet大规模数据集广为人知,现在ImageNet已成为视觉领域的经典数据集。今天在这里更多的介绍大规模视觉计算的算法层面,包括大规模的特征表达、模型学习和知识迁移这些问题。
第一个关键问题,大规模特征表达。
大规模特征表达,就是在多源异质的视觉大数据中找到具有较好泛化性和不变性的特征。在模式识别和计算机视觉领域中,强大的特征对于实际应用效果来说非常关键。因此,要分析跨景跨媒、多源异质的视觉大数据,就必须找到鲁棒的特征表达。
第二个关键问题,大规模模型学习。
视觉大数据时代,我们需要面对海量庞杂、种类繁多的视觉大数据。人工设计的特征不一定适用于大规模的模型学习。深度学习可以直接从海量数据中进行模型学习,且数据量越多模型效果越好,这是深度学习在大规模视觉计算中广泛应用的重要因素。
第三个关键问题,大规模知识迁移。
传统学习和迁移学习有什么区别?在传统学习中,每一数据域都有一个独立的学习系统,且不同域之间的学习过程是相互独立的。而在迁移学习中,源域学习得到的知识可以用以指导目标域的学习过程。
为什么在视觉大数据背景下进行知识迁移是可行的?答案可以总结为3V。第一,Volume。数据规模大,提供了足够的迁移数据源。第二,Variety。视觉大数据中的数据呈现多源异构多模态等性质,为知识迁移提供了必要条件。第三,Velocity。如今数据更新的速度特别快,利用迁移学习可以避免重复学习,即可以在已有模型的基础上更新模型,而不必对所有数据重新学习。
1.5 小结
在视觉大数据时代,如何能够有效地利用视觉数据来做有意义的事情?这需要研究大规模视觉计算。大规模视觉计算带来了新的挑战,包括海量庞杂、跨景夸媒、多源异质等问题。这其中包含了一些关键性问题,在算法层面有大规模特征学习、大规模模型学习、大规模知识迁移等;在系统层面有大规模数据构建问题,以及大规模视觉数据处理平台等。在视觉大数据时代,只有解决好大规模视觉计算的关键问题,才能把视觉大数据转换为视觉红利,这是非常重要的时代背景。
二、深度学习的发展背景
2.1 传统数据分析方法
传统的视觉信息处理,例如目标识别和检测,涉及到模式识别的两个经典问题,一是特征的提取与表示,二是模型的学习。传统方法需要经验知识手工设计视觉特征提取算法,缺少与环境的信息交互以及知识库的决策支持。例如,给定一幅“斑马”的图像,需要预测这幅图像的类别,按照传统的视觉模式分析,首先要提取特征,然后再额外利用SVM或者其他分类器进行模式分类。
2.2 深度学习的特点
深度学习可以解决端到端的模式识别问题,给定一个图像,经过“黑匣子”的学习,最终输出预测结果斑马。在这个端到端的识别的过程中,不加以区分地把特征提取和模型学习融为一体。通过深度神经网络来模拟从像素输入到“斑马”标签的非线性映射,即直接从原始数据到语义概念,这是对视觉大数据语义理解的变革性思路。
2.3 深度学习的应用
目前深度神经网络已在很多领域得到广泛应用,包括图像、声音、文本等多方面。深度模型学习是大数据时代视觉计算的重要突破,尤其从2006年开始,推动了视觉等众多领域的飞速发展。
2.4 深度学习的前身,人工神经网络的发展历程
学过模式识别的人都知道,深度神经网络是模式识别课程中比较经典的章节。而深度学习就是由深度神经网络发展而来的,现在比较流行的深度学习模型,例如CNN、RNN、LSTM等,早在几十年前便出现过。事实上,深度学习并不是新鲜事物,而是根源于传统的深度神经网络。
但是为什么深度神经网络在八九十年代没有流行?这和深度神经网络本身的缺陷有关。第一,深度神经网络包含着大量的参数。任意两个网络结点之间都有连接,当结点过多时,就会导致计算复杂度比较高。第二,需要大规模训练集。如果数据量不足就会导致模型过拟合。第三,相比其他的浅层模型,在识别准确率上没有明显优势。所以,在上世纪八九十年代以后,学者们更多选择手工设计特征加上浅层分类模型的策略。
为什么现在深度神经网络又会重新兴起?主要有两个方面的原因。第一是大规模数据的出现,使得模型拥有足够的数据用于训练。第二是高性能计算显著降低了数据处理的难度,而且高性能GPU的价格也开始平民化。大数据时代的到来和高性能计算的发展,恰好缓解了传统深度神经网络计算复杂度高和过拟合等问题。可以说,深度学习发展的转折点,就正是大数据和高性能计算时代的到来。
2.5 深度学习的兴起与发展
深度学习的兴起是从2006年发表在Science的文章开始的,这篇文章发现逐层预训练可以获得较好的局部最优解,使得训练更深层的神经网络模型成为可能,从而掀起了深度学习的热潮。在这段热潮之中,有一些先锋者,比如微软的邓力、斯坦福的吴恩达、多伦多大学的Hinton、纽约大学的Yan Lecun、蒙特利尔大学的Bengio等。
总体来说,按照模型划分,深度学习大致经历了三个主要阶段。
第一阶段,RBM/AE阶段,2006年开始
RBM是Restricted Boltzmann Machine的缩写,是早期深度学习的经典模型。AE是指自编码机模型。2006年Hinton发表在Science上的那篇文章,首先用逐层预训练的方法去初始化深度神经网络权重并取得了很好的效果,由此深度学习引起了大家的注意。RBM/AE是整个深度学习浪潮的开端。
在2006年RBM的基础上,后续出现了各种RBM和AE变形。在第一个阶段,主要是生成式模型,而且所使用的数据库基本上是中等规模的,模型方面也只是采用了相对较深层次的网络。这一阶段的热点问题是替代传统的手工设计特征,直接利用数据来进行表示学习。
第二阶段,CNN卷积神经网络
在2012年之前的ImageNet竞赛,传统方法在该竞赛中最高的识别率是2011年的74%。而到2012年,通过在GPU上使用卷积神经网络(CNN),可以把分类准确度提升11个百分点。在之后的几年里,所有参加竞赛的团队基本上都是使用的CNN模型,而且准确度逐年提升:2013年是89%、2014年是92%、2015年达到95%。
ImageNet竞赛之后,CNN强大的学习能力在各个视觉应用中得到了证明。例如,DeepFace在人脸识别当中的应用,DeepPose在姿态估计中的应用,RCNN在目标检测方面的应用等。
第二个阶段模型的特点可以简单地归纳为“判别式的模型”,使用的数据规模更大,网络层次也更深,并且开始使用GPU进行并行计算。这个阶段的热点问题,是利用卷积神经网络处理静态图像相关的各种任务,并不断刷新当前最好的性能。
第三阶段,RNN阶段,从2014年开始
前两个阶段都没有或很少考虑对序列数据建模,特别是对序列数据中的时间关系建模。递归神经网络(RNN)是序列化模型,其隐含层不仅接受当前时刻数据层的输入,同时也接受前一时刻隐含层的输入,因此RNN能够更好地解决时间关系建模问题。RNN随后在计算机视觉的各个任务都得到广泛应用,例如用于预测一段文字来表述图像内容。
2.6 卷积神经网络和递归神经网络
在计算机视觉领域中应用比较广泛的模型是CNN卷积神经网络和RNN递归神经网络。
卷积神经网络(CNN)也是深度神经网络(DNN)的一类经典形式。在深度神经网络中,每一个神经元都和其前后神经元相互连接。当输入数据的维度比较高时,就会带来大量需要学习的参数。
事实上,人眼在观察图像时,并不是感受整体图像,而只是观察局部的区域。受此启发,CNN在DNN的基础上替换了全连接操作,而改为局部连接的操作,也就是说一个神经元只与局部区域的神经元存在关联。此外,采用图像滤波的方式,使得不同区域的权值共享,可以显著减少模型的参数。
此外,CNN中很重要的操作就是池化(Pooling),它可以使CNN具有一定程度的平移不变性。例如,对于一个矩形框内的图像区域,框内的元素用某一种形式(例如最大值或均值等)保留,而去除其他元素。
因此,CNN的整体框架包括输入图像、卷积层、池化层,其中卷积层和池化层可以采用多层级联的方式,数量可以根据需要而设定。CNN所有的权值参数可以通过最小化模型的输出预测与真实值之间的误差来进行优化。
另外一个重要的模型就是RNN。左图展示一个三层的网络,x是输入层,h是隐含层,y是输出层,这是典型的三层的DNN网络。DNN通常用来处理静态数据,比如图像,但却不能很好地对时序关系建模,这就需要用到RNN。RNN是把序列数据,比如x1、x2、x3,作为网络输入并建模,最后得到输出y。在这个过程中,每个时刻的输入都对应着一个隐含层的表示,而相邻的隐含层之间又进行了一个连接操作。RNN可以看成是DNN沿着时间轴的扩展,它使用了额外的权重矩阵U,来对长距离的时间相关关系进行建模。
需要说明地是,RNN是非常深层的神经网络,尽管这里的RNN沿着时间轴仅有三步,但它不是三层的网络。这个RNN中,x1产生了h1,然后h1和x2的结合产生了h2,之后h2和x3的结合产生了h3,最后再输出,这其实是一个五层的网络模型。RNN的深度取决于输入序列的长度,短视频或者文本数据的长度一般都是大于20的,因此RNN就变成了很深层的神经网络。
如果RNN的深度大于10层,就不能有效地对长度距离相关关系进行建模。因为对所有的深度神经网络来说,增加了网络的深度,就容易在网络优化的过程中产生梯度消失或者梯度爆炸。
那么,什么是梯度消失或者梯度爆炸?下图是梯度传播公式,根据梯度的反向传播准则,误差传递到h(i)层时的梯度,其实是等于上一层h(i 1)层的梯度,乘以两类元素:第一是激活函数的导数,第二是网络的权重。如此迭代下去,等于顶层的梯度,乘以这两个元素的t次方。如果两个元素的乘积比较小(小于1),经过t次方以后,底层的梯度可能就接近零了,这被称作梯度消失;如果两个元素的乘积比较大(大于1),经过t次方以后可能非常大,就会出现梯度爆炸。所以当RNN比较深的时候,就需要解决梯度消失或者梯度爆炸的问题。
对于梯度爆炸,传统方法可以采用剪切形式直接拉回。即可以设定一个阈值,当计算出来的梯度超出阈值时,可以强制它回归到阈值的边界来。对于梯度消失,使得两个元素的乘积尽量接近于1比较好,因为1的t次方不会出现过大、过小的问题。
此外,还有一些更先进的网络结构可以缓解梯度消失和梯度爆炸的问题,例如LSTM和GRU模型。
2.7 小结
卷积神经网络和递归神经网络是深度学习的两个经典模型,这两个模型在计算机视觉领域应用广泛,希望上述介绍能让大家对CNN、RNN有一个基本的了解。
三、深度学习在计算机视觉中的应用
这里主要介绍我们近来一些代表性工作的背景和主要思想。
3.1 物体分割与识别
这是百度图像分割竞赛冠军2013年的工作。在图像或视频中,把用户指定的前景目标分割出来,这就是图像分割的基本概念。
我们当时选择典型的CNN框架,加入多通道的输入信息,利用三层上下文信息作为输入。可以采用不同尺度的框,来表示某像素周边的信息。图中显示的是以某一个位置中心点相关的三个不同尺度区域作为输入,并在CNN网络中将三个通道进行融合。CNN的训练目标是采用两个节点的二分类输出判断输入的中心点是前景还是背景。
当时我们的工作获得了竞赛特别奖,是国内性能最高的人形图像分割水平。基于这项技术,我们跟三星连续进行了两年合作,精度从之前的87%提高到95%以上,而且实时性非常好。
3.2 多标签图像检索
深度语义检索,是 CVPR2015年做的工作,是利用图像语义标签作为监督信息来学习图像间的排序。图像检索,就是任取一个图像来检索数据库里面与其相似的图像。多标签图像的特点是,每一个图像有多个不同标注。所有标签之间的语义关系,可以作为监督的信息指导CNN学习图像的表达,具体的技术细节此处不再展开。
多标签图像文本的分类与检索,是TMM2015的工作。图像的标签(文本标注)和图像所表示的语义信息是相关的,是多模态的数据。多模态数据可以通过模态的重合来更好的表示,这些表示可以进一步用于信息检索。针对多模态数据的学习,要考虑两个方面,一是模态的缺失问题,有的图像缺少标注信息,即文本是缺失的;另外就是类别标签的共生关系,有些标签是整体出现的,利用标签之间的相关关系可以提高性能。
我们提出的模型包含两个阶段,第一阶段使用传统的RBM模型,对于每一个模态分别学习其特征表示,在这个过程中可以尽量去除模态相关的特性。第二阶段,使用多标签条件的RBM来进行模态的融合及多标签的学习。如果文本、图像模态都给定,可以共同输入来融合得到共同的表示h。如果文本模态缺失,只有图像模态,则可以利用图像模态来产生文本模态,然后再进行融合。
3.3 数据关系学习
广义自编码机,CVPR-DeepVision2014最佳论文奖的工作。传统的Autoencoder的目标是最小化其本身和重构结果之间的误差。为了能够学习数据的局部结构关系,我们在重构过程中考虑了数据之间的相似性。在优化中,不仅是利用输入数据重构其自身,还要重构其周围相关数据点。
深度聚类,是ICPR2014最佳学生论文,这个工作也是基于Autoencoder做的。这个工作改变目标函数,在重构输入数据误差的基础上加入了新的规则项Group sparsity,这样能够进一步学习到类别相关的隐含表示。
深度关系学习,是ICCV2015的工作。在传统的Boltzmann Machines中引入了关系的类别标签Z,并且提出了条件高阶玻尔兹曼机(CHBM)。在这个过程中,x、y是两个输入,他们之间的关系用Z表示。两者之间的关系可能受隐含因素h的影响,如人脸匹配可能受到光照、视角或者表情的影响,因此h就可以学习到光照影响的可能关系。这样的模型怎么学习?因为它所包含的权重W是四阶张量,可以把四阶张量分解到矩阵的方式来简化求解。
3.4 视频分析
群体行为分析,是NIPS2013年和IJCV2016年的工作。行为分析从复杂度上划分,开始是简单的个体行为,后来做结构化的行为(如骑马),也包括一些群体行为识别(如结婚典礼、毕业典礼)。为了对复杂行为进行识别,我们提出类相关RBM模型。这个模型由两块组成:一部分提出视频的低层语义特征输入到模型来学习视频的中层表达特征;另一部分基于视频的语义标签,利用模型自动关联相应知识,进而来指导学习过程。
跨视角步态识别,是TPAMI2017的工作。步态识别是通过人走路的方式进行人的身份识别。但是在不同视角下,走路外观变化是不一样的,因此步态识别必须要解决跨视角的问题。我们利用卷积神经网络,做到了当前最好的识别性能。
3.5 神经网络可视化
人脑中的视觉注意机制,大部分是任务驱动的以自上而下的方式进行的,这个过程可认为是异步神经元的反馈调节。我们把每一层的输出作为反馈,来控制每一个神经元节点,而不是不加选择的、把噪声、背景全部上传。这个工作尝试对“反馈机制”建模,来查找图像中特定类别的目标。为了进一步增强筛选结果,可以引入生物神经系统中的侧向抑制,即在每一层的神经元抑制中,加入相互抑制和相互增强的过程。
四、深度学习的未来研究方向
4.1 深度图像分析
需要进一步提升算法的性能,进而转化相应的实际应用。例如微软发布的App,用户上传图片来识别其年龄或者性别,但时有出错。
4.2 深度视频分析
视频相对于图片来说,其内容更加复杂且包含运动信息,做起来难度更大,因此,深度视频分析还处于起步阶段。但是视频分析的应用很广,例如人机交互的行为识别、监控视频分析、第一视角的视频分析等,因此加强深度视频分析可能是未来的方向。
4.3 大规模的深度学习
随着时间的推移,为了处理更大规模的数据,需要进行多GPU并行的分布式计算,这是处理海量数据必须做的。
4.4 无监督(半监督)学习
实际应用中,监督信息大多数都是缺失的,且标注的代价也十分高昂,因此要在充分利用标注数据的基础上进行无监督或半监督学习。
4.5 大规模多模态学习
多模态数据无处不在,不同模态数据的内容具有一致性或互补性。利用互补性可以做多模态数据的融合,进而更有效地来解决问题;利用一致性,还可以做跨模态的图像文本检索。
4.6 类脑智能研究
深度神经网络本身是模拟大脑前馈提出的网络结构模型,但是当前大部分生物机制还没有应用到深度神经网络中。因此,类脑智能研究是有潜力且是更有意义的。
王亮老师的最新观点
论实际场景大规模数据集的重要性
【二〇一七年九月】很多人可能已经知道当前人工智能发展的三大要素:数据、计算力和算法,也知道数据集、计算力和算法是相辅相成、相互提升的,三者缺一不可。数据是基础,任何研究都离不开数据。在学术界,数据集的意义更加直接:没有数据集,就无法展开相应的研究工作。也许大家会有这样的疑问,什么样的数据集才能称得上经典数据集?背后的评价维度有哪些?请大家参考量子位的采访“中科院自动化所王亮:由AI Challenger漫谈数据集的重要性”。
计算机视觉研究与应用的现状与展望
【二〇一七年五月】计算机视觉是一门综合性的学科,面临着众多的机遇与挑战。视觉研究有很多重要的应用场合,近年来计算机视觉更是成为诸多人工智能科技公司研究的重要方向,越来越多的学术界专家也在向工业界转型,学术界与工业界的关注点到底有什么区别?新算法新技术不断涌现,如何看待这些新兴成果?请大家阅读来自AI大事件的专访“计算机视觉研究突飞猛进,走向实用仍任重道远”。
深度学习成为人工智能研究的重要引擎!
【二〇一五年四月】目前,深度学习成为了AI学界的主导者。它的突然回暖与计算机的计算能力相关,主要包括利用大数据来训练模型和高性能计算的普及。深度学习现有的成功案例大多是处理静态数据,而我们处在一个快速变化的环境里,对时序、动态变化的数据建模和分析更加重要,这是深度学习面临的新机会。随着相关学科的发展,特别是脑科学、神经科学、计算心理学等的重大突破,相信在未来若干年里,深度学习在理论和应用方面会有更大的发展。更加详细的观点解读请大家参阅来自思想坦克的专访“王亮:深度学习引领AI新潮流”。
感谢AIDL志愿者王鑫、黄岩、宋纯锋协助整理!