一、简介
机器学习已经被广泛使用,但仍然是黑盒模型。但是,如果人类无法相信某个模型,那么很难在产品中部署这个模型。这里区分两个概念:
- trusting a prediction \text{trusting a prediction} trusting a prediction:用户是否充分信任一个预测,并基于该预测采取行动;
- trusting a model \text{trusting a model} trusting a model:用户是否相信模型在部署后能够以合理的方式运行;
trusting a prediction \text{trusting a prediction} trusting a prediction非常重要,例如在使用机器学习进行医疗诊断或者恐怖蛀牙检测,预测不能只给出结果,还必须给出原因。 trusting a model \text{trusting a model} trusting a model同样非常重要,值得信赖的模型才更可能被部署。
接下来的部分主要包括:
- 一种称为 LIME \text{LIME} LIME的解释方法,其能够为任何的单个预测提供faithful的解释,从而解决 trusting a prediction \text{trusting a prediction} trusting a prediction;
- 一种称为 SP-LIME \text{SP-LIME} SP-LIME的解释方法,通过挑选具有代表性的实例进行解释,从而解决 trusting a model \text{trusting a model} trusting a model的问题;
论文作者提出了一种称为 LIME \text{LIME} LIME的模型不可知解释方法,其能够以faithful的方式来解释任意的预测
二、为什么需要解释
解释模型的预测是获取人类信任和应用机器学习都十分重要。
”解释单个预测“的过程如图1所示。
显然,如果能够为医生提供人类可理解的模型解释,那么医生就能依赖先验知识决定接受或者拒绝预测。
此外,先前评估机器学习模型的方法,是通过评估模型在测试集上的指标来确定的。但是,这种方式并不能完全测试出模型在真实世界中的表现。因此,通过解释一些具有代表性样本的模型预测,能够提供一种对模型的全局理解。特别是,数据泄露(data leakage)的错误很难被已有的方法评估,但是通过对模型的预测提供解释可以很方便的发现这样的错误。
三、解释方法该具有的性质
1. 易于理解性
解释方法提供的解释必须是易于理解,而易于理解是与受众相关的。
此外,模型的易于理解性也是一个相对的概念。举例来说,通常线性模型被认为具有良好的可解释性,但是在一些情况下也会难以理解。例如,若成百上千个特征均对线性模型预测有贡献,并且这些特征对应的权重也完全已知,人类仍然很难理解这样的模型。
2. 局部保真度
解释方法必须具有局部保真度(local fidelity)。除非一个解释是对模型本身的完整描述,否则不可能是完全faithful的解释。显然,在深度学习模型中,根本不可能给出一个完全faithful的解释。但是,一个解释必须具有局部保真度,即一个解释能够展示出模型在被解释实例附近的行为。
此外,局部保真度并不意味着全局保真度,即特征是局部重要但并不全局重要。
3. 模型不可知
虽然有有些模型本身是可解释的,但是理想的解释方法应该能解释任何模型,因此需要解释方法是模型不可知。
4. 解释整个模型
除了能够解释单个预测外,能够为模型提供一个全局视角的解释也很重要。
四、LIME
LIME(Local Interpretable Model-agnostic Explanations) \text{LIME(Local Interpretable Model-agnostic Explanations)} LIME(Local Interpretable Model-agnostic Explanations)是一种为分类器提供局部保真的可解释方法。
1. 数据表示形式
正如前面提及的,解释是需要易于理解的。
因此,对于文本来说,其解释可以表示为一个二进制向量,其中0表示单词的缺失,1表示单词存在。直观上来看,就是从文本中抽取一些片段来解释单个预测。对于图像分类器,也可以使用一个二进制向量来表示相邻图像块的存在还是缺失。
令 x ∈ R d x\in\mathbb{R}^d x∈Rd为被解释实体的原始表示,使用 x ′ ∈ { 0 , 1 } d ′ x'\in\{0,1\}^{d'} x′∈{ 0,1}d′表示用于解释的二进制向量。
2. LIME提出的框架
LIME其实提出了一种解释框架,该框架对保真度和可解释性进行了权衡。
2.1 原理概述
LIME希望通过一个可解释的简单模型 g g g来模拟复杂模型 f f f的局部行为,从而为单个样本提供解释。
2.2 基本框架
可解释模型 g g g
模型 g ∈ G g\in G g∈G是一个本身可以解释的模型,例如决策树、线性模型等。其中 G G G表示一类可解释模型。
模型复杂度 Ω ( g ) \Omega(g) Ω(g)
虽然 g g g为可解释模型,但是如果复杂度过高则仍然难以解释,因此定义 Ω ( g ) \Omega(g) Ω(g)来衡量解释模型 g ∈ G g\in G g∈G的复杂度。例如,若 g g g为决策树,则 Ω ( g ) \Omega(g) Ω(g)可以为树的深度;若 g g g为线性模型,则 Ω ( g ) \Omega(g) Ω(g)可以是非零权重的数量。
被解释模型 f f f
被解释的模型表示为 f : R d → R f:\mathbb{R}^d\rightarrow\mathbb{R} f:Rd→R,例如在分类任务中, f ( x ) f(x) f(x)是样本 x x x属性某个类别的概率。
样本领域 π x \pi_x πx
令 π x ( z ) \pi_x(z) πx(z)表示样本 x x x和 z z z的接近程度, π x \pi_x πx表示样本 x x x的领域。
模型近似度 L ( f , g , π x ) \mathcal{L}(f,g,\pi_x) L(f,g,πx)
令 L ( f , g , π x ) \mathcal{L}(f,g,\pi_x) L(f,g,πx)表示在领域 π x \pi_x πx内模型 g g g近似 f f f的unfaithful程度。即 L ( f , g , π x ) \mathcal{L}(f,g,\pi_x) L(f,g,πx)越小, g g g对 f f f的近似越好。
最终框架
为了确保易于解释和局部保真度,必须要最小化 L ( f , g , π x ) \mathcal{L}(f,g,\pi_x) L(f,g,πx)的同时也保证 Ω ( g ) \Omega(g) Ω(g)足够低,便于人类理解。因此,最终的框架为
ξ ( x ) = argmin g ∈ G L ( f , g , π x ) + Ω ( g ) \xi(x)=\mathop{\text{argmin}}_{g\in G}\mathcal{L}(f,g,\pi_x)+\Omega(g) ξ(x)=argming∈GL(f,g,πx)+Ω(g)
其中,上面的框架可以适应于任何类型的 G G G、 L \mathcal{L} L和 Ω \Omega Ω, ξ ( x ) \xi(x) ξ(x)为样本 x x x的解释。
2.3 如果计算 L ( f , g , π x ) \mathcal{L}(f,g,\pi_x) L(f,g,πx)
由于希望使用 g g g来近似 f f f的局部行为,那么就需要通过数据来模拟 f f f的局部行为,并使用 g g g进行学习。具体来说,
- 给定一个待解释样本 x ∈ R n x\in\mathbb{R}^n x∈Rn,二进制向量 x ′ ∈ { 0 , 1 } d ′ x'\in\{0,1\}^{d'} x′∈{ 0,1}d′则是 x x x的易于解释性表示;
- 通过对 x ′ x' x′进制扰动生成 z ′ ∈ { 0 , 1 } d ′ z'\in\{0,1\}^{d'} z′∈{ 0,1}d′,其包含了 x ′ x' x′中的一部分非零值;
- 基于 z ′ z' z′和 x x x,生成 z ′ z' z′的原始表示 z z z;
- 使用原始模型进行预测 f ( z ) f(z) f(z);
- 衡量样本 x x x和 z z z的接近程度 π x ( z ) \pi_x(z) πx(z);
- 生成一个领域样本 ( z ′ , f ( z ) , π x ( z ) ) (z',f(z),\pi_x(z)) (z′,f(z),πx(z));
按照上面的方法生成一个新的数据集,其代表 f f f在样本 x x x领域的行为。然后,使用新的数据集训练模型 g g g,那么就认为 g g g学习到了 f f f的局部行为。 g g g的解释也就是 f f f的解释。
3. LIME框架的具体例子----稀疏线性解释器
3.1 L ( f , g , π x ) \mathcal{L}(f,g,\pi_x ) L(f,g,πx)的具体选择
令 G G G表示一类线性模型,则 g ( z ′ ) = w g ⋅ z ′ g(z')=w_g\cdot z' g(z′)=wg⋅z′。
定义具体的 L ( f , g , π x ) \mathcal{L}(f,g,\pi_x) L(f,g,πx)
L ( f , g , π x ) = ∑ z , z ′ ∈ Z π x ( z ) ( f ( z ) − g ( z ′ ) ) 2 \mathcal{L}(f,g,\pi_x)=\sum_{z,z'\in\mathcal{Z}}\pi_x(z)(f(z)-g(z'))^2 L(f,g,πx)=z,z′∈Z∑πx(z)(f(z)−g(z′))2
其中,样本接近程度评估函数为 π x ( z ) = e x p ( − D ( x , z ) 2 / σ 2 ) \pi_x(z)=exp(-D(x,z)^2/\sigma^2) πx(z)=exp(−D(x,z)2/σ2), D D D是距离衡量函数, σ \sigma σ是标准化系数。值得注意的是, g ( z ′ ) g(z') g(z′)是在二进制向量上训练的, f ( z ) f(z) f(z)则相反。
3.2 Ω ( g ) \Omega(g) Ω(g)的具体选择
对于文本分类任务,可以使用词袋的方法来确定解释的易于理解性。通过对词袋中单词数设定一个界限 K K K来控制解释的复杂度,例如 Ω ( g ) = ∞ 1 [ ∥ w g ∥ 0 > K ] \Omega(g)=\infty 1[\Vert w_g\Vert_0>K] Ω(g)=∞1[∥wg∥0>K]。其中, K K K可以设置为用户能够理解的最大值。
对于图像分类,可以使用相同的 Ω \Omega Ω,只不过使用"super-pixels"来替代单词即可。
由于直接优化目标函数中的 Ω \Omega Ω十分困难,因此 g g g可以选择具有 K K K个特征的Lasso模型。
3.3 完整的算法
输入:分类器 f f f和采样数量 N N N;
输入:实例 x x x和其可解释版本 x ′ x' x′;
输入:相似度核 π x \pi_x πx,解释的长度 K K K;
Z ← { } \mathcal{Z}\leftarrow\{\} Z←{ }
for i ∈ 1 , 2 , . . . , N i\in {1,2,...,N} i∈1,2,...,N do
z i ′ ← s a m p l e _ a r o u d ( x ′ ) z_i'\leftarrow sample\_aroud(x') zi′←sample_aroud(x′)
Z ← Z ∪ ⟨ z i ′ , f ( z i ) , π x ( z i ) ⟩ \mathcal{Z}\leftarrow\mathcal{Z}\cup\langle z_i',f(z_i),\pi_x(z_i)\rangle Z←Z∪⟨zi′,f(zi),πx(zi)⟩
end for
使用 z i ′ z_i' zi′作为特征, f ( z ) f(z) f(z)作为标签,训练模型 K-Lasso ( Z , K ) \text{K-Lasso}(\mathcal{Z},K) K-Lasso(Z,K);
获取权重 w ← K-Lasso ( Z , L ) w\leftarrow \text{K-Lasso}(\mathcal{Z},L) w←K-Lasso(Z,L)
return w
上面的算法会为单个实例生成一个解释,其计算复杂度主要依赖于 f ( x ) f(x) f(x)的时间和采样数量 N N N。
4. 缺陷
- 二进制向量的方式可能无法提供有效的解释。例如,在一个预测图像是否为“复古”风格的模型中,无法通过像素的存在或者缺失来提供人类易于理解的解释。
- 若 G G G选择未稀疏线性模型,那么也就意味着 f f f的局部是线性的。如果 f f f的局部是高度非线性的,那么LIME也无法提供一个faithful的解释。
五、应用LIME的案例
1. 文本分类
存在一个文本分类模型,其被用于将文本分类为A和B两种标签。若模型准确了能够达到95%以上,那么通常人类会选择该模型并部署。但是,如果所有A类别的文本均包含单词"Posting",而B类别文本几乎不包含。那么模型将会依据单词"Posting"进行判断。显著,这样的模型是有问题的,需要修改训练数据。
2. 图像分类
上图(a)是输入至图像分类模型进行分类的原始图像。(b)、©、(d)分别是模型将原始图像预测为“电吉他”、“木吉他”和"拉布拉多"的原因。特别是,(b)提供了模型为什么将木吉他判断为电吉他的原因----指板。
转载:https://blog.csdn.net/bqw18744018044/article/details/117536436