基于实例的解释
Posted 上下求索.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于实例的解释相关的知识,希望对你有一定的参考价值。
第7章 基于实例的解释
基于实例的解释方法选择数据集的特定实例来解释机器学习模型的行为或解释底层数据分布。
基于实例的解释大多与模型无关,因为它们使任何机器学习模型都更具可解释性。与模型无关方法的区别在于,基于实例的方法通过选择数据集的实例而不是通过创建特征摘要(例如特征重要性或部分依赖性)来解释模型)。
只有当我们能够以人类可理解的方式表示数据实例时,基于实例的解释才有意义。这适用于图像,因为我们可以直接查看它们。一般来说,如果实例的特征值携带更多上下文,则基于实例的方法效果很好,这意味着数据具有结构,就像图像或文本一样。以有意义的方式表示表格数据更具挑战性,因为一个实例可能包含数百或数千个(结构较少的)特征。列出所有特征值来描述一个实例通常是没有用的。如果只有少数几个特征或者我们有办法总结一个实例,它会很好地工作。
基于实例的解释帮助人类构建机器学习模型的心智模型以及机器学习模型已经训练过的数据。它尤其有助于理解复杂的数据分布。但我所说的基于实例的解释是什么意思?我们经常在工作和日常生活中使用它们。让我们从一些例子1开始。
一位医生看到一名患者出现异常咳嗽和轻微发烧。病人的症状让她想起了她多年前有过类似症状的另一个病人。她怀疑她目前的患者可能患有同样的疾病,因此她采集了血液样本来检测这种特定疾病。
一位数据科学家为他的一个客户开展了一个新项目:分析导致键盘生产机器故障的风险因素。数据科学家记得他从事的一个类似项目,并重用了旧项目中的部分代码,因为他认为客户想要相同的分析。
一只小猫坐在燃烧的无人居住的房子的窗台上。消防部门已经到了,其中一名消防员思考了片刻,他是否可以冒险进入大楼去救小猫。他回忆起自己作为消防员生活中的类似案例:缓慢燃烧一段时间的旧木屋往往不稳定,最终倒塌。因为这个案子的相似性,他决定不进去,因为房子倒塌的风险太大了。幸运的是,小猫从窗户跳了出来,安全着陆,没有人在火灾中受到伤害。美满结局。
这些故事说明了我们人类如何通过例子或类比思考。基于实例的解释的蓝图是:事物 B 与事物 A 相似,而 A 导致 Y,所以我预测 B 也会导致 Y。
隐含地,一些机器学习方法是基于实例的。[决策树]](#tree)根据对预测目标很重要的特征中数据点的相似性,将数据划分为节点。
决策树通过查找相似的实例(=在同一终端节点中)并返回这些实例的结果的平均值作为预测来获取新数据实例的预测。
k-最近邻 (knn) 方法明确适用于基于实例的预测。
对于一个新实例,knn 模型定位 k 个最近的邻居(例如,k=3 个最近的实例)并返回这些邻居的结果的平均值作为预测。knn 的预测可以通过返回 k 个邻居来解释,同样,只有当我们有一种好的方法来表示单个实例时,它才有意义。
以下解释方法均基于实例:
- 反事实解释告诉我们实例必须如何改变才能显着改变其预测。通过创建反事实实例,我们了解模型如何进行预测并可以解释单个预测。
- 对抗性示例是用来欺骗机器学习模型的反事实。重点是翻转预测而不是解释它。
- 原型是从数据中选择的具有代表性的实例,而驳议是那些原型没有很好地代表的实例。2
- 有影响的实例是对预测模型的参数或预测本身最有影响的训练数据点。识别和分析有影响的实例有助于发现数据问题、调试模型并更好地了解模型的行为。
- k-最近邻模型:基于实例的(可解释的)机器学习模型。
7.1 反事实解释
作者:Susanne Dandl 和 Christoph Molnar
devtools::load_all()
set.seed(42)
反事实解释以如下形式描述了一种因果情况:“如果
X
X
X 没有发生,
Y
Y
Y 就不会发生”。
例如:“如果我没有喝一口这种热咖啡,我就不会烫到我的舌头”。
事件
Y
Y
Y 是我烧了我的舌头;
因为
X
X
X 是我喝了热咖啡。
反事实思考需要想象一个与观察到的事实相矛盾的假设现实(例如,一个我没有喝过热咖啡的世界),因此得名“反事实”。
与其他动物相比,反事实思考的能力使我们人类如此聪明。
在可解释的机器学习中,反事实解释可用于解释单个实例的预测。
“事件”是一个实例的预测结果,“原因”是该实例的特定特征值,它们输入到模型中并“导致”某个预测。
显示为图表,输入和预测之间的关系非常简单:
特征值导致预测。
即使实际上输入与要预测的结果之间的关系可能不是因果关系,我们也可以将模型的输入视为预测的原因。
鉴于这个简单的图表,很容易看出我们如何模拟反事实来预测机器学习模型:
我们只是在进行预测之前更改实例的特征值,然后分析预测如何变化。
我们对预测以相关方式发生变化的场景感兴趣,例如预测类别的翻转(例如,信用申请被接受或拒绝),或者预测达到某个阈值(例如,癌症的概率达到10%)。
预测的反事实解释描述了将预测更改为预定义输出的特征值的最小变化。
有模型无关和模型特定的反事实解释方法,但在本章中,我们关注仅适用于模型输入和输出(而不是特定模型的内部结构)的模型无关方法。
这些方法在[模型无关章节](#agnostic)中也很熟悉,因为解释可以表示为特征值差异的总结(“改变特征A和B以改变预测”)。
但是反事实解释本身就是一个新的实例,所以它存在于本章中(“从实例X开始,改变A和B得到一个反事实实例”)。
与 原型 不同,反事实不一定是来自训练数据的实际实例,而是可以是特征值的新组合。
在讨论如何创建反事实之前,我想讨论一些反事实的用例以及一个好的反事实解释是什么样的。
在第一个示例中,彼得申请贷款并被(机器学习驱动的)银行软件拒绝。
他想知道为什么他的申请被拒绝,以及如何提高获得贷款的机会。
“为什么”的问题可以表述为反事实:
将预测从拒绝变为批准的特征(收入、信用卡数量、年龄……)的最小变化是什么?
一种可能的答案可能是:
如果彼得每年多赚 10,000 美元,他就会得到贷款。
或者,如果彼得拥有较少的信用卡并且五年前没有拖欠贷款,他就会得到贷款。
彼得永远不会知道拒绝的原因,因为银行对透明度不感兴趣,但那是另一回事了。
在我们的第二个示例中,我们想要解释一个模型,该模型通过反事实解释来预测连续结果。
Anna 想出租她的公寓,但她不确定要收取多少费用,因此她决定训练一个机器学习模型来预测租金。
当然,由于 Anna 是一名数据科学家,这就是她解决问题的方式。
在输入有关大小、位置、是否允许携带宠物等所有详细信息后,模特告诉她可以收取 900 欧元的费用。
她预计 1000 欧元或更多,但她信任她的模型并决定使用公寓的特征值,看看如何提高公寓的价值。
她发现如果该公寓再大
15
m
2
15m^2
15m2,则可以以超过 1000 欧元的价格出租。
有趣但不可操作的知识,因为她无法扩大她的公寓。
最后,通过仅调整她控制下的特征值(内置厨房是/否、允许携带宠物是/否、地板类型等),她发现如果她允许携带宠物并安装隔热效果更好的窗户,她可以收取 1000 欧元。
Anna 直觉地使用反事实来改变结果。
反事实是 人性化的解释,因为它们与当前实例形成对比,并且因为它们是选择性的,这意味着它们通常专注于少数特征变化。
但反事实受到“罗生门效应”的影响。
罗生门是一部日本电影,其中一个武士被谋杀是由不同的人讲述的。
每个故事都同样很好地解释了结果,但故事相互矛盾。
反事实也可能发生同样的情况,因为通常有多种不同的反事实解释。
每个反事实都讲述了如何达到某个结果的不同“故事”。
一个反事实可能会说改变特征 A,另一个反事实可能会说保持 A 不变但改变特征 B,这是矛盾的。
可以通过报告所有反事实解释或通过制定标准来评估反事实并选择最佳解释来解决多重事实的问题。
说到标准,我们如何定义一个好的反事实解释?
首先,反事实解释的用户定义了实例预测中的相关变化(=替代现实)。
一个明显的第一个要求是一个反事实实例尽可能接近地产生预定义的预测。
并不总是可以找到与预定义预测相反的事实。
例如,在具有两个类(稀有类和频繁类)的分类设置中,模型可能总是将实例分类为频繁类。
更改特征值以使预测标签从频繁类翻转到稀有类可能是不可能的。
因此,我们希望放宽反事实的预测必须与预定义结果完全匹配的要求。
在分类示例中,我们可以寻找一个反事实,其中稀有类的预测概率增加到
10
%
10\\%
10%,而不是当前的
2
%
2\\%
2%。
那么问题是,使预测概率从
2
%
2\\%
2% 变为
10
%
10\\%
10%(或接近
10
%
10\\%
10%)的特征的最小变化是多少?
另一个质量标准是一个反事实应该与关于特征值的实例尽可能相似。
例如,如果我们同时具有离散特征和连续特征,则可以使用曼哈顿距离或高尔距离来测量两个实例之间的距离。
反事实不仅应该接近原始实例,还应该尽可能少地改变特征。
为了衡量这个指标中反事实解释的好坏,我们可以简单地计算变化特征的数量,或者用花哨的数学术语,测量反事实和实际实例之间的
L
0
L_0
L0 范数。
第三,通常需要生成多种不同的反事实解释,以便决策主体可以使用多种可行的方式来产生不同的结果。
例如,继续我们的贷款示例,一种反事实解释可能建议仅将收入翻倍以获得贷款,而另一种反事实解释可能建议转移到附近的城市并增加少量收入以获得贷款。
可以注意到,虽然第一个反事实可能对某些人来说是可能的,但后者可能对其他人来说更可行。
因此,除了为决策主体提供不同的方式来获得期望的结果之外,多样性还使“多样化”的个体能够改变对他们来说方便的特征。
最后一个要求是一个反事实实例应该具有可能的特征值。
对于公寓面积为负数或房间数量设置为 200 的租金示例,生成反事实解释是没有意义的。
如果根据数据的联合分布,反事实很可能就更好了,例如,10 个房间和
20
m
2
20 m^2
20m2 的公寓不应该被视为反事实解释。
理想情况下,如果增加平方米数量,也应该提出增加房间数量。
7.1.1 生成反事实解释
产生反事实解释的一种简单而幼稚的方法是通过反复试验进行搜索。
这种方法涉及随机更改感兴趣实例的特征值,并在预测到所需输出时停止。
就像安娜试图找到她可以收取更多租金的公寓版本的例子一样。
但是有比试错更好的方法。
首先,我们根据上述标准定义损失函数。
这种损失将感兴趣的实例、反事实和期望的(反事实)结果作为输入。
然后,我们可以找到使用优化算法最小化这种损失的反事实解释。
许多方法都以这种方式进行,但在损失函数和优化方法的定义上有所不同。
在下文中,我们关注其中两个:首先,Wachter 等人的一个。(2017)3,他引入了反事实解释作为解释方法,其次是 Dandl 等人的方法。(2020)4 考虑到上述所有四个标准。
7.1.1.1 Wachter 等人的方法
Wachter 等人建议尽量减少以下损失:
L ( x , x ′ , y ′ , λ ) = λ ⋅ ( f ^ ( x ′ ) − y ′ ) 2 + d ( x , x ′ ) L(x,x^\\prime,y^\\prime,\\lambda)=\\lambda\\cdot(\\hatf(x^\\prime)-y^\\prime)^2+d(x,x^\\prime) L(x,x′,y′,λ)=λ⋅(f^(x′)−y′)2+d(x,x′)
第一项是模型预测反事实
x
′
x'
x′ 和期望结果
y
′
y'
y′ 之间的二次距离,用户必须提前定义。
第二项是要解释的实例
x
x
x 与反事实
x
′
x'
x′ 之间的距离 d。
损失衡量反事实的预测结果与预定义结果的距离以及反事实与感兴趣的实例的距离。
距离函数 d 定义为使用每个特征的逆中值绝对偏差 (MAD) 加权的曼哈顿距离。
d ( x , x ′ ) = ∑ j = 1 p ∣ x j − x j ′ ∣ M A D j d(x,x^\\prime)=\\sum_j=1^p\\frac|x_j-x^\\prime_j|MAD_j d(x,x′)=j=1∑pMADj∣xj−xj′∣
总距离是所有
p
p
p 个特征距离的总和,即实例
x
x
x 和反事实
x
′
x'
x′ 之间的特征值的绝对差值。
特征距离通过特征
j
j
j 在数据集上的绝对偏差中值的倒数来缩放,定义为:
M A D j = median i ∈ 1 , … , n ( ∣ x i , j − median l ∈ 1 , … , n ( x l , j ) ∣ ) MAD_j=\\textmedian_i\\in\\1,\\ldots,n\\(|x_i,j-\\textmedian_l\\in\\1,\\ldots,n\\(x_l,j)|) MADj=mediani∈1,…,n(∣xi,j−medianl∈1,…,n(xl,j)∣)
向量的中值是向量值的一半较大而另一半较小的值。
MAD 等价于特征的方差,但不是使用均值作为中心并在平方距离上求和,而是使用中值作为中心并在绝对距离上求和。
所提出的距离函数具有优于欧几里得距离的优点:
它对异常值更稳健。
使用 MAD 进行缩放对于使所有功能达到相同的比例是必要的——无论你以平方米还是平方英尺来衡量公寓的大小都无关紧要。
参数
λ
\\lambda
λ 平衡预测中的距离(第一项)与特征值中的距离(第二项)。
对于给定的
λ
\\lambda
λ,损失被求解并返回一个反事实的
x
′
x'
x′ 。
λ
\\lambda
λ的较高值意味着我们更喜欢预测接近预期结果
y
′
y'
y′ 的反事实,较低的值意味着我们更喜欢与特征值中的
x
x
x 非常相似的反事实
x
′
x'
x′ 。
如果
λ
\\lambda
λ 非常大,则预测最接近
y
′
y'
y′ 的实例将被选中,无论它离
x
x
x 多远。
最终,用户必须决定如何平衡反事实的预测与期望结果相匹配的要求与反事实与
x
x
x 相似的要求。
该方法的作者建议不要选择
λ
\\lambda
λ 的值,而是选择允许反事实实例的预测与
y
′
y'
y′ 相差多远的容差
ϵ
\\epsilon
ϵ。
这个约束可以写成:
∣ f ^ ( x ′ ) − y ′ ∣ ≤ ϵ |\\hatf(x^\\prime)-y^\\prime|\\leq\\epsilon ∣f^(x′)−y′∣≤ϵ
为了最小化这个损失函数,可以使用任何合适的优化算法,例如 Nelder-Mead。
如果你可以访问机器学习模型的梯度,则可以使用 ADAM 等基于梯度的方法。
要解释的实例
x
x
x 、所需的输出
y
′
y'
y′ 和容差参数
ϵ
\\epsilon
ϵ 必须提前设置。
x’ 的损失函数最小化,并且(局部)最优反事实
x
′
x'
x′ 返回,同时增加
λ
\\lambda
λ 直到找到足够接近的解(= 在容差参数内):
arg min x ′ max λ L ( x , x ′ , y ′ , λ ) . \\arg\\min_x^\\prime\\max_\\lambdaL(x,x^\\prime,y^\\prime,\\lambda). argx′minλmaxL(x,x′,y′,λ).
总的来说,产生反事实的方法很简单:
- 选择要解释的实例 x x x以上是关于基于实例的解释的主要内容,如果未能解决你的问题,请参考以下文章