在前面的介绍中,假设我们知道因果图,我们就可以进行因果推论。 如果我们不知道图表怎么办? 我们可以学习吗? 这将取决于我们愿意做出的假设。 我们将这个问题称为结构识别,这与在前面看到的因果估计不同。

1. 基于独立的因果发现(Independence-Based Causal Discovery)

1.1 假设与定理

回顾马尔可夫假设,如果变量在图G中是d分隔的,那么它们在分布P中是独立的:

另一与马尔科夫假设相反的假设,我们称之为忠诚假设:

此假设使我们能够根据分布的独立性来推断图中的d分离。 忠实度的假设比Markov假设的吸引力要小得多,因为它很容易想到反例(其中两个变量在P中是独立的,但是在G中有无阻碍的路径)。

上图中,当 α β = − γ δ \alpha \beta=-\gamma \delta αβ=−γδ时,A和D是相互独立的,但在上面的因果图中,A和D并没有被D分离。

除了忠诚以外,许多方法还假定没有观察不到的混杂因素,这被称为因果充分性:

然后,在马尔可夫忠诚因果充分性非循环性假设下,我们可以部分识别因果图。

下面介绍马尔可夫等价类的概念。下面的三个因果图具有同样的独立性,都满足 X 1 X_1 X1​和 X 3 X_3 X3​不独立,但以 X 2 X_2 X2​为条件时 X 1 X_1 X1​和 X 3 X_3 X3​独立。因此,如果我们仅仅从数据中知道他们的独立或依赖性,是没有办法判断真正的因果图是下图中的哪一个的。因此他们属于同一个马尔可夫等价类

如果两个图对应于同一组条件独立性,我们说它们是马尔可夫等价的。在忠实性条件下,如果图是马尔可夫等价类中唯一的图,则可以从数据中的条件独立性中识别出图。图的马尔可夫等价类中唯一图的例子就是下图的基本immorality图。对于下图, X 1 X_1 X1​和 X 3 X_3 X3​独立,但以 X 2 X_2 X2​为条件时 X 1 X_1 X1​和 X 3 X_3 X3​不独立,它属于单独的马尔可夫等价类。

基本链和基本叉结构除了处于同一马尔可夫等价类,还有着同样的骨架(skeleton):

如果用无向边替换所有有向边,则我们得到的结构就是图的骨架。

综上所述,我们指出了两个可以用来区分图形的结构特征:

  1. Immoralities
  2. Skeleton

结果表明,利用这两个结构性质,我们可以判断图是在相同的马尔可夫等价类中,还是在不同的马尔可夫等价类中:当且仅当两个图具有相同的骨架和相同的Immoralities 时它们属于同一马尔可夫等价类。

1.2 PC算法

PC算法是一种通过骨架和Immoralities 判断马尔可夫等价类从而识别因果图的算法。

PC算法从一个全连接的无向图开始,然后通过三个步骤对其进行修剪并确定边的方向:

  1. 确定骨架。
  2. 找出 immoralities 并加以定位。
  3. 根据非immoralities判断一些边的方向。


假如真实的因果图如上图所示,则用PC算法识别因果图的具体步骤如下。

识别骨架。首先从下面的(a)图开始。然后判断任两个结点的独立性,如果两个结点具有条件独立行(条件集可能为空),那么可以删除两个节点之间直接相连的边。判断条件独立性时可以从条件集为空开始,然后逐渐添加条件集中的结点来判断。这样,就可以得到图的骨架,(c)所示。

识别 Immoralities。现在对于我们骨架图中的任何形如 X — Z — Y X—Z—Y X—Z—Y的路径,我们发现在上一步中,在X和Z之间没有边,如果Z不在使X和Y条件独立的条件集中,那么我们知道, X — Z — Y X—Z—Y X—Z—Y形成了不道德。换句话说,我们知道以Z为条件使得X和Y不独立,Z是一个对撞节点,因此可以在图中添加 X → Z ← Y X \rightarrow Z \leftarrow Y X→Z←Y结构。

根据非immoralities判断一些边的方向。在最后一步中,我们利用了这样一个事实,即我们可能能够定位更多的边缘,因为我们知道我们在上一步中发现了所有的 immoralities。对于上一步得到的图中,C和D之间的边,只能由C指向D,因为如果D指向C的话就添加了新的immoralities。同理,C和E之间的边只能是C指向E。于是得到了最终的因果图。

在这个例子中,幸运的是,我们可以在最后一步中确定所有剩余边的方向,但通常情况并非如此。例如,我们讨论了不能区分简单链图和简单叉图。

1.3 可以更好的识别吗

我们已经看到,假设马尔可夫假设和忠实性只能让我们走到目前为止;有了这些假设,我们只能识别一个图到它的马尔可夫等价类。如果我们做更多的假设,我们能更准确地识别图而不仅仅是它的马尔可夫等价类吗?

如果我们是在分布是多项式的情况下,我们不能。或者,如果SCM是线性的且噪声是高斯的,我们不能。结论如下:

2. 半参数因果发现

基于独立的因果发现有三个不足:

  1. 需要很容易想到反例的忠诚假设。
  2. 为了判断条件独立性,需要大量样本。
  3. 只能识别到马尔可夫等价类。


在没有参数假设的情况下,不能识别精确的因果图。

2.1 线性非高斯噪声

线性非高斯假设:所以的结构方程都有 Y : = f ( X ) + U Y:=f(X)+U Y:=f(X)+U的形式,其中 f f f是线性方程, X X X独立于 U U U,并且 U U U的分布不是高斯分布。

基于上述假设,我们可以分辨 X ← Y X\leftarrow Y X←Y和 X → Y X \rightarrow Y X→Y。

2.2 非线性模型


因果推理(十):Causal Discovery from Observational Data相关推荐

  1. 【论文笔记】A Meta-Reinforcement Learning Algorithm for Causal Discovery

    目录 Abstract 1 MOTIVATION AND CONTRIBUTION 2 PRELIMINARIES AND NOTATION 3 WORKING ASSUMPTIONS 4 REINF ...

  2. 《因果学习周刊》第10期:ICLR2022中最新Causal Discovery相关论文介绍

    No.10 智源社区 因果学习组 因 果 学  习 研究 观点 资源 活动 关于周刊 因果学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...

  3. 因果推理(causal inference)初步调研

    因果推理(causal inference)初步调研 NIPS相关论文 NIPS有相关的causal inference板块,但总体来看,相比于较为成型的visual板块显得更加五花八门,少有一个统一 ...

  4. 论文笔记:Accurate Causal Inference on Discrete Data

    小白准备讨论班而看的论文,<Causality for Machine Learning>太长了有空再看着玩吧. 惯例先上文献:K. Budhathoki and J. Vreeken, ...

  5. 【Motif Discovery with Missing Data】

    Motif Discovery with Missing Data 一.文献相关信息 二 .重要定义 三.伪缺失数据(PMD) 四.论文拟解决的主要问题 五.论文的主要研究内容 六.创建下界Dista ...

  6. 因果发现工具 Causal Discovery Toolbox(cdt)安装指南

    提前提醒:要是遇到以下提示bug的同学,还是直接重装吧,这个问题在github的Issues上面有不少人碰到过了(我也去问了),但是目前为止,连维护这个框架的作者也并没有给出修复这个bug的答案.我是 ...

  7. 人工智能的未来———因果推理:Causal Inference: What If chapter1 A DEFINITION OF CAUSAL EFFECT 文章解读

    目录 Chapter 1 A DEFINITION OF CAUSAL EFFECT 1.1 Individual causal effects 1.a formal definition of a ...

  8. (两百八十八)Android R data stall检测机制学习

    1.简介 data stall检测机制就我现在的理解看来是Android 在网络校验成功后,对网络的一种持续监控措施,一旦发现当前网络断网,则通知ConnectivityService,进行相应的处理 ...

  9. Casual Discovery from Incomplete Data: A Deep Learning Approach(AAAI 2020)

    [写在前面]该论文发表于AAAI2020,提出了一个采用深度学习在数据存在缺失的情况下进行因果关系发现的框架,框架中采用了GAN和VAE,GAN网络主要用来进行数据补全,VAE则进行生成一个无向因果图 ...

最新文章

  1. LSJ_NHibernate第三章 IDAL,DAL,BLL
  2. 虚拟化服务器端口用万兆,万兆以太网部署需要注意的方面有哪些
  3. 自定义Django的admin界面
  4. 如何把表格做成源代码_他来了,他来了,文字、表格、公式图片识别神器V0.1测试版...
  5. 第三十讲:Android之Animation(五)
  6. initWithFrame 与 initWithCoder 、awakeFromNib 的方法理解笔记
  7. Oracle行转列、列转行的Sql语句总结
  8. 毕业设计——第三章 开发方法及系统实现(6)(完结)
  9. python流星雨代码_用python一起来看流星雨
  10. 关于高速光耦6n137的使用总结_光耦合器应用电路的基本特性!-先进光半导体
  11. shell一周学习心得
  12. 最好的3个Windows电脑上的azw3阅读器
  13. 攒机笔记十六:制作pe盘
  14. 一些PDG格式的Linux书籍(转)
  15. java api 已取消到该网页的导航问题
  16. python中的f函数_05-python中函数的使用
  17. 软件加壳的简易实现方式
  18. 计算机会不会取代人类英语作文,高中英语作文:机器代替人?
  19. html表格边框默认值,table表格边框的设置
  20. 什么是云密码?密信云密码服务产品提供什么?

热门文章

  1. Dhrystone DMIPS跑分原理以及CPUNPU等效算力分析
  2. ZYNQ DMA Modelsim仿真与速度测试
  3. [转] 用友NC二次开发问题汇总【转】
  4. 3s安装JupyterLab,4步完成JupyterLab插件安装(附多款高生产力插件推荐)
  5. intro Java
  6. mysql 如何优化sql语句,如何优化SQL?MySQL中超实用的SQL语句送给大家
  7. OPEN3D 可视化使用
  8. HUAWEI CLOUD Stack 私有云解决方案(HCS)
  9. [附源码]JAVA+ssm流浪猫狗救助站(程序+Lw)
  10. c语言烫烫烫,每一个程序员都会经历的“烫烫烫”