李林 允中 编译整理量子位 出品 | 公众号 QbitAI

刚送走一年一度为苹果纳肾发布会,又迎来了一年一度Google Brain AMA。

这是Jeff Dean第二次带着Google Brain参加美国最火社区Reddit的在线问答活动AMA(Ask Me Anything)。想深入了解谷歌大脑,围观AMA是不容错过的机会。

 正在答疑的Google Brain团队    来自他们自己的动图应用Motion Stills

参与这次线上答题的,除了Google Senior Fellow,Google Brain负责人Jeff Dean,还有:Google首席科学家,Google Brain团队技术负责人Vincent Vanhoucke;Google Brain研究员,Yoshua Bengio的兄弟Samy Bengio等20多人。

不过至量子位今早截稿时,Google Fellow、Google Brain成员Geoffrey Hinton据说因为太忙,还没有亲自参与回答。不过他同组的研究员帮忙代答了一些问题。

回到今天的AMA。量子位连夜围观,第一时间搬运了下面这些干货。

我们分类整理成几个部分:

  • AI研究的未来

  • 以及现状

  • 关于TensorFlow

  • 还有TPU

  • Google Brain的架构如何

  • 工作体验又是怎样的

  • Hinton最近研究进展

开始~

AI研究的未来

AI领域接下来面临的最大障碍有哪些?Google Brain的同学们上线答题之前,这个问题就已被顶到很高。

Jeff Dean上线回答:

目前,我们会倾向于为解决一个或者几个特定任务(有时候这些任务非常困难,比如语言之间的翻译),来构建机器学习系统。

我认为我们真的需要设计一个机器学习系统,能解决数千个、甚至数百万任务,也能从解决这些任务的过程中积累经验,学会自动解决新任务,而且模型的不同步可以根据任务来稀疏地激活。

在弄清楚如何解决这个问题的道路上,我们还面临很多挑战。今年年初我在斯坦福的规模化机器学习会议(Scaled ML)的演讲中有一些关于这个问题的资料,从PPT第80页开始(背景资料从62页开始)。

PPT地址:https://www.matroid.com/scaledml/2017/jeff.pdf

Vincent Vanhoucke补充:

让深度神经网络适应弱监督数据的在线更新(稳定!)依然是一个巨大的问题。解决了这个问题,才能搞定真正的终身学习,也能打开很多新应用的大门。

另一个巨大障碍是,这个领域中很多最激动人心的进展,比如说GAN、深度强化学习等等,还没到它们的“批量标准化”时刻,这个时刻到来之后,一切都默认就“想要训练”,不再需要一个超参数一个超参数地调整。

这些进展还不够成熟,还没从有趣的研究转变成我们可以依赖的技术。现在,我们还无法摆脱大量精确的调参工作,对这些模型进行可预测的训练,这导致我们很难把它们用到更复杂的系统中。

 Jeff Dean本尊

Google Brain研究员,Yoshua Bengio最强博士生之一Nicolas Le Roux回答:

摆脱监督学习还是很难。我们知道强化学习等弱监督方法,但效率很低,而且需要大量数据,很难扩展到更复杂的问题上。

为了解决这个问题,我们需要提出更好的探索策略和积极的学习方法,来在保持训练可管理性的同时,获取相关信息。

有网友继续提问:通常大家只谈论数据集、代码的开放和复现,但是很少有人会提到计算资源。Google有大量的资源投入在AI/机器学习研究之中,比方AlphaGo就用了300个GPU进行训练。大部分研究者没有这么强的计算资源,这是否会带来消极影响?

“我经常听到研发人员抱怨Google喜欢搞这种大规模且相当愚蠢的解决方案”,针对上面这个问题,Vincent Vanhoucke回答说这些人认为Google只是投入了大量资源,但没有效率,称不上是“聪明”的成果。

他进一步解释说:许多伟大的进展,都发端于成本高昂的研究,然后让所有人都知道,进而开始着手进行优化。Google的第一个深度网络,训练一次要几个月,运行速度更是慢的跟牛一样。然后发现加速的方法、改进架构,现在大家都在用了。

“对于我们来说,重要的是探索可能的边界,我们的终极目标不是在跑分测试中获胜,而是要推动科学的进步。”

而Google Brain研究员、Geoffrey Hinton的学生George Dahl说:

我们都想要更多的资源,不过,资金充裕的学术实验室现在确实能获得很多计算资源,做很多有意思的研究。

学术界,以及所有做开放研究的人,如果能获得更多计算资源,当然是好事,这也是我们推出TensorFlow Research Cloud(TFRC)的原因,TFRC会向机器学习研究界提供每秒180千万亿次浮点运算的计算能力,还免费。

总有些实验室计算资源比别人多一点,这些实验室的研究者有资源去做一些大规模实验,只要研究结果发表出来了,这个圈子都受益。这也是我们坚持发表、传播我们的论文的原因。

AI研究的现状

有一个问题,Google Brain团队回答得非常踊跃:你们觉得哪些项目excited?为什么?

Nicolas Le Roux对高校大规模优化感兴趣,想了解如何以在线方式从包含少量信息的数据点来手机和保留信息,来确保训练快速高效。

Fernanda Viégas说对人类与AI交互中的各种可能性感兴趣,期待各种不是机器学习专家的人进入机器学习前沿领域,开辟新的可能性,比如社会学家、历史学家、建筑师、舞者……

PAIR(人类+AI研究计划,People+AI Research Initiative)项目的Martin Wattenberg也关注人与机器学习系统的交互,不过和Viégas不同,他关注的是普通人,与机器之间互动的新途径。

Vincent Vanhoucke关注的是机器人领域,他认为建立模拟和现实世界之间的连接非常一颗赛艇,现实世界中很难给机器人reward,但是通过把机器人问题转换成大规模机器学习问题。

Jascha Sohl-Dickstein从理论研究的角度来看,说有四方面正在进行的研究,包括:表达——深度神经网络可以计算什么类型的函数?如何映射到我们想模拟的现实世界?可训练性、泛化、可解释性。

Jasmine Hsu说在机器人操作研究的模仿学习中还有很多工作可做,对模拟与现实世界迁移的研究也在快速变化,内在动机的积极强化学习也是他的兴趣所在。

也有人要求Google Brain团队谈谈用深度学习解决问题过程中遇到的失败或者痛点,如果是大规模监督学习就更好了。

Vincent Vanhoucke

我们有几个人试着和《纽约客》漫画编辑Bob Mankoff(我看他今年还发了一篇NIPS论文)合作,用这本杂志上的漫画训练一个神经网络标题生成器,给漫画写说明,结果就不太好。甚至一点都不好玩。

按深度学习的标准,就算可以在其他形式的漫画上对视觉表现进行预训练,我们的数据量也不算大。

我还是希望有一天能赢得《纽约客》那个给漫画自动生成标题的比赛,但可能得用一些传统的方法了。

Bob Mankoff的NIPS论文:https://arxiv.org/abs/1709.03570

 Bob Mankoff

Google Brain高级研究员Greg Corrado说:

明确地说深度学习在某某任务上不行,我是很紧张的。比如说2012年的时候,深度学习做不了机器翻译,四年过去了,它又大获全胜。

当我们尝试某种方式,发现不行,我们会后退一步喘口气,可能换个角度再试一次。

有些问题确实不能被看某个可用数据集上的监督学习,在这种情况下,深度学习这个锤子确实不管用。

同样一位用户,还问了个关于无监督学习的问题:Google Brain团队怎么看目前无监督学习方法的状态?你们认为未来几年会有概念性的重大进步吗?

Vincent Vanhoucke

人们终于意识到自动编码(autoencoding)是个坏主意了。

可行和不可行的无监督学习之间的区别在于,像语言模型这样可行的无监督学习,通常是预测有因果关系的未来,比如说下一个词、下一帧图像,而不是像autoencoding那样预测现在。

我很高兴看到,有不少人已经开始用我们去年开源的push数据集,对“预测未来”的工作做基准测试了,真是没想到。

push数据集:https://sites.google.com/site/brainrobotdata/home/push-dataset

Yann LeCun也对他那个“樱桃vs蛋糕”的说法做了修改,不再是关于无监督学习,而是关于预测学习。

关于Google Brain目前在做的研究,有网友问得非常细致:你们有生物学或者基因组学方面的项目吗?

还真有。

Pi-Chuan Chang说,Google Brain深入参与了一系列生物学和基因组学的项目,比如通过眼底照片来筛查糖尿病视网膜病变,从病理影响中识别癌细胞,用深度学习从下一代DNA测序数据中筛查遗传变体。

他们最近还创建了一个基因组学团队,Alphabet里也有其他团队把深入学习技术用在生物数据上,比如Google Accelerated Sciences、Verily Life Sciences、Calico等等。

关于TensorFlow

去年,关于TensorFlow的问答还主要集中在“你们什么时候支持XXXX”上,而今年,由于PyTorch的快速普及,网友开始关心起更深层的问题:

你们怎么看PyTorch?用过吗?担心自己地位不保吗?还是把PyTorch看做TF的补充?或者反过来?

Google Brain软件工程师Alexandre Passos

我认为PyTorch很赞!

他们做得不错,UI简单,文档写得也很好。在他们的编程模型里有很多好想法。有更多人在做机器学习库是一件好事,我们愿意看到更多想法,然后试着从里面挑最好的来用。

TensorFlow工程总监Rajat Monga

机器学习圈子很赞的一点就在于:我们会互相学习。

创建TensorFlow的过程中,我们从自己过去做DistBelief的经验、从像Theano那样其他的框架都学到了很多。我们还在继续向PyTorch、DyNet这些新的框架学习,也在把这些想法用到TensorFlow上。

我们把TensorFlow看作推进机器学习边界,把机器学习带给所有人的工具,这个圈子里的研究和想法在进步,TensorFlow也在。

你们会支持ONNX吗?

有人提到这个问题。9月初,微软和Facebook合作发布ONNX(开放神经网络转换)工具,能让模型在框架之间迁移,目前支持PyTorch、Caffe2和CNTK。*

Jeff Dean有点傲娇的回答了这个问题:

几天前他们在博客上宣布的时候,我们知道了它。我觉得如果有重大用途,TensorFlow开源社区会实现支持。

2015年11月TensorFlow就开放了源代码,我们保存/恢复模型数据和参数的格式,早已公之于众。

你们会为TensorFlow和机器学习建立一种标准代码风格或者编程方法吗?人们怎么写的都有,有的好难看懂。还有,Keras被放到TensorFlow里,是不是Learn就该滚粗了?同时包含两个高层API怪怪的。

wickesbrain

我能给出的最好的通用建议,就是始终用最高层的API来解决问题,这样你就能自动用上我们在背后搞出来的改进,写出最不会过时的代码。

关于Keras,我们现在有了一个完整的tf.keras,正在努力将Keras和之前的TF概念统一起来,已经快完工了。我们想让tf.keras只需要把完全实现Keras API所必需的符号收集到一个地方。

请注意,Keras并不能解决所有用例,特别是在分布式训练和更复杂的问题中。这也是我们为什么需要tf.estimator.Estimator。

我们将继续改进Keras和这些工具之间的整合。

我们很快就要开始从contrib里去掉一些东西,包括整个contrib/learn。不过,很多人都在用这个,删除它要花些时间,我们不想随便弄坏让人家的模型。

关于TPU

有关硬件的问题,一定不会缺席。去年问过的芯片,这次再度来袭。(这个flow怎么样?)

关于TPU你们有什么新想法?未来5-15年机器学习硬件会有什么改变?

去年就有人问过TPU这件事,当时Jeff Dean相对详细的介绍了一下进展。今年5月17日,第二代TPU发布,不过AlphaGo的计算,还是基于第一代TPU。量子位也有相关报道谈到这些:《新AlphaGo首度揭秘》、《详解谷歌第二代TPU》等。

这次Jeff Dean没有过多回答TPU的新进展,再次介绍了云端TPU目前免费向研究人员开放申请使用。对于未来的发展趋势,Jeff表示:

机器学习硬件在未来5-10年(和以后)将是一个非常有趣的额领域。对于更多计算力的需求很大,专业化的线性代数精度降低可以加速大批深度学习模型。针对机器学习优化而创造的硬件,可以提供非常好的性能并提高能效。

有很多大公司和一大批初创公司在这个领域各显神通,这非常令人兴奋。它们提供的硬件包括用于移动设备的低功耗机器学习硬件,以及部署大型数据中心的机器学习超级计算机等。

下一代TPU何时推出?Google会卖TPU么?它能取代GPGPU么?

“我们已经推出了两代TPU,欢迎猜测未来的趋势 = ) ”TensorFlow产品经理Zak Stone回答了这个问题。(量子位插一句:实际上,过去新一代TPU都是在每年的Google I/O大会上发布。)

Stone继续补充:TPU目前只计划在Google的数据中心进行部署,我们还在大量使用GPU,并且努力让TensorFlow支持最新的GPU,比方英伟达的V100。这个领域变化很快,没有迹象表明某个平台可以通吃一切。

“另外GPU在机器学习之外还有很多其他用途,另外对于浮点精度有很高要求的传统HPC计算领域,GPU仍然是一个更好的选择。”

Google Brain的架构

去年的AMA里,就有网友问过Google Brain接下来几年将如何发展。

Jeff Dean没有真的去预测,反倒是通过回顾团队近几年做的事,选了这么几件来说明未来的发展方向:

在机器学习领域做各种研究并发表论文、机器学习研究培训项目、TensorFlow、和Google内其他研究及产品团队合作、将机器学习用于机器人研究、尝试将机器学习用于医疗。

Google Brain的团队是怎么构成的?以及怎么运作?

Samy Bengio

Brain团队的研究员、科学家自己制定自己的研究方向,而且我们鼓励研发人员们携手合作,共同解决更大的目标。我们确实有一些非常扁平的管理架构,但不总与研究项目保持一致。大家的协作通常与项目小组有关,而不是管理层级。

我们还在团队中增加了一个人数不断增加的职位:R-SWE(research software engineer),即研究软件工程师。R-SWE的工作包括规模化给定的算法、实现基线算法、运行各种实验等等。

我们会定期举行整个团队的会议,每周只有一次。我经常通过视频会议的方式,与山景城、旧金山、蒙特利尔、剑桥、纽约、苏黎世的同事见面。

量子位今年6月底统计过一次,Google Brain当时共有正式成员48名(不含实习生),想知道他们来自哪国哪校、在研究什么,推荐阅读《谷歌大脑揭秘:48名成员20大研究领域》。

Google Brain和DeepMind,为什么不合并?

这个问题George Dahl首先详谈了一下:

两个团队有常规的合作,Brain团队大部分在加州,DeepMind团队大部分在伦敦,时差有时候会带来挑战,但我们仍然找时间一起合作。

我们不认为同时保留这两个团队是种浪费。与两个相互竞争的产品团队不同,两个研究团队可以基于彼此的研究,很好进行协同。我们像在学术界一样,拥有高度的研究自由。两个团队也没有研究领域的划分,大家都是根据兴趣和任务来展开工作。

而且两个团队规模都足够大,可以自我维持,没有必要合二为一,那可能反而更难管理。除了DeepMind不负责TensorFlow,两个团队没什么太大差别。

Jeff Dean随后简单补充了一下:

去年我回答过这个问题了。

(量子位总结一下去年Jeff Dean的回答:DeepMind喜欢挑一个难题入手,在可控环境中展开研究。Google Brain从更为系统的层面入手,包括工具和基础设施。两个团队有合作,但时差让合作比想象中难一些。)

在谷歌大脑工作是怎样的体验?

这几乎是一道必答题:聊聊你们团队的日常吧,选人标准是什么?

软件工程师Alexandre Passos说:

我是一个TensorFlow开发者。大部分情况下,我的一天都是从阅读和分类电子邮件开始的(Google这邮件特多)。我喜欢上stackoverflow看看有什么关于TensorFlow的问题,找些有意思的回答一下。我们天都花好几个小时写代码和调试,这比我之前想象中的少。我也参与了一个研究项目,很快能发论文。所以最近我不用参加太多会议。

Nicolas Le Roux,Google Brain研究员,Yoshua Bengio最强博士生之一。

我是一名在加拿大蒙特利尔的研究员。我的工作包括:与本地学术实验室建立联系、展开自己的研究、指导初级研究人员。我每天至少花一小时看看最新的论文、研究博客或者浏览arXiv。也得从会议和邮件中脱身,集中精力想想自己的项目。其余时间用来和其他研究人员交流讨论,参加会议和学术圈的活动。(我是NIPS今年的地区主席)

Google Brain软件工程师Nick Frosst

我在多伦多办公室。我们是一个很小的团队,都坐在一起,有很多时间互相讨论新的想法。我所有的工作几乎只在TensorFlow中展开。我每周和主管有两个会议,小组每周有一次会议。

Jeff Dean

我领导着Brain团队。每天我都得花时间读写电子邮件,读、评、写技术文档;和团队以及整个Google的人进行一对一或者团体会议;审查代码、写代码;思考影响团队的技术或组织问题。我有时会在内部或者外部演讲。

Sara Hooker

我是今年的35名Brain访问学者之一。我的一天经常从项目早餐会开始,余下的时间我会阅读相关领域的论文,用TensorFlow写代码,以及与我的导师和合作者见面。我经常拉着相关的同事,一起吃个午餐或者晚餐。

去年的访问学者Colin,把他的经历更完整的写出来了。(详情可以参考量子位发布的这篇:《我在谷歌大脑这一年》)

Samy Bengio

作为研究主管,我大部分时间都用来引导团队研发重要的问题,与研究员们会面,讨论想法、了解进展、制定计划等。我还内部外部组织了一些研究活动,例如阅读小组和定期会谈。最近,我忙于NIPS程序主席的工作。

Katherine Chou

我是Brain医疗健康研发团队的产品负责人。我的时间分配在三件事上:1、研究可以提高医疗准确性和可行性的AI方法 2、与医疗从业人员进行沟通 3、找到技术落地的方式。

除了上面列举的几位,来自Google Brain旗下机器人、基因组学等团队的工程师们,也纷纷回答了这一问题。

Hinton的Capsule

capsule:胶囊,是Geoff Hinton这几年投入了最多心血的课题。

在去年的AMA中,Hinton就谈到过“基于capsule的神经网络”,说他在Google这3年,在这项基础研究上投入了大量精力。

今年,这项研究似乎有了重大突破。

Hinton上个月在多伦多大学讲“卷积神经网络的问题及对策”时,就谈到要在现有神经网络结构的基础上,加一个capsule的层级,每一层网络的神经元组成capsule,在内部做计算,然后输出一个压缩的结果。

NIPS刚刚公布的接收论文列表中,也有Sara Sabour、Nicholas Frosst和Geoffrey E Hinton合作的Dynamic Routing Between Capsules

今年,关心capsule的网友也不少,甚至直接点名Hinton来问:

capsule怎么样了?

不过,Hinton没有参加今年的AMA,前边提到那篇NIPS论文的二作、Google Brain多伦多团队的Nick Frosst把(可能是)他们团队一起写的答案发了出来。

Nick Frosst

Geoff现在很忙,不过今天早上,我们一起写了这个答案:

capsule进行得很顺利!

我们组有5个人:Sara Sabour、Nicholas Frosst、Geoffrey Hinton、Eric Langois和Robert Gens,在多伦多办公室,取得了稳步进展。

capsule是一组神经元,它们的活动向量表示特定类型实体(比如对象或对象部分)的实例化参数。

我们的一篇论文最近中了NIPS spotlight,其中将capsule之间的动态路由作为一种衡量低级特征之间一致性的方式。

这一架构在MNIST上实现了最好的性能,而且在识别高度重叠的数字时,明显比卷积神经网络好得多。

我们还在研究新的路由方法,在NORB数据集上取得了不错的结果,同时也在研究新的capsule架构,可以在输入空间中保持与给定组的等价性。

希望这些研究结果也能很快发表。

OMT

最后,还有一问:去Google Brain实习有年龄限制么?我今年都40大几了 :)

Jeff Dean:2012年夏天,我请Geoffrey Hinton作为访问研究员加入团队,但由于中途出错,他当时被列为我的实习生。所以你看,我们对实习生没有任何年龄限制。

我们要求不多:天赋异禀、求知若渴,就像Geoffrey :)。

(顺手推荐阅读:《Hinton传奇》)