写点什么

对话机器学习大神 Yoshua Bengio(上)

2014 年 4 月 17 日

Yoshua Bengio 教授(个人主页)是机器学习大神之一,尤其是在深度学习这个领域。他连同Geoff Hinton 老先生以及 Yann LeCun(燕乐存)教授,缔造了2006 年开始的深度学习复兴。他的研究工作主要聚焦在高级机器学习方面,致力于用其解决人工智能问题。他是仅存的几个仍然全身心投入在学术界的深度学习教授之一,好多其他教授早已投身于工业界,加入了谷歌或Facebook 公司。

作为机器学习社区的活跃者,Yoshua Bengio 教授在美国东部时间2 月27 日下午一点到两点,在著名社区Reddit 的机器学习板块参加了“ Ask Me AnyThing ”活动,Yoshua 回答了机器学习爱好者许多问题,干货频频。故作此整理,供远在地球另一面的国内人工智能和机器学习爱好者学习讨论,所有问答的先后顺序由 Reddit 用户投票决定。以下为问答第一部分:

问:是什么仍然激励着您留在学术界?您对于工业界那种面向产品和创新的实验室有什么看法?他们和学术实验室相比如何?我们在选择两者的时候,学术自由(做想做的事情)是否起到很重要的作用?

答:我喜欢学术界,因为我可以选择研究我喜欢的课题,我可以选择设立一个长期的目标来为之努力,我可以为全人类的福祉来奋斗而不是某一个特定公司的利益,而且我可以非常自由的公开讨论我的研究成果和进展。当然,值得注意的是,在某种程度上,我那些值得尊重的同事们在很多大公司的实验室里也同样有类似的讨论自由。

问:您好,我是一个本科生,您和 Hinton 教授的工作给了我很大的启发,我有一大堆问题想问,您可以选择性的回答一下。

Hinton 教授最近在 Coursera 在线教育网站上提供了神经网络公开课(MOOC)。该课程所提供的资源和课件让我在内的很多同学受益匪浅。我学到了如何自己训练一个神经网络,迈出了深度学习领域的第一步。所以,如果这个领域的另一个神级领军人物,您,也能提供一个公开课,那将是多么大的幸运,不知道您在这方面有什么打算?

作为领域内的杰出教授,您个人如何看待当代神经网络忽如一夜又火了这个现象呢?您认为是理所应得还是夸大其词?还是两者兼有?或者您有完全不同的看法?还有,您对于当今文献对于神经网络研究的描述怎么看?

我对于利用无监督技术来学习数据选择,以增加算法的普适能力这一块非常感兴趣。我感觉它是监督学习和非监督学习的有机结合,跟传统的预训炼不同。您所在的实验室已经在这方面取得了很多进展,使用“简单”的数据选择方法,比如高斯噪声选择法,即我们在 DAE 语境下所谓的输入 dropout。您觉得这个方向算不算有潜力呢?希望您能给推荐一些相关资料,我找了很久都没找到。

最后,没有人有水晶球来洞悉未来,但是您能谈谈您研究工作的下一步展望么?比如,过去几年基本是监督学习占了上风。

答:首先我目前没有公开课的计划,但可能未来会开设一门。最近我在写一本深度学习方面的新书,内容比较全面(和 Ian Goodfellow 和 Aaron Courville 一起写)。过几个月可能会放出几章草稿,非常欢迎社区和同学们提出宝贵建议。注意 Hugo Larochelle(我之前的博士生,Hinton 教授的博士后)有一个很好的深度学习视频(在他个人主页上还可以找到课件)。

我觉得最近大家对于神经网络的极大热情,主要是因为机器学习同仁们浪费了多年的时间,1996 到2006 这20 年,几乎从来没深入挖掘它。现在这个时候,确实有一些对于神经网络的夸大其词,尤其是在媒体上。这是非常不幸的,同时也非常危险,会被一些想要一夜暴富的公司所利用。危险尤其在于,一大波天花乱坠的许诺出来了,结果没有出色的实验结果作为根据。科学在大部分时候都是小步前进的,我们必须要谦逊。

我没有水晶球,但是我相信改进我们对于联合分布的建模,在未来深度学习的研究中,尤其是朝向人工智能级别的机器方面,非常重要,它能帮助机器更好的理解我们周围的世界。

另外一个比较容易预见的工作,是我们需要在训练高复杂度模型的过程中,找到快速有效的训练方法。不光是在训练模型本身(涉及到数值优化问题),而且在计算能力方面(比如通过并行或者其他的技巧来避免每个样本在训练的时候都牵扯到整个神经网络的更新)。你可以在arxiv 上找到我的展望文章

问:传统的(不管是不是深度)神经网络看起来在保留上下文信息方面有一些局限性。每个数据点/ 样本都是独立对待的。递归神经网络(Recurrent Neural Network,RNN)克服了这个问题,但是RNN 训练起来非常难,而且一些RNN 变种的尝试看起来也不是那么的成功。

您觉得RNN 在未来会流行起来么?如果是的话,在什么应用领域?以什么样的模型设计?非常感谢您百忙之中的回答!

答:回归网络或者叫做递归网络,在各种类型的对象的相互依赖关系的建模上,非常有用。我们小组在如何训练RNN 上做了一些工作,这也是当前深度学习社区研究工作的重要组成部分。可能的应用领域有:语音识别(尤其是语言识别部分),机器翻译,情感分析,语音合成,手写合成与识别等等。

问:我很想听听您对liquid state machine(LSM)和深度学习之间的对比。

答: liquid state machine 和 echo state networks(ESN)没有学习 RNN 里面类似的权重,换句话来说,它们不学习数据的表征。然而,深度学习最重要的目的,就是学习一个好的数据表征。从某种程度来讲,LSM 之类的跟 SVM 很像,即给定一堆确定的特征,学习一个线性分类器。这里用到的特征是跟前面序列有关的函数,通过一些巧妙手段预先设置好权重。这些特征非常好,那么,能自动学习这些特征不是更好么!

网友附加答案:我觉得 ESN 和 LSM 非常好,学习它们能让我们更清楚 RNN,了解 RNN 模型上什么情况下会给出很差结果,学好前两者对于学习 DNN 有好处。推荐看看 Ilya 在初始化方面的工作,文章阐述了采用Herbert Jaeger 建议的ESN 初始化方法的有效性,这对RNN 同样奏效。另外LSM 和ESN 通常可以作为DNN 很好的基准参考对比。还可以看看这个页面,很多RNN 有用信息,尤其是LSTMNN,它是RNN 变种之一,继绝RNN 训练过程中梯度消失的问题,从而让RNN 能够感知到更长的上下文。

问: Bengio 教授您好,我是 McGill 大学的本科生,从事类型论(译者注:与集合论差不多的学科)方面的研究,我的问题是:

我所在的领域很注重形式化证明,机器学习领域有没有关注形式化证明的课题呢?如果没有的话,怎么保证学科的严谨性?有没有人研究用深度学习产生程序呢?我的直觉是最重我们可以用类型论来指定一个程序,并且用深度学习来搜索这个指定程序的实例,但现在我觉得可能还有很多困难。

您能给举几个例子,关于机器学习中独特的数据结构的么?作为零起点的同学,我怎么才能开始深度学习呢?我不知道应该看一些什么资料,要是我能搞出点名堂,我非常愿意应聘您团队的研究职位。

答:有一种非常简单的方法,让我们无需证明,就能够得到学科的严谨性,大家都经常用到:叫做科学方法论,它依赖实验、假设和验证。另外,深度学习的论文里逐渐出现越来越多的数学。有一段时间,我曾对深度学习和浅层学习的特性对比很感兴趣(参见我和 Delalleau 或者更近的 Pascanu 一起合作的文章)。我还跟 Nicolas Le Roux 一起在 RBM 和 DBN 的近似特性上做了一点工作,我还建议你去看看 Montufar 的文章,很炫的数学。

至于零基础问题,有很多资料值得参考,比如 deeplearning.net 网站上的:

  • 我 2009 年的论文和书(新版本正在写)
  • Hugo Larochelle 的神经网络课程还有视频
  • 深度网络训练相关推荐
  • 最近的一篇回顾性文章

网友附加讨论:我从事概率编程语言方面的研究,您觉得有没有深度学习编程语言呢?让新手更容易创造自己的深度学习模型。

网友附加回答:我是 Yoshua 的博士生,我们实验室现在开发了一个 Python 库,叫做 Pylearn2 ,它可以让小白相对容易地使用深度学习,可能你还是需要很了解自己的算法本身,但是至少你不需要从头开始自己实现它了。当然这不是通常意义的编程语言,你可以看看 Theano ,它对于深度学习架构的描述和训练都非常到位。概率编程语言的话可以看看这个。另外机器学习理论方面的研究可以看看这个会议。还有,训练神经网络有很多的技巧,光看别人的论文是学习不到的,这些技巧有的非常的取巧,有的非常偏颇,不会被写在论文里的。最好的方法就是跟创造和研究它的人共事,多问问题,多尝试,参考这个视频教程。

再推荐几个框架:

问:Bengio 教授,在您的论文“Big Neural Networks Waste Capacity”中,您指出梯度下降法在神经元很多的时候没有少量神经元情况下好,我的问题是:增加的这些神经元和链接如何导致结果变坏的?您觉得类似(Martens 2010)提出的 Hessian Free 方法能否克服这个问题?(“Deep learning via Hessian-free optimization.” Proceedings of the 27th International Conference on Machine Learning (ICML-10). 2010)

网友回答:增加的神经元和链接,其实引入了更多的曲率,即非对角海森矩阵。梯度下降法,作为一个一阶方法,会忽略这些曲率(它假设海森矩阵是单位矩阵)。所以神经元多了以后,梯度下降法就会在最小值附近跳来跳去,但总是不能有效的找到最小值。当然二阶方法也不是总有效果的。(译者注:可参考这篇文章

问:我来自蒙特利尔,一个创业公司,我对您的工作非常感兴趣,一个问题,貌似机器学习专家以及学术界对那些工业界的竞赛,比如Kaggle,不是很感兴趣啊。我知道获胜的概率确实比较低,让投入的时间和产出不成比例。而且很多机器学习爱好者都对此趋之若鹜,没有专家的参与感觉很受伤。一个机器学习领域的专家,难道不是几个小时就可以做出来一个比较不错的结果么?有没有这么一个场景,开放,协同,专家和爱好者一起工作的?

网友回答:这有几个专家赢得Kaggle 和Netflix 的例子: 1 2

机器学习专家不参与这种竞赛的原因,可能是他们那些好的解决办法,总是会有企业买单,不必参加类似的比赛来竞争。还有,专家从来都是乐于挑战极限的,而不是来面对日常生产环境里面那些非常令人烦躁的真实数据。参加这种竞赛,很大部分的时间都用来对数据进行预处理,而且,浅层模型如 SVM、随机森林和 boost 方法很容易就能得出一个可接受的结果,这种做法没有什么学术价值。除了奖金方面,Kaggle 这种竞赛的设置也是有问题的,可以参考这个非常有启发性的视频,大部分有能力可以独立思考的人都不会参与Kaggle。长话短说,竞赛只有能够彰显它在某个研究课题上的意义,才能吸引专家的参与。

问:我听说深度学习模型在训练过程中,很多地方都需要专家经验,手动调节,各种技巧,不知道有没有比较自动化的超参数学习方法呢?

答:超参数优化已经在深度学习领域中初见端倪,主要用在自动搜索模型的参数。所谓超参数,就是机器学习模型里面的框架参数,比如聚类方法里面类的个数,或者话题模型里面话题的个数等等,都称为超参数。它们跟训练过程中学习的参数(权重)是不一样的,通常是手工设定,不断试错调整,或者对一系列穷举出来的参数组合一通枚举(叫做网格搜索)。深度学习和神经网络模型,有很多这样的参数需要学习,这就是为什么过去这么多年从业者弃之不顾的原因。以前给人的印象,深度学习就是“黑魔法”。时至今日,非参数学习研究正在帮助深度学习更加自动的优化模型参数选择,当然有经验的专家仍然是必须的。

超参数的学习早已有之,但是直到最近才做出一点进展。这里面比较早期的主要贡献者(在应用到机器学习非参数学习领域之前)是Frank Hutter 团队,他在2009 年的博士论文就是关于软件系统里面如何用非参数学习来代替人手设定参数。我之前的博士生James Bergstra 和我一起在这个问题上也研究过几年,我们提出了网格搜索的一种简单的取代方法,称作随机采样( random sampling ),实验结果非常好,也很容易实现。

随后我们就将 Hutter 在其他领域使用过的非参数学习方法引入了深度学习,称作序列优化(sequential optimization),发表在 NIPS 2011 ,我的另外一个联合培养博士生 Remi Bardenet 和他的导师 Balazs Kegl(前同事,现在法国)也参与了这个工作。

这个工作被多伦多大学的研究人员看好并继续深入,其中有 Jasper Snoek(Hinton 教授的学生),Hugo Larochelle(我毕业的博士生)以及 Ryan Adams(哈佛大学教授),他们的工作发表在 NIPS2012 。文中展示了他们利用自动化的方法,改进了 Krizhevsky,Sutskever 和 Hinton 教授非常著名的 ImageNet 物体识别神经网络算法,刷新了这个数据集的学术记录。

Snoek 等人开发了一个软件,被相关学者广泛使用,叫做 spearmint,我最近发现 Netflix 在他们用深度学习做电影推荐的新项目中也用到了它。

网友补充答案:补充一点贝叶斯优化以及 Hyperopt 的相关内容,贝叶斯优化和专家参与相结合绝对是自动学习参数的好办法,参见这个 ICML 调试卷积神经网络的内容。Hyperopt 有个 Python 库,提供 ConvNets,NNets 以及未来会涉及到机器学习库 scikit-learn 中一批分类器的自动化参数学习方法。

查看英文原文 Ask me anything Yoshua Bengio


感谢吴甘沙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 4 月 17 日 06:3616537
用户头像

发布了 268 篇内容, 共 99.6 次阅读, 收获喜欢 15 次。

关注

评论

发布
暂无评论
发现更多内容

甲方日常 13

句子

工作 随笔杂谈 日常

oeasy教您玩转linux 010211 牛说 cowsay

o

区块链支付通道系统搭建,USDT跑分承兑商系统

13823153121

大数据任务调度 - 有向无环图(DAG)之拓扑排序

海豚调度

数据结构 大数据任务调度 DAG 拓扑排序 Apache DolphinScheduler

不要以为Bug写的好就是好程序员,其实这只占不到15%

小Q

Java 学习 程序员 架构 面试

记一种spring框架的想当然但错误的用法

小明同学

源码分析 最佳实践 Spring Framework bug

oeasy教您玩转linux010210管理应用aptitude

o

Pulsar Flink Connector 2.5.0 正式发布

Apache Pulsar

flink 开源 flink 消费 kafak Apache Pulsar

JavaScript引擎的事件循环机制是怎样工作的?

Walker

Java 前端 运行时栈帧 事件循环

[翻译]Scalable Go Scheduler Design Doc[Go可扩展调度设计文档]

卓丁

golang golang scheduler Go scheduler

这篇文章,把中国科技的真实底子讲透了

CECBC区块链专委会

中国 科技 产业竞争

架构师训练营第十四周

Melo

滴滴AR实景导航背后的技术

滴滴技术

人工智能 滴滴技术 实景导航 地图与公交事业群分享月

[翻译]Go Code Review Comments

卓丁

多线程与高并发之锁

彭阿三

多线程 多线程与高并发

朱嘉明:全球科技革命正在逼近“奇点”,区块链影响未来人类社会的走向

CECBC区块链专委会

人工智能 科技 科技革命

澳门金沙玩赢了钱提现不了异常注单未更新有什么办法处理?

丛林里的余光

异常检测 澳门金沙 提现不了

USDT承兑支付系统,区块链跨境支付源码

13530558032

MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒!

Java成神之路

Java MySQL 编程 程序员 面试

从外卖员到拼多多30K+程序员,我付出了三年的青春

小Q

Java 学习 程序员 架构 面试

.NET委托,事件和Lambda表达式

AI代笔

区块链数字钱包开发,数字钱包app

13530558032

拥抱K8S系列-06-K8S如何解决docker部署的问题

张无忌

Docker Kubernetes 运维 service

LeetCode题解:232. 用栈实现队列,使用两个栈 入队 - O(1),出队 - 摊还复杂度 O(1),JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

如何利用Chrome DevTools优化网页性能

熊斌

学习

从零开始搭建完整的电影全栈系统(四)——restfulApi用户的认证授权及用户注册

刘强西

RESTful API yii

大项目写代码写到晕头转向?敏捷多项目框架解君愁

Philips

敏捷开发 程序设计 软件架构

数字货币交易所开发方案,交易所源码

13530558032

LeetCode题解:232. 用栈实现队列,使用两个栈 入队 - O(n), 出队 - O(1),JavaScript,详细注释

Lee Chen

前端进阶训练营

云小课 |选定合适的证书,做“有证”的合规域名

华为云开发者社区

证书 课程练习 ssl

合约跟单模式系统开发,交易所合约跟单源码

13530558032

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

对话机器学习大神Yoshua Bengio(上)-InfoQ