在人工智能行业,2015-2016出现了一个不同寻常的趋势:许多重量级机器学习项目纷纷走向开源,与全世界的开发者共享。加入这开源大潮的,不仅有学界师生,更有国内外的互联网巨头们:国内有百度和腾讯,国外的有谷歌、微软、IBM、Facebook、OpenAI等等。本文总结了国外各家互联网巨头的七大开源机器学习项目:
Google:TensorFlow
TensorFlow发布于2015年11月,是谷歌基于DistBelief研发的第二代机器学习系统。它是一个能处理多种语言理解和认知任务的开源软件库。它最初由谷歌大脑(GoogleBrain)的研究人员开发出来,用于机器学习和深度神经网络方面的研究。但它的通用性使其也可广泛用于其他计算领域。在谷歌,TensorFlow已用来支持Gmail、谷歌相册、语音识别、搜索等旗下多款商业化应用。许多开发者把它看作是Theano的替代品:这两者都采用了计算图(computationalgraph)。
现在,TensorFlow发布已超过一周年,它已成为GitHub上最受欢迎的机器学习开源项目。并且,谷歌已为它加入了官方Windows支持。
优点:
谷歌表示,TensorFlow的优点在于:通用,灵活,可移动,容易上手并且完全开源。对于部分任务,它的运行速度能达到上代DistBelief的两倍。
TensorFlow不仅仅是深度学习工具,它还支持强化学习以及其他算法。
它既可用来做研究,又适用于产品开发。
但TensorFlow最大的优点,应该是用的人多——它是AI开发者社区参与度和普及程度最高的开源项目之一。Cambrio的CEODanielKuster表示:“写出能让机器编译、执行的代码或许不难,但让同行们接受就十分不容易了。越多人用,越多的人分担(难题)。”
缺点:
计算资源分配机制使系统更复杂:为使用户精确控制GPU节点的使用情况,TensorFlow牺牲了简洁。另外,启动时它会试图占用全部的可用显存。
评价:
微软机器学习研究员彭河森表示,TensorFlow是非常优秀的跨界平台:它吸取了已有平台的长处,既能让用户触碰底层数据,又具有现成的神经网络模块,可以让用户非常快速的实现建模。
Google:DeepMindLab
这家精通AI训练的公司,以在围棋上五局四胜击败李世石的ALphaGo扬名于世。这成为2016年的AI里程碑事件。被谷歌收购后,更使后者的江湖地位得到巩固。
本月初,DeepMind宣布把AI训练平台Labyrinth开源,并改名为DeepMindLab。
没错,这就是之前的那个“迷宫游戏”:
它是针对基于代理的AI研究而开发的3D训练平台。DeepMind表示,它为学习代理提供了一系列颇具挑战的三维探索和解谜任务。该项目旨在为AI研究、尤其是深度强化学习提供试验田。
所有场景使用科幻剧风格进行渲染。它采用了第一人称视察方式:通过代理的视角。代理的躯体是一个漂浮的圆球,通过启动背后的推进器前进。“游戏”中,代理可以在3D空间中移动,转动“头部”观察周围环境。
DeepMindLab具有高度可定制、可扩展性。新的等级可以通过现成的编辑工具制作。另外,DeepMindLab包括了纲领性等级创建的交互界面。不同等级可以从多方面来定制:游戏逻辑、捡落物品、旁观、等级重启,奖励机制,游戏内信息等等。
DeepMind联合创始人ShaneLegg表示,DeepMindLab比其他的AI训练环境要出色,因为其游戏环境非常复杂。此前,通过改良传统深度增强学习方法,Deepmind使代理以高于A3C(DeepMind另一个现役代理)十倍的速度学习,并平均在每个迷宫层达到人类专家水平的87%。
DeepMindLab的源代码公布于GitHub,它目前需要依赖于外部软件库。由于发布时间尚短,开发者社区对于DeepMindLab的反馈很少。
OpenAI:Universe
本月,正是这家马斯克投资的初创公司一周岁生日。在月初的NIPS大会上,它宣布对旗下AI训练平台“Universe”(宇宙)开源。这是一个与DeepMindLab十分类似的平台,两者宣布开源的时间点也十分接近,这引发了公众对两者间竞争关系的猜想。
与DeepMindLab相似,Universe的目标也是给开发者们训练、测试AI代理提供平台。但对于它们之间的不同点,官方给出了解释:
Universe是一个在全世界的游戏、网页和其他应用中,评估、训练智能代理的软件平台。
代理使用了和人类一样地感官输入和控制方式:看到的是像素,控制的是鼠标键盘。这使得任何需要电脑来完成的任务,都可以训练AI去做,并且与人类玩家较量。
这十分有野心。对于第一点,OpenAI给出了进一步说明:Universe包含上千种不同训练环境,包括Flash游戏,网页任务,蛇蛇大作战和侠盗猎车手5这样的游戏。开发团队在博客中说:“我们的目标是开发出一个单个AI代理,能灵活地把它过去的经验应用于Universe场景中,来迅速掌握陌生、困难的环境。这会是走向通用智能的关键一步。”
OpenAI认为深度学习系统过于专业化:“AlphaGo能在围棋上轻松赢你,但是你无法教会它其他棋牌游戏,然后让它跟你玩。”于是,Universe使得AI能够处理多种类型的任务,让它发展出“关于世界的知识和解决问题的战术,并能有效应用于新任务。”
雷锋网消息,OpenAI已经拿到了EA,微软工作室,Valve和其他公司的许可,以使用银河飞将3,传送门和环世界(Rimworld)等游戏。OpenAI还在积极联系其他公司、开发者和用户,寻找更多游戏的许可,用不同Universe任务训练代理,并把新游戏整合入系统。
雷锋网(公众号:雷锋网)此前对OpenAI和Universe做了深度报道,请参考OpenAI发布“宇宙”平台,用1000+训练环境赋予AI“类人智力”,与终结者对抗,钢铁侠马斯克10亿美金打造的OpenAI究竟是什么?以及强强联合,微软与OpenAI合力布局人工智能。
对于为什么OpenAI和DeepMind会一前一后选择开源,外媒Engadget认为,目前AI已经发展到新阶段——需要更多的学习数据,所以通常情况下“较封闭”的科技公司会选择对外合作。当然,2015-2016的这波开源大潮中,AI行业各成员展示出的与公众分享研究成果的精神,也值得肯定。
Facebook:FastText
与上面两者不同,今年八月Facebook推出的FastText是一个文本分析工具,旨在为“文本表示和分类”创建可扩展的解决方案。它专为超大型数据库的文本处理而设计,而该领域的另一个主要解决方案——深度神经网络,处理海量数据时容易出现许多问题。FacebookAI研究部门“FAIR”指出,深度神经网络通常训练、测试起来速度很慢。
FastText能够在几秒钟、或是几分钟之内完成大型数据库的训练。而基于深度学习的方法可能会花费几小时甚至几天。FastText已经能够用于垃圾邮件过滤器等重要应用,但是,在将来它还可能为Siri和GoogleNow这样的AI提供帮助,使它们更快地处理自然语言。
Facebook宣称,这项新技术“对于超过10亿个词汇的训练不超过十分钟”,而这只需要“普通”的多核CPU。另外,它还能在五分钟内对30万个目录下的50万个句子进行分类。
详情请参考比深度学习快几个数量级,详解Facebook最新开源工具——fastText。
Microsoft:CNTK
CNTK的全称是ComputationalNetworkToolkit,意为“计算网络工具箱”,它是一个让开发者们把分布式深度学习应用于他们各自项目的工具。微软在今年一月将它对外发布,在十月份又进行了重大升级,使其有更快的速度和更好的扩展性。
微软表示,CNTK是一个“统一的深度学习工具箱,它把神经网络描述为通过有向图进行的(directedgraph)一系列计算步骤”。对于部分业内人士,它是其他深度学习框架、资料库和工具箱(例如TensorFlow,Theano和Torch)的替代物。但其实,CNTK最开始的用途是语音识别。虽然现在它已成为通用的、独立于平台的深度学习系统,但相比通用深度学习社区,它在语音识别社区的知名度更高。
CNTK支持对常用深度神经网络架构的结构性执行,比如卷积神经网络(CNNs),循环神经网络(RNNs)和长短期记忆网络(LSTMs)。因此,它应用了随机梯度下降(SGD)、反向传播(SGD)和自动区分(autodifferentiation)。CNTK的一大优点是:它支持多个计算设备以及多个GPU的计算。相比之下,TensorFlow最近才开始加入对横跨不同计算设备的运算支持。
在内部测试中微软首席语音科学家黄学东表示,在开发者们为语音、图像识别任务创建深度学习模型方面,CNTK被证明比其他四种主流工具箱都要快。他说:
“与任何已知的方法相比,CNTK难以置信得快。”
CNTK、Theano、TensorFlow、Torch7、Caffe之间的GPU运算速度对比。竖轴是帧/每秒,蓝色柱代表单个GPU,橙柱代表一组四个GPU,绿柱代表两组四个GPU。测试时,其他工具箱尚不支持多计算设备,Theano不支持多GPU。
以下是微软官方宣传中CNTK的三大优点:
速度和扩展性
CNTK训练和评估深度学习算法比其他工具箱都要快,在一系列情况下的可扩展性都非常好——不管是一个CPU、多个GPU、还是多个计算机,与此同时保持效率。
商用级别的质量
CNTK的复杂算法使它能在海量数据库中稳定运行。Skype、微软小冰、必应搜索、Xbox和业内顶级的数据科学家已经在使用CNTK来开发商用AI。
兼容性
CNTK提供了最有表达力、最容易使用的架构。它允许你使用所有内置训练算法,或者使用你自己的。
关于CNTK的技术细节,请参考雷锋网此前的深度分析:微软为什么要用英伟达的GPU来支持CNTK?GTCChina2016。
Amazon:MXNet
MXNet诞生于学界,并不是亚马逊开发的开源平台,但已成为它的御用系统。
它是一个多语言的机器学习资料库,旨在降低开发机器学习算法的门槛,尤其是对于深度神经网络而言。它支持卷积神经网络(CNN)以及LSTMs(longshort-termmemorynetworks)。它通过把符号式编程(symbolicprogramming)和命令式编程(imperativeprogramming)组合起来,以最大化效率和生产力。它的核心是一个dependencyscheduler,能同时进行符号式和命令式任务。这之上的图优化层(graphoptimizationlayer)使得符号式程序执行快速、高效。MXNet具有轻便和可移动的特点,在设计之初就考虑到了对多GPU、多个计算机以及不同计算平台的支持。从移动设备到分布式GPU集群,都可用于MXNet。
国内的图森互联和地平台机器人是MXNet的使用者之一。但真正使它声名大噪的,是11月亚马逊宣布把MXNet选其为官方深度学习平台,用于亚马逊网路服务系统AWS,并将在未来成为MXNet的主要贡献者。亚马逊表示,选择MXNet有以下三点原因:
扩展到多GPU系统的潜力。这使得亚马逊能充分利用计算性能。
开发速度和可编程性。亚马逊希望选择一个开发者能快速上手的平台。
移动能力。限制在大型服务器运行的机器学习应用,价值有限。亚马逊希望能在多种计算设备运行机器学习工具。
MXNet创始者之一的解浚源表示:“MXNet的速度,节省内存,接口灵活性,和分布式效率都是可圈可点。”
IBM:SystemML
推荐:
网友评论 ()条 查看