PDF 物理页索引 3050
文件中的第 3051 页 · 印刷页码:未识别
那么答案是什么?答应还是不答应?有没有什么模型可以区分肯定和否定?更重要的是,这个模型会如何决定今天的情况?
很明显,没有哪个因素可以单独准确预测出答案:有的周末她喜欢出去约会,而有的周末她却不想出去;有时她喜欢去泡吧,而有时她又不喜欢……把所有因素综合起来会怎样?可能周末她喜欢去泡吧?并不是,第四次约会就排除了这种情况,或者可能她只喜欢天气暖和的周末晚上出去约会?是的!这个说法符合之前的情况!看了看外面寒冷的天气,好像今晚不合适。可是等一下!电视不好看的晚上她会不会想去泡吧?好像这也符合前几次的情况,也就是说今天可以约会!快,快点打给她,不然就迟了。再等等。你怎么知道这是对的模型?你已经找到两种情况和之前的情况相符,但这两次的预测都是否定。细想一下,如果她只想天气好的时候去泡吧,那怎么办?或者她只是在没什么电视好看时的周末才会出去?或者……
这时,你灰心地把画好的表揉成一团,丢到垃圾桶里。没有办法知道她会不会答应!你能做什么?休谟的灵魂伤心地在你的肩膀上点头。你没有任何依据选择这个而不是另外一个。对于“她会说什么”这个问题,回答“是”或“否”的可能性都一样。时钟嘀嗒作响,最后你准备抛硬币来决定。
PDF 物理页索引 3051
文件中的第 3052 页 · 印刷页码:未识别
你不是唯一身处窘境的人——我们都是。我们才开始寻找终极算法之旅,似乎就已经遇到无法克服的困难了。有没有什么办法可以从过去的经历中掌握规律,然后信心满满地运用到未来的事情中?如果没有,那么机器学习不就是一个没有希望的事业了吗?就此而言,所有学科甚至所有人类的知识,不就随时可能会被推翻吗?
这种情况不是大数据能解决的问题。你可以像卡萨诺瓦那样放荡,有无数个可以约会数几千次的女人,但你的主数据库还是不知道这次这个女人会说什么。即使今天和前几次她答应约会的情况一样(都是周末、一样的约会方式、一样的天气、一样的电视节目),这也并不意味着这次她会答应你出去约会。正如你所知道的那样,她的回答由一些你不知道或者无法知道的原因决定。也或者她的回答没有什么别的原因,只是随口回答,而你也只是白费力气地从之前的情况中找规律。
自休谟提出归纳问题,哲学家就已经对此进行辩论,但还没有人能给出一个满意的答案。伯特兰·罗素喜欢用“归纳主义者火鸡”这个故事来阐述这个问题。故事的主人公是一只火鸡,它来到农场的第一个早晨,主人在早上9点喂它们,但作为实实在在的归纳法优越论者,它不想过早下结论:主人每天都9点喂它们。首先它在不同情况下观察了很多天,收集了许多观察数据。主人连续多天都是9点喂它们,最终它得出结论,认为主人每天早上9点喂火鸡,那么主人一直会在早上9点给它喂食。接下来是平安夜那天的早晨,主人没有喂它,因为它被宰了。
如果休谟问题仅仅是一个我们可以忽略的哲学小难题,就太好了,但事实并非如此。例如,谷歌的业务就是在你往搜索框输入一些关键字时,猜测你在寻找哪些网页。过去搜索查询的人所输入关键字的大量记录,以及他们点击的、相应查询结果页面的链接,都是谷歌的重要资产。如果某个人输入一组关键字,而这些关键字却不在记录里面,你该怎么办?即便关键字在记录中,你怎么能肯定当前用户想要的搜索结果和之前的一样?
PDF 物理页索引 3052
文件中的第 3053 页 · 印刷页码:未识别
如果我们只是假设未来和昨天一样,那么会怎样呢?这当然是一个有风险的假设(这对归纳主义者火鸡就不会奏效)。另外,没有这样的假设,所有知识将不复存在,生活也是如此。虽然有很多不确定性,但我们还是宁可活下来。遗憾的是,虽然有那样的假设,但我们还是尚未走出困境。这个假设还得应付这些“微不足道的”例子:如果我是一名医生,患者B和患者A有一模一样的症状,我假设两人的诊断结果都一样。但如果患者B的症状和其他人都不一样,我就仍然不知道如何做诊断。这属于机器学习问题:将某结果推广到我们没有见过的事件中。
也许这也不是什么大问题?有了足够的数据,大多数事件不就变得“微不足道”了吗?不是的。我们在前面的章节中了解到,为什么记忆不能当作通用学习算法,我们现在可以用更量化的方式来解释这个问题。假设你现在有一个数据库,含有1万亿条记录,每条记录有1000个布尔字段(也就是说,每个字段回答一个是或否的问题)。这个数据库真的好大。你认为有多少种可能的事件?往下读之前好好猜一猜。每个问题可能的答案有两个,两个问题就是2乘以2(是—是、是 — 否 、 否 — 是 、 否 — 否 ) , 三 个 问 题 就 是 2 的 三 次 方$( 2 \times 2 \times 2 { = } 2 ^ { 3 } )$ ),如果是1000个问题,就是2的1000次方(2<sup>1000</sup>)。你的数据库中1万亿条记录,可能性就是分子是1、分母是无限大的数乘以1%,然后再乘以2<sup>1000</sup>,“分子是1、分母是无限大的数”指的是“小数点前是0,小数点后是286个0,后面跟着1的小数”。结果就是:无论有多少数据——多少兆、多少千兆、多少千兆兆、多少泽或多少尧字节,你基本上什么也看不到。你要决定的新事件已经存在于数据库中,而数据库非常大,这件事发生的概率低到可以忽略,所以如果不进行一般化,对你就不会有任何帮助。
PDF 物理页索引 3053
文件中的第 3054 页 · 印刷页码:未识别
如果这些听起来有点抽象,那么假设你是一个邮件服务提供商,要将每封收到的邮件进行分类,分为垃圾邮件或非垃圾邮件。你也许有一个包含1万亿封过去邮件的数据库,而且每封邮件都已经被分为垃圾邮件或非垃圾邮件,但那样做并不会让你省事,因为每封新邮件和之前邮件一模一样的概率几乎是0。你没有选择,只能以大概的概率来区分垃圾邮件和非垃圾邮件,而根据休谟的观点,这根本做不到。
<sup>“</sup>天下没有免费的午餐<sup>”</sup>定理
休谟提出爆炸性问题之后的250年,大卫·沃尔珀特(DavidWolpert)赋予了这个问题优雅的数学形式。沃尔珀特原来是一名物理学家,后来成为机器学习者。他的研究结果被人们称为“天下没有免费的午餐”定理,规定“怎样才算是好的学习算法”。这个规定要求很低:没有哪个学习算法可以比得上随意猜测。好吧,那我们就不用找终极算法,可以回家了:终极算法只是用抛硬币来做决定的算法。说真的,如果没有哪个学习算法可以比抛硬币更管用,那会怎样?而且如果真的是那样,为什么这个世界——从垃圾邮件过滤(随时都在进行)到自动驾驶汽车——到处都是非常成功的学习算法呢?
“天下没有免费的午餐”这个定理和帕斯卡尔赌注失败的原因非常相似。帕斯卡尔的《思想录》于1669年出版,他在书中提到我们应该相信基督教中的神,因为如果神存在,他就会给我们永生,而如果他不存在,我们的损失也很小。这在当时是非常复杂的论点,但正如狄德罗指出的那样,伊玛目也可以同样的理由让人们来相信真主安拉的存在。如果你选错了要信的神,代价就是永世在地狱。总而言之,在考虑各种各样可能相信的神时,选择特定的神来信仰,还不如选择其他的神。因为,有说“这样做”的神,也会有说“不,那样做”的神。你也许应该把神忘了,好好享受没有宗教限制的生活。
PDF 物理页索引 3054
文件中的第 3055 页 · 印刷页码:未识别
用“学习算法”来代替“神”,用“准确的预测”来代替“永生”,你就遵守“天下没有免费的午餐”这个定理了。选择你最喜欢的学习算法(在本书中你会看到很多算法)。如果存在学习算法比随机猜测好用的领域,我(一个喜欢唱反调的人)会构建一个学习算法没有随机猜测好用的领域。我要做的就是把所有“未知”例子的标签翻过来。因为“经过观察”的标签表明,你的学习算法绝无可能区分世界和反物质世界。在这两个世界中的平均表现,学习算法和随机猜测一样好用。因此,在所有可能的世界中,把每个世界与其反物质世界配对,你的学习算法的作用就和抛硬币的作用一样。
虽然如此,别马上就对机器学习或终极算法失望。我们不关心所有可能存在的世界,而只关心我们生存的这个世界。如果我们对这个世界有所了解,然后把了解的知识输入我们的学习算法,那么现在和随机猜测相比,学习算法就可以发挥优势了。休谟可能会回应说,知识本身必须由归纳得来,因此知识也是有问题的。没错,虽然知识是通过进化编入我们的大脑的,但我们不得不冒这个险。我们也可以这样问,有没有小部分毋庸置疑、非常基础的宝贵知识,让我们可以在其基础上进行所有归纳(有点像笛卡儿的“我思故我在”,虽然很难明白,如何将这句话输入学习算法中)。我觉得回答是肯定的,在第九章,我们就会知道那些宝贵的知识是什么。
同时,“天下没有免费的午餐”这个实际的结论表明,不靠知识进行学习,这样的事不存在。只有数字也不够。从零开始只会让你一无所获。机器学习就像知识泵,我们可以用它来从数据中提取大量的知识,但首先我们得先对泵进行预设。
数学家认为机器学习这个问题是一个不适定问题(ill–posedproblem):这个问题没有唯一解。下面是一个简单的不适定问题:哪两个数相加的得数是1000?假设这两个数都是正数,答案就有500种……1和999,2和998等等。解决不适定问题的唯一办法就是引入附加假设。如果我告诉你,第二个数是第一个数的三倍,那么答案就是250和750。
PDF 物理页索引 3055
文件中的第 3056 页 · 印刷页码:未识别
汤姆·米切尔(Tom Mitchell)是典型的符号学者,称机器学习体现“无偏见学习的无用性”。在日常生活中,“偏见”是一个贬义词:预设观念不太好。但在机器学习中,预设观念是必不可少的;没有这些观念,你就无法进行学习。实际上,预设观念对人类认知来说,也是必不可少的,这些观念是“直线布入”人脑的。对于它们,我们也觉得是理所当然的。超出那些观念的偏见才值得质疑。
亚里士多德曾经说过,在知识领域,没有什么东西不是首先凭借感觉来形成的。莱布尼茨又加了一句,“除了知识本身”。人类的大脑不是一张白纸,因为它不是一块石板。石板是被动的,你可以在上面写东西,但大脑可以主动处理它接收到的东西。记忆就是大脑用来写东西的石板,而且记忆不是一开始就是空白的。另一方面,计算机在你给它编程之前,就是一张白纸;在用计算机做事之前,这个积极的过程需写入记忆。我们的目标是找到最简单的、我们能编写的程序,这样写好的程序就可以无限制地通过阅读数据来自行编程,直到该程序掌握所有能掌握的知识。
机器学习不可避免地含有投机的因素。在《警探哈里》(第一集)中,克林特·伊斯特伍德追逐一名银行抢劫犯,同时不断向他开枪。最后,抢劫犯躺在一把装有子弹的枪旁边,不确定要不要把它拿起来。哈里开了6枪还是只开了5枪?哈里同情地说(可以这么说):“你得问自己一个问题:‘我足够走运吗?’你真的走运吗,小子?”这也是机器学习算法每天运作时必须问自己的问题:“今天我幸运吗?”就像进化的过程一样,机器学习不是时时刻刻都知道自己是否可以准确无误地运行。实际上,误差是常有的事,并不意外。但没关系,因为我们放弃误差的部分,主要靠没有误差的部分,而计算结果才是最重要的。我们一旦掌握新的知识,基于前面的步骤,就可以得出更多的知识。唯一的问题就是,从哪里开始。
PDF 物理页索引 3056
文件中的第 3057 页 · 印刷页码:未识别
对知识泵进行预设
在《自然哲学的数学原理》一书及三大运动定律中,牛顿阐述了推理的四条法则。虽然这些法则没有那些物理定律那么著名,但可以说很重要。其中第三条是关键法则,我们可以这样表述:
我们见过的所有真实的东西,在宇宙中也是真实的。
可以毫不夸张地说,这句听起来无伤大雅的话就是牛顿革命以及现代科学的核心。开普勒定律适用于6个实体:那个年代太阳系中已知的6颗行星。牛顿定律适用于宇宙中的每一个微粒。这两个定律之间的共性如此之大,让人感到吃惊,而这也是牛顿法则的直接结果。这个法则本身就是拥有非凡动力的知识泵。没有这个法则,也就没有什么自然法则,有的也只是永远无法完整的、小规律的集合体。
牛顿法则是机器学习的第一个不成文规则。我们归纳自己能力范围内、应用最广泛的规则,只有在数据的迫使下,才缩小规则的应用范围。乍一看,这看起来可能过于自信甚至近乎荒谬,但这种做法已经为科学服务了300余年。当然也可以想象出一个变化无常的宇宙,在那里牛顿法则不起作用,但那并不是我们的宇宙。
然而,牛顿法则仅仅是第一步。还得弄明白我们见到的哪些是真实的——如何从原始数据中找出规律。标准的解决方法就是假设我们知道真理的形式,而算法的任务就是把这个形式具体化。例如,在之前提到的约会问题中,你可以假设你朋友的回复由单个因素来决定。在这种情况下,算法就只包括看看每个已知的因素(时间、约会方式、天气、晚间电视节目),确定该因素是否每次都能准确预测她的回答。可问题就在于,每个因素都无法预测她的回答!你打赌了,然后输了。所以你把假设放宽了一点。如果你朋友的回答是由两个因素一起决定的呢?总共四个因素,每个因素有两种可能的值,那么总共有24种可能(总共有6对因素组合,即12乘以因素的两种可能)。数字太多,我们遇到尴尬:两个因素的四种组合准确预测了结果!接下来怎么办?如果你觉得运气还行,可以选其中的一种,然后祈祷最好的结果。但更明智的选择是采取民主的做法:对每个选项进行选择,然后选最后赢的预测。
PDF 物理页索引 3057
文件中的第 3058 页 · 印刷页码:未识别
如果所有两个因素组合的预测都失败了,你可以尝试任意个数因素的组合,机器学习者和心理学家称之为“合取概念”(conjunctiveconcept)。字典对词的定义就属于合取概念:椅子是有靠背、若干条腿的坐具。把任意一个描述去掉,就不再是椅子。托尔斯泰在写《安娜·卡列尼娜》的开篇时,出现在他脑海里的就是合取概念:“所有幸福的家庭都是相似的,每个不幸的家庭各有各的不幸。”对于个人来说,也是这样的。为了感到幸福,你需要健康、爱、朋友、钱、你喜欢的工作等。把这些东西的任意一个拿走,痛苦也会随之而来。
在机器学习中,概念性的例子成为正面例子,而与概念例子相反的则是负面例子。如果你在尝试通过图片来认出猫,那么猫的图片就是正面例子,而狗的图片则是负面例子。如果你对世界文学中描述的家庭进行汇总,并编成数据库,那么卡列尼娜一家就是幸福家庭的负面例子,而且正面例子寥寥无几。
首先做有条件的假设,如果这样无法解释数据,再放松假设的条件,这就是典型的机器学习。这个过程通常由算法自行进行,不需要你的帮助。首先,算法会尝试所有单一因素,然后尝试所有两个因素的组合,之后就是所有三个因素的组合等。但现在我们遇到一个问题:合取概念太多,没有足够的时间对其逐个尝试。
PDF 物理页索引 3058
文件中的第 3059 页 · 印刷页码:未识别
约会的例子有点欺骗性,因为它太小(4个变量,4个例子)。但假设你提供在线约会服务,你就需要知道要对哪些人进行配对。如果你的每个会员都填写了一份问卷,问卷包含50个“是或否”的问题,这样就有100种特点,这100种特点涵盖了每对可能配对成功的情侣的特点,每对情侣中的一方都有50个特点。这些情侣出去约会之后,会汇报结果,在此基础上,你能找到“佳偶”这个定义的合取概念吗?总共有3100种可能的定义(每个问题有三种选择,分别为“是”、“否”、“与该品质无关”)。即使由世界上最快速的计算机来做这项工作,这些情侣也会老得去世了(你的公司也破产了)。等你计算出来,除非你走运,可以找出很短的一条关于“佳偶”的定义。规则太多,而时间太少,我们得做点更精明的事。
这里有一种方法:暂且假设每个配对都合适,然后排除所有不含有某品质的搭配,对每种品质重复同样的做法,然后选择那个排除了最多不当搭配和最少适当搭配的选项。现在你的定义看起来就像“只有他开朗,这对才合适”。现在反过来试着把其他品质加进去,然后选择那个排除了剩下最多的不当搭配和剩下最少的适当搭配的选项。现在的定义可能是“只有他和她都开朗,这对才合适”。然后试着往那两个特点里加入第三个品质,以此类推。一旦排除了所有不合适的搭配,你就成功了:就有了这个概念的定义,这个概念排除了所有的正面例子和所有的负面例子。例如,“每对中的两个人都开朗,这对才合适,他爱狗,而她不爱猫”。现在你可以丢掉所有数据,然后只把这个定义留下,因为这个定义概括了所有和你的目标相关的东西。这个算法保证能在合理的时间内完成运算,而这也是我们在本书中见过的第一个真实的学习算法。
如何征服世界
PDF 物理页索引 3059
文件中的第 3060 页 · 印刷页码:未识别
虽然合取概念的用途有很多,但并不能让你走很远。正如鲁德亚德·吉卜林说的那样,问题在于“编部落歌谣的方法有很多种,而每种方法都是正确的”。真正的概念是分离的。椅子可能有四条腿或三条腿,而有些则一条也没有。你可以以无数种方法来赢一盘棋。包含“伟哥”这个词的邮件有可能是垃圾邮件,但包含“免费”一词的邮件也有可能是垃圾邮件。此外,所有规则都会有例外。所有的鸟都会飞,除了企鹅、鸵鸟、食火鸡或者几维鸟(或断了翅膀的鸟,或被锁在笼子里的鸟)。
我们要做的就是学习经过一系列规则定义的概念,而不仅仅是单个规则,例如:
如果你喜欢《星球大战》第四至六部,那么你会喜欢《阿凡达》。
如果你喜欢《星际迷航:下一代》以及《泰坦尼克号》,那么你会喜欢《阿凡达》。
如果你参加塞拉俱乐部,并阅读科幻书籍,那么你会喜欢《阿凡达》。
或者:
如果你的信用卡昨天在中国、加拿大以及尼日利亚被刷,那么它被盗了。
如果某工作日晚上11点,你的信用卡被刷,那么它被盗了。
如果你的信用卡被用来购买一美元的汽油,那么它被盗了。
如果你对最后一条规则有疑问,解释如下:过去信用卡窃贼通常会用偷到的卡购买一美元的汽油,来看看在数据挖掘器识破其阴谋