深夜的案发现场,侦探老陈站在破碎的窗前。他先仔细观察了地上的脚印、桌上的咖啡渍和窗户的破损方式——这是观察。接着,他做了一次实验:把同款玻璃杯从同样高度推落,看它如何碎裂——这是干预。最后,他点燃烟斗,喃喃自语:“如果当时窗帘是拉上的,碎玻璃就不会溅到走廊尽头……那样的话,凶手就不可能从后门逃走。”——这是反事实。 这就是人类因果推理的三种层层递进的思考方式。观察回答“发生了什么”,干预回答“如果我改变它呢”,反事实则回答“如果当初不一样呢”。三者的递进关系,构成了从被动感知到主动实验、再到想象重构的完整认知阶梯。对于当今的 AI 从业者来说,理解这个阶梯,是揭开“AI 为何会犯错”“AI 能否真正理解因果关系”这些关键问题的第一把钥匙。
理解观察-干预-反事实的递进关系,是构建可信 AI 系统的核心能力——它能让你从“AI 看到了什么”的困惑中走出来,走向“AI 能否真正理解世界”的本质追问。
可视化演示
展示二维卷积运算的执行过程,卷积核在输入特征图上滑动计算,逐步生成输出特征图。
本节配有交互动效(进入视口后自动加载,约 3KB)。
二维卷积滑动计算过程 紫色高亮区域为当前卷积核位置 粉色为卷积核权重,正值亮负值暗 y[i,j] = Σ(x[i+k,j+l]·w[k,l]) 点击下一步观察卷积核的滑动过程
侦探的三重推理
老陈侦探接到一桩珠宝失窃案。他首先蹲在现场,仔细记录一切:门锁完好、窗户微开、地毯上有几粒细沙。他看了监控录像,注意到快递员在案发时间出现在走廊——这是观察层,他在被动地收集信息,不改变任何东西。
但光看是不够的。老陈决定做个实验:他模拟从窗户翻入的路径,发现肩宽会被窗框卡住。这个实验排除了一个假设——这是干预层,他主动改变了环境来验证猜想。
最后的关键一步,老陈在脑中构建了一个“如果当初”:如果快递员当时没有按门铃而是直接敲门,住户就不会去开门,也就不会离开客厅,那窃贼就无法从窗户进入——这是反事实层,他在想象一个不存在的过去,用来理解当下的因果链条。
技术上讲,这三层正好对应因果推理的三个层次。观察层只能看到数据中的相关性,干预层能验证因果效应,反事实层则能回答“假如历史不同”的问题。简单说,观察回答“是什么”(what is),干预回答“如果我做会怎样”(what if I do),反事实回答“如果当初不同会怎样”(what if it had been different)。这三个层次构成了一架“因果之梯”,每一层都建立在前一层之上,能力逐级跃升。
1. 观察层 P(Y|X):在给定条件 X 下,Y 发生的概率是多少。
2. 干预层 P(Y|do(X)):如果人为设定 X 的值,Y 会如何分布。
3. 反事实层 P(Y|do(X),Z):在已知现实 Z 的情况下,若 X 被改变,Y 的结果会如何。
老陈合上笔记本,拍了拍手上的灰。这三种推理看似简单,却是整部因果推断的核心骨架。接下来的章节,我们将逐一深入每一层,看看 AI 是如何一步步爬上这架“因果之梯”的。
观察:数据的眼睛
观察就像侦探刚到案发现场的第一眼。他拿起放大镜,逐寸扫过地板上的痕迹,不移动任何物品,不打断任何过程。老陈收集到了很多信息:地毯上的细沙来自附近的建筑工地,咖啡杯边缘有半枚指纹,窗户的锁扣有新鲜的刮痕。
在 AI 的世界里,观察层对应的就是最经典的机器学习范式。模型拿到一堆数据,通过统计规律找到特征之间的关系。比如,模型看到“细沙”和“建筑工地”经常一起出现,于是学会了一个规则:当输入图像中包含细沙时,输出“来自工地”的可能性更高。这一层学习的就是条件概率分布 P(Y|X),其中 X 是观察到的特征,Y 是我们想预测的标签。
但观察有一个致命的局限:它只能看到相关,无法分辨因果。老陈注意到走廊的灯坏了,而失窃那晚的邻居们都说“那天灯忽明忽暗”。但如果他据此推断“灯坏导致失窃”,就犯了把相关当因果的错误。也许是因为暴风雨导致电路故障,同时暴风雨的嘈杂声掩盖了窃贼的声音——灯坏和失窃是同一个原因的结果,而非因果关系。
这就是观察层给 AI 设下的陷阱。一个基于观察数据训练的 AI 可能学会“冰淇淋销量和溺水人数正相关”这样的规则,但它不可能知道背后的真正因果链条——因为这两者都是“夏天”这个共同原因导致的结果。老陈很清楚:光靠看,可以发现问题,但不足以证明因果。
- 条件概率 P(X,Y)联合概率中,X 和 Y 同时发生的可能性有多大。
- 除以 P(X)将“X 和 Y 同时发生”的概率,在“X 发生”的所有情况中重新归一化,得到给定 X 时 Y 的条件分布。
干预:实验的双手
老陈决定不再只是看了。他戴上手套,重新拉起窗帘,把咖啡杯挪到架子上,模拟各种可能的情景。每一次动手,他都在干预环境,改变某些条件,看结果如何变化。
干预层的核心区别就在这里:观察是“看着世界自然运转”,干预是“推一把,看世界如何响应”。老陈把窗户的锁扣倒过来装,试了三次,发现这样从外面根本撬不开——这证明了锁扣刮痕来自内部破坏,而非外部工具。
在因果推理中,干预用一个特殊的符号表示:do 算子。P(Y|do(X)) 的意思是“我把 X 设为某个值,然后看 Y 怎么变”。这看似只是一个小小的符号差异,却蕴含了深刻的思想转变。比如:
为什么需要 do 算子?因为在纯观察数据里,X 和 Y 的关系会被混杂变量污染。回到侦探的案子:老陈观察到“快递员按门铃”和“住户没开门”经常同时发生。但这能说明按门铃导致没开门吗?不一定——也许住户本来就不在家。老陈通过“干预”验证:他在现场重新播放门铃录音,发现哪怕住户在家,听到不是快递员的声音也可能不开门。这个小小的实验,切断了“快递员身份”这个混杂变量,还原了“门铃声音”对“开门行为”的真实因果效应。
干预层的突破在于,它让 AI 从“被动相关性分析”走向“主动因果探究”。这就好比老陈从“看录像”升级为“实地做实验”。A/B 测试、随机对照试验、强化学习中的行动-反馈交互,本质都是干预思想的体现。但老陈也意识到,干预仍然有边界——他不能真的让时间倒流,重演一遍失窃之夜。
- do(X) 操作将 X 从“被观察”的状态变为“被设定”的状态,切断其他变量对 X 的因果影响。
- 对 Z 求和Z 是所有会影响 Y 的其他因素(混杂变量),通过对 Z 的加权求和,清除 X 与 Z 的关联,只保留 X 对 Y 的直接因果路径。
反事实:想象的翅膀
老陈放下工具,坐回椅子上,点燃烟斗。他在脑海中做了一个过去不可能完成的实验:假如当晚门锁没有那个瑕疵,窃贼还会得手吗?假如快递员晚来了五分钟,住户会不会正好看见窃贼?这些问题永远无法通过实际的干预来验证——时间无法倒流,过去无法重演。但老陈依然能回答,因为他拥有反事实推理能力。
反事实推理是因果之梯的最高层,它回答的问题是:“如果当初 X 不同,Y 会怎样?”注意,这里的 X 并没有真的被改变,而是在想象中被改变。这需要 AI 拥有一个世界模型——它不仅知道现实世界中“发生了什么”,还能在模型中模拟“如果发生了另一种情况”。
这一层对 AI 来说是巨大的飞跃。观察层和干预层都能从数据中学到,而反事实需要模型具备“生成假想”的能力。这正是“反事实生成”这个名字的由来——AI 不只是预测或分类,而是要生成一个想象中的替代世界,并在这个世界里回答“如果”问题。
老陈的推理给了我们最好的示范:他利用现实中的所有已知细节,在脑中重建了案发过程,然后篡改一个变量(门锁瑕疵、快递员时间、窗帘位置),推演出不同的结局。这种能力让人类能够从错误中学习——“如果我当时没有那样做,结果会不会不同?”——这种反思是 AI 迈向真正智能的关键一步。
- Y_{X=x} 下标表示“在 X=x 的世界里,Y 的取值”。这是一种虚拟世界的变量。
- 条件 Z=zZ 是现实中的已知信息(如“门锁当时有瑕疵”),反事实推理必须在这个基础上进行,而不是凭空想象。
- do(X=x) 与 Z=z 结合在保持一切已知现实不变的前提下,仅篡改 X 的值,观察 Y 如何变化。
三者的递进阶梯
老陈把三种推理画在同一张图上。底层是观察:他看到细沙、锁痕、咖啡渍;中层是干预:他推开窗、移走杯子、重播门铃;顶层是反事实:他在脑中改变时间线,重新演绎案件。三者的关系一目了然——一只脚站在干预的肩膀上,后者又站在观察的肩膀上,每一层都扩展了答案的疆域。
从技术维度看,这个阶梯有两个递进方向。第一是能力层级的递进:观察层只需统计共现频率,干预层需要操作环境并观察响应,反事实层需要构建完整的世界模型并模拟“平行宇宙”。第二是问题范围的扩展:观察只能回答“当前数据中有什么模式”,干预能回答“在可控条件下会有什么结果”,反事实则能回答“在任何假想条件下会有什么结果”。
这三个层次之间也存在着紧密的依存关系。拿老陈的案子来说:他的反事实推理(“如果窗帘拉着……”)必须依赖他在观察层收集的信息(窗帘正常状态是拉开的)和在干预层建立的模型(拉开窗帘会让碎玻璃飞向走廊)。没有前两层的支撑,反事实就是纯粹的幻想;有了前两层的支撑,反事实才成为有效的因果推理。
这种递进也映射在 AI 的实际能力对比中:一个垃圾邮件过滤器只需要观察层(看到特定词就归为垃圾);一个推荐系统可能需要干预层(通过 A/B 测试验证哪个推荐策略更有吸引力);而一个自动驾驶系统在遇到突发状况时,需要进行反事实推理——“如果我刚才踩了刹车而不是转向,现在会发生什么?”——这决定了它能否从错误中学习。
老陈合上笔记本,窗外的晨光已经透进来。他明白,能登上这架梯子的顶端,不是因为运气,而是因为他愿意“看”、“做”、“想”三者并用。AI 的成长,也需要沿着这条阶梯拾级而上。
因果之梯的应用
老陈的推理术不仅在刑侦中有效,对今天的 AI 从业者来说,这架因果之梯正在成为构建可信 AI 系统的核心方法论。不妨看三个真实的应用场景,感受从观察到反事实的跃迁如何改变 AI 的能力边界。
在营销领域,一家电商平台想搞清楚“优惠券是否真的拉动了购买”。纯观察数据会显示“领券用户购买力更强”,但这可能是他们本来就爱买。通过干预(随机发放优惠券给不同人群)能验证因果效应。更进一步的反事实分析则能回答:“如果给这个特定用户不发券,他还会买吗?”——这让平台精准识别出“不发券也会买”的用户,避免浪费营销预算。
在医疗领域,AI 辅助诊断系统不再满足于“看到影像就给出病灶概率”。通过反事实生成,系统可以回答:“如果这个病人年轻时没有吸烟习惯,他现在还会得这个病吗?”这类问题需要系统理解“吸烟→肺部损伤→疾病”的完整因果链条,并在想象中删除“吸烟”环节,重新推演一遍健康轨迹。这让医生能更好地向病人解释病因,并制定个性化的干预方案。
在强化学习领域,智能体在真实环境中犯错后,反事实经验回放(Counterfactual Experience Replay)能让它从“如果当时选了另一个动作会怎样”的角度反思策略。这就像老陈复盘案件:即使现实无法重来,AI 也能在虚拟世界中“重演”无数次,从中提取更稳健的行动策略。这种能力对训练低成本的智能体至关重要——毕竟,在现实世界中犯错,往往代价高昂。
老陈终于站在这架“因果之梯”的顶端,俯瞰整个推理的世界。他想起师傅说过的话:“会看的人只能描述世界,会做的人能够改变世界,会想的人才能理解世界。”观察、干预、反事实,不仅是侦探破案的三重境界,更是 AI 从数据到理解、从预测到解释、从反应到反思的必经之路。爬上了这架梯子,AI 才真正拥有了“理解”的可能。
AI 应用场景
智能营销归因分析
阶段:因果推断与策略优化
解决的问题:传统营销分析只能通过观察数据找出“看了广告的人更容易下单”这类相关性结论,却无法判断广告是否真的促成了下单。通过干预层的 do 算子,AI 能设计 A/B 测试剥离混杂因素;通过反事实层,AI 能对每个用户回答“如果没看到广告,他还会下单吗”——这决定了广告预算是否值得投入。
具体案例:某电商平台希望评估“618 大促推送”的真实效果。AI 先通过观察数据建立购买预测模型,再结合干预数据(随机抽样用户不推送)校正模型,最后用反事实生成回答:“如果用户没收到推送,这个订单还会发生吗?”模型将那些“不推送也会买”的用户标记为“自然购买”,营销团队据此节省了约 30% 的推送预算。
医学影像反事实问答
阶段:医学影像分析与可解释诊断
解决的问题:传统影像 AI 只能输出“病灶存在”的预测,无法向医生解释“为什么这个影像会得出这个结论”。反事实层让 AI 生成“如果把某个区域的特征去掉,诊断结果会怎么变”的对比影像,为医生提供直观的因果解释。
具体案例:肺结节诊断系统中,AI 在判断一个结节为恶性后,额外生成一张“如果这个结节边界更光滑、密度更低”的反事实影像,并显示该影像下模型将判断为良性。通过这种“改变什么特征会导致诊断翻转”的演示,医生能确认模型依赖的关键视觉特征,并在病历中写出可解释的诊断依据。
强化学习反事实经验回放
阶段:强化学习与智能决策
解决的问题:机器人或游戏 AI 在真实交互中犯错后,传统只从“实际发生的轨迹”中学习,浪费了宝贵的失败教训。反事实经验回放让 AI 回答“如果当时选择了另一个动作,结果会不会更好”,从而从虚拟的替代轨迹中学习,大幅提升样本效率。
具体案例:仓储机器人学习分拣任务时,一次货物掉落被记录为失败。反事实模块在模型中模拟“如果当时抓取角度倾斜 5 度,货物是否会成功放入”——若模拟结果为“会成功”,则将这条反事实经验加入回放缓冲区,引导策略向更好的角度调整。训练速度提升了约 40%。
Python 演示
# -*- coding: utf-8 -*-"""观察-干预-反事实的因果推理演示。 通过一个简单的线性因果模型,展示三种推理层如何回答不同问题。模型设定:X(运动量)→ Y(健康指数),Z(年龄)→ X 和 Y。"""import numpy as np class CausalModel: """一个从观察跃迁到反事实的迷你因果模型。""" def __init__(self, use_do=False): self.coef_x = 0.8 # 运动量对健康的影响系数 self.coef_z = 0.4 # 年龄对健康的直接影响系数 self.age_map = {30: 0, 50: 1, 70: 2} self.use_do = use_do # 是否启用干预模式 def generate_data(self, age, n=2000, seed=42): """生成年龄、运动量、健康指数的数据。""" rng = np.random.RandomState(seed) x_values = [] y_values = [] for _ in range(n): if self.use_do: # 干预模式:运动量被强制设定,忽略年龄的影响 x = rng.normal(5, 1) else: # 观察模式:年龄通过影响运动量来影响健康 base = 5 + (self.age_map[age] - 1) * 2 x = rng.normal(base, 1.5) x = np.clip(x, 0, 10) y = 40 + self.coef_x * x + self.coef_z * self.age_map[age] + rng.normal(0, 2) x_values.append(x) y_values.append(y) return np.array(x_values), np.array(y_values) def observe(self, age): """观察:只统计数据中的条件概率 P(Y|X)。""" xs, ys = self.generate_data(age) corr = np.corrcoef(xs, ys)[0, 1] return corr def intervene(self, age): """干预:强制设定 X 的值,估算 P(Y|do(X))。""" self.use_do = True xs, ys = self.generate_data(age) slope = np.polyfit(xs, ys, 1)[0] self.use_do = False return slope def counterfactual(self, age, actual_x, actual_y, new_x): """反事实:若当初运动量改变,健康指数会怎样?""" # 用干预模式的斜率(因果效应)做修正 causal_slope = self.intervene(age) delta = new_x - actual_x return actual_y + causal_slope * delta def main(): model = CausalModel() print("=== 观察层:看数据中的相关性 ===") for age in [30, 50, 70]: corr = model.observe(age) print(f"年龄 {age} 岁:运动量与健康指数相关系数 = {corr:.3f}") print("\n=== 干预层:切断混杂,看真实因果 ===") slope = model.intervene(50) print(f"运动量每增加 1 单位,健康指数平均变化 {slope:.2f}") print("\n=== 反事实层:如果当初不同 ===") actual_x, actual_y = 3.2, 61.5 new_x = 6.0 cf_y = model.counterfactual(50, actual_x, actual_y, new_x) print(f"现实:运动量 {actual_x},健康指数 {actual_y}") print(f"反事实:若当时运动量是 {new_x},健康指数估计为 {cf_y:.1f}") if __name__ == "__main__": main()
self.coef_x = 0.8设定“运动量对健康的正向因果效应”为 0.8,这是干预层能找回的黄金标准值self.use_do = do开关切换“观察模式”和“干预模式”,观察模式中年龄会通过运动量造成混杂if self.use_do:干预模式强制执行x = rng.normal(5, 1),年龄不再影响运动量,切断了混杂路径corr = np.corrcoef(xs, ys)[0, 1]观察层只能计算相关系数,这个数字会被年龄混杂干扰slope = np.polyfit(xs, ys, 1)[0]干预层用线性回归拟合因果效应,更接近真实的 0.8delta = new_x - actual_x反事实从“现实中的差异量”出发,不做实际干预return actual_y + causal_slope * delta将因果效应外推到“假设过去不同”的平行世界
常见误区
误区“AI 从大量数据中发现了规律,比如看到用户点击了广告就购买了商品,这不就说明广告有效吗?数据是不会骗人的,相关性就是因果性。”
正解相关性和因果性之间有无法忽略的鸿沟。在老陈的故事里,“灯坏”和“失窃”同时出现,但灯坏并不导致失窃,两者都是暴风雨的结果。观察层看到的只是共现概率 P(Y|X),而因果效应需要干预层或反事实层的证据。用数据证明因果,就像只靠“公鸡打鸣后太阳升起”就断定公鸡叫唤导致天亮——数据完全正确,因果完全错误。
为何常见:因为我们在日常生活中常常基于“看见的规律”做判断,而观察数据也确实在大多数情况下“够用”,导致我们低估了混杂变量的存在。
误区“P(Y|do(X)) 不就是 P(Y|X) 吗?我把 X 固定下来,然后统计 Y 的变化,都是算条件概率,有什么本质区别?”
正解P(Y|X) 是“看到 X 的人,Y 的分布”——他看到 X,不代表 X 被改变。而 P(Y|do(X)) 是“被强制推了一把 X 的人,Y 的分布”。比如老陈观察“快递员按门铃时住户不开门”,这可能是住户本来就不在家;但老陈“强迫快递员按门铃”后,住户的反应才是真实因果效应。公式上的区别不止符号,而是切断了 X 与混杂变量的关联路径。
为何常见:因为数据和公式的输入输出形式相似,初学者容易只从统计数值上看待两者,忽略了“数据生成机制”的根本不同。
误区“反事实问题既然没有真实数据,那 AI 回答'如果当初怎样'不就纯属想象吗?感觉和随便编个故事没什么区别。”
正解反事实虽然是在脑中模拟“平行世界”,但它必须严格建立在观察层和干预层建立的因果模型之上。老陈的“如果窗帘拉着”推演,依赖他对窗帘物理效果的观察和实验验证,而不是空想。反事实推理的公式包含现实条件 Z=z,意味着模拟必须与已知的现实严格一致,只篡改一个变量。有约束的“想象”是推理,无约束的“想象”才是猜测。
为何常见:因为反事实的结果无法用真实数据直接验证,容易让人误以为它是自由编造,而忽略了其背后的因果模型约束。
误区“AI 能做好观察层就够了,比如图像识别只要看到图片就能分类,预测准确率高了就行,为什么不直接跳到最高层的反事实?”
正解三个层次是递进关系而非并列选项。反事实层依赖干预层的因果效应估计,干预层依赖观察层的变量关系和分布假设。就像老陈无法跳过现场观察直接推理“如果窗帘拉着会怎样”——没有基础信息,反事实就是空中楼阁。只关注某一层,要么学到的只是表面相关性,要么推断缺乏数据支撑,要么模型无法与现实对齐。可信 AI 必须整架梯子一起攀爬。
为何常见:因为实际应用中我们常为单一任务选择单一工具,而忽略了因果推理是一个需要全栈能力的完整认知体系。
误区“要验证'如果没抽烟就不会得肺癌'这种反事实问题,是不是得真的让时间倒流,让同一个人再活一遍?做不到的话,这个问题就无解。”
正解反事实推理不需要真实的时间旅行,只需在因果模型中“虚拟地”篡改变量。就像老陈复盘案件不需要真的穿越回昨晚,他只需在脑海中重建模型、调整“门锁瑕疵”这个变量,推演结果。在数学上,反事实公式 P(Y_{X=x}|Z=z) 计算的正是“在保持已知现实的前提下,替代世界的分布”。只要因果模型足够准确,反事实推断就有严谨的概率基础。
为何常见:因为我们习惯了“验证必须通过实验重复”的科学思维,忽略了计算科学中“通过在模型中模拟而非在现实中操作”来验证假设的方法。
面试题
Q1. 观察层的因果推理能力相当于侦探的哪个行为?
- A.记录现场所有脚印和指纹← 正确答案
- B.推开窗户模拟翻入路径
- C.想象凶手从后门逃跑的场景
- D.审问嫌疑人得到口供
答案:A。观察层是“被动记录不干预”,对应老陈记录脚印指纹的行为。B 是干预层,C 是反事实层,D 是外部信息获取,不涉及数据中的因果推断。
Q2. P(Y|do(X)) 与 P(Y|X) 的核心区别是什么?
- A.前者需要更多数据才能计算
- B.前者切断了混杂变量对 X 的影响← 正确答案
- C.前者只适用于非线性系统
- D.后者不需要条件概率公式
答案:B。do 算子的本质是强制设定 X 的值,切断 Z→X 的混杂路径,让 X 的变化只来自外力干预。后者的 X 可能被混杂变量共同驱动,所以观察到的关联可能掺假。
Q3. 下列哪些问题属于反事实推理的范畴?
- A.如果当初没有发布这个功能,用户留存率会是多少← 正确答案
- B.点击量最高的广告位是哪一个
- C.上市新药比安慰剂平均多降低多少血压
- D.如果这个病人当年不吸烟,现在是否还会得肺癌← 正确答案
答案:AD。A 和 D 都是“已知现实之外,篡改一个条件推演另一种结果”的反事实问题。B 是观察层的相关性统计,C 是干预层的随机对照实验结论。
Q4. 因果之梯三个层次的能力正确排序是?
- A.干预 > 观察 > 反事实
- B.反事实 > 干预 > 观察← 正确答案
- C.观察 > 反事实 > 干预
- D.三者能力完全相同
答案:B。反事实能处理“假设历史不同”的问题,干预只能处理“现在做实验”的问题,观察只能处理“数据中有什么规律”。能力的疆域从窄到宽,正对应从观察到反事实的递进。
Q5. 为什么观察数据中“冰淇淋销量与溺水人数正相关”不是因果?
- A.因为数据量不够大
- B.因为两者都受“夏天”这个混杂变量驱动← 正确答案
- C.因为冰淇淋和溺水是负相关
- D.因为相关关系不需要时间顺序
答案:B。观察层无法区分相关与因果。冰淇淋销量和溺水人数作为结果,共同由“夏天”这个原因驱动。仅在 P(Y|X) 层面,它们呈现共变;但做干预“禁止卖冰淇淋”并不能降低溺水率,因为真正的原因“夏天的高温”没有改变。
Q6. 反事实推理在强化学习中的应用方式是?
- A.让智能体在虚拟世界重演“如果选另一个动作”的结果← 正确答案
- B.用观察到的状态直接输出最优动作
- C.从反事实经验中学习更稳健的策略← 正确答案
- D.不需要因果模型即可进行
答案:AC。反事实经验回放基于因果模型在想象中模拟替代动作,并从这些替代轨迹中学习(A、C)。B 是普通的策略学习;D 错误,反事实必须依赖因果模型,否则就是无约束猜测。
Q7. do 算子对应侦探的哪个动作?
- A.查看监控录像中的记录
- B.动手拉开窗帘重演案发路径← 正确答案
- C.在脑中改变时间线推演结果
- D.用放大镜观察地板上的细沙
答案:B。do 算子表示“主动改变世界,观察响应”,对应老陈动手做实验的动作。A 和 D 都是观察(被动记录),C 是反事实(想象重演)。
Q8. 反事实公式 P(Y_{X=x}|Z=z) 中的 Z=z 表示什么?
- A.干预后要重新采样的变量
- B.必须保持不变的已知现实条件← 正确答案
- C.任意给定的自由参数
- D.需要被消除的混杂因子
答案:B。Z=z 将反事实推演锚定在现实已知信息上,确保只篡改 X 这一个变量。这与自由假设不同:有约束的模型推演才有因果意义。
Q9. 能体现观察-干预-反事实三层递进的应用场景是?
- A.电商先看购买数据,再做 A/B 测试,最后问“不发券用户还会买吗”← 正确答案
- B.医学 AI 先看影像特征,再对照手术效果,最后生成“不吸烟会更健康”的解释← 正确答案
- C.图像识别模型仅根据像素分类猫狗
- D.推荐系统仅统计点击率高的内容
答案:AB。A 和 B 都完整走过了观察(看数据)、干预(做实验)、反事实(问“如果当初”)三级推理。C 和 D 停留在观察层,只有相关分析,没有进入因果阶梯的中上层。
Q10. 蜘蛛结网捉虫,网破则后补之,是什么推理?
- A.观察推理
- B.干预推理
- C.反事实推理← 正确答案
- D.直觉推理
答案:C。蜘蛛补网在英文中常被引作反事实推理的证据——若网不破,则无需补偿,这一推理过程蕴含了“若非网破,虫已入口”的因果假设,属于反事实层次的思考。观察推理只记录“网破了”,干预推理是“主动补网”,而反事实推理则是“想象如果网没破会怎样”——正是这个隐式想象驱动了补网行为。