ANM(Nonlinear causal discovery with additive noise models)

(24) 2024-04-23 21:01:01

在上一篇文章我们讲了当数据背后的生成机制是线性的时候,我们如何从数据中恢复出其背后的因果结构。那么当数据背后生成的机制是非线性的时候,我们该如何从数据中恢复出其背后的因果结构呢?

本篇文章分享的论文就是提出了一个方法,使得我们可以在满足一定的假设条件下恢复出数据背后的因果结构。

在LiNGAM中,我们知道我们之所以能够识别因果结构,得益于噪声项(扰动项)的非高斯性所具有的非对称性,那么同理,对于具有非对称性的非线性函数,我们也可以从数据中恢复出因果结构吗?

ANM给出了这个问题的回答,是的,非线性与非高斯具有非常相似的一些性质,非线性也可以打破变量之间的对称性,进而允许我们识别变量间的因果关系方向。

这篇文章指出:对于任何具有加性噪声的非线性模型,几乎任何非线性(可逆或不可逆)通常都会产生可识别的模型。(for nonlinear models with additive noise almost any nonlinearities (invertible or not) will typically yield identifiable models)

这篇文章假设数据的生成方式为:ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第1张ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第2张是任意函数,ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第3张代表的就是节点i的父节点集合。ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第4张表示具有任意概率密度的噪声变量。

在这篇文章中,通过改变函数f的线性与非线性,进而说明了当函数时非线性时,模型的可识别性。对比图如下:

ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第5张

 (a-c)是f属于线性的情况,由上图可知,在因果函数是线性且噪声项时高斯的情况下,P(x|y)与P(y|x)的值对于不同取值都是相似的,所以无法区分。

(d-f)是f是非线性的情况,由上图可知,当因果函数是非线性的情况下,P(x|y)与P(y|x)的值对于不同取值是可以区分的。所以基于上图,我们有理由认为因果函数的非线性有助于我们识别因果关系方向。

该篇文章假设所有的函数(ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第6张)都是三阶可导,在这个假设下,文章给出的定理和推论证明了在一般情况下不存在backward model(backward model指的是那种因果关系在两个方向都成立的情况x->y与x<-y同时存在)。

 ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第7张

 这个定理1描述的就是在什么情况下会存在backward model。即当给定固定的函数F和V时,如果y满足ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第8张,则就会存在一个backward model。

ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第9张

 这个推论描述的就是当什么时候存在backward model的时候,我们可以反推得到数据的生成机制时线性的。

上面讲完了模型的可识别性如何得到后,下面就要讲讲怎么利用非线性去估计模型了,也就是如何得到因果关系方向了,大致步骤如下。

  1. 首先选取一对测试两个变量是否统计独立。
  2. 先假设因果机制是ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第10张,然后我们利用x对y做非线性回归得到一个拟合函数ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第11张,计算相应的残差ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第12张,通过判断这个残差与x是否独立来测试这个方向是否与数据生成机制一致,如果独立,则可认为我们的假设是对的,如果不是,则拒绝这个假设;同样,我们也会对另一个方向做假设,即ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第13张。如果两个方向都独立,那么我就选取独立分数更高的那边。
  3. 重复以上步骤,直至每对变量都测试过。

当然该算法所得到的依然是一组符合数据生成机制的DAG。下面是该算法在仿真数据上的表现,我们的模型为:ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第14张。变量x与n都从高斯分布中采样。实验结果如下所示:

ANM(Nonlinear causal discovery with additive noise models) (https://mushiming.com/)  第15张

 图中的q的是控制噪声项的分布,q=1时高斯分布,q>1和q<1分别时super-Gaussian和sub-Gaussian分布;b控制的是非线性的程度,b=0是就是线性。从图a中我们可以看到,当函数是线性且噪声项是非高斯的时候,模型是可识别的。但是如果是函数是线性但是噪声项时高斯的时候,模型是无法识别的。从图b中,我们可以得到,当函数是非线性时,即使噪声项时高斯的,那么模型也是可以区分的。

讲完模型为什么可识别,如何识别和估计后,这篇论文的核心内容也就差不多讲完了,那么这个方法有什么缺点呢?很容易想到的一点就是,时间开销会很高,因为其是一对一对变量之间做方向确定,假设有N个节点,这一步的时间复杂度大致就为O(N^2),并且还没考虑做回归时的耗时,所以论文中也有讲到对于小型网络来讲是合理的。当然论文中也提出了可能存在多重假设检验的问题(举个例子,假设方向识别错误的可能性为1%,那么做100次检验就很可能会出现1次,并且伴随着检验次数的增多,这个出现错误的次数也会增加,而多重假设检验就可以帮助我们解决这个问题)。

在了解完Direct-LiNGAM与ANM后,我们可以发现其都是基于SCM方程(因果关系函数和外生变量或者说噪声)并且利用因果关系的不对称性来进行因果关系发现的方法。就比如说Direct-LINGAM就是利用了非高斯噪声所具有的不对称性、ANM就是利用了非线性函数的不对称性。当然说到这里,我们还能不能从别的角度利用这个因果关系的不对称性呢?比如说信息论的角度呢?当然我们也可以就从这个已经提出来的角度中,去思考有没有别的方法在非线性或者线性高斯的情况下去做因果关系发现。

本篇文章分享到这就结束了,如果写的不对,请大家指出来,谢谢大家阅读。

THE END

发表回复