设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

对话机器学习大神Yoshua Bengio

2014-4-18 12:13| 发布者: joejoe0332| 查看: 4290| 评论: 0|原作者: 张天雷|来自: InfoQ

摘要:   Yoshua Bengio教授(个人主页) 是机器学习大神之一,尤其是在深度学习这个领域。他连同Geoff Hinton老先生以及 Yann LeCun(燕乐存)教授,缔造了2006年开始的深度学习复兴。他的研究工作主要聚焦在高级机器学 ...


问: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的例子:12

机器学习专家不参与这种竞赛的原因,可能是他们那些好的解决办法,总是会有企业买单,不必参加类似的比赛来竞争。还有,专家从来都是乐于挑战极限 的,而不是来面对日常生产环境里面那些非常令人烦躁的真实数据。参加这种竞赛,很大部分的时间都用来对数据进行预处理,而且,浅层模型如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

转自 http://www.infoq.com/cn/articles/ask-yoshua-bengio?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部