本文共 9652 字,大约阅读时间需要 32 分钟。
本文转载自 社区, 和 TalentSeer 的创始人 Alex Ren 采访了 FAIR田渊栋,田博士是知乎上的网红,他在网络上发表了很多文章讲述过去的研究经历。这次采访希望能了解他做研究的一些心路历程。
采访视频地址:
下文是采访的文字整理。
Alex:我个人比较关注田博士的职场生涯,先是做研究,现在做研究管理。众所周知,田博士是知乎上的网红,他在网络上发表了很多文章讲述过去的研究经历。我特别希望能了解他的心路历程。田博士在NIPS2017年发表了ELF(ELF: An Extensive, Lightweight and Flexible Research Platform for Real-time Strategy Games)的论文,请问你当时做这个研究平台的初衷是什么?
田渊栋:初衷是能让内部和外部都能更快地开始使用Reinforced Learning (RL)一类的算法。RL目前的问题是,大家有很多不同的算法,每篇文章都认为自己是做得最好的,但这样使对比变得非常困难。第二个问题是RL很难上手;这跟传统上做image recognition区别很多。假设要做一个分类器,比如在ImageNet上做更好的成绩,即使一个对技术不是很了解的业余人士也可以从网上下到一些代码直接跑起来,并且可以通过一些修改得到更好的结果。这个过程上手非常快。但是像强化学习RL,上手就比较慢,因为需要花不少时间在平台和系统的搭建上,或者让性能提升上。这其实是一个非常大的问题。我自己也想有一些hands-on的经验,能够构建一个这样的系统,对我自身未来的发展有力——出于这两个原因我去做了这个研究平台。
Alex:你认为Reinforcement Learning的研究难点在哪里以及未来的方向是什么?
田渊栋:现在RL有很多难点。RL跟supervised learning相比,RL的方向可以做得非常多。现在只是刚刚起步。比如,现在RL的方法其实并没有脱离《Machine Learning》这本书的范畴,可能唯一的区别就是把以前reinforcement做了30年的工具,换成了function approximate,或把如何估计值函数和策函换成了神经网络,然后就又火了一波。但其实有很多问题还没有解决。比如说如何使析出性在析出了reward的情况下有更好的性能,如何去探索这个世界,如何对这个世界建模,形成一个model base给RL,如何做层次式的推理,如何做planning。我相信这个方向以后会有很大的发展,但现在大家做的只是刚刚开始。
Alex:不知道你有没有关注Google DeepMind在这个领域做的很多投资,他们希望把这方面产业化。你怎么看他们在产业化这方面的努力?
田渊栋:我相信他们最近能产业化的就是 DeepMind HealthCare。我听说最近Google准备take over这个部分,当然内部具体的工作我们都不清楚。产业化这方面,我认为可以在围棋或国际象棋等棋类项目上展开——Google内部应该有一个比较好的国际象棋的软件,就是AlphaGo Zero,但一直都没有公开。其实国际象棋界这方面也受到了很多人的质疑,认为Google用AlphaGo Zero的算法训练出来的软件跟传统的国际象棋软件相比有差距。如果Google可以公开软件,跟人类最强的国际象棋选手或者说软件相比,应该会有很多有意思的事情发生。我相信他们在Healthe Care领域有一些策略,但 目前为止我没看到他们把产品跟RL结合起来的意向。
Alex:今天的题目叫Games as the Vehicle of AI,你怎么看game在AI进步这方面的价值?你创造了很多game相关的东西,你怎么看待你的作品?
田渊栋:Game是AI一个非常好的平台。因为在游戏里,第一是有无穷无尽的数据可以用。数据非常重要,基本上是AI的生命。对于一个神经网络/模型,如果不用数据去训练它,完全不行。像最近的BigGAN,可以生成一个非常清楚,非常好的虚拟的图像,但不是真实的照片。一个很大的共性就是用比原来的方法,比其他文章多一个magnitude,多十倍的数据去训练系统,从而得到一个更好的结果——这是其一。另外从传统上看,解决图像分类的问题,不管用什么样的方法,只要有足够的数据总是能够让运行效果更好。所以数据非常重要,所以reinforcement learning如果没有数据也更难做。游戏其实是一个很好的环境,通过这个环境把数据标定的问题转化成一个游戏环境模拟的问题。那模拟的问题就不再需要人去标定,这样的话可能需要计算资源,类推就可以了。这在很大程度上减少了负担,是一个非常重要的点。另外,游戏其实跑起来比正常的摄影要快得多,可以不停地跑。比如robotics,因为robotics一个simulator不太好做,所以很多时候还是需要真的机器去抓东西。像Google Robotics,可能需要十几台,几十台这样的robots在里面抓,然后把抓到的experience存下来,放在一个存储库里面训练。这都是因为目前没有足够的数据去训练,所以游戏在这部分的优势很明显。
Alex: 像无人车这种仿真也是使用了类似的方法吧?
田渊栋:我希望是这样,但是无人车仿真,需要量化怎么去建模人和人之间的关系,怎么样去建模人和车之间的关系。因为行人的预测或者说行人的行为方式不可控,在模拟的过程中可能会有一些偏差,这是个很大的问题。
Alex: 大部分engineer,都经历过一个角色的转换,从ic(individual contributor)到team leader或者manager,你现在作为一个团队领导,怎么看当初从一个individual contributor到一个manager的身份转变?有些人会有一种常见思路,当了team leader之后感觉不舒服,因为以前自己能做的事情现在还得去教别人,还不如自己做更快。你怎么看?
田渊栋:我觉得这是一个很磨练人的过程,对人的思维方式和思考问题的角度有一个很大的提升,非常重要。开始时,我也觉得组里的人怎么做这么慢,要不我来吧。但这其实不好,首先组里的人觉得你做得很快,那他/她的升职空间受到了阻碍——
Alex: 有挫折感?
田渊栋:对,有挫折感,另外就是不可能一辈子所有事都是你自己来做。和人合作以后,整个能力scale的扩展程度可以非常大。一个人一天毕竟只有24个小时,即使不吃不喝不睡,也只有24小时做事情。如果和别人去讨论去合作,最终找到一个合作的点,大家都会很开心。其实周围的聪明人很多,跟别人合作就会发现他的idea和你的idea之间是互补的关系,或者它们之间是一些相互促进的关系,从而意识到合作的重要性。这样可以让一个人去撬动更大项目,或者说更大的方向,这是非常重要的一个因素。当然我自己还是会尽量去写code,还是会经常去做一些一线的工作,但同时也要意识到,不可能一个人包办所有的工作。像这个OpenGo的project,一开始的代码90%是我写的。写完之后等到团队的士气带起来,大家发现这个方向真的可以做出来。我就放手了。虽然大家不知道能不能够复现谷歌的结果,但已经士气高涨——谷歌游戏当时的结果大家都觉得很难做出来,但依然实现了。我写代码其实是起到一个带动的作用,大家看到了有效果的苗子,自然而然就会有人愿意去真正从头到尾把它做出来,这就是很重要的带动作用:让很多人愿意为了这个项目去花时间花力气做好。
Alex:我的理解是,这个过程是如何把自己的个人能力scale到你的团队,使得团队更强,能够做更大的事情?还有一个比较challenging的问题:从大概2016年后,AI创业的浪潮非常猛烈,国内很多AI researcher都去创业了,为什么你没有去创业呢?我作为一个投资人也很想听听你的想法。
田渊栋:我认为现在是一波AI的hype,对于AI,大家的期望值高于AI实际的能力,所以大家都在做AI。有一句话说得很好,如果大家都在做这个事情,就不要做这个事情。我在知乎上还曾写过一篇文章,讲“我们要给AI泼冷水”。业内人都知道,AI现在并不是特别厉害还有很多问题。像无人车,我离开的时候给整个组发了封信,说我觉得我们每个人都像一个neural,然后back-propagation,我认为这个事情不能这么做——没有人回复我的评论。那时候是2014年,我认为这是一个大问题,我觉得我应该去做AI,但不应该去做一个neural投资自己的作用。这其实也是我对自己的角色定位。既然已经看出了问题,我当然也不会去赶这一波。因为最好的创业环境是这样:等大家都觉得这个东西做不出来的时候,你发现有一条路是可以走出来,那才是最好的机会。当然这个时候可能现在还没到。作为像我这样接触过一线科研的研究员来说,每天都要看很多文章,了解技术行业的最新进展,比如,每天有一篇arXiv的paper上来,马上就拿来看一下有没有问题——把arXiv当成新闻来刷。这样的经历使得我们比别人更有直觉,知道什么样的东西可能有效,什么样的东西可能无效。也就是说第一线知识是在我们这根线上,等到我们发现这东西有效,再过一点时间发现可以做出来。随后慢慢大家都会看到这个方向是对的,之后我们再给大家code,大家就会知道具体怎么做。所以我们这边应该是一个最敏感的前线。
Alex:我认为田博士是典型的管理思维。我自己长期在中美两地跑,在中国看到的情况会不太一样。比如说靠谱的AI researcher普遍认为目前AI有很多不靠谱的工作。但是,凡是碰到的startup founder基本都认为AI无所不能。其实我认为这种现象是合理的,因为在中国这个市场,很多人实际做的是挂羊头卖狗肉的事情,比如技术是featuring AI,但是做的产品是整个全流程的solution。我有AI,但是我卖的是solution——这个跟硅谷的思路完全不同。硅谷希望找到一个cutting-edge technology to enable这件事。而中国可以说,如果有一个AI的medical imaging技术,将做出来的solution直接卖给医院,所以更关心的是要借这个机会去占领市场。这些创业者从VC那边拿到很多资本,所以可以打败传统做IT solution以及做医院解决方案的人。例如安防的micro image,虽然很多公司是AI或者featuring AI,但实际上做的是整套产品。所以我想从basic角度来看,中美市场有不同的特点,毕竟中国市场有很多东西依然比较空白。这是我对田博士的观点的一个补充。
田渊栋:对。 虽然现在我有一部分时间在管理上,但是我总体还是比较偏技术,还在扮演着tech leader这样的角色。比如说给大家一些career path advice,或者说做一些management跟大家协调一些工作。但总体比较偏技术,跟business还是没有太大的关系。
Q1:田博士你好,我在自动驾驶行业工作。请问你对Inverse Reinforcement Learning怎么看?
田渊栋:Inverse Reinforcement Learning是一个分支,就是说怎么通过已有的human demonstration,比如说人会给一些展示,把这个问题做好,然后通过展示人的一些demonstration,反过来去推环境里边的reward,dynamic。我当时跟Chelsea Finn聊过一次,她跟我说这个其实不太好做,因为Inverse Reinforcement Learning的主要问题就是它的frame work reinforcement这个reward到底怎么assign到其他各种不同的地方,这个assignment其实随机性很大。此外,Assign之后还需要训练一个新的reinforcement model, 你做Inverse Reinforcement Learning你会发现,它有一个double的 for loop。里边的for loop就是现在的reward function,我们先要求我们最后的policy是什么,然后外面的for loop就是给定现在的policy找到一个好的reward function。因此它的计算量很大,所以没有那么好做。有些时候可能还不如直接做imitation learning,比如说自己define一些简单的reward就可以了。这个方向现在也在发展中,所以还是要关注一些文章,也许会有一些新的解决方法出现。
Q2:田博士你好,我也是无人驾驶领域的——我发现你最近很多文章都跟这个有关。上周你有一篇文章非常火,主要关于Waymo的老大公开认为无人驾驶不行。你以前也在Google工作过,我想问一下你对这个的看法。你已经离开Waymo 5年了,在做Reinforcement Learning,我想知道你现在回头去看,认为Reinforcement Learning对无人驾驶有没有一些新的帮助?谢谢!
田渊栋:我认为对无人驾驶帮助最大的不是Reinforcement Learning,而是Deep Learning。因为有了deep learning之后,很多问题——比如行人检测,比如预测对方车辆行为或者车道预测——都变得更容易做了。而且所有的方法都有同一个框架可以用,这是一个很大的boost。我个人觉得RL到目前为止对无人驾驶并没有那么重要。因为无人驾驶其实是一个非常特定的方向,比如让一辆车怎么样右转,那么右转的话,需要对这个车有非常好的了解,这样才能明确方向盘往哪边打多少,车会往哪边走。所以要求建立一个非常精确的模型,用这个模型可以做想要做的任何事情。这个时候并不需要reinforcement。Reinforcement 还有一个问题就是数据量需要很大,但是无人车现在最大的问题就是数据量不够。可能开了几千英里,但是大部分数据都没用,有用的是那些马上要出事但还没出事的数据。因此,现在我觉得RL现在更大的用处是在一些不是很敏感的领域,比如说广告或者application以及做优化。在这些领域,RL会是一个更靠谱的应用方案。无人车领域应用RL目前还是比较难,需要先把对神经网络的理解加深,然后再去想做RL。
Alex:关于无人车Waymo的话题,我也比较关注。我echo下田博士之前讲的那句话——如果大家都这么认为的话,你可能要想一想为什么。整个资本界对于无人车的态度很热,SoftBank投了很多钱给Cruise,Honda也投了大概1billion左右给Cruise,Waymo自己也买了大概有8万到9万辆的车去改装做无人车。投入估计起码在3billion美元以上。美国市场现在显然是Google和Cruise在lead,而且更多资本还在不断投入,甚至开始double down,下重赌注进去。所以他们讲的话,你可以大体忽略不计,因为Waymo自己作为top的公司可以说“你们后面的人不要做了,我自己做就好了,但不要当真。因为你要看他们在做什么,而不是看他们说什么。他们自己投了几个billion,把整个balance sheet放上去去投资,并且没有进行外部融资,已经说明了问题。实际上大家已经选择了这个领域,发现了这个领域可以改变,所以已经在跟着下重注。至于这个事儿最后能否做成,谁也不知道。但是资本界是这样一个状况。
Q3: 但是市场的变化并不代表技术的变化。很多时候技术的难关并不是因为市场资本的操作就能够改变的吧?
Alex:对! 我从一个行外人士是这么看的:第一波出来做AI创业的人都是AI的researcher,大部分是在学校里或者是企业里做AI research的人。他们中很多人一开始做的是AGI,就是artificial general intelligence,希望做出一个AI可以做任何事情——语音识别,无人驾驶,图像识别等等。但是做了一段时间以后发现不奏效,然后他们发现有些领域可以做,比如做安防里边的识别,无人驾驶里边的内容,或者是自然语言处理。投资以后发现某些领域可以继续发展,就在这个可以继续的赛道上投更多的钱。所以并没有说这个东西在技术上是实现了还是没实现,技术上是否实现只是相对现在而言,只是对于某个问题来讲是可以还是不可以。现在大家开始知道某个领域可能work,所以开始产业化。产业化的时候,很多公司开始narrow down到一个很小的领域里,比如从个人助手细化到了客服。举个例子,买了手机之需要激活号码,这么简单的事情其实要花费很多的人力,但如果用AI做就很容易——这个就是所找到的某个细分领域。这个不是技术问题,而是关于大家怎么看这个问题,怎么样选择用对的技术去解决的问题。当然对做技术的人来说,要grasp a big problem,需要时间。像无人驾驶这样的问题就非常难,但是它的市场诱惑力太大——万亿美元的市场,所以大家愿意继续投下去。
田渊栋:对,我这边的观点还是比较偏技术的,Robin.ly那边就比较偏business一点。所以大家各取所需。
Q4:田博士你好,我有两个问题。第一个是,在Facebook FAIR research team内部,你们的research和development是怎么样的一个周期?包括FAIR跟Facebook自己的Applied Machine Learning engineering team是怎么合作的?
田渊栋:这个要具体问题具体分析。首先项目周期是什么,项目的周期很随意,没有特别严格的说半年一定要有东西出来。我的感觉是,基本上从开始立项到有一些初步结果需要至少半年——这只是一个rough number,无论做的快慢还是一开始有多少雄心壮志,总是需要有这样的一个时间去摸索。一般来说可能要花半年,然后做一篇文章或者几篇文章出来,接下来就看这个方向到底对不对,可不可以继续往下走——像Planning的话我们内部是半年evaluate一次,所以也会按照这样一个时间去考虑什么样的项目可以做。第二个关于合作,还是比较随意一点。我们这边的FAIR其实是比较偏research的,还有一个部门叫Applied Machine Learning,相对比较偏产品,但是彼此有很多合作,特别是在vision。Vision已经是一个比较成熟的方向,现在有deeplearning,有complement infrastructure,所以也很方便。比如FAIR的vision组做了一个很好的模型,那么同样的代码就可以直接transfer过来,可以在大数据上再跑一遍或者说微调一下,在产品上可以做work。实际上是一个非常平顺的过渡,所以这种合作是非常常见的。RL这边很多时候需要我们出个主意或者给个建议。
Q5: 会不会觉得engineering team有时候做得东西有点 low?
田渊栋:没有,我从来不觉得engineering team做的东西low。第一,像OpenGo这个项目,本身engineering性质的任务非常重,但我不觉得花时间做OpenGo这个项目是浪费我的时间。我觉得这是一个非常重要的方向,我愿意花时间去探索。所以我不觉得engineering work是一个second level。另外,现在research和engineering很多时候需要merge,因为好的工作都是一个good combination of research and engineering,Google的很多工作就是这样。并没有说我们只要想idea,然后下面的人干活就可以,这样对统一士气会有影响, 士气受影响会是一个很大的问题。如果希望别人follow这个方向,你就要展示什么叫leadership,你得有他/她看不见的东西,或者说你能做别人做不了的事情,让别人觉得心甘情愿的认可你,要跟着你走而不是靠。这样的话才是一个很牢固的relationship。
Q6:田博士, 我在Nvidia做vision的研究。在vision领域现在有一个方向是做人类检测,因为vision的很多项目有时候缺少数据,要先从synthetic的数据入手。所以要首先train,然后transfer到real的数据上。我想问:RL现在都用GAN做,就是用synthetic的数据做,那么这也面临了一个domain transfer的问题。那你觉得RL的domain transfer的问题跟一般vision的domain tranfer的问题有什么区别/不同?这个问题会不会更难解决,或者有什么特别的方法去解决这个domain transfer的问题?
田渊栋:我觉得这个是一个很好的问题,非常专业。主要包含两个问题。其实RL这边的domain transfer包含两部分:一部分是说图片要怎么样transfer过来,假设在trainagent的时候,用的是一个比较虚拟的环境,那么虚拟环境中图片的质量和真实世界中图片的质量不同。这个问题我认为不是特别难解决,我们大不了可以在vision这边先pre-train一个模型,这个模型的输出作为RL的输入,这样的话tranfer相对来说就比较容易。比较难的地方是dynamics transfer。假设有一个robot,这个robot有一个simulator,但这个simulator跟现实世界的不一样,有很多现实世界的物理量或者物理过程没办法模拟,比如说一个机械手的摩擦力,每个地方的参数,这些值跟现实世界都不一样,跟虚拟世界也不一样。这种情况下一点点的参数改变就会导致整个算法的结果不同,这个是更难的问题。最近我们看到有一些transfer的文章,比如说OpenAI最近有一个机械手,train了大概50天。主要用的是在一个simulator的environment,生成了大量的机械手跟立方体互动的一些trajectory,然后拿这个去训练。最后发现可以拿真的机械手把立方体转过来转过去,变换orientation。做simulation的时候有很多地方要做randomalization,比如说把机械手的一些dynamics做一些模糊化处理,或者加一些噪音,通过这种方式让整个系统变得稳定。这是目前为止比较可行的方法。文章里面有很多的domain randomization,甚至包括考虑电池没电时候的actuation,jointforce强度会发生变化,这个也要做randomization。把这些因素全都考虑进去,最后这个model才会有用。主要问题是没有办法降低samplecomplexity,就需要大量的数据用大量的机器去跑。我记得OpenAI用了5000块GPU,大概跑了50天,最后跑出来了。而OpenAI Five的人用了大概12万8千块GPU去跑。这个过程需要大量的data去堆,把那些不确定性,把那些dynamics上的model铺好的东西给砌平,然后才能transfer。这是目前的情况,虽然希望有更好的办法,但是现在还没有。这也是大家都在努力的一个领域。谢谢大家!
Alex: 相信大家也想和田博士线下一对一的交流。我们的活动到此结束,感谢大家的关注。下一次活动将在12月15日,邀请Google Brain Principal Software Engineer 吴永辉博士来分享关于NLP以及Machine Translation方面的内容,欢迎大家保持关注。
查看原文链接: