微软John Langford:机器学习解决哪些世界难题?

John Langford , 微软机器学习研究员,也是 Vowpal Wabbit 的主要研发人员。这次,他在Quora上谈了自己对机器学习、Vowpal Wabbit 以及人工智能等问题的看法。除了回答一些热门、实用的问题,他也提供了非常丰富的专业研究信息和文章资料,是一篇值得收藏的对话类文章。


关于机器学习


未来几年,机器学习会解决那些重大世界难题?


未来几年,我认为机器学习不会解决什么重要世界难题。


不过,我确实期望它能为各个公司解决越来越多的问题,通过这种积累让世界在点点滴滴方面变得更好一些,研发出解决未来世界难题所需的工具。人们将能够更方便地获取他们想要的新闻消息,人和电脑之间的界面将运转得更好,更多的日常任务将由机器自动实施。


在更远的未来(10 至 30 年之后),我们可以预期机器学习在这些领域做出贡献:


1. 自动驾驶。自动驾驶怎么会解决掉世界难题呢?当交通运输变成一种公用事业而不再是一种私人财产时,汽车会变少,这些汽车会产生更少的污染,交通事故也会大大减少。还有个额外的好处,那就是大街上再也不会总是塞满停泊的汽车了。


2. 大众的个性化教育。在科幻小说《钻石时代》里,许多人都使用同一本书来进行自我教育。未来教育的细节可能和小说不一样,但我认为,没有什么理由否认,机器学习技术将有效地促进这种个性化教育的到来。在未来世界,每个人都可以以自己的步调来学习,而机器学习将使这成为可能。我们需要机器学习,特别是在早期教育阶段,因为在这个阶段互动是关键。


3. 医疗保健的合理化和个性化。美国建立了一个反常的医疗系统,在这个系统中,最昂贵的解决方案总是能赢得竞争而拿到钱,这就是美国的医疗保健比其他国家贵两倍的原因。我预期,医疗革命将从使用 Fitbit 智能手环和微软智能手表等个人装备的个性化医疗开始,因为这些领域的风险更低,也因为这些领域尚未被做事情的旧习惯所牢固占领。


总之,机器学习在下述情境中是一个优秀、合理的工具:


1. 当正确答案并不显而易见的时候。


2. 当相关背景已被数字化的时候。


3. 当相同的决策将被重复多次的时候。


然而,事情也不只有好的一面。许多相对惯例化的工作将消失,社会必须很好的应对这一问题,才能维持一个良好的公民社会。社会作为一个整体可能将会更富裕。但这并不等于说,社会将会运转良好。


机器学习里有多大比例是计算机科学,又有多大比例是统计学呢?


这要看情况。当样本不太多时,基本上是统计学问题。当样例数量极大,而你又想在一个正在运行的系统中部署它时,计算机科学方面的问题常常就变成了支配性的,即便统计学方面始终是相关的。


不过,机器学习还有一些要素既不属于传统统计学也不属于计算机科学。想一想优化和表征理论(Optimization and representation theory ),它们就不太属于这两者。


你觉得哪家实验室的机器学习研究最有趣呢?


哇,在机器学习领域,业界和学界中,有许多人正在做着各种有趣的事。让我先从自家说起,再介绍些其他研究:


1. 显然,我所在的微软纽约研究院的实验室在做一些非常吸引我的工作,这些工作既有对系统的研究,也有硬核理论(《Contextual-MDPs for PAC-Reinforcement Learning with Rich Observations》)的研究。




2. 其他的微软研究院也在做有意思的事,比如解决图像识别问题(《 Deep Residual Learning for Image Recognition 》或 GPU 并行问题:《1-Bit Stochastic Gradient Descent and Application to Data-Parallel Distributed Training of Speech DNNs 》)


3. 谷歌至少有两个实验室做出了有趣的研究—— 伦敦的 Deepmind 在研究通关雅达利电子游戏(《Human-level control through deep reinforcement learning 》)和围棋。位于硅谷的另一家公司则专注于高级表征,例如《Grammar as a Foreign Language》这篇论文。




4. Facebook 纽约实验室的人在研究记忆和学习之间的互操作( interoperation)(《Reading Children's Books with Explicit Memory Representations 》 )


5. 加州伯克利大学的 AMP lab 实验室正在做机器学习/数据/系统方面的研究。


6. 还有很多教授各自在大学里做着有趣的工作。机器学习研究方面,最好的大学可能仍然是伯克利/卡耐基梅隆/斯坦福,不过,从事有趣工作的教授则分布在几十所大学里。那些考虑读研究生的人真的应该至少像了解大学一样去了解自己未来的导师。如今要了解这一点要容易得多了,因为论文发表的信息更容易获取了。


7. 类似地,还有许多其他产业实验室在做有趣的工作。


去纽约今年夏天的机器学习国际会议看,感知一下当下的研究方向吧。我写了一些博客来讨论那些令我感兴趣的论文。



深度学习会取代所有其他类型的机器学习吗?


不,但它可能会成为许多种机器学习的一部分。深度学习如今是一个很火的话题。深度学习办法为许多对大量样本进行泛化问题(比如,很好地预测同一个问题的新例子)提供了有效回答,在我看来,这是合乎逻辑的结果,因为由线性表征得到的优化假设,充其量只是为实践提供方便的错误。不过,仍然有许多领域似乎是深度学习不能胜任的:


1. 深度学习尚未在那些训练样本较少的领域展现出成功迹象。在样本较少的情况下,那些通过其他信息来源而设计的技术仍占据领先。(当然,深度学习将来有可能会生成这些其他信息源,但这并没有消除给定较少信息源时的学习需求。)


2. 没有解决这一需求:通过探索性技术来搜索数据。我遇到过一些深度学习研究者不肯承认这一点,但是,如今有了 Deepmind 的研究结果后,他们安静多了。


3. 深度学习在科学探索方面常常是无能为力的。如果你有一个关于世界如何运行的特定假设,那么(比方说)采用一个图模型并测验其统计有效性将是更可行的。


4. 没有解决围绕部署机器学习的系统问题,在某种意义上,它(经常)让事情变得更麻烦了。


对于上面的许多难题,深度学习可能构成解决方案中的一部分,但很明显,深度学习不是一个完整的解决方案,无论是在以下哪种意义上:无需借助深度学习,我们就能轻易谈论解决问题,或者用深度学习生成解决方案。例子,请见论文:《State of the Art Control of Atari Games Using Shallow Reinforcement Learning》


机器学习中,有多少与理论有关,又有多少事关实践经验?


以我的经验看,有着一半理论一半实践经验背景的人比那些只关注理论或只关注实践的人要强很多。只注重实践的研究者有时候会犯一些很愚蠢的错误,比如,分不清训练集和测试集或者采用错误的方法去解决问题。只注重理论的人也许理解优秀算法的结构,但不能有效运用,或者不能从很多可能的方法中选出合适的那个。运用方程解决问题和证明方程是两种完全不同的能力,这在机器学习中尤其的正确,在机器学习领域,证明方程有效经常并不意味着可以用它来解决问题。理论和实践最理想的混合状态是很难固定的, 而且(我很肯定)这取决于你正尝试解决的应用问题。


当前哪种机器学习框架(Tensor Flow, MLlib, Torch 等等)更让人印象深刻?


机器学习系统不同,目标也大不同,所以,应该选择一个被低估的,而不是我能舒适驾驭的。我想至少提几个突出的框架。


在如此庞大的机器学习生态系统前,R 是很难被打败的, 亚军应该就是scikit-learn。


作为一个研究性的运载工具, 我真的偏爱 VM  [ Vowpal Wabbit (Fast Learning) ]。一些过去论文的清单(见下图)。当然了,我也是个偏见者。相比较其他的系统,VW拥有不同的客户群,因为它突出了联网能力、可配置能力、探索能力和减少指数级运算的漂亮技巧。



现在可能有非常多的机器学习系统,每一个都有自己无可比拟的优点。或许一切都会尘埃落定?不管怎样,CNTK 通过 one-bit sgd 和全局归约结合的方式来实现(可能是)最好的拓展性。Tenserflow 拥有相对简洁的架构,但是,相对新的竞争者们—— Torch 和 Theano 很好结合了最新研究成果,具有更长的追踪记录的特点。


我的期望是,我们会全部从「软件学习」转到 「系统学习」,这和离开汽车的发动机毫无用处是一个道理。一个用来学习的系统会支持数据收集、使用(通过学习)和部署。在这一语境下,我希望我们一直为之努力的决策服务系统会成功。


在机器学习中是否有一个「主算法」?


也有也无。在处理小的数据集上,确实是没有一个主算法,在这样的数据集中具体的数据特别的重要。


有。就我们希望人类能够解决的非常大级别的问题而言,有主算法的存在。这一说法短时间内明显不会被接受。主算法有几个方面,比如,有效地考虑计算的能力,我们正在遗忘这也是典型机器学习挑战之一。


奥卡姆的剃刀也适用于机器学习?


是的。奥卡姆剃刀是个基础,在此之上,你能证明泛化 (prove generalization)。看看这个辅导(http://hunch.net ),源自我的论点。


对于无监督学习来说,流形学习仍然重要吗?或者已经被其他技巧超越了?


说个背景:我引用率最高的论文就是 Isomap,很幸运,在自己还是研究生的时候就参与了这篇论文。我还没有把握。有效的无监督学习相当困难,到目前为止,成功还是相对具体应用相关的。在有好的通用的无监督学习技术之前,没人会很有把握。


本科生怎么做才能成为机器学习、深度学习的人才?


上课,自己独自使用数据集做实验。在 Kaggle(数据分析竞赛网站) 上总能看到一批自我训练的人。重新完成一个简单的学习算法就是为了感觉下在这里面到底会发生什么。这些建议都不是特别新,但你确实需要课程和实践经验。除此之外,我推荐一些专业化内容。机器学习非常广泛,挑选出你最感兴趣的领域,让它成为自己最擅长的。做到这些,你就成为了专家。


产业中的机器学习研究与学术研究中的机器学习,有什么不同?


粗糙地说,机器学习研究趋于注重产业而非学术。做一些影响到人类的事情,通往这一目标的道路上,障碍会少些。


在学术界,每个教授(和他的学生)必须代表他们自己。这意味着,教授间的合作不会像你想象的那么多。一个教授的时间也容易被各种管理任务占去,留给个人研究时间就相对较少。大部分教授的研究都是通过指导自己学生完成的。


在一个好的产业研究实验室里,可能有数个专家水平的人一起完成一个项目,这就能解决很多困难的大型任务。也更容易获取数据集、计算机设施等资源,也会得到很多有能力的程序员的帮助。


不过,学术界拥有一些真正的实力。很多的人单纯的喜欢教课,我也能理解这一诱惑。学生总要有人来教。在不那么过度专业化方面,学术界也非常的棒:即使缺少支持,在学界的某处,某些人也正在用正确的方法进行研究。


编写机器学习程序会变得和写一个常规苹果应用一样简单和高效吗?如果会是这样,让这一变化成真的主要技巧是什么?


我相信有一天会和我们使用图书馆一样简单。为此,你需要一种通过设计避免 Bug 的机器学习系统,这种系统还需要有强健有效的预设值。 LUIS 项目就是一个用积极学习方法解决这个问题的例子。另一个就是我们一直在做的决策服务。后者使用了情景式拉霸技术( contextual bandit techniques )来避免系统偏见,否则你就需要一位数据科学家来解决这个问题。


被监视到的机器学习局限性或者说不足有哪些?


我首先推荐阅读这篇论文《Machine Learning: The High Interest Credit Card of Technical Debt》,它很好的总结了对机器学习的抱怨。


绝大多数深度学习方程并没有严格地将因果纳入考虑,因此在有些情境中机器学习模型本身会影响它自己的训练过程,而当机器学习应用到这样的情境中时就容易失败。能避免这种情况的最简单的做法大概就是情景式拉霸了。


强化学习可以驾驭众包吗?它在处理煽动挑衅言论( trolling )时会不会太脆弱?


我认为可以使用强化学习。个性化是一个应对煽动挑衅言论的有效办法。参见 《Feature Hashing for Large Scale Multitask Learning》。


实现机器学习算法的最好的编程语言是什么?

 

我不知道。


对很多实现(implementation)来说,效率肯定是一个主要关注点,这意味着一种较为低级的语言是相当重要的。如果有的话,最近甚至在向更低级的语言转变——例如使用 Cuda 在 GPU 上编程。于此同时,因为算法改进的(计算)价值,它们继续主导着实现。总的来说,这是个很难的问题,许多最好的系统是通过 C++ 实现的,但同时也结合了更高级的语言以支持更简单的接口。


你认为深度学习会被基于理论的方法取代吗,就像 90 年代核方法(kernel method)取代神经网络一样?


这对我来说就像是打最后一场战争。泛化(generalization)很不错。有时候那可以通过一个深度学习算法实现,有时候则是其它方法效果良好。随着时间的推移,我预计会有更多「防弹的」学习算法被开发出来,这些算法将能在不同的技术之间平滑地切换。也许理论会对此有所指导,但实际上,理论应该专注于解决新问题,而不是老调重弹。


机器学习有什么道德上的考虑?


有一些与你所优化的东西相关的道德问题。难道「把给人们带来的干扰最大化」这样的事真的是目标吗?问题就出现了。


在医疗健康背景中的算法探索(情景式拉霸、强化学习等)涉及到一些道德问题。


还有在隐私数据的使用和确定什么应该是或不是隐私数据方面,也有一些相关的隐私问题。


我不认为这些问题在任何意义上是机器学习所独有的。机器学习只是这些问题产生的另一条途径而已。


关于 Vowpal Wabbit  


在2016年,Vowpal Wabbit 有多重要?


我们没办法精确度量这个重要性,所以,我最好指出它擅长的领域。VW 在几件事上非常擅长,可能在多种应用上起决定性作用。


1. 交互学习。很多的学习算法并未配置到交互设定中,因为它们不够稳定或安全,而且他们没有正确的算法甚至无法工作。


2. 在线学习。绝大部分学习系统都围着把所有数据加载进 RAM ,VW 不这样做——它一边运行一边学习。这对性能的交互调试有帮助——我经常能在数秒内发现一个 bug,而其他系统因为没有反馈可能需要数分钟或一个小时。这也意味着程序在有庞大数据集时不会失败,只不过需要更多时间。


3. 学会搜索。模仿学习方式是非常好的强化学习设定,在其他设定中看起来也相当引人注目。可以看下最近 Hal 发布的博客:A dagger by any other name: scheduled sampling。一个公开的系统,在促成这些方法上非常有帮助。


4. Logarithmic time prediction。这在学习框架中没有很多选择。看最近的论文《Logarithmic Time Online Multiclass Prediction》。


5. 可定制的快速还原。VW 有一个内部的快速还原框架,既快速又非常强大。有时,在定制部署中,这就是你想要的小窍门。



VW 的一些有趣的实践应用是什么?


VW 主要用于文本预测任务,比如垃圾邮件的预测、文本情感分析等。我知道的两个特别有趣的应用是:


1. 电子证据发现:当公司 A 控告公司 B 时,他们总是聘请公司 C 的律师查询信息资料。VW 用于协助过滤好信息、坏信息,这意味着,只用更少的律师就能完成任务。



2. MSN 使用 VW 提供个性化新闻:这锻炼了 VW 在产品环境中的情景式拉霸代码库。


情景式拉霸( contextual bandits)也被用于实践了吗?成绩如何?


是的。我们正在从事的一个应用就是 MSN 上的个性化新闻 ,不过我还知道其他几个应用。如果:


1. 记录正确。


2. 探索工作正确完成。


3. 有足够样本(有关行动数量的,监督学习也需要),


我的经验的是,它就会管用。


不过,上面的说明很重要——我们已经在创造一个系统来让(1)和(2)系统地起作用。有了那种系统,我期待情景式拉霸比监督学习的命中率更高,因为完整的数据生命周期得到了支持。


你怎么看机器学习研究和软件开发之间的相互作用?你开发Vowpal Wabbit 的动机是什么?


因为我是一位失意的理论家,很乐意看到自己写的算法得到应用。


VW 对我的研究帮助很大。除了好用为我带来额外的影响力之外,在很多情况下也告诉我,当前算法的局限性所在,而从理论上来看,这些局限性似乎是非局限性的。还算合格的研究人员与好的研究人员之间的主要区别,就是是否用更好的办法给自己的研究挑问题。


可以怎样将 RNN/LSTM 用于 Vowpal Wabbit?

 

目前还不能(还没有实现)。把这种能力赋予 Wabbit 的「学习搜索」子系统,这看起来像是一个没有脑子的人干的事。


Vowpal Wabbit 的未来看起来如何,你认为像 AWS 这样的云服务会在它们的机器学习套件中使用它吗?


VM 在 AzureML(微软Azure 机器学习工作室)中是可用的,并且也已经有了一些有重要意义的用法。我知道亚马逊曾将 VM 用于它们的内部机器学习服务,但我相信 NIH 能在公开发布之前获胜 :-)

 

我们快要推出决策服务,这将为实现情境拉霸学习提供一种机制。过几周回来看吧。




人工智能以及其他


让你兴奋的研究问题是什么?为什么这些问题很重要?


我最近对强化学习领域的全局性探索很感兴趣。看起来这一领域真的需要更多智力的探索。我从这篇论文(《Contextual-MDPs for PAC-Reinforcement Learning with Rich Observations》)中首次看到了一个一般性公式,通过这个公式我们可以去除所有不必要的指数级样本复杂度。太棒了!但这离我们得到实践上的解决还很遥远。


就能力而言,人工智能现在处在什么位置?在朝什么方面前进?


在识别物体、语音等方面,人工智能都能粗糙的完成。而且在有限的情况下,也有一些有效的策略控制完成任务。总而言之,我认为把所有的成分组合在一起可能达到高等昆虫水平的智商。或许是低等哺乳动物、鸟类?


人工智能肯定正在迈向更高的智能水平,现在有许多看似智能的演示,但是,究其细节,并非如此。最近,我在博客上写了一篇关于这个内容的文章。




去年,你阅读的最有趣的研究论文是什么?


我不能缩小这个范围。这里有些来自上一次NIPS的有趣的东西。



我也很喜欢《 Deep Residual Learning for Image Recognition》。


还有 AlphaGo 发表在自然杂志上的论文(《Mastering the game of Go with deep neural networks and tree search》),他们代表了经验主义的胜利。最近阅读的论文中,我现在最喜欢的是 Contextual MDP 的论文《Contextual-MDPs for PAC-Reinforcement Learning with Rich Observations》。因为我相信智能探索能力只一个基本的障碍,但现在离实践还有很长的距离。


要实现完全人类级别的智能,快速途径是什么?


人工智能是个奇怪的问题。既然进化从不搞大跃进,那么要实现人工智能也不需要多么难的东西。此时此刻,它就是个纯软件问题。然而,几十年来,最聪明的人们历经深思也还没有找到好的解决方案。


通常意义上的做法是找到必要的子问题并以构成(compose)方式解决这些问题。



与此同时避免掉入其他陷进。这比较容易,并不需要真的大跃进,我也期待对问题的逐步解决。



AlphaGo 是人工智能的突破?


是人工智能发展过程中的一个重要里程碑。正如之前取得的里程碑式的成就,越靠近,你反而越了解其局限性。我在下文中讨论过我对这场胜利的看法。




人工智能和机器学习之间的主要不同是什么?


目前人工智能会议上所有论文中的很大一部分都在开发或使用学习算法。大部分机器学习论文都不是关于人工智能的——它们只是关于更好地解决各种数据驱动的问题。尽管如此,机器学习社区中对人工智能感兴趣的也占到了相当大一部分。


人们也尝试过人工智能的其他进路。例如,有些人从逻辑开始,建造本体并试图应用它们。在解决人工智能方面,机器学习看来是正确的道路。机器学习是一种自下而上的通向人工智能的进路。作为这样一种进路,它的局部成功能够帮助导向进一步的成功。


如何利用科技创造出有效系统,替代目前传统高等教育体系?


强化学习是机器学习的一个领域,注重找到优化长期结果的好策略。在以下两个研究方面都有良好的表现,只用相对较少的样本就能给出一致、令人满意的结果。


1. 模仿学习:这里的想法是,一位老师演示如何做某事,结合使用学习算法进行的演示,能大大降低学习难度。有一个极端例子,由一位老师来演示如何解开密码锁,随机搜索所需要的样本数会呈指数级下降。 Drew Bagnell 的论文《 InvitationToImitation 》和 Hal Daume 等发表在 ICML 上的教程都是非常好的参考文献。最接近模仿学习平台的是在Vowpal Wabbit (Fast Learning) 中学习搜索实施方案,但是,在系统配置过程中依然存在一系列挑战。


2. 情景式拉霸(Contextual Bandit ): 这里的想法是,算法智能地找寻替代方案,看看哪些替代方案可行,充分利用可行替代方案高效行善。众所周知,为了创造个性化决策,这些方法要比那些临床测要有效地多。NIPS 上的说明书有更详细的内容 (http://hunch.net/~jl/interact.pdf)。上文提到的决策系统仅仅是一种解决问题的方式。我们还未尝试将其应用到教育领域,但是,它已被用于个性化新闻推荐和个性化健康中。查看更多,请见:



优化学习内容和学习方法以便优化学生的长远幸福,最好的实践办法似乎就是高效利用以上两种方法。这有可能在短期发生(人们学会了一个特定概念?),也可能是个长期问题(得到满意工作了?)随着限制因素成为你可以学习的事件数量。(With the limiting factor being the number of events that you can learn with.)


你目前对于学习还原(learning reduction)的看法是怎样的?它可以向哪些方面扩展


我在《Learning Reductions that Really Work》这里有讨论。从本质上说,我认为去设计那些能够相对于之前的方法指数式地提高计算能力的方法,这是一条好的进路。


你怎么看自然语言处理?当下神经网络不能和自然语言很好地合作吗?


自然语言处理是个古怪的问题,因为语词的信号是明确的,因此,经常不需要更深的结构,或者只用给一小小的提升力(a small lift)。但是,语词也是造出来的,因此,如果你想要一个真的可以创造(而不是操弄)语言的系统,显然会有些难题。


人工智能在威胁着人类吗?


是吗?但是,我认为,其他现有技术也对人类有威胁(在相同意义上)。据我对加密机的了解(是的,我发表过论文),人工智能永远不会是神奇的「统领所有计算机」之类的东西。这意味着天网那种情况几乎不可能发生。我的预期是,人工智能不会具有自主性,而是会变得很勤勉。


经济学家们喜欢宣称,创造出的工作机会与消失的工作机会持平。我不信——要成为对社会有贡献的人,需要接受最低限度的教育,几世纪以来,这个基本教育量一直在稳步上升。现在,如果不接受大学教育,那就太疯狂了。现在的大学教育类似于我年轻时的高中教育。当只有那些拥有博士学位的人能成为对社会有用的人,会发生什么?


曾经有一个计算机科学项目,里面有三十位研究生,我曾是其中一员。挑选这些学生的原因是在于他们有望完成博士学位,并不是每个人都做到了。当无论怎么努力都无法成功时,你会怎么做?


管理好这种发展变化似乎是本世纪最根本的挑战之一。

理论
暂无评论
暂无评论~
返回顶部