谷俊丽:基于大数据的深度学习

推荐会员: juny218 所属分类: 行业精选 发布时间: 2016-07-28 17:09

嘉宾介绍:谷俊丽,博士学历,毕业于清华大学-美国University of Illinois Urbana-champaign大学,在清华期间作为核心人员研发过超长指令字数字信号处理器,在美期间曾参与UIUC超级计算机上的研究工作,并工作实习于Google总部和创业公司Personify。现于AMD中国研究院高级研究员,从事异构计算平台、人工智能+Big Data相关的研究。在计算机和高性能计算领域的国际顶级会议HPCA,Micro和Usenix ATC上发表论文多篇。

以下为分享实景全文:

大家好,我是AMD中国研究院的研究员谷俊丽,带领AMD人工智能团队,研究大规模人工智能的在分布式硬件系统的实现和大规模物体识别的软件应用研究。今天主要跟大家分享:
1. 目前业界主流的人工智能方法-深度神经网络学习模型
2. 主流算法和应用分析
3. 国内外主要的研究机构和目前进展
4. 人工智能对系统设计的挑战
5. AMD的研究实践及价值
6. 基于大数据的人工智能的挑战和机遇

第一个部分带有科普性质,讲解什么是深度神经网络和其原理。第二三部分是根据我平时的文献阅读和搜集的信息总结出来的,可供了解深度学习的主要应用和国内外都有什么研究正在进行。第四五两部分比较技术细节,做硬件系统的人可以多听听。第六部分是我个人根据在研究过程中的理解,和跟业界专家交流的经验,总结提炼出来的。人工智能是个比较复杂的算法,今天的讲稿都我在准备时尽量口语化,避免晦涩难懂,希望更多人能够理解。对该领域有研究的专家欢迎会后深入交流,有描述不准确的地方欢迎指正哈。

一、 Big Data + 深度神经网络

人工智能是指让机器去认知、认识世界。这个过程毋庸置疑需要一定的算法放在计算机上来实现。最初的人工智能还是通过研究人员通过模仿人类来制定特定的认知和推理过程,21世纪出现了大数据,海量数据,结构复杂,种类繁多,然后人类定义的过程就不好使了。于是人们期待于希望机器自己能够从数据中学习,我今天讲的就是最近大火的基于深度神经网络的人工智能。

深度神经网络是指我们在计算机上搭建一个很多层的神经网络,只需要制定多少层,并不需要给定具体的参数,计算机通过计算大数据来自动学习最终的网络参数,不一样的网络参数能够识别不同的物体。然后这个训练好的网络就可以自动识别物体了。深度神经网络的出现得益于大数据,因为数据量够大,计算机够强大,机器本身才能学习出各种复杂的特征

首先回忆一下什么是神经网络。

神经网络在上世纪60年代提出,最初的神经网络非常简单,包括输入层,隐含层和输出层,共三层。输入和输出层通常由应用决定,隐含层包含神经元,隐含层跟输入和输出层之间的链接可供训练。通过训练神经网络实现从输入到输出的一个非线性映射过程。

60237159_1

浅层学习是机器学习的第一次浪潮,在上世纪发生。深度学习是机器学习的第二次浪潮,正在兴起。

2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和他的学生在《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。深度神经网络,又称DNN,指包括3个层以上隐含层的神经网络,(现在主流的模型包含九个隐含层),通常每层都有上千上万级的神经元,整个网络有百万级至百亿级的参数空间,具有非常强大的学习能力和特征提取能力。看图一张:

60237159_2

深度神经网络学习是近些年机器学习研究中的一个领军的方向,其本质在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本,最终认知真实世界。

深度神经网络为什么这么强大?
从算法角度上讲,没有任何人能够定义出一个由8层非线性函数、有万亿级参数,可以表达的公式或者算法,一是算法本身过于复杂,根本无法用通常的数学表达式去描述,一个是人类根据自己的理解去定义物体的特征,总是有限的特征,有限的表达力,一旦数据量变得非常大,场景变得复杂,人类定义的特征将不再好使。

那么深度神经网络是如何做到的呢?

这个是个技术关键点,希望大家通过今天的报告能够理解。深度神经网络是一个逐层提取特征的过程,并且是计算机从数据中自动提取,不需要人类干预其提取过程

深度神经网络,其本质思想就是堆叠多个神经元层,每个层都提取一定的特征和信息,这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。以发现数据的分布式特征表示。以图像识别为例,第一层提取边界信息,第二层提取边界轮廓信息,然后轮廓可以组合成子部分,子部分组合成物体,这样一层层下来逐层提取特征,通过组合低层特征形成更加抽象的高层表示属性类别或特征,通过特征或者属性的不同组合来判定图片中是哪个种类的物体。

下图显示的就是深度神经网络如何从底层的输入数据层,逐层提取边界、子部分以及组合成最后的物体模型的。请大家好好琢磨一下这张图,理解了这个你就理解了深度神经网络强大精髓的一部分。右边显示的是该过程本质上是模拟人类大脑的物体识别过程。

60237159_3

深度神经网络在计算机上是如何训练呢?

这个是个非常有意思的环节,神经网络是通过数据训练出来的,就是说开始的时候,那些万亿级的参数都是随机初始化的,这个网络一团糟,啥也不能识别。通过不停的给予数据,一遍一遍来训练,就能达到最终的识别模型,能够识别语音或者图像中的物体。酷吧。可见,数据是训练的关键,数据量要大,模型才能好,但是数据量大了,训练时间又很长。

训练过程分为两种,一种是有监督的训练,比如数据加了标签,计算机知道正确答案一种是无监督训练,只有数据,没有标签,不知道正确答案无监督训练是对Big Data很有实用价值了,你想啊,海量的实时数据,不可能都加上精准的标签啊。如果不加标签,机器就可以识别,那我们周围的世界机器就可以理解和认知了,就达到了人工智能的目的。目前,无监督学习还是一个待研究的问题,还未解决。

毋庸置疑,Big Data + 深度神经网络,带领在人工智能的最新潮流和方向,被广泛应用于各种应用和问题上。现在做人工智能的,如果不懂DNN,那都有点不好意思出门说话。

第一部分讲完了。接下来第二三部分是根据我平时的文献阅读和搜集的信息总结出来的,可供了解深度学习的主要应用和国内外都有什么研究正在进行。希望听完前三节,大家对人工智能的最新进展有了全面了解,今天的目的就达到一半了。

二、主流算法和应用分析

深度神经网络出现之后,被广泛研究应用于多种领域并取得了突破性进展。比如深度神经网络应用于语音识别将识别精度提升了20-30%,用于图像分类和识别,误差降低了10%,另外还用于OCR识别,信息检索,手写字识别,金融等等应用。

 需要理解的是,DNN模型虽然都是多层神经网络,但是根据应用不同,其网络结构不一样,最常用的有三种模型MLP(multi-layer perceptron,多层感知机),Autoencoder(自适应编码器)和CNN(convolutional neural networks,卷积神经网络)。通常的网络复杂度是语音识别小于图像识别,大规模图像识别现在仍未研究重点,存在很多软件和硬件层挑战。我想主流的深度神经网络应用大家都很熟了,我接下来主要分享一些最新的学术论文中发表的应用,也是DNN模型在其他领域中的成功应用。

DNN 模型用于其他领域的应用

DNN用于数据中心的功耗模型,Google已将深度神经网络用于服务器系统的功耗智能管理。AMD研究院也有相关研究,尚未公开发表。

DNN用于计算机体系结构的设计空间探索,通常处理器的设计包含大量的设计参数,组成了庞大的设计空间,处理器设计的最终希望获得性能最优的参数配置点。如果采用传统的搜索的方法非常耗时,采用DNN的方法去自动学习参数变化带来的性能变化趋势,可以辅助设计人员选择设计参数,缩短设计周期,中科院计算所在体系结构的在国际会议上已经发表了文章。

采用DNN识别医学图像中的病变,比如癫痫病,辅助医生进行临床诊断。一个有意思的点在于DNN可以识别医生识别不准确的,和医生没有注意到的异样点,辅助全面诊断。这个我个人认为非常酷,医生诊断失误会耽误病人性命,可以通过DNN来降低这种误诊风险。美国的大学和医院已经联合在研究了,中国目前不知道有没有相关的研究。

采用DNN识别卫星图像中的珍稀物种,比如今年最新出来的学术文章中通过高清卫星图像在自然环境下的,来探测珍稀鸟类的巢居,以便于定位和统计该鸟类的数量。这个问题的价值在于,卫星图像实时探测,海量图片,人眼是无法逐个去识别和观测的哈。

三、国内外研究机构和目前进展

国外主要在做人工智能的有Google、Facebook、Microsoft、Amazon,、Netflix等,国内对他们的研究进展了解不是很深入,只能根据我搜集的信息大概讲讲。

‒ Google ‘Brain’ project: 在2012多伦多大学的机器学习领域的泰斗Geoffrey Hinton和他的学生参加国际大规模图像识别竞赛 (Lsvrc),采用深度神经网络的方法将图像识别误差一下降低了10%,在业界引起震惊和轰动(10%的精度区别在图片识别领域是个鸿沟)。Google以迅雷不及掩耳之势重金收购了Geoffrey Hinton和他的两个学生,致力于人工智能的研究。可惜Google具体在做什么我们并不清楚,只能简单说说公开的著名的 Google猫脸实验。

Google猫脸实验是指:Google建立了一个9层的深度神经网络,在16000个CPU组成的服务器上运行,然后让Youtube的视频作为神经网络的输入,在没有人工干预的情况下运行几天,结果,机器就学会了识别视频中所有的猫脸。这个实验的神奇和震惊之处在于没有人告诉计算机什么是猫脸啊,其实没有人告诉计算机任何东西,是它自己通过“看视频”学出来的。这就是Machine learning的本质哈。当时Google猫脸实验被各方媒体火热报道了。

60237159_4

‒ Facebook, Facebook挖走了人工智能的第二个泰斗-纽约大学的Yann Le Cunn,成立了人工智能实验室。具体做什么他们好像没有讲过,7月初Yann Le Cunn来北京开会时讲过一些他们做的机器人以及图像实时识别的应用。Facebook聚集了世界上那么多人的照片,我猜在侧重图像识别和分类?期待着更多状态更新~

‒ Microsoft, 在语音识别上和实时翻译上带领国际前沿,大家可能都知道。微软亚洲研究院也率先在国内展开研究深度学习上的研究并占据领先地位,他们不仅研究算法,也研究硬件系统。

大概在两年前,微软研究院和多伦多大学的研究人员们取得了一项突破,利用模拟人脑行为的‘深度神经网络(DeepNeural Networks)’技术,能让语音识别器更具辨别能力,其性能优于以往的方法。通过这种技术,我们让语音识别的错词率比以往的方法降低了30%,也就是说以前每4到5个词里面便有一个是错误的,而现在每7到8个词里才错1个,达到了人类可以直接利用的层面。基于此,微软研究了实时翻译。2013年微软首席研究官瑞克•拉希德(Rick Rashid)在天津解释并演示了其在实时语音翻译上的重大进展,瑞克对该系统讲了大约1小时左右的英语以后,系统就可以用他的语音语调说普通话了。有兴趣的可以看看当时的视频,非常有意思。http://tech.sina.com.cn/it/csj/2012-11-09/16527785340.shtml

顺便提一句,语音实时翻译技术下一步要被用于skype上面,实现各国语种无障碍通话。

‒ Netflix是北美最大的在线电影点播系统,他们采用深度神经网络的方法来实现用户的电影推荐系统;Amazon也成立了人工智能实验室,他们好像通
过人工智能的方法分析用户行为,更有效实现商品推荐系统。

国外的讲完了,该国内的啦。在国内,主要是BAT三家,这些都是我个人平时参加他们的报告和讲座后总结的,有我个人的理解成分。

‒ 百度,在2013年初就成立了深度学习研究院Institute of Deep Learning, 相继将深度神经网络模型用于10多项产品中,取得了很多突破性效果。2014年5月百度宣布BaiduBrain项目,称起正在搭建大规模系统用于模拟人脑的认知能力,并宣称其平台已具备2岁孩童的智力水平。百度是将人工智能作为它的一个增强科技核心力量的追求了,挖掘了大量的该领域的国内外人才。

比如百度挖掘的人工智能领域的第三个泰斗-斯坦福的教授Andrew Ng,在北美成立人工智能实验室,正在招兵买马,Andrew最近在公共场合讲过,他们以后将会利用百度的大数据攻克大规模物体的无监督识别以及自然语言的理解等难题。百度的深度学习研究院的总监余凯曾经在国际会议上讲过百度在学习大数据时面临的挑战,一个是如何有效处理不断增加的海量数据,二是分布式系统的可扩展性正面临瓶颈,这个挑战需要人工智能算法专家和硬件系统的专家联合解决。

人工智能领域学术界的三个泰斗分别被Google, Facebook和百度挖走,形成三家分立的局面,这三家公司又都具备大数据的宝贵资源,我们拭目以待其各自的未来突破哈。我个人认为肯定会有非常让人兴奋的研究成果和产业应用出炉,三家争鸣,希望能在算法角度大力推进人工智能领域的突破性演变。

‒ Alibaba,阿里的产品大家都知道哈,淘宝、天猫、阿里金融等,阿里在14年6月在计算所讲过其大数据,有一些细节可以跟大家分享一下。阿里目前已经攒下了超过100PB的已处理过的数据,相当于一亿个GB大小,相当于4个西雅图中央图书馆。具体来说阿里的大数据,包括一下:总数量超过数十PB的用户数据和商品数据,每天新产生数十亿条用户行为日志,全网有几十亿的商品,几亿用户的状态数据。

阿里在搜索和广告系统中采用了机器学习的方法,优化器CTR预估,搜索结果页排序以及个性化体系。阿里的性化体系中面临的挑战包括,大数据的稀疏性、长尾效应和大量的噪音,网购行为本身的复杂性,阿里在多样性和准确性面临双重挑战。

‒ 腾讯,语音识别、图片搜索、广告点击率预测以及微信的语音合成和自然语言理解等应用中。腾讯在最近的会议上指出其在人工智能在GPU平台上的并行实现已经初步搭建起来了,在小规模的CPU+GPU集群加速,效果貌似还不错。

‒ 华为在香港的诺亚方舟实验室也在做人工智能,具体现在做到什么程度不是特别清楚,没有太多公开的资料可以借鉴。个人感觉还是在研究阶段。

前三节讲完了,不知道大家感觉如何啊?能够对人工智能的现状有个全面了解吗?第四五两部分比较技术细节,做硬件系统的人可以多听听。

四、深度学习对系统提出的挑战

Big Data + 深度神经网络的机器学习模型,带领了现在人工智能发展的方向,近几年在国内外引发了新一轮机器学习的热潮。由于其模型庞大,计算量非常大,模型训练时间经常要几个月的时间,单个计算机根本在短期无法完成,需要在分布式系统上通过并行计算来加速现有主流的有基于CPU服务器的实现,和基于CPU+GPU的系统实现,下面来具体分析一下系统模型和各自存在的挑战。

基于GPU集群的实现,这个当属Google大哥大啊,人家有的是机器,Google大神Jeff Dean带领人马用16000个CPU,组成1000个计算节点搭建了一个大集群,做了著名的Google 猫脸实验。还有几家大互联网公司都有大规模的CPU集群,一个直接的实现都是先从已有集群开始。这种实现的缺点是需要大量的CPU资源,非常昂贵,这个小规模的公司,学术界的研究根部负担不起。

Big Data + 深度学习模型本身包括大量的计算并行和数据并行,其实非常匹配利用GPU的硬件结构进行加速。2013年斯坦福的Andrew Ng带领团队实现了一个16个节点CPU+GPU的集群,大大降低了系统造价和成本。不幸的是,该系统现在解决大数据问题时也遇到了瓶颈问题。

下图显示了Andrew搭建的系统和其性能瓶颈。

60237159_5

每个节点包括2个CPU和4个GPU,一共16个节点组成集群,每层的大量神经元的计算是完全独立的,可以并行进行。

参考文献 Stanford Univ. Andrew Y. Ng etc., “Deep learning with COTS HPC systems”,International Conference on Machine Learning, 2013
CPU+GPU系统的瓶颈问题是由算法本身的并行切分造成的,这个问题比较复杂,今天可能讲不清楚。有感兴趣的私下讨论吧。

五、AMD的研究实践和价值

总结上面所述,Big Data+深度神经网络带来的挑战包括多个层面:算法、应用以及硬件系统设计。AMD DNN团队包括AMD中国研究院和工程团队联合而成,我们从实现加速、硬件系统搭建和大规模应用同时解决。

AMD DNN项目致力于研发基于DNN的软件和硬件解决方案,在软件层面我们实现了主流的多种DNN模型和算法,正在搭建不同规模的语音和图像识别应用,系统设计涵盖两个方向,基于CPU+GPU的硬件解决方案,和基于APU的高密度系统前瞻性研究。AMD的DNN软件解决方案由OpenCL编写而成,OpenCL可以兼容在不同的异构平台上运行。今天时间有限,主要跟大家共享一下基于APU系统设计以及其相对于已有系统的架构优势。

前面我们描述过,DNN的算法非常适合通过GPU加速,然而现在基于CPU+GPU的方式搭建的集群存在GPU存储空间受限和CPU-GPU之间通信代价太大。这个问题从硬件的角度来讲,揭示的是CPU和GPU的耦合程度太松了。AMD的APU架构很好的解决了这个问题

APU是AMD将CPU和GPU整合到同一个芯片上的异构多核处理器,能够实现CPU和GPU的紧耦合和逻辑上的紧密协同合作。下张图显示了APU的体系结构和其架构优势。

60237159_6

我们知道CPU的体积同一个CPU的大小,比GPU要小非常多,因此基于APU可以实现高密度的集群,在同样的空间内集成更多的CPU和GPU的计算能力,提高系统吞吐率,同时降低系统能耗。

设计此系统光有APU还不够,还需要有专门定制的快速互联硬件和系统框架。AMD2012年收购了高密度server公司SeaMicro,使得我们具备了研制高密度APU系统的条件。下图显示采用高密度集成和定制互联我们可以在一个有限物理空间内,采用3D互联集成512个计算节点。该图显示的不是产品,而是示意图。

60237159_7

总线访问,APU上有多个总线,根据不同的访问情况选择不同总线,AMDDNN研究小组,初步的研究结果显示APU集群系统相比于CPU+GPU集群存在的潜在优势如下:

•APU系统在同等功耗条件下可以取得2.5倍加速比;在同等性能下可以节省2.5倍系统功耗;

•APU系统在同等性能条件下可以节省1.8倍的造价;

•在解决 Big Data问题时, APU解决了CPU+GPU集群在的存储空间不够用和节点通信代价太高的两大瓶颈问题。

因此我们看到了APU可以提供一个高密度低功耗的人工智能系统,这是AMDDNN团队的一个研究点之一,希望后续有更多成熟的研究成果跟大家共享。

当然了,我们也在同时搭建基于AMD自己产品的CPU+GPU的分布式平台,已有相关公司采用我们的硬件解决方案。最后提一句,如何最有效的搭建人工智能依赖的硬件系统是一个学术研究课题,除了今天提高的高层次系统搭建方法,还有一些从更底层硬件进行的前瞻性探索和研究,比如在FPGA上的实现(百度和微软美国),设计专门的集成电路(中科院计算所的陈云霁老师设计神经计算机)。

六、基于大数据的人工智能的挑战和机遇

第六部分是我个人根据在研究过程中的理解,和跟业界专家交流的经验,总结提炼出来的。供大家借鉴和讨论交流哈。

挑战:

现有的数据量虽然已经很大,但是还不够多,常见数据的冗杂,维度和多样化不够,不能涵盖真实世界可能出现的各种边界情况

现有的分布式系统上的实现方法,节点间需要传输大量数据和参数,通信代价太高,当节点数目超过一定数量时,不能获得持续的加速比。分布式系统如何设计,需要DNN算法专家和系统专家共同协同解决,解决的方法可能既要修改算法使之跟底层硬件架构匹配,又要求系统专家设计计算能力强大的单机器,又要设计高密度整合、高效通信的服务器。

Big Data 深度神经网络的人工智能模型,其数据量和计算量都非常大,经常需要几个星期甚至几个月的训练时间,势必要求并行训练以提高训练速度,但是多个节点间训练不同数据时如何协调和同步,可能需要从算法角度重新设计。

机遇:

人工智能的新浪潮将引领未来20年的技术和系统革命,这个浪潮首先在互联网公司掀起,由Google, Facebook和百度形成的三家分立的局面正在如火如荼的进行研究。光有算法是解决不了最终问题的,硬件平台是大数据算法的enabler。硬件领域也需要抓住此时机,回答硬件系统如何设计具有人工智能的本领,这是系统研究人员面临的机遇。

在这个方面,IBM的沃森处理器是一个好的研究成果,并且已经投入使用解决一些大数据的金融分析、实时语音翻译等应用,取得业界非常高的肯定和反响。非常值得学习,几年之后也许会出现更多类似沃森的智能机器或者“机器人”。

非监督学习解决真实世界中超大规模物体的识别,通过使用不加标签的数据直接训练,在不需要人工模型干预的情况下学习大规模数据中的规律、模式和特征等,理解通常人类大脑不能直接提取和抽闲出来的问题,为人类所用,解决实际问题。充分挖掘大数据中隐藏的价值,为人类生活服务。

 最后,有感兴趣合作的欢迎跟我们联系,AMD DNN研究小组是研究院和产品部联合的一个项目,我们平时也跟互联网公司等合作,致力于研发DNN的软件解决方案和底层的硬件系统。我们初步的研究结果已经发表在2014年6月的Asian-Pacific System(亚太地区系统峰会)上,后续还会有更多成熟结果发表,敬请关注。

来源:http://blog.csdn.net/zjxiaolu/article/details/45366739

关键词:

版权声明:本站原创和会员推荐转载文章,仅供学习交流使用,不会用于任何商业用途,转载本站文章请注明来源、原文链接和作者,否则产生的任何版权纠纷与本站无关,如果有文章侵犯到原作者的权益,请您与我们联系删除或者进行授权,联系邮箱:service@datagold.com.cn。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.