@Rays
2017-05-31T10:02:16.000000Z
字数 10174
阅读 1897
机器学习
摘要: 为进一步阐明人工智能相关的多个技术概念,并探讨企业开发人员如何使用这些技术改进自身解决方案的智能性,InfoQ近期邀请了数位人工智能领域的专家,开展了一次虚拟专家研讨会。
作者: Rags Srinivas
正文:
本文要点
通过驾驭大量的可用数据,计算机程序正变得更加智能。
数据科学(DS)、机器学习(ML)、深度学习(DL)和人工智能(AI)均为非常宽广的领域,各个主题间具有一些十分微妙的差别,也存在一些非常大的差异。
现在已有一些平台。开发人员并不需要完全掌握它们的内部工作机制,就可使用这些平台。这些平台的出现,降低了学习的曲线。
在对这些技术的采纳上,尽管一些初创公司和Web规模的企业早已采纳,但是大型企业在此上并未落后多少。
对于人类与机器的关系问题,我们应依照伦理规范进行算法与机器的创新和开发,这是社会的共同责任。
人工智能正在大范围地回归到我们的生活中。机器(或是一组机器)已可以战胜国际象棋冠军,或是从“危险边缘”节目的参赛者中脱颖而出。我们正身处这样趣味无穷的时代。
计算的可用性在不断增加,数据量也在极大的丰富。从这种似乎是未来的人机大战中,企业已意识到自己正把持着迄今尚未有效利用的海量数据。
无论是对购买模式的预测,还是对消费设备故障的预测,人工智能技术的使用无疑将显著地提升企业解决方案的竞争优势。由此,在认知解决方案上的竞赛已经开始。
企业需要跟上时代的步伐。其中首要也是最为重要的挑战,是对开发人员而言,人工智能无疑就像是十分难以掌握的火箭科学,学习曲线陡峭。
其次,传统的软件开发方法并不适用于人工智能。根据环境的不同,一组输入可能会产生多种输出,这导致以测试为驱动的开发难以维系。
最后,人工智能并不具有一套统一的API,虽然在不同的平台上可能会使用相似的技术,但是解决方案很难在平台间迁移。
就此问题,InfoQ联系了几位人工智能领域的专家,开展了一次虚拟的专家研讨会。他们分别是:来自Uber的Prakhar Mehrotra,DeepGrammar的联合创始人Jonathan Mugan博士,以及LinkedIn的Kumar Chellapilla博士。访谈内容涉及:如何阐释与人工智能相关的多个技术问题,以及企业开发人员如何利用这些技术改进企业解决方案的智能化程度。
InfoQ:记得我在读研期间,学习过Prolog和Lisp。那时人工智能虽是呼之即出,但却是波澜不惊。为什么会是这样?似乎人工智能当前再一次成为热点,这将会是昙花一现,还是将持续下去?
Mehrotra:我认为人工智能的热度将持续下去!在学术界,人工智能一直是一个热门的研究方向。在工业界,人工智能也得到了广泛的应用。Google、Facebook、Amazon、Microsoft和Apple等科技巨头做了大力的投入,例如iPhone中的Siri、Alexa、Google Home以及最近的无人驾驶汽车。在过去的十年中,我们能看到两项巨大的技术转变,即转向移动端,以及云的出现。这两者都导致了数据量发生爆炸性增长。更便宜的计算成本和硬件成本,使得学校和工业界的研究人员能够改进神经网络等关键人工智能算法的性能。这提高了现实世界中应用的精度,例如图像分类和搜索,文本挖掘和语音识别等。另一个影响人工智能被广为采纳的因素是成本问题。Google等科技巨头提出了实现人工智能“人人可用”(democratizing)的理念,并提供了TensorFlow等系统,使得任何人都能运行算法并开展实验。因此,精度更高的算法以及更低的运行成本,这将导致人工智能的热潮将持续下去。
Mugan:我认为向更智能的机器发展是一种长期的趋势,但这种发展是循环往复的。人工智能目前涵盖很广,部分原因在于深度学习提供了一种新的锤子,人工智能的从业人员就可以不断地去寻找能被该锤子敲击的问题,社会发展将从这一过程中持续受益。Prolog和Lisp都是符号运算系统,这样的系统是脆弱的,因为本质上开发人员必须在计算机可认知的范围内编写代码,总不可避免会有用例被开发人员所遗漏。但是,符号系统在编码先验知识和特征上表现良好。如何将它们与深度学习结合起来,这依然是一个开放的问题。
Chellapilla:人工智能正变得越来越好。期望与现实间的差距,真实地反映了我们对科学能快速实现我们科幻梦想的乐观心态。在我们的成长过程中,曾梦想着太空旅行、通信器(译者注:即Communicator,出自《星际迷航》)、飞行汽车、HAL(译者注:出自克拉克的科幻小说《2001:太空漫游》。HAL分别为IBM的前一个字母,表示比IBM更先进的电脑)能在生活中成为现实。在上世纪60至80年代的人工智能浪潮中,我们严重低估了一些人工智能问题的难度。语音识别和对象检测与识别就是两个很好的例子,这两个问题的解决过程历经了几十年的时间。直到最近,我们才给出了很好的解决方案,使解决方案不仅具有竞争力,而且能够超越人类的自然能力。这些近期的突破取决于更强大的计算能力、大量数据的获取以及深度学习的进步。当前,人工智能开发人员或科学家通常可驾驭超百万次计算(从GigaFlops到PetaFlops)和百万字节数据(从GigaBytes到PetaBytes)。这是非常令人兴奋!此外,开源工具包和云技术的成熟,大大加快了人工智能社区的规模和创新的速度。
InfoQ:认知计算的范围涵盖了数据科学、机器学习、深度学习、人工智能等。你们认为计算机视觉,神经网络和深度学习这三者是否是同义词?你们能否做一个简洁的澄清,理解三者间的区别是如何帮助开发人员和架构师设计解决方案的?
Mehrotra:这个问题很好!当然,根据我个人在行业中的经验,我曾看到人工智能、机器学习和深度学习这三个术语被作为同义词使用,尤其是在企业环境中。事实上它们根本不是同义词。人工智能是一个更为广泛的研究领域,意在构建“智能”的系统。如果一个系统旨在模仿人类的智力,并且能像人类一样思考(例如通过图灵测试等),那么我们称这样的系统为“人造通用智能”(AGI,Artificial General Intelligence)或“强人工智能”。人工智能和AGI间的差异在于问题和建模领域的范围上。机器学习是应用数学的一个分支,也是构建人工智能系统的技术之一。搜索、优化、控制理论、逻辑推理等都是人工智能技术。机器学习与经典统计学的不同之处在于,机器学习很少强调置信区间,而置信区间是经典统计学家的最基本手段(译者注:原文为“面包和黄油”)。深度学习是机器学习领域中的一种算法。其它的算法实例还包括逻辑斯蒂回归、贝叶斯网络和支持向量机等。神经网络(有时也称为人工神经网络)并非一个十分严谨的术语。在学术界,它被用于指代前馈神经网络。如果一个神经网络具有很多层,那么我们称该神经网络非常“深”。简单回顾一下,人工智能是一个超集,机器新学习是人工智能的一个子集,而深度学习是人工智能的一个子集。
Mugan:人工智能关注的是如何能让计算机变得更加聪明。机器学习是如何通过使用经验让计算机在特定任务上表现得更好。而机器学习是一种实现人工智能的方式(另一种方式是直接对智能设备编程)。神经网络和深度学习均为一种机器学习方式,两者近乎同义。随着神经网络的不断扩大,我们开始称该方法为深度学习。计算机视觉是计算机获得智能所需的众多功能之一,可以通过机器学习实现计算机视觉,这种机器学习可以采用神经网络(深度学习)实现。 数据科学就是如何使数据对人类决策者有用的科学。虽然它可能会涉及人工智能和机器学习,但其目标是让人类做出决策。
Chellapilla:这三个概念非常令人困惑,难道不是吗?它们是相关的,尽管在使用时看上去是类似的,但却是不一样的。人工智能是一个宏伟愿景。在三者中,人工智能的表示范围最为宽泛,涵盖了一些应用人类编程和机器学习的领域。相比之下,机器学习仅包括一系列用于机器的工具和技术,在人类创作者尽可能少地干预的情况下,实现从大量数据中学习。例如,Deep Blue和AlphaGo都是使用人工智能构建的游戏程序。Deep Blue战胜Gary Kasparov赢得了人机国际象棋锦标赛,这是一个很好的例子,其中使用了人机编程实现的智能,而非使用机器学习构建人工智能技术。与之相对比的是,AlphaGo中大量使用了机器学习技术,它在去年(即2016年)首次赢得了与人类职业选手的比赛。AlphaGo使用的深层神经网络是一类机器学习模型,这里并非用于计算机视觉目的。因此,计算机视觉,神经网络和深度学习并不是同义词。深度学习基本上可称为神经网络2.0,它是更大、更好及更深层次的神经网络。计算机视觉是一种人工智能技术,意在使得机器可以“看得到”,即获得对图像,视频和3D空间的高级理解。这里的问题涉及如何检测图像中的一些感兴趣事物(例如面部和物体等),对它们做实时跟踪,并通过建立事物周边世界的3D模型来预测结果。当前,构建计算机视觉人工智能的最佳机器学习模型是卷积神经网络,这是深度神经网络的一个子类型。
InfoQ:这些不同领域的基础在于数据的可用性。很多企业抱怨说,自己已经拥有了如此之多的数据,但只能使用其中一小部分的可用数据。什么是阻碍了企业对更多数据的使用?是否存在数据过多的情况?
Mehrotra:这是一个人力资源范畴的问题!我们将知道如何对数据进行理解的人称为“数据科学家”。事实证明,数据科学家存在大量的短缺。大学正在紧追这种需求。我曾经读过一份麦肯锡给出的大数据报告,记得其中提及到2018年,美国的数据科学家的空缺将达约15万个。
Mugan:我并不认为这是一个数据过多的问题。挑战在于如何获取数据的格式以便将数据输入计算机。对此很难找出最有效的算法。一旦拥有正确的算法,你就不会认为数据过多。
Chellapilla:最大的阻碍在于数据的质量和可访问性。当一个企业说自身具有大量的数据时,通常它指的是一些非常混杂的原始数据,这些数据不能被程序和编程人员直接使用。需要公司在数据科学和工程资源上进行投资,建立管道和平台,消化原始数据为结构化和半结构化形式,之后才能被传统的程序所接收。通常在这些转换中,会大量地用到统计学和机器学习的算法。一旦公司对此做出了投资,就不再存在数据过多的问题。
InfoQ: 人工智能的学习曲线是否过高?有哪些人工智能平台和API能很好地简化那些开发人员和架构师所必须掌握的复杂问题?例如,partnersonai.org平台是由很多软件厂商和第三方合作组建的,请你们对这类简化了开发人员生活的工作做出评价。
Mehrotra:这取决于人们想要开发的人工智能系统的类别。例如,如果要构建的人工智能系统是用于下象棋,或是查找最优或最短路径,或是决定是否发放贷款(信用违约推荐系统),那么最困难的部分并非在于科学本身,而是在于计算能力。所以从这个意义上讲,学习曲线并不陡峭。但是,如果你要建立的是一个可以理解新语言的系统,或是想要构建一个自动驾驶系统,这时我们会说学习曲线的确非常陡峭。例如,对于语言处理,我们可以使用统计方法解码并理解其中的一部分句子和模式。但是要使用该语言进行交互,我们需要了解上下文。虽然人类以掌握这一技能,但机器却仍未掌握。
在所有能对复杂性进行抽象的平台中,IBM Watson脱颖而出。它为非硅谷的开发人员提供了很好的平台,使他们能迅速地加入到机器学习的浪潮中,并学以致用。这里我想推荐的另一个很好的模式识别API就是Google Prediction API。
Mugan:在人工智能和机器学习中,存在着大量需要学习的知识,网上有大量的资源可用于起步。很多时候,虽然我们从简单的算法中就能受益匪浅。但我们似乎总是想从最为强大的深度学习算法开始,我认为通常并不需要这样做。在很多情况下,像决策树这类简单的算法就能给出很好的效果。我无法专门针对partnersai.org发表评论。
Chellapilla:我认为,构建人工智能解决方案的学习曲线正变得越来越陡峭。一般可以通过开源软件包和云API获取构建人工智能系统所用到的基本组成部分。Google和Microsoft的云端API可以提供文字、图像、视频、语音和机器翻译功能。这些工具足以使工程师快速构建人工智能驱动的简单用户体验和产品。然而,许多产品需要定制的人工智能解决方案,甚至需要开展人工智能研究并取得突破才能获得成功。需要指出的是,R、scikit-learning、TensorFlow等开源工具非常有帮助,但是掌握它们需具备一些重要技能。
学习曲线中最难的部分是如何改变开发人员的设计思维。这是建立无故障系统所必需的,虽然这种无故障仅具有统计意义上的性能保证。人工智能开发人员不仅要了解API,还需要深入地掌握数学问题,包括概率、统计和优化等。这些基础知识对于迭代地改进他们的人工智能系统以减少故障是十分必要的。最重要的是,开发人员必须消除通过添加规则来修复故障这一直觉本能,这是在修复传统的软件错误中所使用的方法。
InfoQ: 除了API之外,在开展数据科学项目时,数据科学家和开发人员还应了解哪些相关的开发工具和工具包?
Mehrotra: Google开发的TensorFlow,Python中的Theano库,使用Java和JVM的开发人员应了解Deeplearning4j。此外,当需要快速地验证想法时,R中的包rpart、glmnet也十分有用。
Mugan:我关注的是Python编程。我常使用scikit-learning和TensorFlow。对于自然语言处理,spaCy是一个不错的选择。
Chellapilla: 对于起步者,我建议选择R,scikit-learn,NLTK/spaCy和TensorFlow。 对于中高级用户,可选择的工具非常多。这一生态系统非常丰富和动态,并处于不断地发展中。
InfoQ: 对未来的预测总是受人瞩目,例如购买习惯,可维护性问题等。你们能评论一下在这方面上的进展吗?当前这些算法和方法的复杂性如何?开发人员和架构师如何将这些算法纳入自身的解决方案中?
Mehrotra: Neils Bohr曾指出:“预测是非常困难的,尤其是关于未来的预测”。当关乎人的因素时,预测中最困难部分就是语境。举个例子,我每个星期五晚八点左右,会从同一披萨连锁店订购披萨。最近的两个星期五,我都这样做了,因此推荐系统会认为我将在这个星期五也这样做。该连锁店的数据科学家有两种选择:使用这些信息向我的手机屏幕发送一个弹出窗口,或者是自动为我订购披萨并发送已订购披萨的通知信息。如果我的确要在本周五订购披萨,那么看看,这是一个多么惊人的人工智能!它能预测到我的行为。但是,如果公司已为我订购了披萨,并且我也没有心情再订购一个,那么我可能会不高兴,会去质疑人工智能。因此大多数公司出于经济上的考虑,会诉诸实施后果不太严重的替代方案,即在用户移动屏幕上弹出提示窗口。
对于算法的复杂性,根据我的经验,预测更像是给出一个强烈的信号,而非实现一个复杂的算法。例如,如果训练数据未受到类别偏斜问题的影响(也可以说,数据中具有足够的可用于训练算法的默认用例),那么对于预测贷款违约的概率,组合使用逻辑斯蒂回归和随机森林会比复杂的神经网络给出更好的结果。这就是说,好的数据要比复杂的算法更为有用。
Mugan: 推荐引擎试图预测我们下一步的需求,正如
Amazon或Netflix所做的。目前尚不清楚我们可以在多大程度上采用这些算法。你是否记得在1997年上映的Michael Douglas主演的电影《心理游戏》,其中一些人可以预测到男主角的一举一动。我不认为对个人行为的预测可以达到这种精确度。Chellapilla:特定用户的行为是很难预测的,事实上是非常难的。然而,了解和预测用户群体的趋势和行为的方法已相当先进,尤其是在线广告和收入预测。这些广告匹配和服务算法在很大程度上依赖于用户的行为信号。用户对这些算法(例如,用户的Amazon Prime帐户购买历史记录或YouTube观看记录)共享的数据越多,算法就会变得越好。从广告客户的角度来看,这些算法有助于预测受众群体的规模、系列广告的支出率,并对广告客户的出价提供参考。从人工智能技术的角度看,这些解决方案需要强大的算法。算法不仅可以利用历史数据,而且能对用户在线行为的变化做出快速的响应。虽然这些模型十分简单,但是需求导致了相当复杂的实现方式,其中未来追踪在线采购行为的每日趋势,组合使用了冷启动、热启动以及实时学习。
InfoQ: 许多创业公司已经引入了深度学习。为什么在大企业中的采用仍然相对较慢?你们能否针对通过引入一些人工智能技术而得到了显著改善的应用,详细提供一些知名的或企业内部的应用情况?
Mehrotra:企业采纳缓慢的原因在于我上面所介绍的那些平台。虽然这些平台可以轻松地实现一些基本技术。但是当公司采用这些平台时,很快就会在如何修改平台以满足企业的特定需求上遇到问题(例如缺少数据科学部门)。对于任何企业解决方案,取得成功的关键都在于服务支持。在我看来,Cloudera和Hortonworks在服务支持方面做得很好,它们可以解决这些障碍。
Mugan: 企业无论大小,都在使用深度学习。目前,深度学习最适合的是感知相关的应用,例如计算机视觉。而大多数公司所处理的是更具结构化的数据。例如,我们尚不清楚如何利用深度学习获取对大型SQL数据库的洞察。
Chellapilla:深度学习已在企业中得到了广泛的应用。初创企业的产出通常是利基产品,因此通常是从零开始构建解决方案,这样直接从深度神经网络开始是合理的。对于那些已具有数据产品的企业,一般已经具有了一些人工智能和机器学习的解决方案,这些解决方案在企业自身的领域运行得很好。正如KISS原则所指出的,如果逻辑斯蒂回归模型等简单算法已经运用于生产中并且运行良好,那么完全没有必要再去寻找更复杂的模型。因此我们会看到,在使用深度神经网络问题上,企业会更为审慎,仅将它们应用到一些有希望获得收益的问题上。另一方面,企业采纳缓慢也是由于数据的规模和隐私问题。与一开始就利用云API和服务的创业公司不同,企业可能会有数据规模和客户隐私上的限制,不能轻易地将其内部数据传输到云服务上。需要在企业内部构建定制的解决方案,这可能会更慢。企业也需要尽早解决数据规模问题。我们可以理解,如果企业需要在内部构建一个可扩展到数亿乃至数十亿用户的深度学习解决方案,那么可能会需要更长的时间。
InfoQ: 对于正致力于深度学习和人工智能项目的开发人员,你们能提供一些最佳实践吗?
Mehrotra:了解问题,明确界定所需的系统,并对输出做出假设。在工程上,确保你拥有强大的数据管道,并且数据管道应在整个项目过程中保持稳固。如果你并不具有数据,或者是无法可靠地获取数据,那么你终究要花费一些时间去搞定数据问题。我们希望数据科学家能将时间用于如何开展科学研究,而非如何维护数据。在项目管理上,应从一个简单的目标开始。向利益攸关者展示这些信息,尽早地获得信任。一旦你做到了这些,回到项目中,并开始开展特征工程。正如Google的Martin Zinkevich所说:好的结果来自于好的特性,而非复杂的算法!
Mugan:从简单处开始。首先,在整个运行流程中使用最简单的算法,并对结果做出评估。完成这样的操作后,就可以使用更复杂的算法,迭代地对结果进行改进。
Chellapilla:我的建议是,首先要理解深度学习、神经网络和自身具体问题的领域。深度学习是一种构建人工智能解决方案中所采用的方法。对于人工智能开发人员,理解其它的技术也是同等重要的,例如线性模型、逻辑斯蒂回归、决策树、组合学习等。深度学习是否是最佳的选择,取决于我们正试图解决的问题,以及人工智能解决方案所需的属性。通常,领域的专业知识和简单性胜过其他因素。简单模型易于调试和优化。对于构建好的特性,对产品的洞察和实验非常有价值,它与选取正确的模型和学习算法同等重要。
InfoQ: 最后一个问题,大家能构想一下人工智能的未来发展吗?有一个十分极端的看法,那就是机器最终会占领世界并使人类成为牺牲者。你们能缓解人们的这种担心吗?
Mehrotra:我们所构建的人工智能系统,应该是有助于整个人类社会的。机器不会接管世界,也不会有变形金刚。正如导弹或核弹本身并不会消灭这个世界。相反,这一切都掌握在人类的手中,由人们判断是否要使用导弹。在我看来,机器将接管世界这一极端想法,可能来自于机器(通过自动化)将取代人类职位这一理论,该理论导致人们产生了对机器接管世界的恐惧。2017年ASILOMAR会议为制定人工智能研究和伦理学的指导原则做了很好的工作。
Mugan:在我看来,机器永远不会比人类更聪明,但似乎机器也不可避免地变得越来越聪明。机器每年都会变得更加智能,而我们人类却保持不变。我们担心机器将会接管这个世界,正如我们人类所做的那样。但是机器并不像我们人类,我们是通过牙齿和爪子进化的,而机器是设计用于为人类提供帮助的。总而言之,我更害怕的是人类,而非机器。我们人类的社会还有很多问题需要解决,我们希望机器能帮助我们繁荣发展。我也希望,有一天电脑足以聪明到可解释宇宙的奥秘。
Chellapilla:不应对人工智能的发展产生恐惧情绪。当今,我们应该更加信任机器,而不是去考虑人工智能中所隐含的危险。人类一直是工具制造者和掌控者。随着时间的推移,这些科技创新给人类带来了许多繁荣和幸福。我相信这将继续下去。人工智能将会使这些工具更加通用、独立和强大。也就是说,能力增加的同时,会带来责任的增加。能力在本质上没有好坏之分。所以,在构建更强大的人工智能系统时,责任在我们这样的系统创建者身上,应确保人工智能系统不仅能够传承原始智力这样的人类属性,而且可以传承人类的社会情感价值观。而后者是建立人类可完全信任的、具有社会责任的人工智能系统的关键所在。
上述专家观点表达了多方面的意见,并且在很多问题上取得了一致。对于初入人工智能领域门槛的人而言,会感到需要面对过多的术语,常常无法厘清数据科学、机器学习、深度学习和人工智能间的区别。然而这些问题并不重要,因为这些方法间具有相似性,都是基于持续反馈回路对算法进行调优。
这次专家研讨会的主流观点是,该领域学习曲线的陡峭性正在降低,因为一些平台提供了快速的入门。研讨会中所谈及的技术已经被一些初创公司所采纳,大型企业对技术的采用也并未落后很多。
正如研讨会上部分专家所建议的,该领域中的工作应从细微处着手,给出明确定义的需求、模型和假设。然后对假设进行验证,并根据结果不断地调优模型。这种做法有助于对算法内部工作机制的理解。此外,当前已有一些平台使开发人员和架构师能够更轻松地运用这些算法,并通过对算法的反复尝试而获得更好的理解。
对于人工智能是否将会取代人类智慧这一议题,研讨会专家一致认为,我们这些智能系统的构建者负有道义上的责任。当发生这种情况时,这些系统所具备的能力,应用于为人类获取更大的利益。与大多数其它类似问题一样,在技术人员不断地以疯狂的速度进行创新时,应由社会来界定创新的界限所在。
Prakhar Mehrotra当前任Uber数据科学和金融主管,领导着一个研究人员团队。他所在的研究组关注预测、优化并构建模拟,力图更好地理解在市场中网络的影响作用。任职于Uber前,他在Twitter的销售与盈利团队担任量化分析师,致力于构建预测算法去预测营收。他学习的是航空学专业,毕业于帕萨迪纳市加利福尼亚理工学院和巴黎综合理工学院。
Jonathan Mugan博士是DeepGrammer的联合创始人兼CEO。他专注于人工智能和机器学习,在当前的研究中,关注深度学习领域,探索如何获取可让计算机理解微妙意义的抽象表示。Mugan博士毕业于德克萨斯州大学奥斯汀分校,获计算机科学博士学位。他的博士论文工作涉及机器人的研发领域,侧重于研究如何能构建像儿童一样学习世界的机器人。
Kumar Chellapilla是LinkedIn货币化相关性(Monetization Relevance)部门主管,致力于改进LinkedIn付费产品的相关性,包括Recruiter、Premium Subscriptions、Ads、Sales Navigator、ProFinder和Referrals等。他的研究关注点在于,如何通过解决机器学习和人工智能领域难题而驾驭产品和研究创新。任职于LinkedIn之前,Kumar曾就职于Twitter的广告质量部门(Ads Quality)和Microsoft研究院Bing的Web搜索组。他从加州大学圣迭戈分校获得博士学位,博士期间研究如何训练可以玩游戏的神经网络。
查看英文原文: Virtual Panel: Data Science, ML, DL, AI and the Enterprise Developer