问:自学机器学习技术,你有哪些建议?
在网上有很多关于Machine Learning 的材料、教程和视频课程,包括 Coursera 上的一些大学课程。这里我主要讲讲深度学习领域。
你可以在网上听一些指导性课程和演讲,对深度学习有一个大致的了解。里面我比较推荐的有:
-
2015年5月《自然》上刊登的一篇概述性论文《深度学习》(Deep learning),由我自己、Yoshua Bengio 、Geoff Hinton共同撰写。(网址:http://www.nature.com/nature/journal/v521/n7553/abs/nature14539.html)
-
系统性的课本方面,我推荐由 Goodfellow、Bengio 和 Courville共同撰写的《深度学习》(Deep learning)(这个在网上有HTML版本,本书旨在帮助学生和从业人员入门机器学习,尤其是深度学习领域。HTML版本已经编辑完成,并且永久免费。网址:http://www.deeplearningbook.org/)
-
我曾在巴黎法兰西公学院开课,其中有8堂课是关于深度学习,当时是用法语讲课,现在加上了英文版本。
法语版网址:Accueil
英语版网址:Home
-
Coursera 上面有 Geoff Hinton 关于神经网络的视频课程(不过从现在的角度看,内容稍微有点过时了)
-
2012 年 IPAM 上针对研究生的“深度学习和特征学习夏季课程”(这个夏季课程的授课老师包括 Geoff Hinton 、Yann LeCun、吴恩达、Yoshua Bengio等众多深度学习专家,历时半个多月时间,网上有完整视频录像,网址:http://www.ipam.ucla.edu/programs/summer-schools/graduate-summer-school-deep-learning-feature-learning/?tab=schedule)
-
2015 年我在纽约大学开了一门“深度学习”的课程,当时录成视频放到了网上,但是由于愚蠢的法律原因,视频现在已经不在了,但 PPT 还在。2017 年春天我会重新在纽约大学教这门课。网址:http://cilvr.nyu.edu/doku.php?id=deeplearning2015%3Aschedule)
-
2015年在加拿大蒙特利尔市举行了“深度学习夏季课程”(该课程的对象为:已经具备的机器学习基本知识的研究生、业界工程师和研究人员,授课量十分丰富。网址:http://videolectures.net/deeplearning2015_montreal/)
-
另外,我还推荐一些关于特定平台的使用教程,比如Torch、TensorFlow 和 Theano。
问:如果一名本科生想要成为深度学习领域的研究型科学家,你有什么建议?
首先,尽你所能,把所有具有连续性的数学和物理课都上一遍。如果必须要在“iOS 编程”和“量子力学”之间选一门,一定要选后者。在任何情况下,都要上微积分(I)、 微积分(II), 微积分(III)、线性代数、概率论和统计学,另外尽可能多的去听物理学的课程。同时,还是要确保学习编程。
为什么物理学这么重要?因为物理学发明了很多数学方法,来给真实世界建模。比如,贝叶斯推理(BayesIan inference)在本质上与统计力学(Statistical Mechanics)是相同的,反向传播算法( Backpropagation)可以看作是经典力学里拉格朗日算符(Lagrangian)的一种简单应用。图模型里的前向算法( Forward Algorithm)是一种广泛应用于量子力学的路径积分(Path Integral)。物理,能够教你如何使用傅里叶变换(“海森伯不确定原理”的基石)、最大熵原理、配分函数、蒙特卡洛法、热处理、波尔兹曼分布、动力系统、混沌等等。
-
选一个你感兴趣的与 AI 有关的问题。
-
然后独立对这个问题进行思考。
-
一旦你形成了自己的想法,就开始阅读围绕这个问题的相关文献。
-
你将会发现(a)你之前的想法有点幼稚,但是(b)你对该问题的看法开始有点不一样了。
-
在你就读的学校里,找到一个教授,他可以帮你把想法具体化。这或许有点困难,因为教授们都很忙,没有多少时间来指导本科生。有很多空余时间的教授往往很年轻,而那些年纪比较大的教授,又往往不再活跃在研究圈子里。
-
如果你找到一个合适的教授,但他没有空余时间指导你,那么你可以转而去“勾搭”他/她实验室里的博士后或博士生。
-
问问这个教授,是否可以让你去参加他/她实验室里的会议和研讨,或者只是在他们开会的时候旁听也行。
-
在你本科毕业之前,尝试着写一篇关于你研究工作的论文,或者在网上公布一些开源代码。
-
现在,你可以去申请 PhD 项目了。不要去管所谓的学校“排名”,一定要找你感兴趣领域里有声誉的教授,他论文你很喜欢或钦佩。
-
你可以同时申请几个学校的 PhD 项目,当然选择的时候参考上条标准。在申请信里,你要提到你很希望跟这个教授一起工作,但是也愿意与其他教授一起。
-
问一问你的本科教授,请他帮你写一封推荐信。如果你的本科教授与你所申请的 PhD 项目教授认识,那么将是非常有利的。
-
如果你没有录取到自己心仪的 PhD 项目,可以到Facebook或谷歌工作,并且尝试去FAIR 或Google Brain 实验室做一个工程师,来协助实验室里科学家的工作。
-
发表与公司实验室里课题有关的论文,然后重新申请 PhD 项目,并且让 FAIR 或 Google Brain 实验室里的科学家帮你写推荐信。
问:在未来5-10年内,AI 将可能朝哪些方向发展?
有很多人在致力于不同的领域,并取得了非常好的进展:
-
深度学习与推理和规划相结合。
-
基于模型的深度强化学习(涉及到无监管预测型学习)。
-
经由可辨的记忆模块巩固加强的递归神经网络(例如,记忆网络):
a. 记忆网络(FAIR)(网址:https://scholar.google.com/citations?view_op=view_citation&hl=en&user=lMkTx0EAAAAJ&sortby=pubdate&citation_for_view=lMkTx0EAAAAJ%3AumqufdRvDiIC)
b. 堆栈增强的RNN(FAIR)(网址:https://scholar.google.com/citations?view_op=view_citation&hl=en&user=oBu8kMMAAAAJ&sortby=pubdate&citation_for_view=oBu8kMMAAAAJ%3AgKiMpY-AVTkC)
c. 神经图录机(DeepMind)(网址:https://arxiv.org/abs/1410.5401)
d. 端对端型MemNN (FAIR/NYU)(网址:https://scholar.google.com/citations?view_op=view_citation&hl=en&user=lMkTx0EAAAAJ&sortby=pubdate&citation_for_view=lMkTx0EAAAAJ%3AKbBQZpvPDL4C)
-
经过对抗性训练得到的生成型(预测)模型。
-
“微程序设计”:其核心思想----将程序(或电路)看作可通过Backdrop进行训练的微模块。这一思想表明深度学习不仅可以学会识别模型(如前馈神经网),而且可以生成算法(如循环算法,递归算法,子程序算法等)。从DeepMind、FAIR及其他资源中可获得一些相关方面的文章,但是,这些仅仅是初级阶段的成果。
-
分层规划与分层强化学习:这是学习将一个复杂的任务拆分成一些简单的子任务的问题所在,是所有智能系统要满足的要求。
-
对外界事物的无监管学习预测模型(例如,视频预测)。
如果未来几年 AI 能在这些方向取得重大发展,那么将会涌现大量更为智慧的AI 智能体,应用于对话系统、问答、适应性的机器人控制与规划等领域 。
构建出无监督学习方法,这是一大挑战。但这将允许大型神经网络在没有直接人工注释数据的情况下,通过看视频、阅读书本便能够“学习现实世界是如何运转的”。
这将最终衍生出对现实世界有足够了解的机器,它们开始具有人类的“常识”。要实现这一目标,可能会花费5年、10年、20年,甚至更久的时间,我们尚不能确定具体的期限。