因果推理初探总结

本文探讨了因果推理在人工智能中的重要性,通过Pearl教授的因果关系之梯理论,解析了关联、干预和反事实推理三个层次。文章通过实例分析了如何使用有向无环图模型进行因果关系分析,强调了在数据关联中区分因果关系的重要性,并讨论了干预和反事实推理在算法决策中的应用。
摘要由CSDN通过智能技术生成

本文是对因果关系推理初探的总结梳理。

一、 引例

深度学习,特别是模仿学习为主的思想,在无人驾驶领域的研究已经经历了数年。最早的一个算法叫DAgger,就是将人类经验驾驶员的驾驶过程记录下来,然后训练模型用于控制车辆。但是在训练中人们发现,并不是特征越多越好,有时候如果引入了多余的特征,反而会误导算法给出的策略。
在这里插入图片描述
左边的情形A,用于训练网络的输入样本包含了挡风玻璃外的场景图像,也包含了驾驶台的图像(方向盘和仪表盘),输出就是人类的动作(油门刹车);在右边的情形B中,输入样本只包含挡风玻璃外的场景图像,仪表盘和方向盘被抠掉了,输出依然是人类的动作。经过训练,这两个模型的结果却大相径庭:左边的信息完整的数据训练出的策略,并不比右边的信息不完整的数据训练出的策略做出的正确动作更多。

误导算法的原因是左边的数据中包含了刹车指示灯的信息,算法错误地建立了刹车指示灯与踩刹车动作之间的关联关系,误以为只要刹车指示灯亮了,就应该踩刹车。而右边的数据中没有刹车指示灯的信息,算法只能聚焦于窗外的行人,从而碰巧建立了正确的关系。事实证明,关注窗外的行人而不是刹车指示灯才是正确的决策。这其中的根源在于,刹车指示灯是刹车动作的“果”,而不是刹车动作的“因”,窗外的行人才是刹车动作的“因”。可是,如果只用深度学习来训练数据,又怎么可能学得到这背后的因果逻辑呢?这也让人们逐渐意识到,并不是数据越多越好、特征越多越接近真相,方向错了就很难得到正确的解答。

二、Pearl教授和因果关系之梯

在这里插入图片描述
2011年图灵奖得主,贝叶斯网络之父Judea Pearl认为现在人工智能的发展进入的新的瓶颈期,各种新的成果不过本质上不过是重复简单的“曲线拟合”工作。Pearl 认为人们应该更关注人工智能中的因果(Cause and Effect)推断,这可能是实现真正智能机器的必由之路。

Pearl将因果关系分为三个层次(他称之为“因果关系之梯”)。自底到顶分别是:关联、干预、反事实推理。最底层的是关联(Association),也就是我们通常意义下所认识的深度学习在做的事情,通过观察到的数据找出变量之间的关联性。这无法得出事件互相影响的方向,只知道两者相关,比如我们知道事件A发生时,事件B也发生,但我们并不能挖掘出,是不是因为事件A的发生导致了事件B的发生“what if i see…"。第二层级是干预(Intervention),也就是我们希望知道,当我们改变事件A时,事件B是否会跟着随之改变"what if i do…"。最高层级是反事实(Conterfactuals),也可以理解为“执果索因”,也就是我们希望知道,如果我们想让事件B发生某种变化时,我们能否通过改变事件A来实现"what if i had done…"。相关不等于因果,因果关系之梯的第一层级只涉及相关,第二、第三层级才涉及因果。
在这里插入图片描述

上面这张图展示了因果关系的学习者必须熟练掌握至少三种不同层级的认知能力:观察能力(Seeing)、行动能力(Doing)和想象能力(Imagining)。”

第一层级“关联”表示观察能力,指发现环境中规律的能力,例如一只猫头鹰观察到一只老鼠在活动,便开始推测老鼠下一刻可能出现的位置,这只猫头鹰所做的就是通过观察寻找规律;

第二层级“干预”表示行动能力,指预测对环境刻意改变后的结果,并根据预测结果选择行为方案,例如是如果我做X这件事情,那么y会发生什么变化,一个具体的例子是如果我把香烟戒掉,那么得癌症的状况会发生什么变化;

第三层级“反事实”表示想象能力,指想象并不存在的世界,并推测观察到的现象原因为何,例如为什么是x导致了y,如果当时x没有发生,那么状况会是怎么样的,如果当时采取了其他措施,会发生什么?具体的例子是:我吃了阿司匹林能治好了我的头痛吗?假如奥斯沃德没有刺杀肯尼迪,肯尼迪会活着吗?假如在过去的两年里我没有吸烟会怎样?

用一个经典的例子,可以把这三个层次的关系解释清楚。《新英格兰医学》杂志发表了一篇论文指出,一个国家消耗的巧克力越多,该国人均产生的诺贝尔奖得主便越多[4]。这样的结论很荒谬,但问题在哪里呢?通过数据分析,人们确实发现巧克力销量高的国家,获得的诺贝尔奖数量往往更多,两者几乎呈现一种线性关系。但进行到这一步也仅仅符合因果关系之梯的最底层——关联,我们仅仅得知这两者之间相关。为了探寻两者之间是否有因果关系,我们可以进行干预和反事实推理。我们可以提问:如果给诺贝尔获得数量较少的国家的国民吃更多的巧克力,那么这个国家能有更多的诺贝尔奖获得者吗?这便是第二层级“干预”。很显然,答案是否定的(吃更多的巧克力不能导致获得更多的诺贝尔奖)。同样,我们还可以提问,如果那些诺贝尔奖获得数量较多的国家的人没有吃那么多巧克力,他们还能获得那么多诺贝尔奖吗?这便是第三层级“反事实推理”,很显然,答案是肯定的(即便不吃那么多巧克力,他们该得诺贝尔奖还是会得),因为获得诺贝尔奖并不是吃巧克力的“果”,吃巧克力较多可能反映的是该国的经济发达、国民素质高、受教育程度高等等,而这些才是获得诺贝尔奖的“因”。
在这里插入图片描述
因果图。它由两部分组成:圆点和有向箭头,圆点表示事件,有向箭头表示因果关系,如果A指向B,表示A事件导致了B事件发生。

内生变量(endogenous variable)
在因果模型或者因果系统中,如果一个变量能够被该系统中的其他变量所决定或被影响,那么就称这个变量为内生变量。纯内生变量是说,这个变量可以系统中的其他变量所完全决定,理论上精确无误。那么这个变量其实也就没用了,可以被其他变量所替代掉。半内生变量是说这个变量会被系统中的其他变量所影响,但是不会被完全决定,还有一些系统外未考虑的因素。纯内生和半内生都是内生变量,之所以区别是为了理解因果关系上的差异。
外生变量(exogenous variable)
在因果模型或者因果系统中,如果一个变量独立于系统中其他所有变量,其他变量的变化不对该变量造成影响,那么就称该变量为外生变量。该系统的外生变量可能由系统外的因素所决定。要注意的是外生变量是独立于其他所有变量,所以其对立面是内生变量和半内生变量。另外如果你在模型中添加了会对外生变量产生影响的变量,那么该外生变量就不再是外生变量了。

因果上讲,外生变量是是对因变量的独立的决定因素;统计上讲,外生变量线性独立于其他自变量。
举一个造糖厂的例子,假定划定的系统内包含糖产量、天气、害虫、燃料价格等变量。我们可以假设糖产量是就是一个完全的内生变量,认为产量被天气、害虫、燃料价格这些因素完全决定。天气就是一个完全的外生变量,因为糖产量、害虫、燃料价格是不会影响到天气的。而害虫就是一个半内生变量,害虫某种程度是受天气影响的,但是不是被天气完全决定,还受到比如说农药、天敌威胁等外部因素的影响。
来自https://www.zhihu.com/question/56223861/answer/160750437

这里用文中一个很有趣的例子说明干预和反事实是怎么从算法意义上实现的。
图一模拟一个犯人被执行死刑的流程,CO代表法官,C代表指挥队长,A和B代表士兵,D代表犯人。整个流程是:法官发出执行指令,指挥队长对士兵发出开火的信号,士兵开火射击,犯人死亡。首先做一些关于该模型的假设:整个流程不存在意外因素,比如士兵开枪射击后犯人不死亡,指挥队长发出开火信号,而士兵不执行指令,诸如此类。
在这里插入图片描述
为什么要干预?
现实生活中,你可能会就这个流程问机器类似这样的问题:如果士兵A在没有收到队长C的指令前提下主动开火(可能是私仇),犯人D会死吗?看起来非常简单的问题,基于图一的因果图,机器是做不出回答的,因为如果士兵A射击,那一定是收到了队长C的开火指令。所以现实中机器读入了大量行刑的数据,极有可能找不到"士兵A私自开火"这样的数据,机器不能在数据缺少的情况下,训练出一个符合预期的模型用来应答该问题。
干预能达到什么效果呢?
干预的操作方法:当要考察A做出状态变化对D的影响(比如:士兵私自开火),首先删除掉所有因果图中指向A的所有箭头,然后去考察新形成因果图,比如图二。这时C指向A的箭头已经被删除,C的状态变动不会对A造成影响。从图中可以容易看出,如果士兵A主动开火,犯人D会死亡,因为A有指向D的箭头。这样的操作是有意义的,尽管可能在现实中不会出现士兵A主动开火这样的事件,但如果士兵A开火,犯人D会死亡是一个因果的描述,不依赖于该事件是否能发生。掌握类似的干预能让机器不那么死板,更具有灵活性(更能表现出智慧的特征?)。
在这里插入图片描述 图2

基于干预,但比干预更进一步的因素:反事实。
行刑结束后(犯人已经死亡),如果士兵A在想,假如我当时没有开火(A=False),犯人D会死亡吗?机器在基于图三的因果图会发现,D仍然会死亡,不管A本身是否开火(因为B开火了导致D死亡)。这反映了一个这样的道德事实:即使A开火,致使D死亡,D的死亡也不是因为A(是因为犯人触犯了法律的禁区),就算A不开火,也会有某个执行者去开火。清楚这一事实在一定程度上减缓了A的道德困惑。图二图三这些假设事件不是来自真实世界的数据,而是来自反事实世界,但这些假设的数据是有意义的,因为它反映了因果关系,这些假设数据和现实数据一般有用。
在这里插入图片描述

三、有向无环图模型及其应用

三种路径结构
在这里插入图片描述
链式、叉式中A和C相关,对撞结构A和C不相关。

1、链结构(chain)

如果变量X和Z之间只有一条单向路径,Y是截断这条路径的任何一组变量,则在Y的条件下,X和Z是独立的。
在这里插入图片描述

2、分叉结构(fork)

如果变量X是变量Y和Z的共同原因,并且Y和Z之间只有一条路径,则Y和Z在X的条件下独立。
在这里插入图片描述
由于X值是不变的,所以Y和Z的值不会随着X的变化而变化,他们只会随着Uy和Uz变化,由于假设Uy和Uz是独立的,因此Y和Z的值是独立变化的。

3、对撞结构

在这里插入图片描述
如果变量Z是变量X和Y之间的对撞节点,并且X和Y之间只有一条路径,那么X和Y是无条件独立的,但在Z或Z的任何子孙条件下是相互依赖的。(通常“才华”和“颜值”是两个独立的特质,但若已知一个名人颜值不高,那么可推断他很可能有才华)。

假设 Z=X+Y
若已知X=3,不能得知Y的任何信息。
若已知Z=10,再知X=3,则可确定Y=7。
因此给定Z=10时,X和Y是依赖的。

4、d-分离

d-分离的全称是有向分离(directional separation),是一种判断变量是否条件独立的方法,更一般地(针对两个节点之间不止一条路径的情况),如果节点 C 阻断了 A 和 B 之间的每条路径,那么我们则说 A 和 B 被C 节点d-分离了。对于链接合、叉接合和对撞接合三种接合结构来说,d-分离的定义分别如下:
一条路径会被一组节点Z阻断,当且仅当
这条路径
包含链接合 A->B->C,并且中间节点B 在节点Z中;
或者包含叉接合A<-B->C ,并且中间节点B在节点Z中;
或者包含对撞结构A->B<-C,并且中间对撞节点B不在节点Z 中,也不在 Z的任何子孙节点中,
那么我们说这条路径被 Z节点d-分离了。
具体例子分析。

四、干预

1、结构因果模型

结构因果模型的定义:结构因果模型包含两个变量集合U和 V ,以及一组函数 f ,该函数对变量集 V 中的每一个变量进行赋值。
在一个图形模型中,如果一个变量 X 是另一个变量 Y 的子节点,那么 Y 就是 X 的一个直接原因;如果 X 是Y 的后代的子节点,那么 Y就是 X 的潜在原因。

2、干预和do运算

在图模型中,干预的操作将删除所有指向该变量的边。如下图所示,如果我们要进行干预以降低冰激凌销量(比如,关闭所有冰激凌店),那么我们就去掉所有指向冰激凌销量 Y 的边。当我们在这个新的图模型中检验相关性时,我们发现犯罪率当然是与冰激凌销量完全独立的,因为冰激凌销量已经与天气温度无关了。换句话说,即使我们将 Y 的值调整为另一个不变的值,这种变化也不会传递给可变的犯罪率 Z 。
在这里插入图片描述
所以 P(Z=z|Y=y) 表示当以Y=y 为条件时 Z=z 的概率,而 P(Z=z|do(Y=y)) 表示当我们干预 Y 的值使其为 y 时,Z=z 的概率。从概率分布的角度来说,P(Z=z|Y=y) 表示的是在 Y 可取的所有值中,Y=y 那部分样本对应的 Z=z 的概率,而P(Z=z|do(Y=y)) 表示的是将每一个样本的 Y 的值全部固定为 y 后 Z=z 的概率。这两者是完全不同的。

3、辛普森悖论

在这里插入图片描述
如果药物有益于男性患者和女性患者,那么它必然对任何患者都有效,忽略患者的性别,并不会使药物变得无效。这个问题无法简单地从统计学中找到答案,为了考虑药物对患者的作用,首先要了解数据背后的原因,即产生结果的因果机制。假设已知一个事实,则:男性患者本身就比女性患者易于恢复。那么我们发现,在不用药群体中男性占的比例远远大于女性,83%的恢复率比事实偏高,在用药群体中女性占的比例远远大于男性,78%的恢复率比事实偏低。因此表1 数据不准确。在本例中,性别是服用药物和痊愈的一个混杂因子,它的因果图如下图所示,
在这里插入图片描述
为了找出这种药物在人群中到底是有效还是有害,我们构造一种假设的干预方法,我们假设给所有人都服用药物,即 do(X=1) ;然后我们假设给所有人都不服用药物,即 do(X=0) ,然后我们对两次干预的结果进行比较(比较痊愈的概率),即我们计算平均因果效应(average causal effect,ACE):(这里假设X、Y只取0/1)
在这里插入图片描述
表现在因果图上,即为:
在这里插入图片描述
那么如何计算呢?
我们用下标m表示修改后的概率分布,对用药情况X进行干预并固定其值为x时,可将所有指向X的边均移除,则因果效应P(Y=y│do(X=x))等价条件概率Pm(Y=y│X=x)。经过干预,边缘概率P(Z=z)不随干预而变化,因为Z的取值不会因为去掉从Z到X的箭头而变化,干预前后男性患者和女性患者的比例不变,即Pm(Z=z)=P(Z=z),条件概率P(Y=y│X=x, Z=z)不变,因为Y关于X和Z的函数fY=(X, Z, U2)并未改变。因此,有如下等式:
在这里插入图片描述
综上
在这里插入图片描述
第一个等号是do运算的定义决定的。第二个等号是根据全概率公式。第三个等号是因为经过干预后 Z 和 X 是相互独立的。最后第四个等号则是之前已经得出的两个不变的分布。最终得到的这个公式也就叫做调整公式(adjustment formula)。调整公式的等号右边全部都是干预操作之前的概率分布,也就是说全部是可以从观测数据中获得的概率分布,这意味着我们可以用观测数据来进行干预。
在这里插入图片描述
从以上结果不难得知,吃药还是比不吃药好。

4、因果效应规则

根据调整公式,我们通过将Z放入调整公式中,能够利用正常(无干预)条件下的条件概率计算出干预后的因果效应。那么,哪些变量(或变量集合)可以放入调整公式中呢?在进行干预时,由于要将X固定,并将所有指向X的箭头都去掉,即使得X的父节点失效,因此,应该将X的父节点放入调整公式中。令X的父节点集合为PA(X),则有如下定理:
在这里插入图片描述

5、多重干预和截断乘积规则

截断乘积公式
P(x1,x2,...,xn |do(x))=
在这里插入图片描述
干预上图模型,将X设置为x,Z3设置为z3,得模型中其他变量的分布
在这里插入图片描述

6、干预工具

如果我们要知道两个变量间的因果关系,比如 X 对 Y 的因果关系,那么我们可以通过调整 X 的父节点(集)来进行。但是很多时候我们并不能观测所有需要知道的父节点(集)。所以我们需要找到一个替代的变量集合用于矫正。
(1)后门准则
给定有向无环图中的一对有序变量X和Y,如果一组变量W中的节点都不是X的后代节点,且以W为条件会阻断所有X和Y之间的每条含有指向X的路径,则W满足关于(X,Y)的后门准则。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)前门准则
有关前门准则的例子,无一少得了有关吸烟与肺癌关系的这个经典例子。这个例子的因果图如下图所示。遗憾的是,我们无法收集吸烟基因 U 的数据,所以我们无法使用后门准则来阻断后门路径 X<–U-->Y 。在这种情况下,我们可以引入前门准则:首先,我们观测“吸烟”对“焦油沉积”的平均因果效应;然后,我们观测“焦油沉积”对“癌症”的平均因果效应;最后我们将两者联立起来求出“吸烟”对“癌症”的因果效应。
在这里插入图片描述
首先, X对 Z 的因果效应是直接可以通过数据得到的,没有混杂,没有后门,也不需要用后门路径,所以直接可以得到
在这里插入图片描述
Z 对 Y 的因果效应,两者存在一个共因 U ,因此存在混杂,可以用后门路径调整,但由于 U 是未观测的变量,所以我们对X 进行调整,即以 X 为条件,来阻断 Z<–X <–U-->Y ,根据后门调整公式可得
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(3)逆概率加权
后门调整公式可写作:

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值