谷歌开源了TensorFlow,世界就要马上被改变了吗?
编者按:本文来自出门问问 CEO 李志飞,前谷歌科学家,自然语言处理和人工智能专家,世界主流开源翻译软件 Joshua 主要开发者。Google 开源了其第二代深度学习技术 TensorFlow,这件事情有什么现实意义?
Google 开源了其第二代深度学习技术 TensorFlow——被使用在 Google 搜索、图像识别以及邮箱的深度学习框架。这在相关媒体圈、工程师圈、人工智能公司、人工智能研究团队里有了一些讨论。比较有趣的是,微软亚洲研究院立刻向 媒体发邮件表示,我们要开源分布式机器学习工具包(DMTK)。
对于大众来说,这件事让人 “困惑”。从 “深度学习” 到 “分布式系统”,太多概念大众一知半解,现今给出的资料又让人难以理解。而对于 “Google 开源 TensorFlow” 这一事件,各个公司、团队、学术权威也是众说纷纭。因此,出门问问为大家 “破雾”,并讲一讲这次开源意味着什么。
什么是深度学习?
深度学习系统是什么?深度学习理论于 2006年 被提出,它通过模拟 “人脑的神经网络” 来解释图像、声音和文本等数据。但是目前的计算机还达不到模拟人脑数量庞大的神经元(千亿级),因此便有了用到成千上万大型计算机(计算平台集群)来吸收 数据对其进行自动分类的 “分布式深度学习系统”。
TensorFlow 的起源和此次开源事件
Google 将自家研发的深度学习系统命名为 “DistBelief”,它使得 Google 能够同时处理成千上万台大型计算机的数据,构建更大型的神经网络和大规模训练。Google 的搜索、图像识别及邮箱等均采用了该技术。一般情况下,深度学习系统都需要先设定好 feature(特征),再学习如何分辨。但 Google DistBelief 神奇的地方在于,“Google Brain” 开发团队 “XLab” 曾用它在未事先获取 “猫的特征描述” 信息的情况下,从大量 油Tube 视频中区分除了哪些是猫的视频。这意味着深度学习系统 “DistBelief” 自行总结出了猫的 feature(特征)!虽然这个案例的识别范围、识别率有待提高(81.7%),但作为人工智能最经典案例之一,为人工智能翻开了新的篇章。而 “猫” 的事件,也让曾经的 Google Brain 开发团队 “XLab” 的核心人员、现在被李彦宏挖到百度的吴恩达得到了 “Google Brain” 之父的美誉。不过,时代总是进步,而 “DistBelief” 有缺陷。
Google 称,虽然 DistBelief 非常成功,但它仅仅以神经网络为目的、十分局限,而且很难进行配置。另外,DistBelief 牢牢绑定在 Google 的内部基础设施上,几乎不可能将代码与外界共享。因此,本文的主角,Google 的第二代深度学习系统 “TensorFlow” 横空出世了。
Google 表示,TensorFlow 在设计上尤其针对克服 DistBelief 的短板,灵活、更通用、易使用、更快,而且完全开源。TensorFlow 可以被架设在智能手机这样小的设备上,甚至仅一块电路板上,更灵活; TensorFlow 可以被使用在很多计算平台,无论是智能手机还是大型计算机、单个 CPU / GPU 计算机还是成百上千 GPU 卡组成的分布式系统,ARM 的还是 X86 的构架,更通用;TensorFlow 支持多种编程语言,提供了很多深度学习模型库,易使用;在很多指标上,TensorFlow 要比 DistBelief 要快一倍,更快。但是,学术界和工程界的一些朋友并不喜欢这个 “刚刚闯入” 开源界的 “小伙子”,判了它 “意义不大” 的死刑。“TensorFlow” 之所以 “开源” 却不讨好,是因为 TensorFlow 不是第一个被开源的深度学习系统,并且目前只开源了 “单机版”,而非能够识别猫的 “分布式版本”。除了并非第一以及只开源了单机版代码这两点外,Google 开源 TensorFlow 这件事最被人诟病的地方在于,在 “用事实”、“用数据” 说话的学术界、工程界,Google 并未用 “数据对比” 证明 TensorFlow 的 “灵活、更通用、易使用”。
对于 TensorFlow,出门问问的看法是,TensorFlow 对学术界意义不大,但是对工程界意义挺大。
TensorFlow 对工程界有意义:其它开源工具虽然众多 但对工程界很难有效使用
Google 这次开源的 TensorFlow 是一种人工智能(更具体的说是深度学习)编程语言或计算框架,学术界从来都不缺少类似的开源工具,尤其是 “单机版工具包” 有很多。但是学术界的工具往往更多专注在核心算法上,在系统和工程方面比较欠缺,工业界很难直接有效的使用,而 Google 的 TensorFlow 在架构设计,跨平台可移植性,算法可扩展性等等偏工程方面会做的比较好。所以,TensorFlow 对学术界的帮助比较小,但对工业界的帮助有很大潜在可能性。比如语音识别、自然语言理解、计算机视觉、广告等等都可以应用这种深度学习算法,Google 也因为深度学习系统的应用使得 Google 语音识别水平提高 25%。
有意义归有意义,意义的大小是另一回事了。在这个信息交流频繁的时代,没有公司能随便制造一个具有超大意义的事件或者跨时代的黑科技产品。对于 工程界,TensorFlow 有意义但又不是神乎其神的东西,尤其是 Google 目前开源的 “单机版” 的 TensorFlow 意义要小一些。因为在工程界里,若要完成一整件事,如识别语音,TensorFlow 这种通用深度学习框架的存在更多是锦上添花,而非决定根本。比如说在一个可以应用的语音识别系统里, 除了深度学习算法外,还有很多工作是专业领域相关的 算法以及海量数据收集和工程系统架构的搭建。
其实,对于中国来说,TensorFlow 还有一个意义。在人工智能大潮下许多人和公司想入局,但大都没有能力理解并开发一个与国际同步的深度学习系统,而 TensorFlow 的存在会大大降低深度学习在各个行业中的应用难度。至于弄懂 TensorFlow 要花费大量时间的问题,就像很多公司用 Linux 或者 hadoop(一种分布式系统基础架构)但很少有公司弄懂了所有源代码一样,可以把 TensorFlow 当成一个黑盒,先快速用起来,之后再根据数据和专业领域知识来调整。
总的来说,如果 Google 按照其所说的那样,在未来完全开源 TensorFlow——包括其 “分布式版本”,那么 TensorFlow 对工程界的影响会更明显些——尤其对中国创业公司来说。