反事实解释
知识点概述
反事实解释(Counterfactual Explanations)是一种模型无关的、基于样本的解释方法。它通过回答“如果某个特征X不同,那么预测结果会怎样?”这类问题来解释单个实例的预测。具体来说,它会寻找一个与原始实例尽可能相似、但模型预测结果却发生了期望改变的“反事实”实例。
教材原文
反事实解释(Counterfactual Explanations)按以下形式描述了一种因果关系:“如果没有发生X,那么Y就不会发生”。 … 在可解释的机器学习中,反事实解释可用于解释各个实例的预测。“事件”是实例的预测结果,“原因”是该实例的特定特征值,将其输入到模型并会“引起”某个预测。 … 预测的反事实解释描述了将预测更改为预定义输出时特征值的最小变化。
详细解释
- 核心思想: 反事实解释的核心是对比和最小变化。它不解释为什么预测是A,而是解释为什么预测是A而不是B,并且通过寻找达成B所需的最微小改动来实现这一点。
- 例子:
- 贷款申请: 你的贷款被拒绝了。反事实解释不是告诉你被拒的所有原因,而是告诉你:“如果你的年收入再增加10,000欧元,你的贷款就会被批准。” 这个“年收入增加10,000欧元”的你,就是一个反事实实例。
- 好的反事实解释的特征:
- 产生期望的预测: 反事实实例的模型预测结果应该尽可能接近用户预期的结果。
- 与原始实例相似: 反事实实例应该与原始实例尽可能相似,即特征值的改动尽可能小。这通常通过最小化某种距离(如曼哈顿距离)来实现。
- 稀疏性: 应该只改变尽可能少的特征。
- 合理性: 反事实实例的特征值组合应该是现实中可能出现的,而不是无意义的组合。
生成方法
- 核心: 生成反事实可以被看作一个优化问题。我们需要找到一个反事实实例 ,它能够最小化一个综合了以下两点的损失函数:
- 的模型预测值 与我们期望的输出 之间的距离。
- 与原始实例 之间的距离。
- 损失函数:
- 是一个平衡参数,用于权衡“预测匹配度”和“实例相似度”。
- 优化: 可以使用任何标准的优化算法(如Nelder-Mead或基于梯度的ADAM)来求解这个损失函数,找到最优的 。
学习要点
- 理解反事实解释回答的是“如果…那么…”的问题,它是一种具有对比性的、人性化的解释。
- 掌握生成反事实解释的本质是一个带约束的优化问题,目标是找到一个与原始点最近且预测结果不同的点。
- 知道一个好的反事实解释应该满足:产生期望预测、与原始实例相似(距离近)、改动稀疏、特征值合理。
- 认识到“罗生门效应”:对于同一个实例,通常存在多个不同的、同样“好”的反事实解释。
优点
- 解释清晰: 非常容易被人类理解,直接给出了“如何做才能改变结果”的行动指南。
- 模型无关: 无需访问模型内部,只需要模型的预测接口即可,保护了模型的知识产权。
- 适用性广: 不仅可用于机器学习模型,也可用于任何输入-输出系统。
缺点
- 罗生门效应: 通常会找到多个不同的反事实解释,给用户带来选择困难。
- 无法保证找到解: 在某些情况下,可能不存在满足条件的、合理的反事实实例。
- 对高基数分类特征处理困难: 当分类特征有很多级别时,搜索空间会爆炸式增长。
关联知识点
- 前置知识: 39-理论方法-基于样本的解释, 10-核心概念-人性化的解释
- 相关知识: 41-理论方法-对抗样本 (对抗样本可以被看作是一种以欺骗为目的的反事实)