CausalVAE: Disentangled Representation Learning via Neural Structural Causal Models

CausalVAE引入因果关系到解耦表征领域,通过神经结构因果模型实现可解释的潜在变量z。实验表明,CausalVAE在钟摆图像和CelebA数据集上的表现能够展示学习到的因素具有因果语义,并能通过干预生成反事实图像。CausalVAE的网络结构结合了因果层和mask层,利用线性非高斯无环模型(LiNGAM)来学习因果结构,并通过额外的监督信号u提高识别性。

简介

这篇论文我觉得最大的贡献是把因果关系、因果模型引入到解耦表征领域,使得解耦的潜变量z具有可解释性;对z加一个的扰动可以反映到VAE网络生成图像的对应物理量上。

贡献:1)我们提出了一个新的框架CausalVAE,支持因果分离和do-operation;2) 给出了模型可辨识性的理论证明;3)我们对合成的和真实的人脸图像进行了综合实验,以证明所学习的因素具有因果语义,并且可以被干预以生成不出现在训练数据中的反事实图像。

实验

以钟摆实验为例说明:
在这里插入图片描述在这里插入图片描述
上左图为训练的钟摆图像,它包含4个因素:1光源位置、2摆钟角度、3影子位置、4影子长度,上右图对应其因果关系图,即1、2为因,3、4为果,那么就希望网络如果调整1、2对应的latent code可以影响到3、4,反之则不行。

看一下实验效果:
在这里插入图片描述
a为CausalVAE,b为ConditionVAE,前4行分别设置1、2、3、4对应的 z i z_i zi,为生成图像,最后一行为输入原始图像。CausalVAE的优势主要体现在后两行,论文也讲ConditionVAE可以看作消融版本。这个效果可能光源太大?看着有点不舒服,不过效果还是有的。

CelebA数据集效果图:
在这里插入图片描述
其对应的因果结构图如下,解读就不解读了,跟上面一样:
在这里插入图片描述

其后对A可视化出来效果,这是CelebA数据集的,颜色由浅到深从0到1,可以看到A的改变过程逐渐接近真实的A(这里可能需要看完全文再回过来再看):
在这里插入图片描述
另外还有两个指标MIC和TIC:
在这里插入图片描述

网络结构图:

在这里插入图片描述
可以看作在VAE的隐变量空间嵌入了因果结构模型,就 ϵ \epsilon ϵ z z z A A A围住的三角形这里,把隐变量解耦再用decoder生成图像。emmm…也不严谨。

causal layer

作者在论文中也讲到,这部分的思想主要就是借鉴Shohei Shimizu, Patrik O Hoyer.A linear non-gaussian acyclic model for causal discovery, 2006.这篇文章,这个模型简称:线性非高斯无环模型(LiNGAM),该模型基于 SEM (Structural Equation Modeling)的因果模型,查阅资料就会发现SEM在金融、管理、社科等领域用的非常多,所以如下图这样的模型很常见,它就是建立各个因素之间的因果关系。
结构因果模型
LiNGAM 对系统的数据生成方式做了线性假设和非高斯独立噪声的假设,并利用独立成分分析(ICA,independent component analysis)进行求解。线性非高斯无环模型要求三个基本的前提条件:

  1. 观测变量之间是存在因果顺序的,后续变量不会导致前序变量;这些变量可以用一个DAG(有向无环图)表示。
  2. 变量间的因果关系是线性的,可以用如下公式描述: x i = ∑ k ( j ) < k ( i ) b i , j x j + e i + c i x_i = \sum_{k(j)<k(i)} b_{i,j}x_j+e_i+c_i xi=k(j)<k(i)bi,jxj+ei+ci
  3. 扰动项e服从方差非零的非高斯分布,且互相独立。

当然这些是LiNGAM为求解矩阵 B B B的前提条件。上述公式可化简为: X = B X + e X=BX+e X=BX+e z = A T z + e z=A^Tz+e z=ATz+e, 移项合并后 z = ( I − A T ) − 1 ϵ z=(I-A^T)^{-1} \epsilon z=(IAT)1ϵ

ϵ \epsilon ϵ在论文中叫做独立高斯外生因子,它就对应网络结构图中的 ϵ \epsilon ϵ,由编码器生成,causal layer的作用是对 ϵ \epsilon ϵ施加线性变化,即乘 ( I − A T ) − 1 (I-A^T)^{-1} (IAT)1,得到内生变量 z z z

mask layer

这部分作用是:模拟因果图中父节点的影响向子节点传递,同时这是由于这部分存在使得我们可以执行"do-operation"操作,控制图像的生成,以及生成一些counterfactual反事实的图像。

由于无监督的学习方式学出来的因果图不能保证因果图的identifiability可识别性,简单讲就是两个不同的联合分布 p θ ( x , z ) p_\theta(x,z) pθ(x,z), p θ ′ ( x , z ) p_ {\theta'}(x,z) pθ(x,z)但是却对应着同一个边际分布 p ( x ) p(x) p(x), 或者可以理解为相同的观测变量下对应不同的因果图,这肯定不对了。这就identifiability的问题。

因此要引入额外的监督信号 u u u。在论文IVAE中的作法是给潜变量z加条件 p θ ( z ∣ u ) p_\theta(z|u) pθ(zu),u是一个额外观察到的变量,给定条件变量 u ,每个隐变量 z i ⊆ z z_i\subseteq z ziz是条件独立的单变量指数分布族。即下式:在这里插入图片描述

在CausalVAE中u就是label,它是[4,1]size的vector。如论文所述:
“In our work, we use the labels of the concepts. The additional information u is utilized in two ways. Firstly, we propose a conditional prior p(z|u) to regularize the learned posterior of z. This guarantees that the learned model belongs to an identifiable family. Secondly, we also leverage u to learn the causal structure A.”

根据文中mask layer的表达式: z i = g i ( A i ∘ z ; η i ) + ϵ i z_i=g_i(A_i\circ z;\eta_i)+\epsilon_i zi=gi(Aiz;ηi)+ϵi,可以看出这部分跟causal layer有点像,只是把线性变为非线性,作者说效果会更好。代码实现上causal layer层输出的z在这里乘A,之后过一个神经网络拟合的非线性函数 g i g_i gi,再加 ϵ i \epsilon_i ϵi,最后输出 z i z_i zi进decoder还原原图像。但是这个 ϵ i \epsilon_i ϵi好复杂?跟论文好像不一样
在这里插入图片描述
"do-operation"操作是对causal layer层输出z操作,对它的影响会传递到mask layer层输出的z;生成反事实图像是在此基础上再控制mask layer层的z不变。

损失函数方面:

在这里插入图片描述
其中,ELBO如下,从VAE那来的,作者又做了改进并推导了置信下届。保证重构图像和原图尽可能像:
在这里插入图片描述
H ( A ) H(A) H(A)如下,与NOTEARS差不多,保证学出来的A是一个DAG。
在这里插入图片描述
l u l_u lu l m l_m lm是对u和z的约束,和NOTEARS损失函数相似,都是保证A是DAG。
在这里插入图片描述在这里插入图片描述
其实可以发现,CausalVAE的几篇重要参考文献其实都是讲的那么些东西,在前人的基础上做一点改进,大方向是没有变的,他们解决的问题都是:有一堆观测数据𝑋∈ℝ𝑛×𝑑,X∈R,n×d, 如何通过这些数据推测其(特征之间的)关系, 即对应的𝐴,拿到这个𝐴就得到对应的因果关系图。比如DAGs with NO TEARS是把DAG的复杂组合优化问题转化为连续最大化问题,这应该是不小的突破;Masked Gradient-Based Causal Structure Learning这篇又把它拓展到非线性的情况。以及DAGs with NO TEARS、DAG_GNN等都是因果关系图的改进及向其他领域的应用。

更理论的数学推导可能需要看看原文3.3. A Probabilistic Generative Model for CausalVAE和4.learn strategy;其他的帖子如CausalVAE

不足或疑问

我觉得对于每一维隐变量 z i z_i zi真的就能对应到实际的一个物理因素还表示怀疑,尽管作者讲了可以;其次论文中实验 z z z的维度是4,现实中肯定不只4,那多少合适?

参考资料

非时序线性非高斯模型 —— LiNGAM
以因果为先验的解耦表示|生成模型——CausalVAE及其扩展
贝叶斯网络简要概述
反事实推理:Causality 基础概念汇总
DAGs with NO TEARS: Continuous Optimization for Structure Learning
DAG_GNN:一种基于VAE的DAG结构学习架构
有两个博主应该是相关方向,这一系列论文都有介绍:馒头and花卷学术农工
关于CausalVAE讲得比较理论一点的文章:CausalVAE以因果为先验的解耦表示|生成模型——CausalVAE及其扩展
论文作者B站讲解视频
codes

文章主要讲我自己对论文的理解以及对读论文时查阅资料的整理,会不断补充和更新,欢迎来信探讨。

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值