分享到微博 分享到人人 分享到LinkedIn 分享到Email
鱼与熊掌如何兼得:微软科学家解决并行训练困境
微软亚洲研究院
2016年3月23日

近日, ICASSP 2016国际会议在上海召开,这是电气电子工程师学会(IEEE)组织的信号处理领域最权威的国际会议,会议吸引了众多从业人员的目光。微软亚洲研究院首席研究员霍强博士和他的研究团队在此次大会上提交的论文Scalable Training of Deep Learning Machines by Incremental Block Training with Intra-Block Parallel Optimization and Blockwise Model-Update Filtering首次较好地解决了大数据机器学习并行训练中经典的两难问题,在保证训练模型的性能的同时,让训练速度在增加GPU的条件下几乎实现了线性增长,这一突破对大数据机器学习的效率提升意义重大。霍强博士和他的研究团队将于3月25号就该技术的细节在上海国际会议中心进行讲解。

 ICASSP 2016,上海

人工智能与机器学习

不久前的人机围棋大赛让大众对机器学习有了一定的认识,也引发了人们关于人工智能的讨论和思考。事实上,无论是人工智能或机器学习都不是一个全新的概念。以人工智能为例,在60年前美国达特茅斯学院的一场会议上这个概念首次被提出后,人工智能被正式赋予了定义。此后的六十年,人工智能经过了多次大起大落。而如今人工智能春天的再次来到,离不开机器学习和大数据的快速发展为其所做出的贡献。

得益于摩尔定律,计算机的硬件处理能力日益增长,这使得计算机处理大规模数据成为了可能。大数据机器学习在这种条件下应运而生,科学家们采用 机器学习算法,对大规模数据进行学习,从而得出一些模型来完成特定的任务。近几年,机器学习对语音识别和图像识别的技术推动有目共睹,无论是微软在2015 ImageNet计算机图像识别挑战赛上所实现的惊人的152层深层神经网络的技术突破,让计算机的图像识别能力超过人类,还是用于Skype Translator实时语音翻译技术的不断完善,还有如今的机器 “围棋大师”,机器学习已经真切地进入了人们的生活,并在逐渐显现出它的效用。

但是,对语音识别和机器学习有所了解的人都不会忽略下面这句金句:

There is no data like more data.

但当你拥有了数量巨大且有价值的数据时,如何高效地处理这些数据是我们首要面对的问题。在过去,就算你拥有10万 小时的训练语料,想训练出一个语音识别的模型,受限于计算机的运算效率,训练过程往往需要好几个月甚至数年才可能完成。这样一来,训练一个模型往往耗时巨大,科研工作者无法利用这些大语料进行大量实验。因此在过去很长一段时间,大数据机器学习都处于一个发展十分缓慢的阶段。

机器学习背后的奥秘

随着计算机性能的大大提升以及云计算技术的逐步推广,似乎机器学习成为了人人都可以尝试的事情。但机器学习也被戏称为科技公司的“军备竞赛”,谁拥有更大规模的数据、更快的训练速度、更好的算法,谁就能拥有性能更好的模型;谁能利用更多的CPU和GPU,谁就能在这项任务上取得更好的成果,获得更大的价值。

如果我们把这个过程比作是盖房子的话,那么谁拥有的工人越多,谁的房子盖得就越快。在这里,房子是我们需要建立的模型,工人则可以看做是CPU和GPU。那么问题来了,工人是不是越多房子就能盖得越快呢?

这其实是一个经典的假设。如果一个优秀的工人需要64天才能盖好一座高质量的房子,那么是不是64个工人1天就能盖好这座房子呢?答案自然是存疑的。理想状态下,工人的数量应该和工作成果的比例呈线性增长,即64个工人的工作效率应该是1个工人的64倍,否则请这64个工人就会存在一定的资源浪费。而这个问题对应到机器学习领域就是如何扩大并行训练(parallel training)规模的问题。

如果你是一个工头,自然想制定出一个最合理的解决方案,让房子既能很快建成并保证质量,又不至于浪费太多工人成本。当然最理想的情况下是让一 个最优秀的工人一个人完成这项任务。但如果这个工人盖起一栋大楼需要十几年时间的话,那么也无法满足人们的需求。也就是说,如果利用大数据训练一个性能更好的模型的话,只靠单机单卡训练消耗的时间太久,并不具有实际意义。

自然,大家会选择增加CPU和GPU的方式来加快机器学习的训练,这就称之为并行训练。目前产业界常用的并行训练方法包括ASGD,Model Averaging和1-bit SGD等。然而这些方法始终都躲避不开一个问题,就是如何在增加工人(卡)数量的同时,保证工人的劳动成果(训练速度)是线性增长的,同时还要保证整个施工的质量(模型性能)。

兼得鱼与熊掌的并行训练

很长一段时间以来,大家都将这种并行训练视作是一个“鱼与熊掌”的问题。既然不可兼得,就索性多雇些工人以早点完成“盖楼大业”,但由此也带来了施工质量问题和极高的沟通成本。近日,微软亚洲研究院首席研究员霍强和他的研究团队在ICASSP 2016大会上提交的论文Scalable Training of Deep Learning Machines by Incremental Block Training with Intra-Block Parallel Optimization and Blockwise Model-Update Filtering就较好地解决了这个经典的两难问题,让大规模并行训练在增加GPU的条件下几乎实现了线性加速并保证了模型性能。

微软亚洲研究院首席研究员 霍强博士

谈及这个突破,霍强博士表示:“我们研究小组针对这个问题进行了长期的研究,尝试过很多不同的方法,但都各有不足。这一次的技术突破乍一看好 像是灵光一现,但却是基于我们此前长久的研究积淀,所以是水到渠成的结果。这一在并行训练方面的进展将会为大数据机器学习创造更好的条件。”

那么这一项革新究竟是如何实现的呢?还是借助盖房子这一比喻,霍强博士解释该技术的关键难点在于如何将这些工人的工作成果有效地整合起来。每 一个阶段工人完成工作之后,都需要将这一阶段的工作反馈给工头,工头依据每一个工人的反馈生成新的工作模型,然后工人们再依照新的工作模型,对新一批的建材(数据)进行处理。不断更迭交替之后,从而生成机器学习出来的模型。但在这一过程中会涉及到沟通成本和有效整合的问题。

在每一个工人给工头提交工作成果之后,工头需要进行整合更新。如果工头缺乏大局观,只进行简单整合(Model Averaging), 结果质量不尽人意。霍强博士团队在论文中创造性地在整个流程中增加了一个模型更新滤波的步骤。在Model Averaging中, 每一轮迭代只利用当前获得的信息更新模型,历史更新信息却被忽略了。因此,研究员们提出将每一轮模型更新的信息收集起来,以史为鉴,结合当前信息进行学习,这样一来能够保证每一轮的更新更为平滑,不会出现巨大的波动。使用这样的滤波方法后,最终生成模型的性能也大大提升。

在研究过程中,研究员们与微软产品部门合作,验证了该方案的有效性,极大地提高了产品部门的生产力。此外这篇论文中的实验结果显示,该技术对语音识别中神经网络模型的训练提升十分显著,在保证性能的前提下,当使用16块GPU卡时,训练速度提高了15倍,而当使用64块卡时,训练速度提高到了56倍,这一结果在此前的实践中都不曾有过。

在对手写识别所采用的双向长短期记忆(Deep Bidirectional LongShort-Term Memory,简称为DBLSTM)递归神经网络(Recurrent Neural Network,简称为RNN)的CTC (Connectionist Temporal Classification)训练过程中,该并行训练算法的有效性同样也得到了证明。由此可以看出,这一技术革新有着极强的通用性。

实现更快更高效的大数据机器学习

那么这一技术革新对机器学习究竟能够带来哪些改变呢?

我们都知道,无论是语音识别、图像识别还是其它与机器学习有关的任务,虽然很多时候计算机在某些特定情况下的表现很好甚至超过了人类,但是没有任何一个模型能够保证100%的准确率。在现实生活中,计算机的感知能力与人类还存在着一定的差距,科学家们正在试图将这种差距进一步缩小。

ImageNet图像识别挑战赛就是这样的一个例子。2007年,斯坦福大学教授李飞飞和普林斯顿大学教授李凯合作开发了ImageNet项目。该项目团队从互联网上下载了10亿多张图片,然后通过低成本网络众包的方式,雇佣了来自167个国家共 5万多人对这些图片进行了分类标注。截至2009年,该项目成功产生了一个包含2.2万个不同门类,共1500万张带标签的图片数据库。基于这样一个庞大的数据库所进行的比赛就是ImageNet,各个参赛队伍提交自己的算法,识别率最高的队伍获胜。

在2015年12月举行的ImageNet挑战赛中,微软亚洲研究院的首席研究员孙剑博士和他的研究小组以惊人的152层的深层神经网络成功登顶,他们当时的系统错误率已经低至3.57%,而此前人眼辨识的错误率为5.1%。那么未来这个结果还有没有可能进一步改善呢?答案是肯定的。目前此任务的训练数据规模是百万量级的,倘若把训练数据进一步扩大至亿级规模,最终的模型性能还将得到进一步提升。微软亚洲研究院并行训练算法的革新,让使用如此规模的数据进行机器学习成为可能。

霍强博士表示:“机器学习是人工智能十分重要的一个环节,有着丰富的使用场景和多样的可能性。而此次并行训练的技术新突破更是为大数据机器学习创造了条件。在未来,我们希望借由这一技术更快更便捷的推动机器学习的发展,最终目的是能够推动人工智能前进的步伐。”