机器学习和因果推论Causal Inference

marswriter
7 min readJul 8, 2019

--

当前的主流机器学习是建立在统计理论和计算理论之上的,但一般被认为和通用的智能是很不一样的。比如说,人是有推理能力的,但目前主流的机器学习并不具备。在统计学里,相关性不等于因果性,常被人忽视也被视为软肋而遭攻击。

本文欲介绍“因果图”机器推理,出自AI界神人、2011图灵奖得主、贝叶斯网络之父Judea Pearl。虽然“因果图”研究在学界也受争议,但敝人认为这思路是天才之作,于是想用平实的语言做些简单介绍。

=========== 分割线 在此 ============

预警!!此处和计算机的机器学习无关,先扯一些务虚的、哲学层面的。

因果关系可以简单理解为推理,比如因为吃了饭所以就饱了。由此转化为人们的生活指导:饿了就要吃东西。因果也可以上升到人如何理解世界,比如看到乌云就下雨,以及很多预测,比如股价、体育比赛、经济政策、大选、赌博等等。孙子兵法云:“夫未战而庙算胜者,得算多也。” 就是一个高级的推理过程。试想一下,如果机器能帮忙做这些,厉害吧!

那世界是不是都有因果构成呢?这是个深奥的哲学问题。举一些人文气息略浓的例子:

佛学讲因缘果,比如种子是“因”才能结果子作为“果”,中间也需要土壤、水等等“缘”。但这些因果都是由具体事物作为载体,我们所看到的具体事物的本质又是什么呢?而更高的境界是无因无果或因果一体的“无相”,那所谓的“因果关系”其实也只是一种虚幻而已,基于这个理论,我们并无法从因果关系来推理理解这个世界。

还记得电影《非诚勿扰2》里引用的那首诗吗?

你见,或者不见我,我就在那里,不悲不喜。

你念,或者不念我,情就在那里,不来不去。

你爱,或者不爱我,爱就在那里,不增不减。

体会一下这个感觉吧,就是有个“东西”就在那里,它不是因也不是果,也许促成了因果,或不停地链式反应,无法简单分开纠缠一起的因果。

再说一个,人类的原罪(始祖:亚当)

你一生日日劳苦才能得到吃食。地要给你生出荆棘和蒺藜,你要吃田间的蔬菜;你必须汗流满面,才有饭吃,直到你归于土中

日日劳苦、汗流满面,这个就是我们生存的条件,原罪怎么被因果关系解释呢?还是这就是一种对现象和事物的很智慧的归纳。

讲了那么多,主要是想说清楚“因果”这个概念,在计算机世界里,和现实世界中。世界是很复杂的,不要太执着。

谢谢耐心收看,总算扯完了。。。

下面的部分,会集中在计算机世界里的因果,我们要看到这些怎么被数学化!

=========== 分割线 结束 ============

因果推论 causal inference

把人的因果推论理解分成三个层次:

  • 联系 (association):X意味着什么?看到X会不会影响对Y的判断?看到这个症状能否说明是这个病?看到这个调查结果是不是反映事实?
  • 介入 (intervention):如果做了意味着什么?吃了阿斯匹林,是不是就不头疼了?
  • 虚拟 (counterfactuals):一般是指想象或者复盘,没真实发生的事情。为什么?是X导致Y发生吗?做了X不发生Y会是什么?如果不这么做会怎样?如果Oswald不行刺Kennedy会怎样?如果前两年我都不吸烟会怎样?

先把问题用数学的语言表示

条件概率 P(A|B) 表示 B 发生的时候,A也发生的概率

  • P(y | A) 看到A会发生什么? 换句话说,A意味着什么?
  • P(y | do(A)) 做了A会发生什么? 做了A意味着什么? 这里把看到A(observation)和做A(action)分开处理
  • P(y_A’ | A) 表示A发生的时候,发生别的情况 y_A’ 的概率。换句话说,如果不是要发生的y,那又如何?也就是说有别的选择,为什么要到y。

关键要理解第三点:目前基于统计和拟合的主流机器学习,是对已知数据的拟合和逼近,但无法“想象”出不存在的场景(场景即是数据),因此这里的counterfactual(反事实、虚拟)就是这里的精髓,也是人类语言的精髓。人类就是通过语言来构想出一个逼近现实的场景,来作为推理的依据。

下图因果推论Causal inference要把数据、推理、查询都连起来!

  • 数据(Data)是根据现实世界的观察,建立概率子模型
  • 有向图(Graph)是建立推论的方向,即因果联系,可以理解为假设或已知条件
  • 查询(Query)是推论的应用,即更换条件后能得到什么结果,是虚拟的

这个做法非常的程序化,写好函数,换输入,就出结果。关键在于函数怎么写,里面有没有bug。。。 人有时候理解世界(比如考试的时候)其实也是这样的。

以上就是一个形式化的例子,如何用counterfactual和structural的语言来表示人类语言的事情。

插播一下,人类语言被人理解起来是很丰富的,有时既不公平也没道理,甚至跟现实也不一致,因此我们要分清主次,是用数学或机器去理解世界呢?还是理解人心?

把模型再细化一下:

这个结构化因果模型就用这4元组表示:

  • V内生变量(可添加的)
  • U背景变量(客观存在)
  • F能根据内生变量和背景变量确定内生变量的值
  • P是描述U的分布(客观规律)

然后定义模型的计算规则

可以忽略某些observation(比如noise)

有些action和observation是等价的

可以忽略某些action(徒劳)

Pearl举了一个吸烟致肺癌的推断计算过程

介绍到此,网上信息也很多,最后放几个链接:

Judea Pearl — Eight Pillars of Causal Wisdom (WCE 2017: UCLA)

The Eight Pillars of Causal Wisdom: https://ftp.cs.ucla.edu/pub/stat_ser/r470.pdf

The Three Layer Causal Hierarchy: http://web.cs.ucla.edu/~kaoru/3-layer-causal-hierarchy.pdf

Keynote: The Mathematics of Causal Inference: with Reflections on Machine Learning

--

--