Quora机器学习Sessions:对话谷歌研究员Kevin Murphy
Writing Sessions是知识共享网站Quora推出的一个与专家交流互动的新板块,在这里你可以看到各个行业领域的专家、学者、名人等对引人注目的问题的独特见解。最近推出的系列围绕如今最热门的技术之一——机器学习所展开,之前机器之心推出了Andrew Ng系列,Pedro Domingos系列,本次机器之心精选谷歌研究员、《Machine Learning: A Probabilistic Perspective》作者Kevin Murphy在Quora上的回答,让我们一起看看这位机器学习研究员对机器学习等有何见解吧!机器之心后续还会陆续推出其他专家系列,敬请期待!
问题一:深度学习的极限在哪里?
如果你说的「深度学习」指的是「函数的嵌套组合」,那么它确实没有太多极限可言,因为所有的计算都可以被包含在这个概念里。然而在我看来,主要的问题在于目前的深度学习方法仍需要过多的时间和数据——这和人类能够通过小得多的数据样本学习,并且学得更加快速的能力相矛盾(比如,《纽约时报》语料库中的词汇量比一个三岁小孩听过的所有词汇多出100多倍)。
关键的问题是:学习的最佳表示形式,即归纳偏置(inductive bias)(译者注:当学习器去预测其未遇到过的输入的结果时,会做一些假设(Mitchell, 1980)。而学习算法中的归纳偏置则是这些假设的集合。——维基百科)是什么?当然,这因不同的学习任务而异。人类似乎综合采用了多种知识表示。具体的例子见Liz Spelke关于儿童「核心知识」的工作(以及Josh Tenenbaum及其同事的工作)。当然,这种高层次的知识由神经放电的模式予以表征。但是从统计的角度(或者计算的角度)来讲,通过操控更加结构化的表征(比如,对象和代理,以及它们的属性和关系)比起在一个超高维的连续参数空间中进行小步长计算更利于高效学习,虽然目前看来,后者似乎正大放异彩。
问题二:除了Matlab和R语言这样的主流语言,今后在学术和工业界还有哪些最有用的语言?
Python是目前最受欢迎的语言,虽然在科学计算领域,Julia似乎也越发受到青睐。个人来讲,我喜欢具备静态类型检查和类型推理功能的语言,比如Standard ML 和 Scala,但它们并未进入机器学习社区的主流(虽然微软研究院显然大量使用了F#语言)。在谷歌,我们主要使用C++ 和Python,也有一些同事用Jave和R语言。同时,DeepMind团队和其他一些人工智能实验室使用的是Lua语言(因为这是使用Torch最简单的方法)。
问题三:你写作《机器学习:概率观》(Machine Learning: A Probabilistic Perspective)的动机是什么?
大约在2006年我开始了这本书的写作,当时我是英属哥伦比亚大学的教授,给本科生和研究生讲授机器学习。我发现当时已经出版的作品(如Chris Bishop的书,以及Hastie,Tibshirani 与 Friedman合著的书)都在某方面尚有缺陷(比如Bishop的书中甚至没有提到L1范数规则化,而Hastie的书没有包括图论模型)。于是我决定自己写一本,但我没想到这本书花了整整六年才得以出版。
问题四:你怎样看待openAI?
一方面,OpenAI的员工都是深度学习领域一批最优秀的初级研究人员;另一方面,我认为它成立的初衷——即Elon Musk等人担心人工智能会掌控世界——有些不靠谱。我同意吴恩达的说法,即「担心人工智能超越人类就像是担心火星上人口过剩一样」。我的主要担忧在于,担忧这些遥不可及的灾难让人们从眼前的紧迫问题上分散注意力,比如气候变化,失业问题(部分由人工智能造成),(经济和种族的)不平等,等等。
问题五:机器学习中,尚未解决的问题里最重要的是哪个?
非监督式学习。具体来讲,我们应该采用怎样的目标函数?将已知数据或者甚至是后来得到数据的似然最大化似乎不是正确的方法。比如,假设我们要预测一段视频接下来N帧的每一个像素,我们会关心图像的精确亮度值吗?不,我们关心的是对下一步的预测(汽车会向左还是向右转向?如果我扔下这个杯子,它会摔碎吗?)。不知何故,人和动物似乎是在这一更抽象的层面学习预测的,这与对象和关系相关,不需要接收任何标签数据。多任务强化学习对此有所帮助,但是单单从梯度奖励(scalar reward)进行学习似乎太局限。学习预测某人的行为结果似乎有所帮助(这同样可以用于基于目标的规划)。
问题六:为什么人工智能赢得围棋是意义重大的里程碑?
围棋比国际象棋困难得多,因为它要求学会察觉棋盘上布局的微妙模式,而不是仅仅计算不同棋局状态下的权值。在这方面,围棋更接近于实际问题,它要求一种「模糊的」模式识别。(关于DeepMind的更多信息,请见 AlphaGo: using machine learning to master the ancient game of Go )。这仍然和「人类级别的人工智能」相距甚远(比如,AlphaGo只能下围棋,却不能完成其他任务),但这仍然是令人惊叹的里程碑。
问题七:除了神经网络,什么是机器学习领域目前最有前途的方法?
具有优良特性的古典广义线性模型(例如,线性和逻辑回归),只要输入特征足够多(如词汇和像素),并有合适的特征引擎,它们就能够出色的解决监督式问题。你也可以把它们和字嵌入(word embeddings)结合起来。另外,随机森林算法(Random forests)也是很好的机器学习方法。
问题八:学习机器学习最好的教材有哪些?
显然我写的 机器学习教材 是不错的选择。然而不得不承认,这一版本对初学者来说有一定难度。事实上我正在编写本书的第二版,它讲述的节奏更加缓慢,也就更加适合初学者(我也在这一版中加进了深度学习、增强学习等内容)。但完成它还需要一段时间(大概两年?)。
同时,还有别的一些好书值得推荐。比如,可以参考这个书单: josephmisiti/awesome-machine-learning 。我认为尤其出色的一本是James, Witten,Hastie和Tibshirani编写的 《统计学习入门》(Introduction to Statistical Learning) 。它包含了一些频率统计方面的概念,比如p-值(这一部分你可以放心跳过),但不足的是,没有涵盖深度学习或图论模型等主题,但无论如何这是一本很好的入门教材。
问题九:人们应该怎样开始自己的机器学习领域的职业生涯?
这取决于你怎样定义「机器学习领域的职业生涯」。
如果你指的是一份运用现成工具(如R程序库、scikit-learn或Dato)的工作,你只需要在本科期间上几门机器学习相关的本科课程,或是在线的开放课程(如 https://www.coursera.org/learn/m… 或 https://www.coursera.org/special… )。
另外,你应该多多积累实际经验,比如参加kaggle竞赛,以及(或者)在github上分享你的代码(我推荐使用Python)。
如果你想要一份开发全新机器学习算法的工作,那么你需要获得计算机科学以及(或者)统计学的博士学位(当然,也有人在博士后期间从物理等领域中途转向机器学习)。