想去Google Brain实习吗?如何申请?Jeff Dean等牛人很认真地回答了这些问题

858 阅读12分钟
编译 | AI科技大本营(rgznai100)
参与 | 鸽子、Shawn

导语:昨晚谷歌大脑(Google Brain)在Reddit上举办了一年一度的在线答疑活动AMA,Google Brain负责人Jeff Dean,Google首席科学家,Google Brain团队技术负责人Vincent Vanhoucke和其同事热情地回答了网友们提出的各种问题。AI科技大本营从中选取了一些代表性的问题,通过这些问答你可以了解如何申请谷歌的实习项目、申请注意事项、申请及面试建议、实习生的日常工作,还有谷歌大脑的大牛们对深度学习等领域未来发展的看法。

关于实习、职业选择:

Q:几个月前我在你们网站上看到一份关于实习项目的申请说明,里面有说该项目不要求申请人具有非常好的机器学习背景。我是一名生物统计学流行病研究者,主要工作是健康调研,我很想申请这个项目。我的问题是:最终录取的申请人中有多少人并非来自机器学习背景,他们的培训与机器学习研究人员的培训有什么不同?

Jeff Dean(Google Brain):在第一期实习项目的27名实习生中,大约1/3的人具有计算机科学背景,1/3有数学、统计学或应用数学背景,1/3在STEM领域(如神经学、计算生物学等)有深厚的背景。今年录取的35名实习生情况也差不多,事实上其中一名实习生还是一名流行病学博士。几乎所有实习生都有机器学习方面的经验,尽管他们从未接受过关于ML的学术培训。

Q:我有几个关于谷歌大脑实习项目的问题。第一批实习生来自于多个不同的背景:应届毕业生、经验丰富的软件工程师和博士生等,那么

  • 这是否意味着每种背景都有相应的录取配额?例如,经验丰富的软件工程师不会与博士生一起竞争实习生资格。

  • 你们希望在不同背景的申请人身上找到什么样的特质?在这些背景中,我对应届毕业生和经验丰富的软件工程师背景特别感兴趣。

  • 下一批申请会在什么时候开始?现在已经9月了。

sallyjesm(Google Brain):我们并不是根据背景或经验水平挑选一定数量的实习生。今年实习生的背景非常多样,我们没有制定任何特定的配额。我们看重的是申请人是否具有巨大的研究潜能,是否能在这样的项目中获得很大的成长。 我们在申请人身上寻找的是技术能力和研究兴趣,而不是特定的资历。下一批申请将在10月2日开放,于1月初结束。请提交完整的申请材料并提供您之前在GitHub上的链接或者您之前在ML领域的其他作品。

Q:我刚开始读研究生,并有选修ML方面的课程,我希望参加谷歌大脑实习项目。未来我希望进入ML/AI研究领域(偏重于基础和理论,应用较少),我之前曾在4家大型公司中担任实习软件工程师并进行了ML上的一些应用。我该怎样做才能增加今后一两年在谷歌大脑团队工作的机会?

sallyjesm(Google Brain):恭喜你成为一名研究生!根据我与一些实习生的讨论经验,我认为在研究生阶段亲自动手完成项目非常重要。因为有了这样的经历,面试就会变得非常有趣,不管是对您还是对谷歌大脑面试官来说。

从实践角度看,你可以完全控制两个问题:

  • 准备完整的申请材料;

  • 完成申请。请确保向招聘团队提供所要求的全部材料(例如,避免无法按时提交所需文件)。如果头一年申请不成功,请在获得更多经验后考虑再次申请。

Q:在谷歌大脑团队工作是什么体验?您的日常工作是什么?你决定某人是否适合您团队的原因是什么?

sara_brain(Google Brain):我是谷歌大脑的一名实习生。今年共招了35名实习生,我们都在山景城同一区域内工作(但是还有一些实习生在旧金山工作)。每天吃早餐时,我通常会与另一名实习生讨论他们的研究项目。接下来,我会阅读各种与我的研究领域(卷积神经网络的透明度)相关的论文,使用TensorFlow编码,与我的项目导师和合作伙伴开会。谷歌大脑的研究人员非常注重合作,因此我通常会与研究类似问题的研究员一起吃午餐或晚餐。

谷歌大脑的实习生平常还会做一些其他有趣的事情:访问学者并进行研究讨论(常常会发现以前从未想过的论题,例如将深度学习应用到太空探索中);每两周实习生们会聚一次(这有助于我们跟进其他实习生的研究);学习TensorFlow最新的进步并直接提供反馈;在数千个GPU上运行试验。

去年的实习生Colin发表了一篇很好的博文,详细描述了他的实习体验:http://colinraffel.com/blog/my-year-at-brain.html

Q:你是怎么进入AI领域和Google的?

alextp(Google Brain):我在本科期间就对机器学习产生了浓厚的兴趣,之后我又获得了一个博士学位。我在博士阶段曾在Google实习,在这里工作了几年后转入了谷歌大脑。有趣的是,我记得我第一次认真四口机器学习是在一堂数字分析课上,当时我们正在讨论多项式近似值函数插值和外推法;能够被表达为数字函数的对象有很多,我们还可以外推其他什么东西?这个问题一下子迷住了我。那一年晚些时候,我发现了ML这门科学并从此为之着迷。

未来预测

Q:你认为ML领域接下来最大的挑战是什么?

Jeff Dean(Google Brain):目前我们倾向于构建只能完成一个或少数几个特定任务的机器学习系统(有时候这些任务非常困难,例如将一种语言翻译成另外一种语言)。我认为我们真的需要设计这样一种简单的机器学习系统:它能够解决数千或数百万个任务,并能从解决这些任务的过程中获得经验,用以学习自动解决新的任务;根据具体任务激活模型上不同的模块。实现这种系统需要解决很多问题。今年早些时候我在斯坦福大学的Scaled ML会议上做了一个演讲,我在第80页之后的幻灯片中提供了一些关于这个想法的材料(第62页后面有提供一些背景知识)。

Vincent Vanhoucke(Google Brain)使深度网络稳定地适应来自弱监督数据的在线更新仍然是个大问题。解决这个问题,将使真正的终身学习成为可能,并使得许多应用程序开放。另一个巨大的障碍是,像GAN 或Deep RL 这样领域内最激动人心的发展还没有到达“批量归一化”的时刻:这个时刻到来之后,一切都默认就“想要训练”,不再需要一个超参数一个超参数地调整。

当然,这些进展还不够成熟,还没从有趣的研究转变成我们可以依赖的技术。现在,不进行大量的精确微调,就无法可预测地训练这些模型,因此很难将它们纳入到更精细的系统中。对这些模型进行可预测的训练,这导致我们很难把它们用到更复杂的系统中。

Q:你认为深度强化学习和/或机器人科学最有可能的未来是?

Vincent Vanhoucke(Google Brain):过去10年间大部分机器人开发都有这样一个前提:机器人不具有任何感知能力。结果,该领域的很多研究都集中于开发在非常受限的环境中工作的机器人。现在我们掌握了新的计算机视觉“超级能力”,我们可以彻底颠覆该领域,重新构建一种以感知未知环境和丰富反馈为中心的机器人系统。深度强化学习作为一种最有可能的实现方法,它可以将感知作为控制反馈循环的中心,但是这种技术离广泛应用还有很长一段距离。

我们需要搞清如何使它更容易分配奖励,训练更可靠,处理样本的效率更高。我在国际人工智能协会(AAAI)会议上讨论了一些这方面的挑战。现在我们可以让系统通过学习第三方视觉来进行模仿,用以解决任务分配问题和样本处理效率问题,对此我感到十分激动。如果你对该领域感兴趣,我们将会直播几个月内即将召开的首届机器人学习会议。

具体技术问答

Q:你们是否计划为ONNX(开放神经网络交换)交换格式提供支持?如果没有这方面的计划,请问为什么?

[1]https://research.fb.com/facebook-and-microsoft-introduce-new-open-ecosystem-for-interchangeable-ai-frameworks/

Jeff Dean(Google Brain):他们几天前在博客上发表了这篇文章,我们也是在那时候了解到这个消息。如果这种格式有很大用处,我怀疑TensorFlow社区是否会为它提供支持。2015年11月,我们发表了开源声明,自那时起TensorFlow源代码库中就有提供我们保持和恢复模型数据和参数所用的格式。

Q:两个问题

  1. 大家都在谈论ML/Al/DL领域取得的成功。您能谈谈您在尝试使用DL解决(研究或实际)问题时遇到的一些挫败或挑战吗?最好是在解决大型监督学习任务时遇到的挫败和挑战,在此类任务中DL方法通常都可行。

  2. 谷歌大脑团队怎么看待目前的无监督学习方法?你认为接下来几年会出现较大的概念进步吗?

Vincent Vanhoucke(Google Brain):挫败:我们团队中的几个同事曾尝试与Bob Mankoff合作用《纽约客》(New Yorker)杂志上的漫画训练一个神经网络标题生成器,Bob是该杂志的漫画编辑(我刚看到他今年有发表一篇论文)。结果效果不是很好。这个生成器生成的标题一点也不好笑。虽然根据DL标准我们拥有的数据并不充分,但是我们可以用其他类型的漫画来预训练视觉表达。我仍然希望我们在这方面可以取得成功,但是也许还是要用旧方法。

无监督学习:我认为人们终于意识到自动编码是个糟糕的想法,无监督学习可行,而监督学习不可行,这两者之间的差异主要在于预测的是具有因果关系的未来(下一个单词或下一帧)而不是现在(自动编码)。看到这么多人开始用我们去年开源的推送数据集对他们的“未来预测”进行基准测试,我感到非常高兴,这确实出乎意料。

Q:你们有没有试着为Tensorflow和机器学习创造一种标准的编码方式和/或方法?人们似乎使用多种不同的方法来编码模型,有些方法很难解释。这个问题与第一个问题没多大关系,Keras将会加入Tensorflow,Learn是否会被淘汰?同一库有两种不同的高级API似乎有点奇怪。

wickesbrain(Google Brain):我的建议是最好坚持使用最高级的API来解决问题。这样的话,你就会自动利用我们在系统内部作出的改进,你的代码最不可能在未来过时。

现在我们有了完整的tf.keras(真正意义上的),我们正在努力统一Keras应用和先前的TF概念。这项工作马上就快完成了。我们的目标是:tf.keras可以轻易地从一处收集构建一个完整的Keras API spec所需的所有表征(symbols)。注意,Keras并不适用于所有使用实例,尤其是分布式训练和较为复杂的模型,这就是为什么我们使用tf.estimator.Estimator的原因。我们会继续改进Keras与这些工具的结合。

我们不久之后会开始淘汰部分contrib,包括所有contrib/learn。许多人还在使用这种工具,淘汰它会需要相当的时日,我们并不想不必要地突然终止人们对它的使用。

关于学习资源

Q:你们是怎么跟进行业最新进展的?具体说的话,你们推荐哪些可以体现前沿技术进展的杂志/会议/博客/公司?

Jeff Dean(Google Brain):顶级ML会议上发表的论文;Arix Sanity;谷歌学术(Google Scholar)上的 "My Updates"功能;研究人员指出和讨论的有趣论文;Hacker News 或者本subreddit中讨论的有趣文章。