相关博客
【自然语言处理】【可解释性】NKB:用于预训练Transformers的神经知识银行
【自然语言处理】【可解释性】自注意力归因:解释Transformer内部的信息交互
【深度学习】【积分梯度】深度网络的公理归因(Axiomatic Attribution for Deep Networks)
【自然语言处理】【可解释性】Perturbed Masking:分析和解释BERT的无参数探针
【机器学习】【可解释性】LIME
【自然语言处理】【聚类】TELL:可解释神经聚类
【自然语言处理】【Prompt】语言模型即知识库(Language Models as Knowledge Bases)
【自然语言处理】【Prompt】P-tuning

一、简介

机器学习已经被广泛使用,但仍然是黑盒模型。但是,如果人类无法相信某个模型,那么很难在产品中部署这个模型。这里区分两个概念:

  • 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∈Rdx\in\mathbb{R}^dx∈Rd为被解释实体的原始表示,使用x′∈{0,1}d′x'\in\{0,1\}^{d'}x′∈{0,1}d′表示用于解释的二进制向量。

2. LIME提出的框架

LIME其实提出了一种解释框架,该框架对保真度和可解释性进行了权衡。

2.1 原理概述

LIME希望通过一个可解释的简单模型ggg来模拟复杂模型fff的局部行为,从而为单个样本提供解释。

2.2 基本框架

可解释模型ggg

模型g∈Gg\in Gg∈G是一个本身可以解释的模型,例如决策树、线性模型等。其中GGG表示一类可解释模型。

模型复杂度Ω(g)\Omega(g)Ω(g)

虽然ggg为可解释模型,但是如果复杂度过高则仍然难以解释,因此定义Ω(g)\Omega(g)Ω(g)来衡量解释模型g∈Gg\in Gg∈G的复杂度。例如,若ggg为决策树,则Ω(g)\Omega(g)Ω(g)可以为树的深度;若ggg为线性模型,则Ω(g)\Omega(g)Ω(g)可以是非零权重的数量。

被解释模型fff

被解释的模型表示为f:Rd→Rf:\mathbb{R}^d\rightarrow\mathbb{R}f:Rd→R,例如在分类任务中,f(x)f(x)f(x)是样本xxx属性某个类别的概率。

样本领域πx\pi_xπx​

令πx(z)\pi_x(z)πx​(z)表示样本xxx和zzz的接近程度,πx\pi_xπx​表示样本xxx的领域。

模型近似度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​内模型ggg近似fff的unfaithful程度。即L(f,g,πx)\mathcal{L}(f,g,\pi_x)L(f,g,πx​)越小,ggg对fff的近似越好。

最终框架

为了确保易于解释和局部保真度,必须要最小化L(f,g,πx)\mathcal{L}(f,g,\pi_x)L(f,g,πx​)的同时也保证Ω(g)\Omega(g)Ω(g)足够低,便于人类理解。因此,最终的框架为
ξ(x)=argming∈GL(f,g,πx)+Ω(g)\xi(x)=\mathop{\text{argmin}}_{g\in G}\mathcal{L}(f,g,\pi_x)+\Omega(g) ξ(x)=argming∈G​L(f,g,πx​)+Ω(g)
其中,上面的框架可以适应于任何类型的GGG、L\mathcal{L}L和Ω\OmegaΩ,ξ(x)\xi(x)ξ(x)为样本xxx的解释。

2.3 如果计算L(f,g,πx)\mathcal{L}(f,g,\pi_x)L(f,g,πx​)

由于希望使用ggg来近似fff的局部行为,那么就需要通过数据来模拟fff的局部行为,并使用ggg进行学习。具体来说,

  • 给定一个待解释样本x∈Rnx\in\mathbb{R}^nx∈Rn,二进制向量x′∈{0,1}d′x'\in\{0,1\}^{d'}x′∈{0,1}d′则是xxx的易于解释性表示;
  • 通过对x′x'x′进制扰动生成z′∈{0,1}d′z'\in\{0,1\}^{d'}z′∈{0,1}d′,其包含了x′x'x′中的一部分非零值;
  • 基于z′z'z′和xxx,生成z′z'z′的原始表示zzz;
  • 使用原始模型进行预测f(z)f(z)f(z);
  • 衡量样本xxx和zzz的接近程度πx(z)\pi_x(z)πx​(z);
  • 生成一个领域样本(z′,f(z),πx(z))(z',f(z),\pi_x(z))(z′,f(z),πx​(z));

按照上面的方法生成一个新的数据集,其代表fff在样本xxx领域的行为。然后,使用新的数据集训练模型ggg,那么就认为ggg学习到了fff的局部行为。ggg的解释也就是fff的解释。

3. LIME框架的具体例子----稀疏线性解释器

3.1 L(f,g,πx)\mathcal{L}(f,g,\pi_x )L(f,g,πx​)的具体选择

令GGG表示一类线性模型,则g(z′)=wg⋅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)=exp(−D(x,z)2/σ2)\pi_x(z)=exp(-D(x,z)^2/\sigma^2)πx​(z)=exp(−D(x,z)2/σ2),DDD是距离衡量函数,σ\sigmaσ是标准化系数。值得注意的是,g(z′)g(z')g(z′)是在二进制向量上训练的,f(z)f(z)f(z)则相反。

3.2 Ω(g)\Omega(g)Ω(g)的具体选择

对于文本分类任务,可以使用词袋的方法来确定解释的易于理解性。通过对词袋中单词数设定一个界限KKK来控制解释的复杂度,例如Ω(g)=∞1[∥wg∥0>K]\Omega(g)=\infty 1[\Vert w_g\Vert_0>K]Ω(g)=∞1[∥wg​∥0​>K]。其中,KKK可以设置为用户能够理解的最大值。

对于图像分类,可以使用相同的Ω\OmegaΩ,只不过使用"super-pixels"来替代单词即可。

由于直接优化目标函数中的Ω\OmegaΩ十分困难,因此ggg可以选择具有KKK个特征的Lasso模型。

3.3 完整的算法

输入:分类器fff和采样数量NNN;

输入:实例xxx和其可解释版本x′x'x′;

输入:相似度核πx\pi_xπx​,解释的长度KKK;

​ Z←{}\mathcal{Z}\leftarrow\{\}Z←{}

for i∈1,2,...,Ni\in {1,2,...,N}i∈1,2,...,N do

​ zi′←sample_aroud(x′)z_i'\leftarrow sample\_aroud(x')zi′​←sample_aroud(x′)

​ Z←Z∪⟨zi′,f(zi),πx(zi)⟩\mathcal{Z}\leftarrow\mathcal{Z}\cup\langle z_i',f(z_i),\pi_x(z_i)\rangleZ←Z∪⟨zi′​,f(zi​),πx​(zi​)⟩

end for

​ 使用zi′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)的时间和采样数量NNN。

4. 缺陷

  • 二进制向量的方式可能无法提供有效的解释。例如,在一个预测图像是否为“复古”风格的模型中,无法通过像素的存在或者缺失来提供人类易于理解的解释。
  • 若GGG选择未稀疏线性模型,那么也就意味着fff的局部是线性的。如果fff的局部是高度非线性的,那么LIME也无法提供一个faithful的解释。

五、应用LIME的案例

1. 文本分类

存在一个文本分类模型,其被用于将文本分类为A和B两种标签。若模型准确了能够达到95%以上,那么通常人类会选择该模型并部署。但是,如果所有A类别的文本均包含单词"Posting",而B类别文本几乎不包含。那么模型将会依据单词"Posting"进行判断。显著,这样的模型是有问题的,需要修改训练数据。

2. 图像分类

上图(a)是输入至图像分类模型进行分类的原始图像。(b)、©、(d)分别是模型将原始图像预测为“电吉他”、“木吉他”和"拉布拉多"的原因。特别是,(b)提供了模型为什么将木吉他判断为电吉他的原因----指板。

【机器学习】【可解释性】LIME相关推荐

  1. 博弈论夏普利值!提高机器学习可解释性的新方法!

    全文共7141字,预计学习时长21分钟 图源:Unsplash 从"约翰•纳什"到"板球世界杯" 还记得<美丽心灵>的男主(也是现实生活中传奇的一代 ...

  2. 模型可解释性-LIME

    在算法建模过程中,我们一般会用测试集的准确率与召回率衡量一个模型的好坏.但在和客户的实际沟通时,单单抛出一个数字就想要客户信任我们,那肯定是不够的,这就要求我们摆出规则,解释模型.但不是所有的模型都是 ...

  3. 归因分析笔记5:机器学习可解释性

    目录 可解释的机器学习 从宏观业务流程看可解释机器学习 使机器学习可解释两种方法 可解释性的范围 模型不可知的全局方法 排列特征重要性(模型依赖) 模型不可知的局部方法 Shapley 值 Shapl ...

  4. 机器学习可解释性(二) —— 类激活映射(CAM)

    # 机器学习可解释性(二)--类激活映射(CAM) 文章目录 1.序言 2.方法介绍 2.1 CAM 2.2 GradCAM 2.3 GradAM++ 2.4 LayerCAM 3.算法实现 3.1 ...

  5. 机器学习可解释性工具箱XAI

    http://blog.itpub.net/29829936/viewspace-2600454/ XAI是Github上的一个机器学习可解释性工具箱.XAI包含多种分析和评价数据和模型的工具.XAI ...

  6. ML之PDP:机器学习可解释性之部分依赖图(Partial Dependence Plots)之每个特征如何影响您的预测?

    ML之PDP:机器学习可解释性之部分依赖图(Partial Dependence Plots)之每个特征如何影响您的预测? 目录 机器学习可解释性之部分依赖图之每个特征如何影响您的预测? Partia ...

  7. 机器学习可解释性(一) —— 累积局部效应图(ALE)

    一.序言 深度学习的"黑盒"特性如今越来越让计算机工作者困扰,因此模型的可解释性问题在近些年越来越受到人们的关注.作为该领域的萌新,我开始一点点学习相关领域的内容,参考的书籍是:& ...

  8. 机器学习可解释性(一)

    机器学习可解释性(一) 机器学习可解释性(二) 之 可解释模型 机器学习可解释性(三) 之模型无关方法 机器学习可解释性(四) 之 shap 文章目录 what: 什么是可解释性(interpreta ...

  9. XAI/ML:机器学习可解释性之模型洞察之为什么以及什么时候你需要洞察力?

    XAI/ML:机器学习可解释性之模型洞察之为什么以及什么时候你需要洞察力? 目录 Why and when do you need insights? 1.What Types of Insights ...

  10. 【文献翻译】综述:机器学习可解释性

    原文链接:Review Study of Interpretation Methods for Future Interpretable Machine Learning Abstract 近年来,黑 ...

最新文章

  1. 26 岁创造 UNIX,退休后却成为一名飞行员
  2. 《上海市数据中心建设导则(2021版)》
  3. 禁止套娃!Redis官网宕机,返回“连接不上Redis”
  4. 万变不离其宗之海量数据下的算法问题处理思路
  5. 从零开始入门 K8s | 理解 CNI 和 CNI 插件
  6. Linux引导过程与服务控制、排障演示及运行级别(详细图解)
  7. spring boot2.x设置session有效时间_Spring 源码解析 Scopes 之 Request 、Session 、Application...
  8. 判别分析分为r型和q型吗_电流互感器天天见,但是你真正了解和知道它的一些注意事项吗?...
  9. AI芯片格局最全分析
  10. 实测实量数据表格_建筑工程质量实测实量操作手册,130页PPT下载!
  11. 作者:石勇(1956-),男,中国科学院大学经济管理学院教授、博士生导师,发展中国家科学院院士...
  12. ios 学习札记 细节(四)
  13. 通讯录_通讯录拦截防爆
  14. 码织匠C语言程序设计,“C语言程序设计”课程的教学资源融合建设研究
  15. 2022年4月国产数据库大事记
  16. mysql随机生成 姓名+电话
  17. python 分析泰坦尼克号生还率_泰坦尼克号上谁的生存几率更大?Kaggle 金牌得主 Python 数据挖掘框架发现真相...
  18. 远程服务器 检索{00024500-0000-0000-C000-000000000046}组件失败 80080005 服务器运行失败 解决方案
  19. python如何画贝塞尔曲线_使用Python实现贝塞尔曲线连接多点形成光滑曲线
  20. 一个阿里前端工程师的成长之路

热门文章

  1. 网页加速之Prefetching VS Prerendering
  2. 设计模式之美 精华总结 笔记(一)
  3. 虚拟地址如何访问到物理地址
  4. 计算机科学与专业大学排名,计算机科学与技术专业大学排名
  5. C#进阶(一)——TXT文件处理:以导线网近似平差为例
  6. HDU -2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(DP,贪心)
  7. 【Windows Tips】关闭 Windows Defender
  8. 部队计算机专业培训申请书,《计算机专业奖学金申请书》.docx
  9. 测试每秒点击速度的软件,测试点击速度
  10. 1.scrapy项目创建——python scrapy 爬取新浪财经财经新闻