会思考的机器预言家(《环球科学》2012年第8期)

2012.09.19 No Comments

这是最近一期《环球科学》(科学美国人杂志中文版)上刊登的一篇关于“机器学习”的科普文章。用通俗易懂的语言解释了机器学习领域的一些基本概念,包括: training, supervised learning, unsupervised learning, reinforcement learning,  overfitting,  regularization等。 原文在作者的个人主页上可以下载:Machines that think for themselves。本文引用地址:http://blog.sciencenet.cn/blog-465130-607131.html

会思考的机器预言家

撰文 亚瑟· S · 阿布-穆斯塔法(Yaser S. Abu-Mostafa)翻译 冷颖琳

通过梳理一套已知数据集,得出特征性的模式,就可以据此预测未来。这种“机器学习”的方法让计算机学会了思考,成了名副其实的“预言家”。

几年前,一家女装公司的主管请我帮忙设计一些时装款式,用以推荐给他们的客户。我对这个领域一点也不了解,任何人如果甚至健全的话,都不会来询问我的个人意见,毕竟我是个计算机科学家,还是男性。但公司主管询问的并不是我的个人意见,而是通过机器学习(machine learning)给出个人意见,我欣然允命。仅仅依靠销售数据和对客户的调查,我便成功地向那些我素未谋面的女士们,推荐了我从来没有见过的时尚款式。我的推荐是很多专业设计师的作品都相形见拙。不过,实话实说,我个人到现在仍然多女装知之甚少。

“机器学习”是计算机科学的一个分支,旨在使计算机能够从经验中学习一些规则。现在机器学习已经得到广泛应用,它使网络搜索相关度更高,血液化验结果更精确,还让婚介服务更容易为你找到合适的伴侣。简单点说,机器学习算法的原理是:通过梳理一套已知数据集,得出特征性的模式,就可以据此预测未来。最近10年来,机器学习领域已经取得了革命性的进展。实际上,正是这项技术,使得计算机在执行许多任务时,显得比人类更加“聪明”。沃森(Watson)就是一个现成的例子——IBM公司的这个计算机系统利用机器学习技术,在Jeopardy竞赛(美国一个很有名的智力竞赛电视节目)中打败了世界上最优秀的选手。

不过最重要的一场机器学习的竞赛与Jeopardy中那些会说话的机器没什么关系。几年前,Netflix(美国一家从事在线电影租赁的公司)想帮客户找到他们喜欢的电影——重点不是找热门的新片,而是各类电影中那些不起眼的片子。公司内部已经有一个电影评价和推荐系统,但决策者认为它远不能令人满意。所以,公司举办了一场完善现有系统的竞赛。规则很简单:第一个以10%的优势击败这个内部系统的参赛者,将赢得100万美元的奖金。世界各地成千上万的人报名参赛。

研究机器学习的人都梦想赢得这场竞赛。不但是冲着诱人的奖金,对于任何机器学习系统来说,最关键的组成部分都是数据,而Netflix提供了一亿条真是的数据记录,随时可供下载。

接受训练

Netflix竞赛持续了近3年。当距离10%的目标越来越近时,各参赛小组之间开始相互合作。许多小组都将一部完整的电影分解开来,得到一长串不同的属性。例如,你可以根据电影的有趣程度,复杂程度,以及演员的吸引力等各种属性,对电影进行评分。针对每个观众,你可以回头翻看他评论过的电影,得知他对每个属性的重视程度—他对喜剧的喜爱程度如何?他喜欢简单的还是复杂的情节?他有多喜欢那些魅力十足的影星?

现在,预测变成了一件非常简单的事情,只需将观众的口味与新电影进行匹配即可。如果他喜欢喜剧和复杂的情节,那么他很可能喜欢看《热情似火》(Some Like it Hot)或《一条名叫旺达的鱼》(A Fish Called Wanda)这样曲折有趣的故事片。通过算法对数十个属性进行匹配之后,最终的结论将很好地预测观众对某部电影的喜爱程度。

我们会自然而然地想到那些容易辨认的属性,如“喜剧”或者“复杂的情节”,但机器学习算法不需要这么区分。事实上,整个过程都是自动化的-研究者从不为分析电影内容劳神。算法会从随机选择的任何属性开始分析,在获得了观众过去是如何评价电影的相关数据后,它会随之微调它所分析的属性,直到与观众的评价相符。

比方说,喜欢看电影A的人也喜欢看电影B、C和D,那么算法总会总结出这四部电影所共有的一项新属性。这个过程发生在“训练阶段”(training phase)——计算机对数百万条评价记录进行搜索,然后根据这些实际的评价,而不是主观分析,生成一系列客观属性。

机器学习算法生成的各种属性也许很难解读,不像“喜剧内容”之类的词语这么直白。世界上,他们可能极其隐晦,甚至不可理解,因为算法只是一心寻找能预测观众评价的最佳方式,不需要让我们明白他是怎么预测的。如果一套预测系统效果不错,我们并不执意要理解它的工作方式。

这可不是人们习惯的做法。刚开始干这行的时候,我给一家银行开发了一套信贷审批系统。开发出来之后,银行希望我解释一下各个属性的意义。这个要求并不是出于系统的表现——它的表现很好,而是出于法律的原因:银行拒绝给客户贷款时不可能不加解释,也不可能只给客户寄一封信,说申请被拒的原因是“X小于0.5”。

不同的机器学习系统会生成各自独有的一套属性。在Netflix竞赛的最后几个星期里,各自为战的参赛小组开始利用所谓的“聚合技术”(aggregation techniques),将他们的算法结合起来,当长达3年的竞赛进入最后一小时,还有两只队伍在为争夺头奖而奋战。记分牌显示,“合奏队”(Ensemble)稍稍领先,“贝尔科使用主义混沌队”(Bellkor’s Pragmatic Chaos)紧随其后。但经过最终审核,两只队伍的得分打了个平手——都比原始系统提高了10.06%。根据竞赛规则,当出现平局时,奖项将授予最先提交方案的队伍。而在苦战3年后,在这最后一个小时里,“贝尔科使用主义混沌队”提交方案的时间比“合奏队”早二十分钟。短短二十分钟的延迟,便让“合奏队”追求了3年的百万奖金落入了别人的口袋。

蹒跚学步

电影评价竞赛中所用的机器学习方法称作“监督学习”(supervised learning),也被应用于医学诊断等领域。例如,我们可以给计算机提供几千张来自患者病历的白细胞图片,同时注明每张图片上的细胞是否是癌细胞。有了这些信息,算法将学会利用特定的细胞属性,去识别癌细胞——它们的形态,大小、颜色等。研究人员的做法是“监督”学习过程:对于“训练数据”中的每一张图片,研究人员都会将正确的答案告诉计算机。

监督学习是最常见的机器学习方法,但非唯一的一种。举例来说,当研究机器人的专家不知道两条腿的机器人如何走路最好时,他们可以设计一个算法,测试各种不同的走路姿态,如果机器人用某种姿态走路摔倒了,那么算法就学会不再采用这种走路姿态。

这种方法称作“增强学习”(reinforcement learning),他基于我们所熟悉的一种学习策略——不断尝试,有错就改(trial and error)。在典型的增强学习情境下,无论是人类还是机器,都要做出某种动作。没有人告诉我们做什么,我们需要尝试,直面结果。根据结果,我们会强化正确的动作,避免错误的动作。最终,我们和机器都能学会各种情境下的正确动作。

以互联网搜索引擎为例,谷歌(Google)大约创立于1997年,当时,创建者并没有把整个互联网翻个底朝天,来训练服务器识别关于“多利羊”之类特定内容的网页,而是采用了增强学习算法,先抓取一部分网页生成初步结果,在根据用户的点击情况进行强化,确定哪些网页相关、哪些不相关。当用户点击了一个搜索结果中的网页链接时,算法便得知此网页是相关的;如果用户忽略了结果中最先出现的链接,算法推断此网页不相关。数以千万计的用户以这种方式作出反馈,算法将所得信息结合起来,据此在未来的搜索中调整对网页的评估结果。

过犹不及

研究人员常常将增强学习用于那些需要按顺序完成一系列动作的任务,比如玩游戏“一字棋”(tic-tac-toe,在井字形的棋盘上放置X或O,最先使3个相同的字母连成一排的获胜)便是个简单的例子。计算机的第一步棋完全是随机的,既有可能先把X放到一个角上,也有可能放到一条边上。放到角上更为有利,会使计算机赢得棋局的次数更多。于是,这种结果是计算机的下棋策略——把X放到角上——得到强化。然后研究人员将这套程序加以扩展,用来推断后续各步棋的最佳走法,并将其用于从跳棋到围棋的各种游戏。在高级的经济学程序中也经常会用到增强学习,比如用来寻找纳什均衡(Nash equilibrium,又称非合作博弈均衡,是指n人博弈中所有参与人最优策略组成的一种策略组合。在给定别人策略的情况下,没有人有足够的理由打破这种均衡。纳什均衡理论是现代主流博弈理论和经济理论的重要基础)。

有时候,要实现增强学习也很困难,因为我们的动作无法得到反馈。此时,我们必须改用“无监督学习”(unsupervised learning)。在这种情况下,研究人员有了一套数据集,却没有包含任何可以指导行动的信息——无论是监督学习中那种明确反馈的信息,还是增强学习中那种隐含在内的信息都没有。我们如何以这样的数据为基础来进行学习呢?要想理解这些数据的含义,第一步是分门别类,将相似的数据归为一组。这个过程称作聚类(clustering),收集未加标注的数据,推断出与其隐含结构有关的信息。聚类使我们更好地理解数据,便于日后考虑所应采取的行动。有时候,我们只通过聚类就能达到目的——比如我们要整理图书馆,便只需把图书分门别类地归置起来。而有些时候,我们可能需要更近一步,对经过聚类的数据进行监督学习。

颇具讽刺意味的是,机器学习的实践最容易掉入陷阱的是,在一个问题上投入过多的计算力。能够识别这一情况并作出恰当的处理,正是专业人员不同于业余爱好者的地方。

更多的计算力有什么害处呢?机器学习算法试图检测出数据中存在的模式,如果算法太激进——没准用了过于复杂的模型来拟合(指已知某函数的若干离散值,通过调整该函数中若干待定参数,使得该函数与已知离散点集的差别最小)一个有限的数据样本,它会被自己蒙骗,检测出一些偶然出现于样本中、并不能反映真实情况的伪模式(spurious patterns)。在对机器学习的数学理论进行研究的过程中,数据的“过度拟合”(overfitting)是一个值得重点关注的问题。我们希望发现真实的关系,用来拟合数据,但不想做的太过头,得到一堆不可信的模式。

为了理解“过度拟合”是如何产生的,可以设想一个玩轮盘赌的赌徒。为简便起见,不妨假设这个赌桌只有红色和黑色的数字,不包括0和00。假如这个赌徒连续观看了10次轮盘赌,小球总是交替出现在红色和黑色的数字上。“轮盘肯定出问题了,”,她想,“总按红、黑、红、黑的顺序来。”根据这个有限的数据集,她在脑海里建立了一个模型。然而,在第11轮,她刚刚在红色上押了100美元的赌注,轮盘便恢复了随机性——和第10轮一样它有停在了黑色数字上。她输了个精光。

这个假想的赌徒就是在寻找一种根本不存在的模式。从统计学上讲,如何轮盘赌桌都有大约1/500的几率连续10次出现红黑交替的结果。不过,在轮盘赌中,过去的结果对将来没有任何影响,接下来的一轮永远有50%的几率停在红色上。在机器学习领域,我们有句老话:“数据也会被屈打成招”。

为避免这一后果,机器学习算法采用了一种称作“正则化”(regularization)的技术,倾向于使模型尽可能保持简单。模型越复杂,越容易发生过度拟合;正则化则保证了模型不会太过复杂。

研究人员还普遍采用“训练集”之外的数据,对算法进行验证。这样就可以确定算法的有效性是真实的,而不是在训练数据中所得到的假象。例如,Netflix大奖在进行评判时,就没有采用提供给参赛者的数据,只有公司内部的人员可以得到。

前途光明

如果你在从事机器学习的工作,那应该几乎不会感到厌烦。你永远也不会知道接下来要开发什么应用程序。机器学习使某一领域内那些算不上专家的人——比如女装领域里的计算机科学家——仅仅基于数据,便能够进行学习和预测,因此,人们对这个学科的兴趣与日剧增。今年春天,来自15个不同专业的学生参加了我在美国加州理工学院开设的机器学习课程。我还第一次在网上发布了课程资料和授课视频,世界各地成千上万人观看了视频,完成了课程作业。

扩展阅读

  • Machines That Learn from Hints. Yaser S. Abu-Mostafa in Scientific American, Vol. 272, No. 4, pages 64–69; April 1995.
  • Recommend a Movie, Win a Million Bucks. Joseph Sill in Engineering & Science, Vol. 73, No. 2, pages 32–39; Spring 2010.
  • Learning from Data. Yaser S. Abu-Mostafa, Malik Magdon-Ismail and Hsuan-Tien Lin. AMLbook, 2012. http://amlbook.com
  • Learning from Data (online course): http://work.caltech.edu/telecourse.html

 

Related Posts:
Leave a Reply
You must be logged in to post a comment.