作为机器学习专家,腾讯AI实验室专家研究员、罗彻斯特大学助理教授刘吉博士认为,当前并行计算的主要难点在于如何提高并行效率。
上个月,刘吉博士因“提出了一系列异步并行算法,解决了传统同步并行算法的瓶颈问题,并设计了一个可以大大降低通信成本的机器学习分布式并行计算框架”而被选为 MIT TR 35 中国区的“发明家”(见
MIT TR35中国榜单发布,清华大学朱军、中科院陈云霁等十位AI相关学者获此殊荣
)。
他们团队最具开创性的工作有两个方面:一是将所有机器以异步的方式并行化,二是提出了一个去中心化的并行框架。
图片:腾讯人工智能实验室专家研究员、罗切斯特大学助理教授刘吉
从最初选择相对冷门的机器学习,到亲眼见证这门学科热度逐年提升,刘吉博士不仅成为了机器学习快速发展的见证者,也在这一领域稳步前进。
作为腾讯AI Lab成员,刘极博士对雷锋网AI技术评论表示,他们的研究主要集中在游戏AI,比如《王者荣耀》、《星际争霸》等。“游戏AI是人工智能与博弈论的一个交叉点,是理解通用人工智能的重要通道。”
刘吉博士既涉足学术界,也涉足产业界。他表示,学术界和产业界各有优缺点:学术界往往关心的问题,未必是产业界真正的痛点,但可以锻炼思考和解决问题的能力;产业界存在的问题,虽然有巨大的应用价值,但往往缺乏技术创新的追求。“如果两者能够有机结合起来,我想一定会碰撞出不一样的火花。”
立足现在,放眼未来,他给学习并行优化与机器学习的同学们提出建议:
“深度学习的热潮终究会退却……打好基础,少点功利,多看些难懂的文章,才能在瞬息万变的环境中保持定力,迎接深度学习之后的下一个热潮。”
以下是雷锋网AI技术评论对刘吉博士的原创访谈,在不改变原意的情况下进行了编辑,以最好地还原刘吉博士对于技术的深度思考。
1. 恭喜您入选MIT TR35中国发明家名单,这是对您研究工作的认可。您对此有什么看法?可以分享一下您的看法吗?
非常感谢我的学生,感谢所有的团队成员,我觉得这个荣誉是属于大家的,也非常感谢张桐教授和所有推荐人的支持,我感觉外界对我们的期望更高了。
2. 您认为您成功上榜的主要因素有哪些?
首先,得益于大环境对人工智能的追捧,人工智能走在历史的最前沿,社会和人类对人工智能抱有无限甚至非理性的憧憬和期待。
同时,也得益于我对这个方向的不懈坚持。记得刚开始做研究的时候,我有两个研究方向可以选择:图形学或者机器学习。图形学比较容易找工作,但我选择了机器学习。机器学习在当时算是比较冷门的研究方向,很难找工作(很难想象现在这么火爆)。当时做这个选择的主要原因是我对研究通用方法比较感兴趣,个人觉得这个比较有挑战性,不是谁都能做的(特别是在看了张桐教授的几篇文章之后)。
还有一个重要的原因,就是总能在对的时间遇到对的前辈和导师来指导我。比如我的机器学习启蒙老师叶杰平老师(密歇根大学计算机系终身教授),在我刚进入这个行业的时候,他帮助我找到了对的问题,通过后续的努力,总能取得一些阶段性的成果,制定一些远大的目标。从Recht(加州大学伯克利分校计算机系终身教授)身上,我学会了如何寻找有价值的科研问题;从我的博士生导师(威斯康星大学计算机系B. and Amar and Sohi)身上,我看见了最纯粹的科研本质和最严谨的科研态度;从Ming Yuan(哥伦比亚大学统计系教授)身上,我学会了从一般到具体、再从具体到一般的科研方法论;从Jerry Zhu(威斯康星大学&Lubar分校计算机系)身上,我学会了如何开拓一个新的研究领域。
3、您的当选理由是“提出了一系列异步并行算法,解决了传统同步并行算法的瓶颈问题,并设计了机器学习中去中心化的并行计算框架,可以大大降低通信成本”。能否详细谈谈您这一系列相关的研究工作?这些工作对当前的人工智能界有什么意义?
这一系列工作对人工智能意义重大,把人工智能转化为生产力主要靠两个方面:
第一,如何把实际问题转化为计算问题;第二,如何高效地解决计算问题。这两方面我都有涉猎。
我们第一方面的工作包括强化学习,稀疏学习等等,我们在强化学习方面的研究获得了顶级人工智能会议UAI的最佳学生论文奖。
第二方面的工作重点是并行计算,提高并行效率可以有效提高AI训练的效率,让AI的迭代和产业化更快实现。
未来当算法模型更加固定时,大公司之间的竞争会更多是计算效率的竞争。比如训练一个围棋AI,需要几百台、几千台机器跑几个星期,如果一家公司能在一周内做到,那么就有更多时间和机会进行迭代和试错,就有更大可能训练出更厉害的AI。
并行是提高计算效率的主要途径,目前主要的难点是如何提高并行效率。通俗的说,比如用一台机器训练一个围棋AI需要1000天,现在给你50台机器,你要花多长时间才能完成?最理想的情况是20天(这是最高的并行效率)。这在实际中是不可能实现的,因为机器之间需要通信、协调工作,而当机器很多的时候,成本就很高。我们主要要解决的问题是如何降低机器之间通信的成本,从而提高并行的效率。
我们的最具开创性的作品如下:
第一个开创性的工作是把所有的机器都用异步的方式并行化,异步是相对于同步来说的,同步比较容易理解。
我们考虑解决一个机器学习问题。这样的问题通常可以分解成几个大任务。一个中央机器每次会把大任务分解并发送给各个机器。所有机器完成各自的任务后,会汇总各自返回的结果,然后继续执行下一个大任务。这是最直观的并行化方式。主要问题是有些机器快,有些机器慢,导致所有机器每次都要等待最慢的那台。在上面提到的例子中,可能需要 80 到 100 天。
异步并行可以解决这种快等待慢的问题。简单来说就是所有机器不需要等待其他机器,只要每台机器完成分配的任务,就直接到中央机器那里接收新任务,而不需要与其他机器协调或等待。这种方法完全打破了传统的同步并行方法,大大节省了同步协调的成本。但是这种方法完全改变了任务执行的顺序,是否还能达到同步方法的解决方案目前还不明显。
我们做了大量的理论和实践工作,为异步并行技术打下了基础。在之前的例子中,通常只需要 30 到 40 天,与同步方法相比可以节省 50% 以上的时间。现在异步并行技术已经在机器学习软件中得到了广泛的应用,例如,MXNet,CNTK。
我们的第二项开创性的工作是提出一个去中心化的并行框架。
传统的并行架构假设有一个集中式节点来收集结果并将任务分配给其他机器。这样做的主要问题是中心节点会遇到通信拥塞,尤其是在网络状况不佳的情况下,因为所有机器都需要与这个中心节点交互。为了缓解这种通信拥塞,我们提出了一个去中心化的并行框架。简单来说,就是去掉中心节点,机器与几个邻居进行通信。
我们在理论和实践上都证明了这种方法能够保证解的正确性,相比于传统的集中式方法,不增加额外的计算量,能够有效缓解拥堵,从而提高并行效率。这种去中心化技术还是比较新的,我们的相关工作被选为机器学习顶级会议NIPS 2017的会议论文(Oral的入选概率大概在1%),相信在未来对新一代并行计算平台和软件的发展将产生极其重要的影响。
4. 目前去中心化数据的理论研究有哪些需要突破的地方?在工业实践中大规模应用又面临哪些困难?
主要有几个方面:
如何设计更有效的算法来提高这种分布式学习的效率。
如何有效平衡通信成本和计算成本。
如果某些节点向其相邻节点传递了错误的信息,如何设计算法才能保证正确性和稳定性。
我觉得最后一点是大规模工业实践最困难的部分。
5. 除了并行计算,您的研究还涉及优化算法和强化学习。另外,您在罗彻斯特大学成立了机器学习与优化研究小组。你们小组在优化算法和机器学习方面取得了哪些进展?
优化算法和并行计算紧密相关,之前也介绍过很多,我主要介绍一下强化学习相关的研究。
我第一次接触强化学习是在 2010 年的 NIPS 会议上。那时候机器学习还不是很流行,强化学习就更不流行了。我们做过的两篇影响最大的工作,都是关于如何解决强化学习中的核心问题方程。方程不同于一般的机器学习或者深度学习解决的最小化优化问题。
传统方法对问题进行各种近似求解,难以推广到大数据问题,理论性质分析也十分困难。我们找到了一个与方程等价的最小化和最大化优化问题,将原问题与优化问题直接联系起来。这样,不仅可以应用优化的很多理论性质,而且很容易推广到大数据计算中。该工作获得了2015年UAI大会最佳学生论文奖。
我们的第二个重要工作是直接求解方程(不做任何近似或等效变换)。我和普林斯顿的王教授合作,发展了一套新的优化技术,称为最优化。建立了相应的算法和理论框架,为解决强化学习问题开辟了新的思路。
6. 目前机器学习的优化算法仍然严重依赖研究者的经验方法,缺乏理论支撑和可解释性,您认为可以从哪些角度解决算法的黑箱问题?
我觉得你主要讲的是深度学习中的优化问题(我对这个问题理解得比较清楚),我觉得解决这个问题,技术层面是次要的,更重要的是支持和鼓励基础研究的环境。
坦白讲,我个人觉得很多深度学习相关的优化算法和建模的文章,包括一些大佬写的,都不是很严谨,大部分文章都缺乏严谨的推理和论证,过于相信经验的东西。比如现在我们常用的深度学习工具包(比如)里面很多优化技术都缺乏严谨的理论论证,比如batch等等。大家的逻辑是:一旦有文章说经验效果好,有现成的工具包,我们就用,不管它收敛不收敛,如果效果不好就调参数,或者换一种方法,不行就换网络。从工程角度来说,这完全没问题,因为目的只是为了做一个具体的应用或者数据集。但是从研究角度来说,就会造成不良后果,因为研究的目的是提供稳定的、适应性强的、最好有明确理论保障的算法和工具来解决一类问题和应用。
从功利主义角度看,发表一篇深度学习理论研究文章要比发表一篇深度学习实验研究文章困难得多。当一个领域的大多数人完全相信纯经验的东西时,这从研究角度来看是非常危险的。久而久之,人们就不会质疑这些常用的方法是否正确,即使它们可能并不完全正确。这种研究方法也会鼓励研究人员不那么严谨。
一些关于深度学习的实证研究文章经常得出相互矛盾的结论。例如,我听说过两种截然不同的结论:一种认为大批量更适合深度学习训练,另一种认为小批量更好。试想一下,一旦这些经不起推敲的东西固化在我们的硬件中,并应用到我们的医疗健康中,那将是多么令人不安。
总体来说,我觉得需要有一个环境,鼓励研究人员去探索基本面,少做推测性的研究。最后,我想借用 Eric Xing 在深度学习是否是炼金术的争论中的一句话:做炼金术士并不可耻,可耻的是没有努力从“炼金术士”变成“化学家”。
7. 您同时从事学术和工业界的工作,您如何看待两者之间的相同点和不同点?
个人觉得学术研究比较纯粹和专一,目标明确地研究抽象的学术问题,衡量的标准多是论文的发表和各种酷炫方法的发明。工业界才是真正参与实际项目的地方,衡量的标准是项目的成功。它更像是一个系统工程,需要产品导向的思维。目标是最终做出来一些东西,中间有什么先进或酷炫的技术都不是目标。
学术界和产业界各有优缺点,学术界往往关心的问题未必是产业界真正的痛点,但可以锻炼思维和解决单一问题的能力;产业界有非常具有实际应用价值的问题,但往往过于依赖搭积木来完成项目,缺乏对技术创新的追求。
如果两者能够有机的结合起来,我想一定会擦出不一样的火花。腾讯在内容、游戏、社交、医疗等领域都有着极其丰富的应用场景,而AI Lab也有着优秀的研究和工程团队。这种研究与应用的结合,非常有利于推动技术的快速迭代和发展。
8. 对于学习并行计算、机器学习、优化算法等专业的同学,你有什么学习和研究建议?
深度学习的热潮终究会退却,未来它很有可能会成为人人都会用到的应用工具,而且使用起来会越来越方便,甚至可以实现自动调参,完全是一个端到端的服务。
我的建议是,现在不要一味地追赶深度学习的热潮,而是多学习数学、优化、统计等知识,打好基本功,少一点功利心,多看一些有难度的文章,才能以定力应对变化,迎接深度学习之后的下一个热潮。
(超过)