《the book of why》第一章笔记

本书第一章对因果推断作出更近一步描述,刻画了一个因果梯模型用于区分生物,机器(未来可以统称为物种?)所处层级对应的不同的认知能力:消极观察,干预和反事实。这章还告诉我们读者怎么用因果图去实现干预和反事实,最后比较了概率统计和因果推断的区别和联系。有关干预和反事实在因果推断中的重要性,可以查看我的前言笔记(ps:前言笔记总结得不完善,完全因为个人认知水平有限,且在写之前还没开始阅读后续章节,权当抛砖引玉的效用)。总结来说本章三个要点如下:
  • 什么是因果梯
  • 运用因果图实现干预和反事实
  • 概率统计和因果推断的区别和联系

什么是因果梯

咳咳,我骗了你,其实我回答不了什么是因果梯,因果梯这个名字也是谷歌翻译给出来的!但凑合着看!作者在书中给出了一个反映认知能力的三层模型,如下图:
《the book of why》第一章笔记_第1张图片
图片来自本书
可以用三个词描述着三个层级:seeing,doing,imagining
作者说了,这本书不是去证明因果是什么,而是告诉读者掌握因果推断的方法能干些什么。或许会有这样的疑问:如果连因果都无法定义清楚,怎么在此之上运用因果推断去解决问题?我觉得这个问题在一定程度上没有意义,如作者所说这是徒劳的。一个类比是:欧几里得在描述他的几何学时,同样没有做出这样的说明:什么是点,什么是线。但不妨碍他基于点和线构建出来的理论解决了相当一部分的问题。

it bypasses long and unproductive discussions of what exactly causality is and focuses instead on the concrete and answerable question “What can a causal reasoner do?”

好了回到因果梯模型。第一层级:关联。被描述为如果事件X发生(观察到X发生)改变了另外一个事件Y的概率,那么认为事件Y和事件X是关联的,用数学语言描述为条件概率P(Y|X),一个刻画关联的提问句式,正如图上所示:"what if i see......"。如果观察到X发生的确增加了Y的概率变动,是不是意味着X导致Y呢?这是个很有意思的问题,且将这个问题留给该笔记的第三部分。第二层级:干预,刻画为P(Y|(do X)),指在对事件X做出变动情况下事件Y发生的概率。就基于概率统计的机器学习为例,作者认为现实中的"raw data"已经无法实现干预这一层级,因为现实生活可能会缺少“事件X做出变动”这样的数据,对此带有先验隐喻的因果推断模型可以基于假设的数据发挥巨大的作用。

More interesting and less widely known—even in Silicon Valley—is that successful predictions of the effects of interventions can sometimes be made even without an experiment.

一个刻画干预的句式是:"what if i do......"。如果机器掌握了"what if i do......",也相当于掌握了"how to do......"。但知道如何去做并不意味着知道为什么要这样做,这是仍需要第三个层级:反事实。提问的句式:"what if i had done......"。指的是事件Y已经发生的条件下,如果对事件X做出变动,会影响事件Y的概率吗?这个描述听起来很奇怪,事件Y已经发生的前提下,研究其他因素对事件Y的影响(引起事件Y的概率变动),这在现实世界中不存在,但假想存在一个反事实世界,这些变量簇(X,Y)是存在的,作者认为,在因果关系的作用下,这些反事实的数据是可以和现实的数据同等地位存在的,这些数据也反映了事件的因果联系。

All of these different worlds, where the weight is x pounds and the length of the spring is Lx inches, are treated as objectively knowable and simultaneously active, even though only one of them actually exists.

关于想象一个反事实世界的好处,作者写道:

The advantage we gained from imagining counterfactuals was the same then as it is today: flexibility, the ability to reflect and improve on past actions, and, perhaps even more significant, our willingness to take responsibility for past and current actions.

运用因果图实现干预和反事实

在寻找获得数据的方法之前,先解决怎么去表示,储存这些数据,就因果推断来说,寻找良好的结构有利于剔除大部分冗余的信息(比如明显没有因果联系的数据),避免大量数据涌入导致存储空间需求的指数上涨(或者更糟糕的空间复杂度),并且能指导我们寻找数据的更佳方式。
作者提出了一个非常简洁的结构:因果图。它由两部分组成:圆点和有向箭头,圆点表示事件,有向箭头表示因果关系,如果A指向B,表示A事件导致了B事件发生。这里用文中一个很有趣的例子说明干预和反事实是怎么从算法意义上实现的。
《the book of why》第一章笔记_第2张图片
图一
让我们来考察图一,该图模拟一个犯人被执行死刑的流程,CO代表法官,C代表指挥队长,A和B代表士兵,D代表犯人。整个流程是:法官发出执行指令,指挥队长对士兵发出开火的信号,士兵开火射击,犯人死亡。首先做一些关于该模型的假设:整个流程不存在意外因素,比如士兵开枪射击后犯人不死亡,指挥队长发出开火信号,而士兵不执行指令,诸如此类。图一反映了整个流程的因果流动关系,比如犯人死亡是因为士兵射击,而不是反过来。士兵之所以开枪射击是因为指挥队长发出开火指令,以此类推。那么干预是怎么实现的?在回答这个问题前,有人会疑惑,为什么需要干预?现实生活中,你可能会就这个流程问机器类似这样的问题:如果士兵A在没有收到队长C的指令前提下主动开火(可能是私仇),犯人D会死吗?看起来非常简单的问题,基于图一的因果图,机器是做不出回答的,因为如果士兵A射击,那一定是收到了队长C的开火指令。所以现实中机器读入了大量行刑的数据,极有可能找不到"士兵A私自开火"这样的数据,机器不能在数据缺少的情况下,训练出一个符合预期的模型用来应答该问题。
《the book of why》第一章笔记_第3张图片
图二
那么干预能达到什么效果呢?干预的操作方法:当要考察A做出状态变化对D的影响(比如:士兵私自开火),首先删除掉所有因果图中指向A的所有箭头,然后去考察新形成因果图,比如图二。这时C指向A的箭头已经被删除,C的状态变动不会对A造成影响。从图中可以容易看出,如果士兵A主动开火,犯人D会死亡,因为A有指向D的箭头。这样的操作是有意义的,尽管可能在现实中不会出现士兵A主动开火这样的事件,但如果士兵A开火,犯人D会死亡是一个因果的描述,不依赖于该事件是否能发生。掌握类似的干预能让机器不那么死板,更具有灵活性(更能表现出智慧的特征?)。
《the book of why》第一章笔记_第4张图片
图三
图三对应的是基于干预,但比干预更进一步的因素:反事实。正如上一篇文章所说:反事实是道德行为的基石,也是科学思想的基石。反思自己过去的行为和设想其他方案的能力是自由意志和社会责任的基础。怎么去理解?在这个例子中,不妨做出这样的一个提问:行刑结束后(犯人已经死亡),如果士兵A在想,假如我当时没有开火(A=False),犯人D会死亡吗?机器在基于图三的因果图会发现,D仍然会死亡,不管A本身是否开火(因为B开火了导致D死亡)。这反映了一个这样的道德事实:即使A开火,致使D死亡,D的死亡也不是因为A(是因为犯人触犯了法律的禁区),就算A不开火,也会有某个执行者去开火。清楚这一事实在一定程度上减缓了A的道德困惑。图二图三这些假设事件不是来自真实世界的数据,而是来自反事实世界,但这些假设的数据是有意义的,因为它反映了因果关系,这些假设数据和现实数据一般有用。

概率统计和因果推断的区别和联系

在第一部分还有一个问题没解决对应哲学家提出了一个"probability raising"模型:如果观察到X发生的确增加了Y的概率增加,是不是意味着X导致Y呢?数学形式对应条件概率:P(Y|X)>P(Y)。作者在文中举了一个有意思的例子:假设事件Y对应一个城市的犯罪率增高,事件X对应该城市冰淇淋销售量上升,有统计的数据发现,观察到冰淇淋销量增加的前提下,该城市的犯罪率增高了。基于"probability raising"模型,冰淇淋销量增加导致了城市的犯罪率增高(P(Y|X)>P(Y),嗯哼,吃货们注意一点,少吃冰淇淋)。但因果推理告诉我们不是这样的。
问题出现在哪里?这个模型没有考虑其他因素对考察事件的影响,比如上面例子里面:天气!可能是气温升高导致冰淇淋销量上升,同时犯罪率也上升了,天气可能是指向这两个事件的,而上述两个事件没有因果关联。基于此哲学家们又对"probability raising"模型进行改进,如果改为P(Y|X,K=k)>P(Y|K=k)呢?K=k包含了控制变量的思想,在限定其他因素不变情况下,考察事件X发生是否提升了事件Y发生的概率。这样不是就可以考察事件X和事件Y是否有因果联系了吗?我是认同这一想法的,但这只能是哲学意义上。这个模型有一个很大的问题:可实现性。控制变量K不变,到底哪些变量才是K呢?难道要控制现实世界的所有变量?如果不是,到底要找哪些变量作控制呢?为什么是这些变量,而不是其他的变量?可以从这些疑问中,挖掘出一个这样的线索:一定有一种更本质的关系,决定了控制变量集中应该考虑哪些因素,而其他因素不需要被考虑。
作者认为是事件的因果关系。这是作者提出P(Y|(do X))的原因,也就是干预。可以看出,干预是修正版"probability raising"模型的一种符合现实的操作方法,也反映了事件间更本质的因素:因果关系。作者在书中是这样刻画概率统计和因果推断的区别和联系的:

The main point is this: while probabilities encode our beliefs about a static world, causality tells us whether and how probabilities change when the world changes, be it by intervention or by act of imagination.

干预是怎么实现的可以参考第二部分,注意的是,第二部分的因果图之所以能工作,它是基于我们人为地归纳出的因果关系,即图中圆点的指向关系,需要考虑一个问题:如果在探索人类认知的边界,当人类先验知识在该领域欠缺的时候,怎么去构建去因果图呢?作者在前言中认为因果推断是可以带领我们走出这一步的。怎么做?相信在后续章节会有所反映!期待后续章节!第三章将会是对贝叶斯网络的介绍,作者以前的成名之作,现在他认为贝叶斯网络不能在帮助机器学会思考上有很大帮助,但不妨碍基于统计内核的贝叶斯网络是一个伟大的成就品,它在上世纪八十年代引领了概率驱动的机器学习风潮。

你可能感兴趣的:(《the book of why》第一章笔记)