小明申请“未来之星特训班”,等来的却是一封冷冰冰的“未录取”。他不服气,跑去问招生老师:“我到底差在哪?”老师没有展开评分细则,只在评语栏写下一行字:“你的综合能力离门槛只差一点,如果把数学从 3.2 提到 4.2,你就会被录取。”这张改变命运的“翻盘小纸条”,就是今天的主角——反事实解释(Counterfactual Explanation)。它不剖析模型的黑盒内脏,而是直接回答人类最关心的一个问题:“我怎么做,结果才会不一样?”这篇文章将跟随小明的翻盘之旅,拆解 Wachter 框架、DiCE 和 CERTIFAI 三种生成方法,理解“最小改动、预测翻转、方案可行”三条底线,并学会评估一套反事实建议的优劣。
一句话价值:掌握反事实解释生成方法,你就能把“模型拒绝”翻译成“用户下一步行动”,这正是风控、招聘、医疗等可信 AI 落地场景中最抢手的能力。
可视化演示
展示反事实解释在特征空间中寻找最小变更翻转模型预测的过程,对比Wachter优化、DiCE多样性和CERTIFAI遗传算法三种生成策略及质量评估维度。
本节配有交互动效(进入视口后自动加载,约 3KB)。
决策边界与反事实搜索 原始点x位于拒绝域,需穿越决策边界到达批准域 反事实x\'是最小距离的可行变更点 min d(x,x\') s.t. f(x\')!=f(x) 搜索轨迹展示优化路径
概念与价值
小明把那张“翻盘小纸条”举到灯光下反复看:“数学 3.2 提到 4.2,就会录取。”他忽然意识到,招生老师没有解释评分模型有多复杂,也没有罗列他哪里不行,而是直接给出了一条改变结果的最小路径。这种“如果当初……结果就会不同”的思维方式,正是反事实解释的日常原型——它是所有解释方法里最贴近人类直觉的一种。
在机器学习中,“招生老师”就是一个训练好的模型 f,小明的成绩单是特征向量 x。反事实解释的任务是:找到一个新的样本 x_cf,使得 f(x_cf) 与 f(x) 的结论相反。它与 LIME 这类“局部近似解释”有本质区别:LIME 告诉你“模型看重哪些特征”(一份验尸报告),反事实则告诉你“怎么改才能翻盘”(一张康复处方)。后者天然具备行动导向,因此特别适合面向普通用户的解释场景。
一个合格的反事实样本要满足三个条件。第一,预测翻转:结论必须从“未录取”变成“录取”;第二,改动最小:不能建议“重新高考”,而要给出最省力的调整;第三,方案可行:不可修改的维度坚决不动。其中“翻转”是最根本的硬性契约,用公式表达就是模型对两个样本给出相反结论。
1. 样本 x:小明的原始成绩单,包含“数学 3.2、英语 2.8、综合 2.5”三项特征。
2. 模型 f:把成绩单映射到“录取概率”的评分模型,相当于招生办的决策主任。
3. 反事实样本:在 x 基础上调整出的新成绩单,例如“数学 4.2、英语 2.8、综合 2.5”。
4. 翻转断言:模型对两个样本给出相反结论,从“未录取”翻为“录取”。
所以,“翻盘小纸条”不是一句安慰话,它背后有硬性契约:预测必须翻转。招生老师如果说“你综合能力再练练”,却没说明练到什么程度能录取,那就不算合格的反事实。小明的心里,第一次对“被拒绝”这件事有了具体的坐标。
优化目标
小明冷静下来后又问:“数学提到 4.2,那英语能不能少提点?综合呢?”他真正想知道的是:在所有能翻盘的改法里,哪一套改动最小、最省力气。这正是反事实生成要解决的核心优化问题——在“能翻盘”的约束下找到改动幅度最小的方案。
形式化地说,改动方案用向量 δ 表示,比如“数学 +1.0、英语 +0、综合 +0”。我们需要一把尺子 d 来度量改动幅度:欧氏距离衡量加权总分差距,L1 距离累加每科提升值,两者都常用。“最小改动”原则有充分的现实理由:用户执行成本低——补一科远比补五科容易;可信度高——改动越小说明离决策边界越近,“差一点就成功”的建议最打动人心;副作用少——大改多个特征会把样本推向训练数据之外的陌生区域,解释容易失真。
于是,反事实生成被写成一个带约束的优化问题:在预测翻转的约束下,最小化改动距离。数学上的写法如下。
1. 改动向量:一份“补考计划”,如“数学 +1.0、英语 +0、综合 +0”,它是新旧成绩单的差值。
2. 距离度量:衡量改动幅度的尺子,常用欧氏距离(加权总分差距)或 L1 距离(各科提升值之和)。
3. 翻转约束:改动后的成绩单必须让模型改判为“录取”,这是硬条件。
4. 最小化:在满足约束的所有 δ 中,挑出距离最小的那一个,记为 δ*。
小明要做的不是围着操场跑一整圈,而是朝最近的门走两步。后续所有生成方法,本质上都是这个“找最近门”问题的不同解法——有的靠梯度导航,有的靠多点开花,有的靠种群进化。
Wachter框架
2017 年,Wachter 团队提出了第一个通用的反事实生成框架,相当于招生办请来一位“人工导航员”。他让小明站在当前成绩单的位置,然后一步步试探:“往数学方向挪一点点,预测值上浮了;再挪一点……”导航员不断循着“离录取越来越近”的方向走,同时时刻提醒自己不要走太远。
这种“边看边挪”的走法在数学上叫梯度下降。导航员手里的地图是模型的梯度——它告诉我们在每个位置,往哪个方向改动能让预测值增长最快。但只追目标会失控(可能把数学改成 100 分),所以损失函数里必须同时加入“离起点距离”的惩罚项,两个目标用一个权重 λ 来平衡。
Wachter 的损失函数由两部分组成:第一项是“预测差距”,鼓励模型把当前候选的预测推向目标结论;第二项是“距离惩罚”,勒令改动不要太大。优化过程就是反复计算梯度、更新候选,直到预测翻转且距离收敛。λ 大则追求“必须翻盘”,λ 小则更看重“少动”。
1. 候选样本:导航员正在尝试的临时成绩单,每轮迭代都在变化。
2. 目标结论:用户想要的预测结果,录取场景中设定为“录取=1”。
3. 预测差距项:当前候选离“录取”还差多少,平方之后差距越大惩罚越重。
4. 权重与距离项:λ 控制“必须翻盘”的优先度,距离项约束“不要跑太远”。
导航员跑得很快,但有个软肋:必须能算梯度。如果招生办用的是不可导的黑盒模型,导航员就抓瞎了;而且他容易被局部地形迷惑——找到的“最近门”可能只是途中的一扇侧门,未必是真正的最近门。
DiCE方法
小明对导航员给的路线不太满意——数学一直是他最头疼的科目。他嘀咕:“英语我有把握提分,有没有别的走法?”这时 DiCE 登场了。DiCE 的定位是“路线规划师”:它不只给一条路,而是同时给出多条风格迥异的备选路线,让小明根据自己的实际情况挑选。
DiCE(Diverse Counterfactual Explanations)由 Mothilal 等人于 2020 年提出,核心思想是“多样性”。如果只追求最小改动,多次独立搜索的结果往往扎堆在同一个最优解附近;而用户真正需要的是多个不同选择。DiCE 在目标函数里增加了一个“成对差异”项,强制 k 个候选方案彼此拉开距离,同时保留两条旧纪律:每个方案都要翻盘、每个方案都要尽量接近原始样本。
整体目标函数是一个最小化问题:前半是“翻转加贴近”的个体要求,后半减去一个“两两距离的平均值”。注意多样性项前是负号——在最小化框架里,减去一个随分散程度变大的量,等价于奖励候选们各走各路。μ 控制分散的力度:μ 太大,方案会为了不同而离谱;μ 太小,方案又会扎堆。
1. 候选集合:同时生成 k 套成绩单,而不是一套,k 通常取 3 到 5。
2. 个体代价:每个候选都要“预测接近目标”且“离原始样本近”。
3. 成对差异:k 个候选两两之间的距离均值,衡量整个集合有多“散”。
4. 惩罚系数:用负号把“分散”变成奖励,μ 决定多样性有多重要。
对小明而言,DiCE 给出了真正的选择权:路线 A 改动最小,路线 B 避开弱科,路线 C 最稳但最累。研究也表明,当用户能从多套方案中挑选时,对 AI 建议的信任度会明显提升。
CERTIFAI算法
如果招生委员会拒绝透露评分模型的任何内部结构——一个真正的黑盒——导航员无法算梯度,怎么办?别急,还有一位“育种专家”——CERTIFAI。它的做法不是画地图找路,而是像培育良种小麦:先撒下一大片随机变异的小明们,看看哪些更接近录取,再让这些优秀个体繁殖(交叉、变异),一代代进化出既能翻盘又改动小的方案。
CERTIFAI 用遗传算法生成反事实,流程是:初始化一个“种群”(一堆候选成绩单)→ 用适应度函数打分 → 选择高分个体 → 交叉产生后代 → 随机变异 → 再评价……迭代多轮后,种群里的优秀个体就是候选反事实。整个过程只需要“把候选喂进模型、读出预测”,完全不依赖梯度,因此天然支持不可导、不可微的黑盒模型。
适应度函数是遗传算法的“指挥棒”:翻盘成功的个体,得分与改动距离成反比,改得越少分越高;翻盘失败的个体得负分,离目标越远惩罚越重。公式是一个分段函数。
1. 翻盘成功:如果候选能让预测翻盘,得分取“1 除以 1 加距离”,改动越少分越高。
2. 翻盘失败:如果候选仍落在“未录取”一侧,按预测差距给一个负数惩罚。
3. 惩罚系数:ρ 越大,越不允许出现“离目标十万八千里”的个体混入下一代。
4. 遗传迭代:用适应度选择父母,交叉变异产生下一代,迭代多轮直至收敛。
育种专家还有个额外优势:他可以在适应度函数里轻松加入各种“硬性规则”,比如“年龄不能越改越小”“分数必须介于 0 到 5 之间”,为可行性约束提供了天然落脚点。缺点是遗传算法是随机搜索,速度比梯度法慢,且每次运行结果可能略有不同。
可行约束
育种专家突然有个主意:“干脆让小明把年龄改成 25!”小明哭笑不得——年龄怎么改?这说明,光有“预测翻转 + 改动最小”还不够,反事实必须建立在“现实可行”的基础上。可行性约束是反事实解释从“数学玩具”走向“产品功能”的关键一关。
可行性约束通常分三类。第一类是“不可变特征”:性别、年龄、已发生的违约记录,在现实世界里无法回退。第二类是“取值范围”:每门成绩有上限,信用额度有区间,不能让数值飞出合理范围。第三类是“因果与成本约束”:有些特征之间存在因果依赖,比如“提高收入”不能靠“把职位改成 CEO”一句话实现,改变它往往比其他特征代价更高。
形式化地说,一个反事实 x' 可行,当且仅当:所有不可变特征 j∈I 保持原值 x_j,且所有特征落在各自合理区间 [a_j, b_j] 内。这些约束既能作为优化时的硬条件,也能作为生成后的“过滤器”,不管哪种方法,产出都要过这一关。
1. 不可变特征集:现实世界不允许改动的维度,如年龄、性别、历史违约记录。
2. 保持原值:所有不可变特征在反事实中必须原封不动,这是硬性条款。
3. 合理区间:每个特征必须在业务允许的范围内,如成绩在 0 到 5 之间。
4. 逻辑与:所有约束同时成立,整个方案才算可行。
招生办如果说“你请个顶级教练,把综合能力提到 4.0”,这是可行建议;如果说“你把年龄改成 15 岁重新参加一次考核”,那就是荒谬的反事实。好的反事实解释,边界感最重要。
评估指标
现在小明手里有一堆候选路线:导航员给了一条,路线规划师给了三条,育种专家撒了一大片。他犯难了:哪条建议质量最高?学术界和工业界逐渐形成了四个主流评估指标。
第一是“接近度”:改动距离越小越好,常用 1 除以“1 加距离”换算成“越大越好”的分数。第二是“稀疏度”:只改一个特征的方案比改五个特征的更容易执行,因此用“被改动特征个数的倒数”衡量。第三是“多样性”:一组方案之间差异越大,用户选择空间越足。第四是“可执行性”:结合可行性约束,衡量改动是否真能在现实里落地,比如“提升英语”显然比“降低年龄”更可执行。
最简单的综合评分是加权求和。例如信贷场景中可执行性权重最高;而在算法调试场景中,接近度和稀疏度更重要。注意多样性评估的是“一组”方案而非单个方案——这正是 DiCE 这类方法与单点搜索方法的本质差异。
1. 接近度:用“1 除以 1 加距离”把距离换算成越大越好的得分。
2. 稀疏度:统计被改动的特征个数,改动特征越少得分越高。
3. 可执行性:结合可行性约束,评估每条改动在现实中的可操作性。
4. 加权汇总:w1、w2、w3 按场景调节,得到候选方案的综合分数用于排序。
小明最终用这套标准选出了最适合他的路:距离近、只动一科、立刻能执行。评估指标的意义,就是让“哪条建议更好”不再靠感觉,而是变成可量化、可比对的工程指标。
应用场景
小明的故事每天都在真实世界里上演——只不过“招生办”换成了银行、招聘系统、医院和电商平台。反事实解释的魔力在于:它把一个冷冰冰的“拒绝”翻译成有温度的“下一步”。当模型说“不”时,它不再是终点,而是给出了翻盘坐标。
在信贷风控中,客户被拒后,客服能给出“将信用卡使用率降至 50% 以下即可通过初审”的建议;在招聘筛选中,候选人被筛出后,系统提示“补充 1 年数据分析实习经历后达到岗位门槛”;在医疗健康领域,风险模型告诉患者“把 BMI 降到 27 以下,五年心血管风险从中危降为低危”。这些建议都在帮助用户执行真实的改进。
从工程落地角度看,还有三点要注意:一是生成速度,线上场景要在秒级返回建议;二是约束更新,业务规则变化(如提高贷款门槛)时要重新生成;三是效果闭环,记录“采纳建议后真实翻盘率”,不断验证并迭代反事实模型。用成功率公式即可量化效果。
1. 被拒人群:所有收到反事实建议的申请人集合。
2. 按建议行动:每个申请人执行自己的反事实改动。
3. 结果判定:指示函数统计“最终真的翻盘”的人数。
4. 平均成功:取平均值,得到“建议成功率”,用于衡量解释质量。
小明最终在 DiCE 的三条路线里选了“恶补英语与综合”的那条。半年后,他收到录取通知书。他的经历说明:当 AI 学会说“你差在哪、怎么补”时,它就不再是高高在上的判官,而是一位能为普通人指路的向导。这,就是可信 AI 最温暖的样子。
AI 应用场景
银行信贷与消费金融审批
阶段:模型部署后的事后解释与用户沟通
解决的问题:传统拒绝信只说“综合评分不足”,客户无法改进、客服无法解释,投诉率居高不下。反事实解释自动生成如“将负债率降低 10% 即可通过”的可操作建议,把一次拒绝变成一次引导。
具体案例:某消费金融公司接入 DiCE 生成多样化提额路径,客服选择最可行的一条发送给客户。客户按建议调整后,复贷通过率提升约 20%,投诉量明显下降。
智能招聘简历筛选
阶段:简历初筛模型的输出解释与候选人反馈
解决的问题:候选人被刷后无从知晓短板,体验差且人才流失。招聘平台用 CERTIFAI 为每个落选简历生成“补一年某类经验”的建议,因为简历筛选模型常是不可微的树模型,黑盒友好的遗传算法正合适。
具体案例:某招聘平台对三年以下经验候选人开放“反事实提示”,数据显示候选人根据建议修正简历后复投,进入面试率提高 35%。
健康风险分级与慢病随访
阶段:慢病风险预测模型的医患沟通辅助
解决的问题:医生难以逐条解释风险模型的复杂逻辑,患者听完只有焦虑。反事实解释把“高风险”翻译成“将 BMI 降到 27、每周运动 150 分钟,即可降为中危”的个性化目标。
具体案例:某健康管理 APP 在体检报告中嵌入反事实建议,三个月内的用户行动转化率相比传统报告提升 2 倍。
Python 演示
import numpy as np def make_model(): # 简化版逻辑回归: 数学, 英语, 综合 三个特征 w = np.array([0.9, 0.5, 1.2]) b = -8.0 def predict(x): z = np.dot(x, w) + b return 1 / (1 + np.exp(-z)) return predict, w def wachter_cf(predict, w, x0, y_target=1.0, lr=0.05, steps=300, lam=5.0): # Wachter 式反事实搜索: 把成绩单当作可优化变量, 梯度下降 x = x0.copy() for _ in range(steps): p = predict(x) grad = 2 * lam * (p - y_target) * p * (1 - p) * w + 2 * (x - x0) x = x - lr * grad return x, predict(x) def diverse_cfs(predict, x0, k=3, n_trials=400, seed=1): # DiCE 启发式采样: 随机扰动, 保留能翻转且彼此有差异的候选 rng = np.random.default_rng(seed) cands = [] for _ in range(n_trials): delta = rng.normal(0, 0.4, size=x0.shape) x = x0 + delta if (predict(x) >= 0.5) != (predict(x0) >= 0.5): dist = float(np.linalg.norm(x - x0)) sparsity = int(np.sum(np.abs(x - x0) > 0.05)) cands.append((dist, sparsity, x)) if not cands: return [] cands.sort(key=lambda t: t[0]) picked = [cands[0]] for item in cands[1:]: if len(picked) >= k: break x = item[2] if min(np.linalg.norm(x - p[2]) for p in picked) > 0.35: picked.append(item) return picked if __name__ == "__main__": predict, w = make_model() names = ["数学", "英语", "综合"] x0 = np.array([3.2, 2.8, 2.5]) p0 = predict(x0) print("原始成绩单:", dict(zip(names, x0))) print("原始预测:", round(p0, 4), "->", "录取" if p0 >= 0.5 else "未录取") x_cf, p_cf = wachter_cf(predict, w, x0) print("Wachter 反事实:", dict(zip(names, np.round(x_cf, 2)))) print("翻盘后预测:", round(p_cf, 4)) print("改动幅度:", round(float(np.linalg.norm(x_cf - x0)), 3)) cfs = diverse_cfs(predict, x0) print("DiCE 多样化候选:") for i, item in enumerate(cfs, 1): dist, sparsity, x = item print(" 方案%d:" % i, dict(zip(names, np.round(x, 2))), "距离:", round(dist, 3), "改动特征数:", sparsity)
def wachter_cf(predict, w, x0, ...)定义 Wachter 式反事实搜索,把“成绩单”当成可优化的变量。grad = 2 * lam * (p - y_target) * p * (1 - p) * w + 2 * (x - x0)同时计算“把预测推向录取”和“别改太远”两个方向的梯度。x = x - lr * grad沿梯度反方向更新成绩单,一步步逼近决策边界。if (predict(x) >= 0.5) != (predict(x0) >= 0.5):只保留预测结论发生翻转的随机扰动,作为 DiCE 候选。cands.sort(key=lambda t: t[0])按改动距离排序,优先保留最近的方案。if min(np.linalg.norm(x - p[2]) for p in picked) > 0.35:与已选方案保持足够距离,实现多样性。
常见误区
误区模型给了反事实建议,我就照着把数学提高 3 分,结果系统还是拒了我,反事实解释根本没用。
正解反事实是“统计层面的近似建议”,不是因果承诺,更不是录取保证。它回答的是“在模型当前参数下,哪个改动方向最可能翻盘”,但现实世界还有名额、竞争、数据漂移等模型外因素。把建议当成“导航路线”而非“合同条款”才正确。
为何常见:解释输出以“如果……就……”的权威口吻呈现,用户容易把条件句误读为因果保证。
误区反事实生成时多多益善,数学、英语、综合全都提一提,总有一个能帮到我的吧?
正解恰恰相反,改动特征越多,“执行成本”与“副作用”越高。评估标准里的稀疏度专门奖励“只改一个特征就翻盘”的方案。强行多改,还可能让样本漂移到训练分布之外,导致解释失真。
为何常见:日常直觉是“全面努力总没错”,但反事实追求的是“最省力路径”,两个目标并不相同。
误区Wachter 用梯度下降做优化,梯度收敛了,得到的就是所有翻盘方案里改动最小的那个。
正解梯度下降本质是局部搜索,遇到非凸损失函数可能掉进局部最优。它给出的是一个“尽量近”的方案,而非全局最小改动。这正是 DiCE 给出多个候选、CERTIFAI 用随机种群探索的原因。
为何常见:把“优化方法收敛”误当作“找到了全局最优”,忽略了非凸优化的复杂性。
误区只要候选让模型输出翻盘,它就是一个合格的反事实,赶紧推给用户。
正解可行性与预测翻转是两回事。“把年龄改成 25 岁”能翻转预测但不可执行;“把性别改成另一项”同样荒谬。必须叠加不可变特征、取值范围、因果成本等约束,才能进入“可行动”候选池。
为何常见:纯数学优化只认数值不认现实,生成器把“能翻盘”当作唯一目标时,容易忽略现实边界。
面试题
Q1. 反事实解释的核心目标是什么?
- A.找到预测翻转的最小改动← 正确答案
- B.让模型预测结果更准确
- C.把模型参数压缩变小
- D.直观展示训练数据分布
答案:A。反事实解释要回答“怎么改一点就能翻盘”,核心目标正是寻找能使预测翻转的最小改动,因此 A 正确。B 是模型训练目标,C 是模型压缩目标,D 是数据可视化目标,均与“给出可操作建议”无关。可以把它想象成招生办递给小明的“最短翻盘路线”。
Q2. 关于 Wachter 框架,下列说法正确的是?
- A.依赖梯度优化且模型可微← 正确答案
- B.使用遗传算法生成种群
- C.专门生成多样化的方案
- D.只能应用于树模型上的
答案:A。Wachter 框架对损失函数求梯度、迭代更新候选,因此要求模型可微,A 正确。B 是 CERTIFAI 的做法,C 是 DiCE 的特点,D 错误——它适用于任意可微模型而非树模型。类比:导航员需要看到“地形坡度”才能找方向,梯度就是地形坡度。
Q3. DiCE 区别于 Wachter 框架的核心特征是?
- A.生成多个多样化候选方案← 正确答案
- B.对训练数据重新采样
- C.使用强化学习训练模型
- D.完全不考虑改动距离
答案:A。DiCE 在目标函数中加入成对距离项,一次生成 k 个彼此不同的候选方案,A 正确。B 与 DiCE 无关,C 是强化学习范式,D 错误——DiCE 仍保留距离项,只是额外引入多样性。类比:路线规划师会给出三条不同路线,而不是只给一条最近路线。
Q4. 评估反事实方案最常用的四类指标是?
- A.接近稀疏多样可执行← 正确答案
- B.准确精确召回与F1值
- C.损失梯度学习率迭代
- D.偏差方差噪声信噪比
答案:A。反事实评估的四大指标是接近度、稀疏度、多样性、可执行性,A 正确。B 是分类模型通用指标,C 是训练超参数,D 是信号处理概念。类比:选路线看四张标签——省不省力、关卡多不多、路况好不好、选择多不多。
Q5. 反事实生成中“不可变特征”的含义是?
- A.必须保持原值不能修改← 正确答案
- B.需要全部调整到目标值
- C.可以随机初始化赋新值
- D.与损失函数完全无关
答案:A。“不可变特征”指现实世界中无法改变或不允许改动的维度,如年龄、性别、历史违约记录,生成时必须保持原值,A 正确。B 与目标相悖,C 违背约束,D 错误——它恰恰是可行性约束的核心内容。类比:你不能在成绩单上把“已经考完的试”改成“没考过”。
Q6. 反事实解释与 LIME 的主要区别是?
- A.反事实给出未来修改建议← 正确答案
- B.LIME 依赖深度神经网络
- C.反事实必须使用树模型
- D.LIME 只能解释分类模型
答案:A。LIME 通过局部近似解释“模型为什么这样判”(诊断过去),反事实解释则给出“改什么、怎么改”(指导未来),A 正确。LIME 不依赖深度神经网络,B 错;反事实不限定树模型,C 错;LIME 也能解释回归模型,D 错。类比:LIME 是验尸报告,反事实是康复处方。
Q7. 当模型是黑盒且不可微时,哪种方法仍能生成反事实?
- A.CERTIFAI 遗传算法← 正确答案
- B.Wachter 梯度下降法
- C.解析求解闭式方程法
- D.牛顿二阶梯度方法
答案:A。CERTIFAI 基于遗传算法,只需把候选喂给模型读取输出,不需要梯度,A 正确。Wachter 梯度下降依赖可微,B 错;闭式求解与牛顿法同样依赖解析梯度或二阶信息,C、D 错。类比:育种专家不需要看内部图纸,只看“谁更接近录取”就能繁殖出良种。
Q8. 下列哪些属于 DiCE 损失函数的组件?
- A.预测翻转的损失函数项← 正确答案
- B.与原始样本的距离项← 正确答案
- C.候选方案之间的多样性← 正确答案
- D.模型参数的稀疏正则项
答案:ABC。DiCE 由三部分组成:每个候选的预测翻转损失、候选与原始样本的距离项、候选之间的多样性项,因此 A、B、C 正确。D 是模型训练中的正则化概念,与生成反事实的损失无关。类比:路线规划师的目标函数写着三条纪律——都要翻盘、都要尽量近、彼此要不同。
Q9. 关于 CERTIFAI 算法,下列说法正确的有?
- A.不要求黑盒模型可微← 正确答案
- B.通过选择交叉变异进化← 正确答案
- C.总能找到全局最优解
- D.可以加入可行性约束← 正确答案
答案:ABD。CERTIFAI 不要求模型可微(A 对),通过选择、交叉、变异迭代进化(B 对),且能在适应度函数中加入可行性约束(D 对)。C 错误:遗传算法是随机搜索,不保证全局最优。类比:育种不能保证长出世界第一的麦穗,但能一代代逼近好品种。
Q10. 反事实解释可应用于哪些业务场景?
- A.贷款被拒后给出改进建议← 正确答案
- B.简历被筛后提示补充经验← 正确答案
- C.诊断模型给风险改善路径← 正确答案
- D.训练数据自动扩充增强
答案:ABC。信贷被拒后给“降负债率”建议(A)、简历被筛后提示“补经验”(B)、风险模型告诉患者“降 BMI”(C),都是把“拒绝”翻译成“行动”的典型应用。D 是数据增强技术,与解释无关。类比:小明在贷款、求职、体检三个平行宇宙里,都能拿到那张“翻盘小纸条”。