机器学习的算法原理是什么?

如题所述

第一级思维叫“观察”,是通过数据分析做出预测。

你的生活经验表明下雨会把衣服淋湿,所以下次下雨你最好打伞,这就是观察思维。观察是寻找变量之间的相关性,观察就是积累经验。

现在所有实用 AI 技术都是基于这个第一级思维。AlphaGo 下围棋,并不是它理解这步棋有什么用,它只不过知道走这步赢棋的概率会更大。

比如你开个便利店,有卖牙膏和牙线。观察思维问的问题是,如果一个顾客买牙膏的话,他有多大的概率同时也买牙线呢?如果你学过概率论,你知道这个问题的数学表达式是这样的 :P(牙线 | 牙膏)

这个公式的意思就是假设已经买了牙膏,求买牙线的概率是多少。这个知识对你很有用,你可以判断要不要把牙线和牙膏放一起,它们应该按什么比例进货。所有动物都有观察思维的能力。观察思维已经能解决很多问题,但是远远不够。

第二级思维叫“干预”,是预判一个行动的结果。

干预,是说如果我现在把牙膏的价格给提高一倍,对牙线的销量会有什么影响?

这不是以往的数据所能告诉你的。是,以前可能发生过牙膏价格是现在一倍的情况,但是你不能用以前那个经验预测现在这个行动的结果。因为以前牙膏价格高,是因为别的缘故。可能当时牙膏紧缺才卖得贵。

现在我们说的是,不管别人家牙膏卖多少钱,你单方面采取行动,刻意地干预牙膏价格,对牙线的销量有什么影响。这种事儿从来都没发生过。

想知道结果,最好的办法是做实验。互联网公司一直都在做各种“A/B测试”,看看哪个标题能吸引更多点击,什么颜色的网页能让用户停留时间更长,都是用分组测试的方法。测试是主动的干预。

从概率角度来说,我们要研究的就不是前面说的那个 P(牙线 | 牙膏),而是P(牙线| do (牙膏)),其中这个 do 是一个数学算符,它的意思就是做一个干预动作。

其实生活中我们一直都在做干预动作。新电影票房不太好,到底应该花钱做个电视广告呢,还是让明星爆个料?以往的经验可以给你一些提示,但干预动作的结果到底会怎样,你需要更高级的判断。

第三级思维叫“想象”,是对以前发生的事儿的反思。

第三级思维问的问题是,如果我当时是那么做的话,现在会是一个什么样的结果?我现在工资很低,要是我当初好好学数学,大学学的是计算机专业,现在的工资会是多少呢?

你问的是一个从来没发生过的事情。这叫反事实(counterfactual)分析。如果纳粹德国抢先一步发明原子弹,现在的世界会是什么样的?这件事儿在历史上并有没有发生,你积累的大数据好像用不上啊。

很多人爱说一句话,叫“历史不容假设” —— 这句话是错的。正是因为我们会假设,我们能想象不一样的可能性,我们才是高级动物。

想象是智人的超能力。珀尔引用了赫拉利在《人类简史》里的说法,大约是在七万年前,智人发生了一起“认知革命” —— 智人开始想象一些不存在的东西。

这三级思维,代表三个问题——

1.这件事儿发生了,那件事儿是否也跟着会发生?

2.我采取这个行动,会有什么后果?

3.如果当初我没有这么做,现在会是怎样的?

回答第一个问题也许只要有数据分析就行,回答第二和第三个问题,你需要因果模型。你需要知道什么导致什么。

有了因果模型,你就能在大脑里做各种思想实验,你就能权衡比较,你就能为未来做计划。以前打猎都是你自己去,偶尔两个人一起去。但是如果你知道人多力量大这个因果关系,你就能想到,也许下次打猎可以多带几个人。我一个人打不过那个大象,五个人一起上行不行?

这样你就做了以前从来没有人做过的事情!你没有数据分析,但是你想象到了。这是人类智慧的伟大突变,正是因为这个突变才使得人类脱颖而出。

因果思维有三个级别。

第一级是观测,你要处理的是已经观测到的世界。

第二级是干预,你要处理一个可以被观测的新世界。

第三级是想象,你要处理一个不可被观测的、你想象中的世界。

所以回归平均其实就是一个简单的统计现象,本质原因是小概率事件不会一再发生 —— 这里面并没有什么神秘力量。

所谓 reason,是说对这件事的解释。比如你问我某个电影的续集为什么票房不高,我说这是回归平均,这个事儿有一个解释。

而 cause,则是导致这件事的另一件事。你现在为什么感到有点饿,因为你没吃早饭。Cause 就是“因果关系”里面那个“因”,我们这里统一翻译成“缘故”。

世界上有些事儿,是无缘无故发生的。

真实世界里任何事情都是错综复杂的,你根本就无法列举影响一个结果的所有可能缘故。你必须做出各种取舍,你只能把你认为最重要的缘故画在图上。图画完了,你并没有科学地、彻底地、逻辑完备地回答“为什么”,你只是说,根据你的猜测,应该是因为这几个缘故。

这是一种概率化的因果,但是也不能排除单纯的相关性。

珀尔倒是给了一个更好的定义:P(Y |  do (X)) > P(Y). 也就是说,如果你单方面对 X 做一个干预动作,导致 Y 的概率增加,那么就是 X 导致了Y。这个可能是目前为止最合理的定义。

皮尔逊做了大量的调查研究,发现了各种相关性。他注意到,有些相关性很有意义,有些相关性就没什么意义,他称之为“伪相关(spurious correlation)”。比如说,一个国家的人均巧克力消费量,和这个国家的诺贝尔奖得主人数,有一个非常强的正相关。皮尔逊说这就是一个没什么意义的伪相关。你总不可能说吃巧克力有利于得诺贝尔奖。让我们解释这个相关性的话,肯定是巧克力消费量高是因为这个国家的经济比较发达,而经济比较发达的国家容易出诺贝尔奖得主。有因果的相关性更有意义 —— 虽然我们无法用纯粹理性定义因果。我们如此地倾向于因果思维,从根本上来说,是因为因果思维很有用。一个简单的因果模型,就能胜过无数经验。

我这个因果模型并不是客观的。你不可能通过数据分析、用机械化的流程得到这张图。因果图之所以这么画,图中之所以考虑了这些关系而没考虑别的关系,这是你自己主观的选择 —— 是你用自己的知识、阅历和判断画出来的。

也就是说,因果关系,其实是你的主观假设。数据是客观的,而人的观点是主观的。相关性是客观的,因果是主观的。

有了这个洞见,我们解决问题的步骤就是下面这样的——

第一步,根据你自己的见识,画一张主观的因果模型图。模型里有些因果关系是概率性的,A 发生并不一定会让 B 发生,只要 A 对 B 有影响就行。

第二步,使用实验和数据分析,确定图中每个因果关系的强弱大小。这样你就有了一个完整的因果模型。

第三步,使用因果模型,你就可以回答“观察、干预、想象”那三种问题了。

如果 AI 拥有这样的模型,它就等于获得了智能。珀尔称之为“小图灵问题”,相当于计算机通过了一个小的图灵测试:他掌握了因果思维。

真实世界里任何事情都是错综复杂的,你根本就无法列举影响一个结果的所有可能缘故。你必须做出各种取舍,你只能把你认为最重要的缘故画在图上。图画完了,你并没有科学地、彻底地、逻辑完备地回答“为什么”,你只是说,根据你的猜测,应该是因为这几个缘故。

而事实上也不需要回答“为什么”。我们在生活中的实际应用,对改变世界真正有用的,其实就是回答“观察、干预、想象”这三种问题!

所以因果分析的最终目的不是查明因果关系,而是回答三种问题。这三个问题比因果关系更基本 —— 因果关系只是我们回答问题的手段。没有这个手段,只靠数据分析,你回答不了第二和第三种问题。当然,有了这个手段,如果你的因果模型不准确,你给的答案也会不准确 —— 你可能会漏掉一个特别重要的因果关系,你可能忽略了黑天鹅事件。但是这不要紧!预测未来的事儿本来就是谁也保证不了100%准确。

哲学家的世界观谁也反驳不了,但我们这里不解决世界观问题,我们解决方法论问题就可以了。

虽然模型是主观的,但是因果分析仍然具有客观的性质。如果两个人的假设相同,他们画的因果关系图就是一样的,那么因为接下来的数学方法是客观的,这两个人对未来的预测,必定是100%相同。

用一句话概括贝叶斯思想,就是“观点随事实发生改变”。知识这东西就得经常地核实和订正。

福尔摩斯爱说自己用的是演绎法,其实不准确。破案是归纳法 。演绎法是按照规则推导一件事的结果,归纳法是从结果追溯缘故。你是从一具尸体出发,推测是谁杀了他。贝叶斯方法的本质,就是从结果推测缘故。你怀疑凶手是老王,但是你没有任何证据,所以你的怀疑度比较低。有一天终于从老王家搜出了凶器,这个证据会使你对老王的怀疑加重,你要更新对老王的怀疑。这就是观点随事实发生改变。

1.先评估一下自己的信念,设定  P (信念);

2.等待新证据;

3.证据出来以后,用贝叶斯公式更新自己的信念,计算  P (信念|证据);

4.继续等待新证据……

不要说什么“坚定不移”也不要听风就是雨。保持开放心态,让你的观点随事实发生改变,用一个量化的数值决定你的判断。虽然永远都摆脱不了主观的成分,但是你会做出更科学的决策。

贝叶斯提出,什么叫“信”、什么叫“不信”呢?贝叶斯说,你对某个假设的相信程度,应该用一个概率来表示 — P (假设)。

P  = 1 就是绝对相信, P  = 0 就是绝对不信 ,P  = 15% 就是有一点信。

有了新的证据我们要更新这个概率,变成 ——

P (假设|证据)

这个叫条件概率。一般来说, P (A|B) 的意思是“在 B 事件是真的条件下,A 事件的概率”。咱们举个例子,A 表示下雨,B 表示带伞。一般来说这个地方不常下雨,所以  P (A) = 0.1。但是今天你注意到爱看天气预报的老张上班带了伞,那你就可以推断,今天下雨的概率应该增加 —— 在“老张带伞”这个条件下的下雨概率,就是  P (A|B)。

注意如果我们画个因果关系,缘故 → 结果,在这里就是 “下雨 → 带伞” ,A → B,和 “老王是凶手 → 在老王家里找到凶器”,它们都相当于 “假设 → 证据”。

现在我们想算的是  P (假设|证据),是从结果倒推缘故,这叫“逆概率”,这个不好算。一般都是从缘故推结果容易算。比如说你看见一个小孩向窗户扔球,你可以估计窗户被打碎的概率有多大,这是“正向概率”。但如果你看到窗户碎了,想要推测窗户是怎么碎的,那就非常困难了。

所以咱们要算的是一个逆概率,这要怎么算呢?这就是贝叶斯的方法。

贝叶斯公式

为了计算  P (A|B),我们考虑这么一个问题:A 和 B 都发生的概率有多大?

这道题有两个算法。一个办法是先算出 B 发生的概率有多大,是  P (B);再算 B 发生的情况下,A 也发生的概率有多大,是  P (A|B),那么 A、B 都发生的概率,就是把这两个数相乘,结果是  P (A|B)×P(B)。同样道理,先考虑 A 发生再考虑 A 发生的条件下 B 也发生,结果是  P (B|A)× P (A)。这两个算法的结果一定相等, P (A|B)× P (B) =  P (B|A)× P (A),于是

这就是贝叶斯公式。之所以要这么算,就是因为常常是  P (A), P (B) 和  P (B|A) 都容易知道,而这个逆概率  P (A|B) 只能用这个公式间接知道。

例子:现在咱们来算一个具体的应用。有一位40岁的女性去做乳腺癌的检查,检查结果是阳性。那请问,这位女性真的得了乳腺癌的概率有多大。

我们用D表示她得了乳腺癌,T表示测试结果为阳性,这个因果关系是乳腺癌导致阳性, D → T。我们要计算  P (D|T)。根据贝叶斯公式,我们需要  P (D), P (T) 和  P (T|D)。

在有新证据之前, P (D) 就是一般相同年龄段女性得乳腺癌的概率,统计表明是1/700。

P (T|D) 是如果这个人真有乳腺癌,她的监测结果为阳性的可能性。这是由检测仪器的敏感度决定的,答案是73%,仪器并不怎么准确。

P (T) 是随便找个人,给她检测出阳性的可能性是多大。这个我们没有直接的数据,要拆成这个人有乳腺癌(D)和没有乳腺癌(~D)两种情况,其中  P (~D) = 1- P (D) = 699/700。刚才说了有乳腺癌、检测为阳性的概率是73%。而没有乳腺癌的人还可能会被误诊成阳性,已知这个误诊率是  P (T|~D) = 12%。于是

P (T) =  P (T|D)× P (D) +  P (T|~D)× P (~D) = 12.1%.

把这些数字带入公式,我们最终得到  P (D|T) = 1/116。也就是说,哪怕这位女性被检测出来是乳腺癌阳性,她真得乳腺癌概率也只有不到1%。

贝叶斯公式 ——

右边乘法的第一项  P (B|A)/P(B) 有时候被称为“似然比”。那么贝叶斯公式可以写成

你可以把它理解成“观念更新”的公式。 P (假设) 是你的老观念,新证据发生之后,你的新观念是  P (假设|证据)。新观念等于老观念乘以似然比。

你的观点,随着事实,发生了改变。

那我们设想一下,如果每个人的阅历和想法不同,一开始的观点不一样,那么哪怕是面对同样的证据,人们更新之后的观点,也还是不一样的!所以贝叶斯方法本质上是个主观的判断方法:同样的证据,它允许你有不同的判断!

第一层判断力是既然这个东西“贵”,那就肯定有效;“贵”可以让你觉得有效,最多相当于“理论上应该有效” —— 可是真正有没有效,得看实践。

第二层判断力是有个熟人用了这个东西有效,所以我认为它有效;一个例子能证明有效吗?可能熟人那几天偶然身体不好,本来不吃也能恢复,吃保健品和恢复完全是巧合。你最起码得知道大多数人吃了这个保健品有没有效 —— 以及,这个保健品有没有害。

第三层判断力是对人群的研究;假设二十年后中国人民的文化水平普遍提高,这个保健品集团为了跟上人民日益增长的智商,委托内蒙古大学出了一个报告,说吃了这个保健品的人群的身体状况,平均而言,比没吃的人群好。那这个报告能说明这个保健品有效吗?还是不能。保健品卖得挺贵,吃这个保健品的一般都是有点钱的人。这些人的医疗保障、生活环境、饮食结构各方面都比穷人要好,他们的身体状况本来就*应该*更好。你怎么能知道是吃了保健品的人身体好呢,还是身体好的人更容易买保健品吃呢?

第四层判断力是想到一个因素就控制一个因素;大量学术研究都是这么做的,控制了各种可能因素之后,给你一个结论:X 跟 Y之间有这么一个推测性的关系。这个方法的问题在于你永远都无法穷尽所有可能的干扰因素,也许就是有一些变量是你没想到、或者来不及控制的!所以你还是不敢说 X 跟 Y有因果关系!

第五层判断力是随机实验;随机实验是判断力的第五层,可以说现在你找不到更准确的判断方法 —— 但是它仍然不是最先进的方法。关键在于,有些事儿不能做实验。比如你想知道吸烟是否真的导致了癌症,你总不能把人分成两组,逼着其中一组人每天吸烟吧?如果不能做实验,你就还得做些事后的统计,比如看看烟民得肺癌的比例是不是比一般人高 —— 然后你就还得各种控制变量。

第六层判断力是用更简单、更准确的方法决定到底应该控制哪些变量。因果革命的一个重大突破是在数学上发明了  do -算符。没有这个算符,统计学家永远都说不清到底什么样的因素是干扰因素 —— 干扰因素根本就不是单纯用统计数据能定义的概念。有了这个算符,我们就可以说,所谓“存在干扰因素”,就是 ——

P (Y|X) ≠  P (Y |  do (X))。给定任何一个因果关系图,我们都能使用这两条规则确定,到底哪些变量应该被控制。

第一条规则是“后门”路径的信息传递必须被隔断。所谓后门路径,就是从 X 到 Y 的一条连通路径,其中起始的箭头指向 X。后门路径中可能包含干扰因素,你需要控制其中一个变量,阻断信息传递。

第二条规则是如果后门路径中有“A → B ← C”这样的“碰撞”结构,那就不要控制了,因为其中的 B 已经阻断了 A 和 C 的信息交流,控制反而会带来干扰。

图中没有后门路径,不需要控制任何变量。

X←B→Y是个后门路径,我们需要控制变量 B。

混杂偏误

上一讲说的贝叶斯方法适合每次遇到一个新证据的情况,今天我们说说科学家使用的大规模统计研究。咱们先捋一捋。说 X 对 Y 有效,就是要建立从 X 到 Y 的一个因果关系:X→Y。

事情的复杂之处在于,往往会有一个其他因素,Z,既影响了 X 也影响了 Y。因果关系图就如同下面这样 —— 

比如说,X 代表每天锻炼身体,Y 是身体健康,Z 是年龄。我们希望证明锻炼身体能促进身体健康,但是你得考虑年龄因素。年轻人更爱锻炼身体,年轻人的身体也更健康。那当你观察到爱锻炼身体的人更健康这个现象,你就不知道到底是 X 导致了 Y,还是因为 Z 同时影响了 X 和 Y。

统计学上管 Z 叫“干扰因素(confounding factor)”,也叫潜在变数。不考虑 Z 就贸然说锻炼对身体有好处,那你就犯了“混杂偏误”,也叫“混淆偏移”,英文是 confounding bias。Z,混杂了X→Y的因果关系。

但是你很容易就能去除 Z 的混杂。比如如果年龄是个干扰因素,那我们可以只考察同一个年龄段的人,看看其中锻炼和不锻炼的人的健康区别。如果同为50岁,锻炼的人比不锻炼的人身体好,那就说明在年龄之外,锻炼真可能有好处。

在统计学上这叫“控制变量” —— 我们控制了年龄因素,“controlling for Z”,再看 X 和 Y 之间有没有关系。

而年龄之外还可能有别的因素。比如时间也是个因素,工作清闲的人有更多时间锻炼,同时工作清闲的人身体状况也可能更好,所以你还得控制“工作清闲”这个变量。

前面说保健品的时候提到的经济条件可能影响健康,而且经济条件好的人的确更爱锻炼,所以我们必须控制经济条件这个变量。

1.逻辑化,是用理性取代感性。

2.逻辑化才能把道理讲清楚。讲清楚了,在法庭上辩论才有力量。

3.逻辑化才能标准化。标准化了,才能普遍推广,才容易被人广泛接受。

4.逻辑化才能机械化。机械化了才能教给 AI。

休谟提出一个关于因果关系的定义。他说所谓的因果关系只不过就是时间上先后发生的两件事,我们*在感觉中*觉得它们之间有联系而已。用今天的语言来说,休谟认为因果关系是人脑的一种错觉,因果其实就是相关性。

但是到了乾隆十三年(1748),休谟改主意了。休谟说所谓因果就是如果不是第一件事发生了,第二件事就不会发生。
温馨提示:答案为网友推荐,仅供参考
大家正在搜