假设你是一位刚入行的整理师,接到一个特别的任务:客户家里有一整箱乱糟糟的老照片,人物、场景、天气全混在一起,色调还各不相同。客户不要你按颜色或时间归档,而是想知道:“如果那天没有下雨,这张照片会是什么样?”要回答这种“如果”问题,光看照片之间的相似性远远不够——你必须先认出照片背后的“底片因素”:谁是同一个人、照片在哪个地点、光线来自哪里。因果表示学习,做的正是这件事:它不满足于“看见照片”,而是要从海量观测数据中,把真正起作用的因果变量找出来,并学会它们之间如何互相影响。 这背后的核心思想是:很多机器学习模型只会发现“相关关系”,比如照片里出现雨伞和阴天经常一起出现;而因果表示学习要学习“生成机制”,也就是阴天会改变光线,光线又会改变照片里人物的阴影。本文会用整理相册这条故事线,帮你搞懂因果表示学习的基本概念、核心思想、关键技术、评估方法,以及它在数据可信层、决策支持等场景中的实际价值。

岗位关联

对 AI 从业者来说,理解因果表示学习,意味着你不再只会做“预测更准”的模型,而是能回答“为什么要这样预测”“干预之后会怎样”,这在风控、医疗、推荐等高风险决策场景中是关键竞争力。

目录
  1. 可视化演示
  2. 概念与动机:从相册目录到底片分离
  3. 核心思想:独立因果机制
  4. 技术基础:因果变量发现与深层生成模型
  5. 关键方法:因果VAE与干预辅助训练
  6. 评估与挑战:让整理效果可被验证
  7. 应用与展望:在数据可信层落地
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示从观测数据X到潜在因果变量Z的编码-解码过程,以及Z空间中的结构因果模型与跨环境不变性。

本节配有交互动效(进入视口后自动加载,约 3KB)。

因果表示学习 编码器f:观测X→潜在Z,发现因果变量 SCM在Z空间:Z1→Z2→Z3结构因果图 不变风险最小化IRM:跨环境Z保持不变 min E[R(f(Z),Y)] + λΣ_e Var_e(R) 学习因果不变的潜在表示

概念与动机:从相册目录到底片分离

整理师小周打开鞋盒,里面是几十张因为光线、滤镜、人物重叠而乱成一团的老照片。客户不要按颜色或时间归档,而想知道:“如果那天没有下雨,照片会是什么样?”要回答这个问题,光看照片之间的相似性是不够的——你必须先认出照片背后的“底片因素”:人、地点、光线、季节。这堆照片就是观测数据,底片因素就是因果潜变量。

很多机器学习任务只学习“照片目录”:看到红色像素多就归为“喜庆”,看到建筑就归为“城市”。而因果表示学习要学的是“生成照片的机制”:哪些底片因素在互相影响,每个因素又怎样决定最终像素。在数学上,这个过程可以用一组结构因果方程来刻画:

对小周来说,只有把泛黄的相册还原成“人、地点、光线”这些独立因素,才能真正回答“如果换一张底片会怎样”。这就是因果表示学习的第一课:学习变量,而不是学习标签。

xi  =  gi(pai, ui),i=1,…,m.\displaystyle x_i \;=\; g_i(\mathrm{pa}_i,\, u_i), \qquad i = 1,\dots,m.
可以把 g_i 想象成拍照时的一个独立滤镜,pa_i 是直接影响这张照片的因素,u_i 是当天不可控的随机噪声。只要知道滤镜的规则,就能解释照片为什么长这样。
  1. 观测变量x_i 表示第 i 个拍出来的照片通道或可观测属性。
    xix_i
  2. 因果机制g_i 是将直接原因变成观测结果的“滤镜”。
    gi(⋅)g_i(\cdot)
  3. 父节点集合pa_i 是直接影响 x_i 的因果父变量。
    pai\mathrm{pa}_i
  4. 外生噪声u_i 是独立随机噪声,代表拍摄当天没被记录的扰动。
    uiu_i
  5. 整体结构i=1,…,m 表示所有变量共享同一套“显影规则”。
    i=1,…,mi=1,\dots,m

核心思想:独立因果机制

小周的客户希望把每张照片里的“人物层”和“背景层”分开保存,就像把一张照片拆成透明胶片。即使把人物层单独抽走,背景层也不会因此改变;反过来,把背景层的色调调暗,人物层的表情依然如故。这种“模块之间互不干扰”的性质,就是独立因果机制。

独立因果机制假设自然界的生成过程由多个独立模块组成:每个变量的条件分布只依赖它的直接原因,改变其中一个模块,不会影响其他模块。给定所有变量后,整个系统的联合分布可以写成一系列条件分布的乘积:

正因为机制独立,小周整理相册时能单独抽走“雨天图层”,而不必重拍整张照片。这也带来一个关键性质——干预不变性:当我们主动改变某个机制时,只要其他机制不变,我们仍能准确预测系统的反应。

p(x1,…,xn)  =  ∏i=1np(xi∣pai).\displaystyle p(x_1,\dots,x_n) \;=\; \prod_{i=1}^{n} p\bigl(x_i \mid \mathrm{pa}_i\bigr).
这个公式的意思是:整本相册可以由一张张“独立小卡片”拼出来。每张小卡片只描述一个变量在什么条件下出现,小卡片之间不会互相乱改。
  1. 联合分布p(·) 描述整本相册所有变量同时出现的概率。
    p(x1,…,xn)p(x_1,\dots,x_n)
  2. 连乘号∏ 表示每个模块单独贡献,互不干扰。
    ∏i=1n\prod_{i=1}^{n}
  3. 条件分布p(x_i | pa_i) 表示给定直接原因后,x_i 出现的概率。
    p(xi∣pai)p(x_i \mid \mathrm{pa}_i)
  4. 因果父节点pa_i 只包含直接原因,不包含间接原因。
    pai\mathrm{pa}_i
  5. 机制独立性联合分布被拆成模块乘积,这是干预可以局部化的基础。
    ∏i=1np(xi∣pai)\prod_{i=1}^{n} p(x_i \mid \mathrm{pa}_i)

技术基础:因果变量发现与深层生成模型

如果连底片是什么都不知道,小周只能通过反复冲洗照片来猜测。因果变量发现要回答的正是:从一堆像素构成的观测中,怎样把隐藏的底片因素“显影”出来?早期的独立成分分析假设混合过程是线性的,就像整理师只会按颜色深浅做简单分类;但真实照片是人物、光线、场景非线性叠加出来的,线性假设远远不够。

深度学习提供了更自然的框架:假设观测 x 由一个低维潜变量 z 经过一个非线性函数生成。于是,生成模型的训练目标变成了:

在实际落地时,变分自编码器(VAE)是常用框架:编码器负责“扫描照片得到底片”,解码器负责“用底片重新洗出照片”。为了让底片中的各分量真正独立,我们还会给潜变量空间加入结构约束,这就引出了下一节的关键方法。

pθ(x)  =  ∫pθ(x∣z) p(z) dz.\displaystyle p_\theta(x) \;=\; \int p_\theta(x\mid z)\, p(z)\, dz.
可以把 z 想象成一组还没冲印的底片参数,p(z) 是“底片自然出现的规律”,p(x|z) 是“给定底片后洗出照片的流程”。积分表示把所有可能的底片都考虑进去。
  1. 观测分布pθ(x) 是模型眼中的照片分布。
    pθ(x)p_\theta(x)
  2. 积分把无数可能的底片 z 全部纳入计算,得到加权平均。
    ∫\int
  3. 生成似然pθ(x|z) 表示给定底片参数 z,生成照片 x 的概率。
    pθ(x∣z)p_\theta(x\mid z)
  4. 先验分布p(z) 是对底片自然状态的先验偏好。
    p(z)p(z)
  5. 模型参数θ 是深度网络的参数,控制“显影机”的行为。
    θ\theta

关键方法:因果VAE与干预辅助训练

小周不满足于把照片分类,他想训练一台“底片显影机”:输入一张照片,输出一组可调节的因果旋钮。这就像因果VAE做的事。普通VAE只要求能重建照片,而因果VAE还会要求潜变量内部具有因果结构:有的旋钮控制人物,有的旋钮控制光线,旋钮之间松紧有序。

变分自编码器的训练目标通常包含重建项和正则项:

除了因果VAE,干预辅助训练也很关键:如果有一小批“换了底片之后拍出来的照片”,我们可以让模型在干预前后的表示保持一致;这种一致性就是学习因果表示的强信号。双表示分离则把信息拆成“因果部分”和“非因果部分”,专用于应对分布外场景。

L(θ,ϕ;x)  =  Eqϕ(z∣x)[log⁡pθ(x∣z)]  −  DKL(qϕ(z∣x) ∥ p(z)).\displaystyle \mathcal{L}(\theta,\phi;x) \;=\; \mathbb{E}_{q_\phi(z\mid x)}\bigl[\log p_\theta(x\mid z)\bigr] \;-\; D_{\mathrm{KL}}\bigl(q_\phi(z\mid x)\,\big\Vert\, p(z)\bigr).
重建项负责让“底片显影”尽量还原原图;KL 项负责让底片空间的分布不要乱跑。如果我们把 p(z) 设成各分量独立的分布,等于在说:我希望底片旋钮互不纠缠。
  1. 期望从编码器给出的分布中随机采样底片 z。
    Eqϕ(z∣x)\mathbb{E}_{q_\phi(z\mid x)}
  2. 重建项log pθ(x|z) 衡量这组底片还原照片的程度。
    log⁡pθ(x∣z)\log p_\theta(x\mid z)
  3. KL散度衡量编码器分布与先验分布之间的差异。
    DKL(qϕ(z∣x) ∥ p(z))D_{\mathrm{KL}}\bigl(q_\phi(z\mid x)\,\big\Vert\, p(z)\bigr)
  4. 编码器分布qφ(z|x) 是照片到底片的映射。
    qϕ(z∣x)q_\phi(z\mid x)
  5. 整体目标最大化还原度的同时,让底片空间保持结构化。
    L(θ,ϕ;x)\mathcal{L}(\theta,\phi;x)

评估与挑战:让整理效果可被验证

小周怎么知道自己的整理方法是有效的?一个直觉是让客户看“换了底片后的照片”是否自然。但这还不够,因为真实因果变量常常没有标签,我们很难直接说“你恢复对了”。因此,研究者通常使用多种间接评估方式。

一种常见方式是变量恢复评估:如果某个模拟数据集中存在真实因果变量,我们可以把模型学到的表示与真实变量做对齐,用调整兰德指数(ARI)衡量吻合程度:

除了指标,实践上更看重干预一致性和分布外表现:换掉一个底片因素后,其他表示是否保持不变?换一个数据分布后,模型是否还能稳定工作?因果表示学习目前仍有很多开放挑战,比如没有干预时不可辨识、高维视频因果建模困难、动态因果机制随时间变化等,这些都是深度因果发现方向最活跃的研究问题。

ARI  =  RI  −  E[RI]max⁡(RI)  −  E[RI].\displaystyle \mathrm{ARI} \;=\; \frac{\mathrm{RI} \;-\; \mathbb{E}[\mathrm{RI}]}{\max(\mathrm{RI}) \;-\; \mathbb{E}[\mathrm{RI}]}.
ARI 的直觉是:看两种“分组方式”是否一致。把照片按真实人物分组,和按算法学到的底片因素分组,如果两个分组越像,ARI 越接近 1;如果完全是随机对齐,ARI 接近 0。
  1. 兰德指数RI 表示两个分组方式在所有点对上的同意率。
    RI\mathrm{RI}
  2. 随机基线E[RI] 是随机分组时兰德指数的期望值。
    E[RI]\mathbb{E}[\mathrm{RI}]
  3. 最大可能值max(RI) 通常是 1,代表完美一致。
    max⁡(RI)\max(\mathrm{RI})
  4. 分子实际结果超过随机基线的部分。
    RI−E[RI]\mathrm{RI} - \mathbb{E}[\mathrm{RI}]
  5. 分母从随机到完美之间可能达到的最大提升。
    max⁡(RI)−E[RI]\max(\mathrm{RI}) - \mathbb{E}[\mathrm{RI}]

应用与展望:在数据可信层落地

整理好的相册不只美观,还能回答“如果”问题。因果表示学习在“数据可信层”同样重要:当数据仓库里的指标彼此混杂时,我们需要知道哪些是根因、哪些只是伴随现象。有了因果表示,算法工程师可以把原始特征拆成“用户真实意愿”和“平台展示偏差”,让指标口径更可信。

一个经典的反事实预测场景是:给定一个人的多个因果底片因素,假设把“价格因素”从 Z1 改为更低价,用户转化率会如何变化?公式可以写成:

在医疗、推荐、风控等场景中,因果表示学习已经开始改变“预测式 AI”的思维:从“这个用户会不会买”升级为“如果给他推送另一种商品,他会不会买”。未来,基础模型与因果世界模型结合后,AI 系统将更有能力在复杂环境中做可靠干预与决策。

YZ1←z1′  =  fY(z1′, z2, uY).\displaystyle Y_{Z_1 \leftarrow z_1'} \;=\; f_Y\bigl(z_1',\, z_2,\, u_Y\bigr).
这里 Z_1 是你打算干预的“价格旋钮”,z_2 是保持不变的“用户偏好”等背景因素。f_Y 是转化率这个结果的生成机制,u_Y 是未被观察到的随机扰动。
  1. 反事实变量Y 下标中的 Z1←z1' 表示“在强行把 Z1 改为新值后”的 Y。
    YZ1←z1′Y_{Z_1 \leftarrow z_1'}
  2. 干预赋值z1' 是干预后给定的新因素值。
    z1′z_1'
  3. 结果机制f_Y 是 Y 的因果机制,类似滤镜决定最终效果。
    fY(⋅)f_Y(\cdot)
  4. 不变背景z_2 等其余底层因素保持不变。
    z2z_2
  5. 外生噪声u_Y 是 Y 自己的随机扰动,代表不可控细节。
    uYu_Y

AI 应用场景

数据可信层的“底片盘点”

阶段:特征工程与数据治理

解决的问题:传统数据清洗只能做缺失值填充、去重和归一化,无法回答“哪些变量是被共同原因驱动”的问题。原始特征往往高度共线、互相混杂,导致指标波动时很难定位根因。因果表示学习可以把混杂的原始特征拆分成独立因果变量,让数据血缘和指标口径更可信。

具体案例:在用户行为埋点中,算法工程师用因果VAE把“活跃度”“内容偏好”“平台推荐强度”分开。之后发现某天点击率下降,不再是“所有指标都变差”,而是“推荐强度”这个因子异常,解决了数据部门长期的对账难题。

决策支持中的“换底片模拟”

阶段:模型推理与决策

解决的问题:传统推荐模型只能预测相关概率,无法回答“如果我干预价格,转化率会怎样”。因果表示学习把价格因素从季节、用户偏好中分离出来,再用结构方程做反事实模拟,把决策从“看趋势”升级为“做实验”。

具体案例:电商平台希望对部分用户发放优惠券。模型在因果表示空间里将“价格敏感度”和“品牌忠诚度”分离,预测发放优惠券后的增量转化,而不是直接对历史相似用户做加权平均,活动 ROI 提升了 18%。

医疗影像中的可解释干预

阶段:模型解释与临床辅助

解决的问题:黑盒分类器只能给出“患病概率”,无法告诉医生“如果去掉影像伪影,诊断结果会不会改变”。因果表示学习把病灶区域和拍摄条件分别建模,让模型能回答医生提出的反事实问题。

具体案例:在肺结节筛查中,学习到的因果表示将“真实病灶”和“扫描噪声”分开。医生用界面滑动“噪声强度”旋钮,模型仍保持诊断结果,说明诊断依据来自病灶本身,而不是拍摄伪影。

Python 演示

python71 行
import torchimport torch.nn as nn torch.manual_seed(0) def generate_data(n=600):    z1 = torch.distributions.Exponential(rate=1.0).sample((n, 1))    z2 = torch.randn(n, 1)    x1 = z1 + 0.3 * z2 + 0.2 * z1 * z2    x2 = torch.pow(z2, 2) + 0.1 * z1    return torch.cat([x1, x2], dim=1) class Encoder(nn.Module):    def __init__(self):        super().__init__()        self.shared = nn.Linear(2, 32)        self.mu = nn.Linear(32, 2)        self.logvar = nn.Linear(32, 2)     def forward(self, x):        h = torch.relu(self.shared(x))        return self.mu(h), self.logvar(h) class Decoder(nn.Module):    def __init__(self):        super().__init__()        self.net = nn.Sequential(nn.Linear(2, 32), nn.ReLU(), nn.Linear(32, 2))     def forward(self, z):        return self.net(z) def independence_hsic(z1, z2, sigma=1.0):    n = z1.shape[0]    d1 = z1[:, None] - z1[None, :]    d2 = z2[:, None] - z2[None, :]    k1 = torch.exp(-d1.pow(2).sum(-1) / (2 * sigma * sigma))    k2 = torch.exp(-d2.pow(2).sum(-1) / (2 * sigma * sigma))    eye = torch.eye(n)    h = eye - torch.ones((n, n)) / n    a = h @ k1 @ h    b = h @ k2 @ h    return (a * b).sum() / (a.norm() * b.norm() + 1e-8) def main():    x = generate_data()    enc = Encoder()    dec = Decoder()    opt = torch.optim.Adam(list(enc.parameters()) + list(dec.parameters()), lr=1e-3)    for epoch in range(300):        mu, logvar = enc(x)        std = torch.exp(0.5 * logvar)        z = mu + std * torch.randn_like(std)        x_hat = dec(z)        recon = nn.functional.mse_loss(x_hat, x)        kl = 0.5 * (logvar.exp() + mu ** 2 - 1 - logvar).sum(dim=1).mean()        loss = recon + kl        opt.zero_grad()        loss.backward()        opt.step()        if epoch % 50 == 0:            print(f"epoch {epoch:3d} loss {loss.item():.4f}")    with torch.no_grad():        mu, _ = enc(x)        raw = independence_hsic(x[:, :1], x[:, 1:]).item()        learned = independence_hsic(mu[:, :1], mu[:, 1:]).item()    print(f"raw HSIC: {raw:.4f}")    print(f"learned HSIC: {learned:.4f}")    print("HSIC 越接近 0,两个变量越独立。") if __name__ == "__main__":    main()
目的:用一个小型因果VAE在合成的非线性数据上学习独立潜变量,并用 HSIC 统计量比较原始观测与学到的表示之间的独立性差异。
  1. z1 = torch.distributions.Exponential(rate=1.0).sample((n, 1))模拟真实世界中独立的“底片因素”。
  2. x1 = z1 + 0.3 * z2 + 0.2 * z1 * z2通过非线性混合生成观测数据,让两个变量纠缠在一起。
  3. mu, logvar = enc(x)编码器把观测照片映射成潜变量的分布参数。
  4. kl = 0.5 * (logvar.exp() + mu ** 2 - 1 - logvar).sum(dim=1).mean()用 KL 散度让潜变量接近独立标准正态先验。
  5. independence_hsic(...)用 Hilbert-Schmidt 独立性准则衡量两个变量之间的独立性,数值越小越独立。

常见误区

误区我用VAE让隐变量接近独立,PCA也能去相关,那我不就学会因果表示了吗?

正解因果表示还要求分量对应真实干预下不变的世界因素。独立性只说明统计上互不提供信息,但一个可逆的非线性变换可能破坏因果解释。比喻:把相册按颜色分类不代表你知道底片;只有换掉人物层、背景层仍稳定时,才算学到因果。

为何常见:因为“独立”很容易从数值上判断,而“因果”需要干预或结构假设,两者难度相差很大,初学者容易混为一谈。

误区只要用一个VAE找到低维潜变量,我就认为这是因果变量。

正解在只有观测数据的条件下,隐藏变量可能有无穷多种等价表示;没有干预或辅助变量时,因果变量未必可辨识。同一张照片既可能是“红衣服+白天”产生的,也可能是“粉衣服+黄昏”产生的,仅看像素无法区分。

为何常见:人脑倾向于用最简单的解释来概括数据,容易把“能解释数据”当作“真正机制”。

误区我用 FastICA 对图像特征做分解,得到独立成分后就可以直接下因果结论。

正解线性 ICA 假设观测是潜变量的线性混合,而真实照片、文本、视频通常是复杂的非线性合成。需要非线性 ICA 再加上辅助变量或干预条件,才能得到可辨识的因果表示。

为何常见:因为线性 ICA 实现简单、库函数丰富,很多人习惯把“独立成分”直接等同于“因果因素”。

误区我把模型换成因果VAE,准确率就应该立刻提升。

正解因果表示的主要收益是稳健性、可解释性和反事实能力,而不是在同一个独立同分布测试集上的精度。在某些分布内任务上,普通黑盒模型甚至可能更高,但在分布外和干预场景中,因果模型更有优势。

为何常见:企业常常把机器学习等同于“刷分数”,忽略了反事实和决策场景才是更重要的价值。

误区拿到 Z 之后,把某个分量改成新值,输出结果就是反事实。

正解反事实还需要结构方程 f_Y 和噪声 u_Y。表示只是变量层面的结果,不包含完整的机制。比喻:把照片里的人换成另一个人,还需要知道姿势、光线如何影响最终成片。

为何常见:很多框架封装了“干预”接口,让人误以为改输入就是反事实,却忽略了背后的结构方程。

面试题

Q1. 因果表示学习最核心的目标是什么?

单选题 · easy

  • A.让每个隐藏分量尽量独立
  • B.恢复生成观测的因果变量← 正确答案
  • C.把高维数据降到两维
  • D.找到准确率最高的特征

答案:B。独立、降维、高准确率都只是统计工具或附带好处,核心目标是恢复能生成观测数据的因果变量。就像整理相册的核心是找到底片因素,而不是把照片压成两维。

Q2. 在“整理家庭相册”的比喻中,“底片因素”对应什么?

单选题 · easy

  • A.已拍摄好的照片数据
  • B.照片上的标签注释
  • C.生成照片的因果底片← 正确答案
  • D.相机自带的随机噪声

答案:C。照片是观测数据,标签只是人工注释,噪声是干扰项。真正决定照片内容的是那些独立的因果底片,也就是因果潜变量 Z。

Q3. 独立因果机制假设的核心是什么?

单选题 · easy

  • A.变量之间完全相互独立
  • B.机制可独立干预不互相影响← 正确答案
  • C.所有变量服从正态分布
  • D.因果图是完全有向图

答案:B。独立因果机制不是变量独立,而是生成机制模块化:改变一个机制时,其他机制保持不变。就像抽走相册里的“人物层”,不会破坏“背景层”。

Q4. 只靠观测数据学习因果表示,最主要的困难是什么?

单选题 · mid

  • A.样本数量总是不够大
  • B.因果变量存在不可辨识性← 正确答案
  • C.深层网络训练速度太慢
  • D.分类器准确率不够高

答案:B。即使样本无限多,不同的因果变量组合也可能产生相同的观测分布,这就是不可辨识性。它解释了为什么仅靠观测数据很难唯一确定因果关系。

Q5. 在非线性因果表示学习中,为了获得可辨识性,通常需要什么条件?

单选题 · hard

  • A.增加更多隐藏网络层数
  • B.使用辅助变量或干预信息← 正确答案
  • C.先把所有变量标准化
  • D.把训练批次调得足够大

答案:B。深层网络、标准化和批次大小都是训练技巧,不能解决本质的不可辨识问题。辅助变量和干预提供了额外的“外部变化”,让底片因素能够被分离开来。

Q6. 因果VAE和普通VAE的主要区别是什么?

单选题 · mid

  • A.编码器必须用卷积网络
  • B.显式施加因果独立结构约束← 正确答案
  • C.解码器必须输出图像
  • D.损失只使用重建误差

答案:B。普通VAE只要求重建和先验拟合,因果VAE则会对潜变量加入独立性或因果结构约束,让每个分量对应可干预的底片因素。

Q7. 下列哪些做法有助于学到因果表示?

多选题 · mid

  • A.重构观测并约束潜变量独立← 正确答案
  • B.利用干预数据做一致性训练← 正确答案
  • C.只保留与标签相关的特征
  • D.在多个环境间学习不变表示← 正确答案

答案:ABD。独立约束、干预一致性、环境不变性都是因果表示学习的常见线索。只保留与标签相关的特征可能丢掉因果结构,属于监督特征选择而非因果表示学习。

Q8. 评估因果表示质量时,常用的手段包括哪些?

多选题 · mid

  • A.检验恢复变量的干预一致性← 正确答案
  • B.观察分布外泛化表现← 正确答案
  • C.比较编码器的参数量大小
  • D.与人工标注的因果变量对齐← 正确答案

答案:ABD。干预一致性、分布外表现和变量对齐都能反映表示是否学到了真实机制。参数量大小只说明模型容量,和因果正确性没有关系。

Q9. 因果表示学习可用于哪些实际任务?

多选题 · hard

  • A.数据可信层的根因分析← 正确答案
  • B.反事实解释与画像模拟← 正确答案
  • C.单纯提升训练集准确率
  • D.跨环境迁移与决策支持← 正确答案

答案:ABD。根因分析、反事实模拟和跨环境迁移都依赖因果知识。单纯提升训练集准确率是普通监督学习的目标,并不是因果表示的核心场景。

Q10. 在仅观测数据、无辅助变量也无干预时,非线性 ICA 学到的潜变量通常只能保证什么程度?

单选题 · extreme

  • A.能唯一确定每个真实因果变量
  • B.只能保证在可逆非线性变换下等价← 正确答案
  • C.只要网络够深就能分辨变量
  • D.必须加入标签才能开始训练

答案:B。非线性 ICA 在无辅助变量时存在大量等价模型,观测分布只能把潜变量确定到任意可逆非线性变换。这正说明了干预和辅助变量对因果辨识的重要性。