为机器学习插上因果推理的翅膀:这是一本系统的因果推理开源书

2019 年 1 月 4 日 机器之心

机器之心整理

参与:晓坤、思源


因果推理一直被视为深度学习中缺失的部分,除了「执果索因」的贝叶斯定理,我们很少有方法能对因果关系进行建模。在这一本开源书籍中,作者对因果推理做了一个连续且系统的介绍,这和以往我们只能找到离散的资料完全不同。除此之外,这本书用大量的案例与比喻帮助我们理解因果推理的概念与建模方法,且章节由简到难非常适合自学。


书籍开源地址:https://www.hsph.harvard.edu/miguel-hernan/causal-inference-book/


哈佛大学生物统计学和流行病学教授 Miguel Hernan 和 Jamie Robins 最近一直在写一本书,并希望为因果推理的概念和方法提供一个连贯性的介绍。他们表示目前因果推理相关的材料大部分都分散在多个学科的期刊上,或者存在各种技术文章中。他们希望这本书能帮助各种对因果推断感兴趣的读者,不论是流行病学家、统计学家、社会科学学家还是计算机科学家。这本书主要分为三部分,它们的难度依次递增:不带模型的因果推理、带模型的因果推理、复杂长跨度数据的因果推理。


在书籍的主页上,作者提供了整本书的学习资源,它们目前是最新的草稿。如果有更新,作者同样会更新这些资源,因此读者需要确保下载的是最新的。如果读者发现了一些错误或建议,也可以在主页上提交你们的看法。下面是一些书籍与对应的代码资源:


  • 第一部分(1-10 章):https://cdn1.sph.harvard.edu/wp-content/uploads/sites/1268/2018/12/hernanrobins_v1.10.37.pdf

  • 第二部分(11-17 章):https://cdn1.sph.harvard.edu/wp-content/uploads/sites/1268/2019/01/hernanrobins_v2.17.19.pdf

  • 第三部分(19-21 章):https://cdn1.sph.harvard.edu/wp-content/uploads/sites/1268/2018/11/hernanrobins_v3.21.5.pdf


其中第一部分最后的更新为 2018 年 12 月 24 号,第二部分最后的更新时间为 12 月 31 号,第三部分为 11 月 25 号。


  • 第二部分的 Python 代码:https://cdn1.sph.harvard.edu/wp-content/uploads/sites/1268/2015/08/R_part2.zip

  • 第二部分的 R 代码:https://github.com/jrfiedler/causal_inference_python_code


如果你希望阅读这本书,那么你可能对因果推理非常感兴趣。但是作为一个正常人类,我们其实已经掌握了因果推断的基本概念。我们当然已经知道什么是因果效应,也清楚地明白联系和因果之间的区别,甚至我们一生都在不断地使用这些知识。


我们知道不吃午饭就会饿、不喝水就会渴,我们同样也能区分春天和发芽的因果关系、春天和季节的相关性关系,这些都是很自然的感受与理解。但是在这本书中,作者会由最基本的概念出发,逐步形式化我们对因果关系的理解,并采用科学的方法对这些关系建模。


本书使用的语言风格非常形象,每一个形式化概念的解释都以具体的医疗案例展开,适合各种学科领域的人入门。我们来看看第一章的部分内容简介。


宙斯接受了心脏移植,然后死了。赫拉也接受了心脏移植,然后活下来了。从这些数据中可以得出心脏移植 A 和存活 Y 这两个变量之间的因果关系吗?当然,是不行的。


具体而言,即使赫拉是没有接受心脏移植,然后活下来了,也不能判断是心脏移植导致了死亡。


这里首先需要考虑到宙斯和赫拉之间的差异,会不会引进新的变量。例如,有可能是因为他们性别不同导致了心脏移植的成败。


其次,在这个案例中是无法获得一个个体的全部自变量样本的,宙斯或赫拉要么接受要么不接受心脏移植,不可能两者皆有,因为因变量是死亡或者存活。这引出了一个非常重要的概念,即因果关系和相关关系之间的区别。


如下表所示,这里假设自变量 A 是可以完全采样的,分别为 a=0(不服用阿司匹林)和 a=1(服用阿司匹林),因变量 Y 是感冒,即 Y=0(不感冒),Y=1(感冒)。根据表中数据的统计,在 20 个被试中,服用阿司匹林时,感冒的人数为 10,不感冒的人数为 10;不服用阿司匹林时的情况也是一样。所以,我们并没有发现服用阿司匹林对感冒概率的降低影响,从数据得出的结论是 A 和 Y 之间无因果关系。



再看看下一个表,每个人都只试验了一个条件,要么服用阿司匹林,要么不服用。这里包含的数据属于上表的一部分。其中 7 个人没有服用阿司匹林,13 个人服用了。然后,没有服用阿司匹林的人之中,有 3 个人感冒了,概率为 3/7;服用了阿司匹林的人之中,有 7 个人感冒了,概率为 7/13。7/13 大于 3/7,所以服用阿司匹林会导致感冒?当然不是,这只能表明两者之间存在相关关系,而不是因果关系。



最后,两个案例肯定是不够的。无论对于因果关系还是相关关系,足够的样本数都是最基本的。简言之,在少样本的情况下,任意截取部分数据都能得出很不同的统计分布。


于是,我们可以总结出,可信的因果关系的推断需要满足如下三点:


  • 自变量的随机化,避免引进新的隐藏变量;

  • 试验全部自变量采样;

  • 具备足够样本数。


所以,通常而言,识别个体样本的因果关系是不可行的。以上这些内容是根据书中的第一章的部分总结,原书阐述具体得多,感觉就是统计学专业毕业然后当了多年医生的大学教授写出来的。


此外,因果关系还有一个很重要的性质是方向性,也就是分清楚什么是因什么是果。两个相关的变量 A 和 B 可能存在四种因果关系:A 导致 B、B 导致 A、C 导致 A 和 B、无关(纯属偶然的相关性)。在深度学习的监督学习范式中,输入和输出属于这四种关系的哪一种呢?仅靠深度学习本身是无法确定的,这也是因果推理作为深度学习补充的必要之处。关于这方面的更多讨论,感兴趣的读者可以参见:因果推理和监督学习的统一概念框架:两者并不是对立的


最后,全书的目录如下所示:




本文为机器之心整理,转载请联系本公众号获得授权

✄------------------------------------------------

加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告 & 商务合作:bd@jiqizhixin.com

登录查看更多
34

相关内容

因果推断是研究如何更加科学地识别变量间的因果关系。 客观事物普遍存在着内在的因果联系,人们只有弄清事物发展变化的前因后果,才能全面地、本质地认识事物。基干事物发展的这种规律,在论证观点时,有时就可以直接从事物本身的因果关系中进行推论,这就叫因果推断法
斯坦福2020硬课《分布式算法与优化》
专知会员服务
118+阅读 · 2020年5月6日
《深度学习》圣经花书的数学推导、原理与Python代码实现
【开源书】PyTorch深度学习起步,零基础入门(附pdf下载)
专知会员服务
110+阅读 · 2019年10月26日
相关性≠因果:概率图模型和do-calculus
论智
31+阅读 · 2018年10月29日
【资源】这本开放书籍帮你扫清通往ML的数学绊脚石
机器学习算法与Python学习
56+阅读 · 2018年10月28日
如何用 3 个月零基础入门机器学习?
AI研习社
6+阅读 · 2017年9月27日
Arxiv
20+阅读 · 2019年11月23日
Arxiv
26+阅读 · 2018年2月27日
Arxiv
3+阅读 · 2017年12月18日
Arxiv
5+阅读 · 2017年4月12日
VIP会员
Top
微信扫码咨询专知VIP会员