【人工智能行业大师访谈4】吴恩达采访Yoshua Bengio

来源:Coursera吴恩达深度学习课程

 作为deeplearning.ai课程的一部分,Andrew希望除了教授技术理念之外,同时介绍一些深度学习的先驱给大家认识。在这个视频中,Andrew也希望问问这些先驱们,能不能给一些工作上的建议,关于如何入门深度学习,如何做课题研究或者如何在深度学习领域找一份工作。【人工智能行业大师访谈3】吴恩达采访 Ian Goodfellow。接下来,采访 Yoshua Bengio,文章末尾有总结。

 吴恩达:Yoshua你好,很高兴您能参加我们的访谈活动。

Yoshua:我也很高兴。

吴恩达:您不仅仅是深度学习方面的研究员,工程师,还是该领域和学术研究界的代表人物之一,我很想知道您是如何入门的,您是如何进入深度学习这个领域,并不懈探索的

Yoshua小的时候,我读了很多科幻小说和很多同龄人一样。1985年研究生阶段,我开始阅读神经网络方面的论文(neural net papers),当时特别兴奋,也逐渐对这个领域燃起了热情。

吴恩达:1980年代中期(1985年)。您还记得当时读到那些论文的情形吗?

扫描二维码关注公众号,回复: 13286770 查看本文章

Yoshua当时和专业人士们一起上经典的AI课程,我突然发现,这个领域研究的都是人类如何学习,人工智能。如何把人类学习与人工智能和计算机联系起来这样的问题,发现这类文献的时候我异常兴奋,于是开始拜读Geoff Hinton等人撰写的,关于联结主义的论文。我研究过循环神经网络,语音识别,HMN,图模型,之后我很快进入了AT&T贝尔实验室和麻省理工学院攻读博士后,并发现了训练神经网络的长期依赖问题(long-term dependencies with training neural nets)。之后不久,我受聘来到蒙特利尔大学任教,我的年少岁月多半也都是在蒙特利尔度过的。

吴恩达:过去几十年一直投身于此,您一定深有感触,谈谈您对深度学习的看法以及神经网络这些年的发展历程吧

Yoshua:我们从实验,直觉认识入手,而后提出了一些理论。现在我们在认识和理解上清晰了很多,比如为什么Backprop(反向传播)如此行之有效,为什么深度如此重要。当时我们对这些概念没有任何可靠的论证依据,2000年初,我们开始研究深度网络的时候,我们直觉认为神经网络更深才会更加强大,但是我们不知道应该如何深化,如何优化。当然,我们最初进行的相关实验也未能成功。

吴恩达:与30年前相比,您认为哪些最关键的设想得到了时间的验证,而哪些又错得最让人意想不到。

Yoshua我犯过的一个最大的错误就是和当时90年代所有人一样,我也认为执行backprop需要光滑非线性算法(smooth nonlinearities),因为我觉得,如果当时我们有非线性矫正算法(rectifying nonlinearities),它有些部分会比较平坦,训练起来就很难了,因为很多地方的导数都是0。2010年前后,我们开始在深度网络中尝试Relu算法,我当时执着地认为,我们应当注意导数为0区域上的神经元会不会太饱和,最终,ReLU比sigmoids函数的效果更好,这出乎我的意料,我们探索这个函数是生物连接(biological connection)的原因,并非我们认为它更容易优化(it would be easier to optimize),但结果证明它效果更好,之前我还认为它训练起来会比较难

吴恩达:请问,深度学习和大脑之间有什么关系,虽然有明确答案,但我更想知道您对此的看法。

Yoshua最初让我关注神经网络的一种见解是,连接主义者提出信息是分布在被激活的神经元中,而不是由祖母细胞来描述的,他们称之为“符号描述”(symbolic representation),它是传统AI的观点。我依然相信这是非常重要的信息,甚至近期,人们重新发现它的重要性,它确实是一项重大发现。深度学习是后来才提出的,大约在2000年初,但是我90年代研究的并不是这些。

吴恩达:是的,我记得,很早以前,您曾搭建过许多相对不深的词向量分布式表达。

Yoshua是的,没错,那是90年代后期,我很感兴趣的内容之一,我和我兄弟Samy一起做了尝试就是使用神经网络来解决维数灾难的问题,它是统计学习中的一个核心问题,我们能够以一种非常高效的方式,利用这些分布式表达来表示许多随机变量的联合分布,效果很好,之后我把它扩展到词序列的联合分布,这就是词向量(word embedding)的由来,因为我当时认为,这可以实现对拥有相似语义的单词的泛化。

吴恩达:过去20年,您的研究小组完成了多项研究,提出了很多想法,短短几分钟之内无法细数,我好奇的是,小组中的哪项研究或想法,最让您感到自豪

Yoshua好的,我前面提到了长期依赖(long-term dependencies)的研究,我想人们依然不能很好理解它,然后是我刚提到的维数灾难(curse of dimensionality),还有近期应用于神经网络的联合分布(joint distributions with neural nets),它是由Hugo Larochelle负责的涵盖了应用于联合分布的,学习词向量的各项工作。然后,我觉得,我们最被关注的研究就是深度学习在自动编码器和RBMs堆栈上的应用(deep learning with stacks of auto encoders and stacks of RBMs)。还有就是,如何更好地理解用初始化参数解决深度网络训练的难点(understanding better the difficulties of training deep nets with the initialization ideas),还有深度网络中的梯度消失(the vanishing gradient in deep nets),这项研究及后续实验体现了分段线性激活函数的重要性(the importance of piecewise linear activation functions)。其他重要研究还包括无监督学习(unsupervised learning),降噪自动编码(the denoising auto-encoders),GANs,这些都是当前非常流行的生成式对抗网络(generative adversarial networks,我们对基于注意力机制的神经网络机器翻译的研究(neural machine translation using attention),对翻译工作起到了很重要的作用,现在已经应用到工业系统中,如谷歌翻译,对注意力机制的研究确实改变了我对神经网络的看法。我们曾经认为神经网络只是机器,不过是向量之间的映射(map a vector to a vector),但基于注意力机制,我们现在可以处理各种数据结构,这的确打开了很多有趣领域的大门。生物学联结方面(direction of actually connecting to biology),最近两年我一直在研究的一个课题是,就是我们如何想出像backprop这样的概念,而且大脑也可以执行,我们已经发表了几篇论文,神经科学界人士对此很感兴趣,我们将继续对这个课题的研究。

吴恩达:我知道你一直关注的一个话题就是,深度学习与大脑之间的关系(the relationship between deep learning and the brain),能谈谈这个吗

Yoshua我一直在思考两者这间的生物学关联,而且平日里也经常"幻想",因为我觉得它就像个谜题,首先通过学习大脑,研究大脑,我们有这么多的证据,如STDP(spike timing dependent plasticity),但另一方面,我们有这么多关于机器学习的概念,比如针对一个目标函数对整个系统进行全局训练,比如Backprop,那么Backprop到底是什么意思,还有"信用分配"到底是什么意思,当我开始思考大脑如何能像backprop一样工作时,就想到,在backprop背后,在着更通用的概念,可以让backprop更高效地工作,也许有很多方法可以完成信用分配,这也呼应了增强学习领域的一些问题。所以说这一点很有意思,一个简单的问题开始,你会一步步思考更多的问题,而让你把这么多不同的事物联系起来,像在解一个大谜题,这个过程持续了几年,我要说一点,这些所有的尝试大一定程度上是受了Jeff Hinton的启发,他在2007年的时候发表过一次演讲,当时是第一个关于深度学习的研讨会,他讲了他对于大脑工作方式的想法,比如怎么利用时间编码来辅助backprop的一些工作,这件事对我近几年的一些探索起到了引导性的作用,说起来这一路走来,已经有10多年了。

吴恩达:另外我经常听到你谈到的一个话题就是无监督学习,能说说关于这方面的想法吗?

Yoshua当然,无监督学习非常重要。目前业内的系统都是基于有监督学习的,这就要求人类先定义出当前问题的一些重要概念,并在数据库中讲这些概念标记出来。目前的玩具问题服务,系统都是基于这个的,但人类本身其实可以做得更好,人类可以探索世界,通过观察发现新的概念并与世界互动。2岁的小孩,能自己理解直观物理概念,比如他们理解重力(gravity),理解压力(pressure),理解惯性(inertia),理解液体(liquid),固体(solid),而且他们的父母并没有给他们解释过这些概念,那他们是怎么理解的呢这就是无监督学习所要解决的问题,不是简单地在数据库中做不做标识的问题(it is not just about we have labels or we don’t have labels),而是如何构建一个精神结构(building a mental construction),从而解决如何通过观察来解释世界。最近,我还在尝试,把无监督学习和增强学习(reinforcement learning)整合在一起,因为我相信,我们在努力尝试解释的重要基础概念,原本是有很强的指示的,但我们可能没有把它们联系起来。也就是说,人类或机器如何通过与世界互动,通过探索世界,尝试不同的事物和控制事物,这些是我认为与无监督学习紧密关联的,所以我15年前一开始研究无监督学习时,从不同的机构,到RBM等等,最主要关注的是如何实现学习"良好的表现"(good representation,当然现在这个问题也仍然重要。但是我们不确定的是到底如何定义“良好的表现”,比如如何确定一个目标函数(objective function),过去几年我们试了好多方法,这也是无监督学习研究的一个魅力所在,解决方案的想法有很多,解决问题的方式有很多,也许明年我们就会发现一个完全不同的方案,也许大脑的工作方式跟我们现在所知的完全不一样,目前该领域还没有进入渐进式研究,它本身还是在探索一个完全未知的领域,我们现在还不能清晰地确定什么样的目标函数,能够评估一个系统在无监督学习上是否表现的很好。当然,这很有挑战性,但同时它也意味着更多未知的可能,而这一点正是研究人员最为着迷的,至少我是这样。

吴恩达:今天,深度学习已经得到了长足的发展,我想目前不管对于谁来讲,都不太可能遍历现今所有关于深度学习的著作了,所以我比较好奇,关于深度学习,你最感兴趣的是什么

Yoshua我比较有想法,我感觉现在关于深度学习的研究,已经脱离了我心目中最理想的方向,我感觉现在机器经常出现些小错误,说明它对世界的认知还很表面化,所以最让我兴奋的是,我们现在的研究方向,不是要让我们的系统实现什么功能,而是回到最本原的原理,如何让电脑来观察世界,与世界互动,发现世界。即使世界很简单,就像编一个电脑游戏,我们也没法做得很好,但是这点很好,因为我不用跟谷歌,Facebook,百度他们竞争,因为这就很根本的研究,谁都可以做,而且在家里的车库里就可以了。当然,解决这个问题的方向有很多,但我也看到很多沟通互动功能方面(a lot of the fruitful interactions),深度学习和增强学习的融合起着很重要的作用,我非常激动的是,这个方向的研究进度,,在实际应用方面已经有了很大的成就,因为如果看一下我们在实际应用方面面临着巨大的挑战,比如如何应对新的领域或新的范畴,现成的成功的案例很少,但是人类解决这些问题是完全没有问题的。而对于这些迁移学习(transfer learning)的问题,如果我们能够让计算机更好地理解世界,处理这些就会效果好很多,更深度的理解,是吧,眼前的世界在发生什么,我看到的是什么,如何通过行为来影响我的所见所闻,这些是我最近最为关心的问题,另外过去20年人工智能面临的老问题,深度学习都已经有了变革性的发展,因为深度学习的大多数成功是在认知层面的,那接下来的目标呢,接下来的就是高级条件,就是在抽象层面明白事物的原理,现在我们在研究如何能让机器理解更高级的抽象层面,目前还没有达到,所以我们要继续努力。我们要研究原因,研究信息的时序处理,要研究因果关系,如何让机器自己来发现这些事物,未来可能还需要人类的指导,但主要还是要自主完成。

吴恩达:根据你的描述来看,你是喜欢使用研究方法的,比如你在做的"玩具问题"实验——这里完全没有贬意,是的,但只是对于小问题,而且你相信这个未来可以转到大的问题上。

Yoshua是的,完全可以,当然我们先要一点点加大规模,从而最终实现,对这些问题的解决,但是之所以先从玩具问题入手,是因为它可以让我们更清楚地明白我们的失败,从而开始对直观物理概念认识的研究,让机器更容易地理解这些概念,算是经典的分步解决方法吧。另外,我觉得有些人可能没想过的是,其实研究周期是可以快很多的,如果几个小时就能做一个实验,我的进度就可以快很多,如果需要尝试一个较大模型,用来捕捉常识,和普通知识层面的事物,当然这个最后我们是要去做的。只是现有的硬件,每次实验都要花太多时间,所以在硬件运行速度提到上千上百万倍之前,我只能先做玩具问题的实验

吴恩达:您还说过,深度学习,不仅仅是一门工程学科,还要多下功夫去了解其中的来龙去脉,可否分享一下您的看法。

Yoshua是的,的确如此,我们目前的工作(方式)有点像盲人走路,我们运气不错,也发现了一些有趣的东西,但是,如果我们能够稍微停一停脚步,试着以一种可以转换的方式理解我们所做的事情,因为我们要归于理论。我所说的理论不一定是数学,当然我喜欢数学,但是我不认为一切事物都要数学化,而是要逻辑化(be formalized logically),并不是我可以让别人相信这样有用,可行,这才是最重要的,然后再通过数学来强化和精炼,但更多的是理解(understanding),还有做研究(research,不是要成为下一个基准或标杆,或者打败其他实验室,他公司的人。更多的是,我们应该提出哪些问题来帮助我们,更好地理解我们感兴趣的现象,比如,是什么导致更深度神经网络,或循环神经网络很难训练。我们已经有了一些认识,但还有很多东西我们不了解,所以我们设计实验,可以不以获得更好的算法为目的,而是以更好地理解现有算法为目的,或者研究某算法在什么情况下表现更好并找到原因,为什么才是真正重要的,科学的意义就是提出疑问解决疑问(That’s what’s science is about, it’s why.)。

吴恩达:现如今,有好多人希望进入这个领域,您会给那些想进入AI和深度学习领域的人一些什么建议呢?我知道在一对一活动上,您已经回答过很多次了,不过我还是代观看视频的所有网友问一问。

Yoshua首先大家可以从事的工作和目的各不相同,研究深度学习和应用深度学习来构建产品,所需要具备的东西可能并不一样。在认知水平上,这两种情况是不同的,但是无论哪种情况都需要亲身实践(but in any case in both cases is practice想真正掌握一门学问,比如深度学习,当然,也需要大量阅读(read a lot),你必须自己动手编程(you have to practice programming the things yourself。我经常面试一些使用过软件的学生,现在有太多即插即用的软件,使用者根本不了解自己在做什么,或是只停留在粗浅了解的程度,一旦出现问题,使用者很难解决,也不知道原因,所以大家要亲自实践,即便效率不高,只要知道是怎么回事就好,这很有帮助,尽量亲自动手。

吴恩达:所以不要用那种几行代码就可以解决一切,却不知道其中原理的编程框架

Yoshua没错,没错,我还想说的是。如果可以的话,尽量从基本原理入手获取认识(Trying to derive the things yourself from first principles, if you can.),真的很有帮助,当然,平时还要多阅读(the usual things you have to do like reading),多看看别人的代码(look at other people’s code),自己动手编写代码(writing your own code),多做实验(doing lots of experiment)。要真正理解自己做的每一件事(making sure you understand everything you do),尤其是科学研究层面(especially for the science part of it)。多问问自己,我为什么要这么做,人们为什么要这么做(Tring to ask why am I doing this, why are people doing this?)。也许书中就能找到答案,所以要多读书(Maybe the answer is somewhere in the book and you have to read more),如果能自己搞清楚当然更好(But it’s even better if you can actually figure it out by yourself)。

吴恩达:很酷的建议,我读了您和Ian GoodfellowAaron Courville合编的书,各方评价很高(a highly regarded book)。

Yoshua谢谢,谢谢,是的,销量不错,有点超出预料,我感觉现在读它的人要比能读懂它的人多,呵呵呵,ICLR大会论文集可以说是,优秀论文最集中的所在。当然,NIPSICML和其他大会也有非常优秀的论文,但如果你想阅读大量优秀论文,去看看最近几年的ICLR大会论文集就好,你会对这个领域有一个良好的认识

吴恩达:酷,有人会问,关于深度学习,如何才能做到掌握和精通?对此您有什么看法和建议呢

Yoshua:这个取决于你的背景(it depends on where you come from.),不要畏惧数学(Don’t be afraid by the math),只管发展直觉认识(just develop the intuitions,一旦在你在直觉经验层面得心应手了,数学问题会变得更容易理解。好消息是,不需要攻读五年博士也可以精通深度学习,你可以很快速地上手学习。如果你具备良好的计算机科学和数学功底(If you have a good background in computer science and math),几个月时间,你就可以学到足够的应用知识来构建系统,并开始进行研究性实验。接受过良好培训的人可能6个月左右吧,或许他们对机器学习一无所知,但是,如果他们精于数学和计算机科学,学起来会非常快。当然,这意味着你要具备良好的数学和计算机科学背景,有时候,计算机科学课程上学到东西还远远不够(sometimes what you learn in just computer science courses is not enough),你还要继续学习,尤其是数学知识(you need some continuous math, especially),比如,概率(probability),代数(algebra)和最优化(optimization)。

吴恩达:了解,还有微积分(calculus)。

Yoshua对,对,还有微积分。

吴恩达:非常感谢Yoshua与我们分享这些看法,见解和建议。虽然认识您已久,但很多早期经历的细节我也是今天才知道,谢谢。

Yoshua也谢谢Andrew制作了这样一个特殊的访谈以及现在所致力的事情,希望能够为大家所用(I hope it’s going to be used by a lot of people.)。

总结(建议):(1)无论哪种情况都需要亲身实践(but in any case in both cases is practice想真正掌握一门学问,比如深度学习,当然,也需要大量阅读(read a lot),你必须自己动手编程(you have to practice programming the things yourself。(2)如果可以的话,尽量从基本原理入手获取认识(Trying to derive the things yourself from first principles, if you can.),真的很有帮助。(3)对于深度学习如何掌握和精通,Yoshua认为这取决于你的背景(it depends on where you come from.),不要畏惧数学(Don’t be afraid by the math),只管发展直觉认识(just develop the intuitions

说明:记录学习笔记,如果错误欢迎指正!写文章不易,转载请联系我。

猜你喜欢

转载自blog.csdn.net/csdn_xmj/article/details/119878021