“Why Should I Trust You?” Explaining the Predictions of Any Classifier阅读笔记

“Why Should I Trust You?” Explaining the Predictions of Any Classifier阅读笔记

1. 论文贡献

  1. LIME,一种算法,可以忠实地解释任何分类器或回归器的预测,通过局部逼近它与一个可解释的模型。
  2. SP-LIME,一种通过子模块优化,选择一组具有解释的代表性实例来解决“信任模型”问题的方法。

2. 背景 [ 1 ] ^{[1]} [1]

  1. 在模型被用户使用前,用户都会十分关心模型是否真的值得信赖。
  2. 现实中,我们的通过目前标准的训练方式得到的模型,往往不能保证模型的可靠性。因为模型开发过程中使用的验证、测试集,可能跟实际场景差别很大。另外,我们使用的评价准则(evaluation metrics)也很局限,不能体现出很多我们关心的但难以量化的标准,例如用户的参与度、留存度。
  3. 由于模型开发过程中可能存在的非故意的数据泄露(unintentional data leakage,数据泄漏被
    认为是信号无意地泄漏到训练(和验证)数据中,而在部署时不会出现,这可能会提高准确性。)和数据集漂移(dataset shift,指训练集和测试集分布不同),得到的模型也可能并不可靠。

3. LIME解释单个样本

3.1 总体思想

  1. 原始模型复杂的决策边界,在任意一个样本点的局部范围内,可以视为是线性的。那只要找到这些线性的边界,就可以对模型在该样本点处进行解释了。
  2. LIME的总体目标是在局部忠实于分类器的可解释表示之上识别一个可解释的模型。

3.2 构建可解释的数据表示 [ 1 ] ^{[1]} [1]

  原始的数据,或者模型使用的特征,往往不够直观、具体。我们需要将原始的数据,转化成一种便于解释的数据表示,从而辅助我们后续的模型预测结果解释。

  文章中将原始数据转化成一组由基本元素构成的0-1表示。例如,对于文本来说,就是某个词是否出现这样的特征,对于图像来说,就是某个区域是否出现。文本0-1表示如下图所示:
在这里插入图片描述

3.3 可解释性和忠实度的权衡

  想要解释模型而且效果不能很差,所以在局部忠诚性和可解释性上做个取舍。文中定义了一个包括忠实度和可解释复杂度的度量函数
ξ ( x ) = a r g m i n g ∈ G L ( f , g , π x ) + Ω ( g ) \xi(x)=argmin_{g \in G} \mathcal{L}(f,g,\pi_x)+\Omega(g) ξ(x)=argmingGL(f,g,πx)+Ω(g)
其中:

  1. f f f 代表分类器,即需要被解释的复杂模型;
  2. g g g 代表解释器,通常为线性模型和决策树模型;
  3. G G G代表一类可解释的模型, g ∈ G g \in G gG ;
  4. Ω ( g ) \Omega(g) Ω(g) 是解释模型 g g g的复杂性度量,例如决策树的深度或线性模型非零权重的个数;
  5. x ∈ R d x \in \mathbb{R}^d xRd 原始特征,例如RGB通道的像素值;
  6. x ′ ∈ R d ′ x^{\prime} \in \mathbb{R}^{d^{\prime}} xRd 可解释数据表示,例如超级像素是否存在;
  7. z ′ ∈ R d ′ z^{\prime} \in \mathbb{R}^{d^{\prime}} zRd 可解释数据表示的扰动数据;
  8. z ∈ R d z \in \mathbb{R}^d zRd 扰动数据对应的原始特征;
  9. π x ( z ) \pi_x(z) πx(z) 作为实例 z z z x x x 之间的接近度量,以便定义 x x x 周围的局部性。

3.4 局部采样

  对原始的样本进行转换得到可解释的数据表示之后,对特征向量进行一些扰动,具体的,随机的对0-1向量中的1进行改变,改变的数量也随机。然后根据这些扰动后的向量,跟原向量的相似度,来使用不同的采样比例。直观上来讲,扰动的少的,采样会更多,扰动大的采样更少。 [ 1 ] ^{[1]} [1]
在这里插入图片描述

  上图直观展示了采样的方法。黑盒模型的复杂决策函数 f f f用蓝色/粉色背景表示,这不能很好地用线性模型很好地近似。粗体的红十字是正在被解释的实例。LIME样本实例,使用f获得预测,并根据与被解释的实例的接近程度进行赋权(这里用大小表示)。虚线是学习到的局部(但不是全局的)忠实的解释。

3.5 稀疏线性解释

  文章中使用稀疏线性解释器 g ( z ′ ) = w g ⋅ z ′ g(z^{\prime})=w_g \cdot z^{\prime} g(z)=wgz,让 π 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是距离函数(文本是余弦距离,图像是 L 2 L_2 L2距离),然后, L \mathcal{L} L可以就设计成一个带权重的最小二乘损失:
L ( f , g , π x ) = ∑ z , z ′ ∈ Z π x ( z ) ( f ( z ) − g ( z ′ ) ) 2 . \mathcal{L}(f,g,\pi_x)=\sum_{z,z^{\prime}\in Z} \pi_x(z)(f(z)-g(z^{\prime}))^2 . L(f,g,πx)=z,zZπx(z)(f(z)g(z))2.
下图来自[1]中,直观展示LIME的训练过程。
在这里插入图片描述
下图是LIME的伪代码:

  1. 需要一个分类器,定义采样数量 N N N;
  2. 确定被解释实例 x x x和它的可解释版本 x ′ x^{\prime} x;
  3. 定义一个样本间相似度计算方式 π x \pi_x πx,以及要选取的 K K K个特征来解释;
  4. 进行 N N N次扰动采样,每个邻居样本计算 z i ′ , f ( z i ) , π x ( z i ) z_i^{\prime},f(z_i),\pi_x(z_i) zi,f(zi),πx(zi),并保存到 Z Z Z中;
  5. 利用Lasso回归计算解释器权重 w w w,这里 z i ′ z_i^{\prime} zi是特征, f ( z ) f(z) f(z)是目标值。
    在这里插入图片描述

3.6 使用SVM进行文本分类

在这里插入图片描述

3.7 使用深度网络进行图像分类

在这里插入图片描述

4. Submodular Pick解释模型

  虽然对单一预测的解释为用户提供了对分类器可靠性的一些理解,但仅仅评估和评估整个模型的信任度是不够的。作者建议通过解释一组单独的实例来给出对模型的全局理解。这种方法仍然是与模型无关的。需要考虑的问题是如何用最高的效率,检查最少的样本,就能够最全面地检查模型的可靠性,即,挑选最少的样本,让他们对特征空间的覆盖程度最大。下图是一个大致思路,(这里f1,…,f5是可解释的特征)
在这里插入图片描述
  尽管对多个实例的解释可能很有洞察力,但这些实例需要明智地选择,因为用户可能没有时间来检查大量的解释。我们用预算 B B B来表示人类所拥有的时间/耐心,它表示他们为了理解一个模型而愿意看的解释的数量。给定一组实例X,我们将拾取步骤定义为选择B个实例供用户检查的任务。下图是Submodular Pick算法的伪代码:

  1. 给出了一组实例的解释 X X X,给出选择实例个数 B B B
  2. 使用算法1给出 W W W矩阵(如上图所示);
  3. 使用特征重要性函数 I I I计算每个可解释特征的特征重要性( I 1 , ⋯   , I d ′ I_1,\cdots, I_{d^{\prime}} I1,,Id);
  4. c c c是定义覆盖范围的集合函数,使用文中公式(4)贪婪优化选中的实例集合 V V V.
    在这里插入图片描述

参考文章

[1] 知乎—LIME:我可以解释任何一个分类模型的预测结果
[2] CSDN—【论文阅读·2】”Why Should I Trust You?” Explaining the predictions of Any Classifier

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/60208.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言进阶第一课 -----------深度剖析数据在内存中的存储

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂…

组合总和 II——力扣40

文章目录 题目描述法一 回溯 题目描述 法一 回溯 class Solution{ public:vector<pair<int, int>>freq;vector<vector<int>> res;vector<int> seq;void dfs(int pos, int rest){//如果目标值为0&#xff0c;说明可能有一个组合或者rest本身为0 …

基于Java+SpringBoot+Vue的就业信息管理系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

redis 集群 1:李代桃僵 —— Sentinel

目前我们讲的 Redis 还只是主从方案&#xff0c;最终一致性。读者们可思考过&#xff0c;如果主节点凌晨 3 点突发宕机怎么办&#xff1f;就坐等运维从床上爬起来&#xff0c;然后手工进行从主切换&#xff0c;再通知所有的程序把地址统统改一遍重新上线么&#xff1f;毫无疑问…

C语言第十三课--------初阶指针的认识--------重要部分

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; &#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382;…

Hadoop 之 Hive 4.0.0-alpha-2 搭建(八)

Hadoop 之 Hive 搭建与使用 一.Hive 简介二.Hive 搭建1.下载2.安装1.解压并配置 HIVE2.修改 hive-site.xml3.修改 hadoop 的 core-site.xml4.启动 三.Hive 测试1.基础测试2.建库建表3.Java 连接测试1.Pom依赖2.Yarm 配置文件3.启动类4.配置类5.测试类 一.Hive 简介 Hive 是基于…

Nginx的搭建与核心配置

一、Nginx 1、Nginx概述 一款高新能、轻量级Web服务软件系统资源消耗低对HTTP并发连接的处理能力高单台物理服务器可支持30 000&#xff5e;50 000个并发请求。 2、Nginx主要功能&#xff1a; 静态文件服务&#xff1a;nginx可直接提供静态文件服务&#xff0c;HTML、CSS、J…

STM32CubeMX+VSCODE+EIDE+RT-THREAD 工程创建

Eide环境搭建暂且不表&#xff0c;后续补充。主要记录下Vscode环境下 创建Rt-thread工程的过程。分别介绍STM32CubeMX添加rtt支持包的方式和手动添加rtt kernel方式。STM32CubeMX生成工程的时候有"坑"&#xff0c;防止下次忘记&#xff0c;方便渡一下有缘人&#xff…

maven发布到中央仓库

创建账号 https://issues.sonatype.org 【第二步】登录申请新项目 右上角点击Create&#xff0c;Project选择第一项&#xff0c;有的时候带不出来第二个New Project&#xff0c;可以再选一次Project的选项。

centos7 ‘xxx‘ is not in the sudoers file...

如题 执行命令输入密码后时报错&#xff1a; [sudo] password for admin &#xff08;我的账户&#xff09;原因&#xff0c;当前用户还没有加入到root的配置文件中。 解决 vim打开配置文件&#xff0c;如下&#xff1a; #切换到root用户 su #编辑配置文件 vim /etc/sudoe…

2023软件测试面试热点300问(接口自动化测试篇)

分享100道涉及到的接口自动化测试面试题&#xff0c;供大家参考&#xff1a; 我已经把这些面试题全部整理在一个文档里面了&#xff0c;同时还有这些面试题的视频教程分享&#xff0c;全部放在文末了&#xff0c;需要的可以直接去观看&#xff0c;或者直接点击文末小卡片免费领…

路由器DHCP实验

拓扑图 配置 # 配置ip地址并开启dhcp [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip addr 192.168.1.1 255.255.255.0 [Huawei-GigabitEthernet0/0/0]dhcp enable## 配置dns地址 [Huawei-GigabitEthernet0/0/0]dhcp dns-list 192.168.1.5## 指定某个接口开通DHCP 功能…

Zebec Payroll :计划推出 WageLink On-Demand Pay,进军薪酬发放领域

“Zebec Protocol 生态旨以 Web3 的方式建立全新的公平秩序&#xff0c;基于其流支付体系构建的薪酬支付板块&#xff0c;就是解决问题的一把利刃” Zebec Protocol 在创立之初就有着一个十分宏大的愿景&#xff0c;其希望通过 Web3 的方式来进一步打破世界上一些不公平现象。 …

【小沐学NLP】在线AI绘画网站(百度:文心一格)

文章目录 1、简介2、文心一格2.1 功能简介2.2 操作步骤2.3 使用费用2.4 若干示例2.4.1 女孩2.4.2 昙花2.4.3 山水画2.4.4 夜晚2.4.5 古诗2.4.6 二次元2.4.7 帅哥 结语 1、简介 当下&#xff0c;越来越多AI领域前沿技术争相落地&#xff0c;逐步释放出极大的产业价值&#xff0…

OpenCV之信用卡识别实战

文章目录 代码视频讲解模板匹配文件主程序(ocr_template_match.py)myutils.py 代码 链接: https://pan.baidu.com/s/1KjdiqkyYGfHk97wwgF-j3g?pwdhhkf 提取码: hhkf 视频讲解 模板匹配文件 主程序(ocr_template_match.py) # 导入工具包 from imutils import contours # 从…

【LeetCode】236.二叉树的最近公共祖先

题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是它…

刷了3个月的华为OD算法题,总结了270多道,谈谈自己的感悟

目录 一、考研二战&#xff0c;入职华为&#xff0c;反向调剂电子科大深圳二、题目描述三、输入描述四、输出描述五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明 大家好&#xff0c;我是哪吒。 最近一直在刷华为OD机试的算法题&#xff0c;坚持一天三道题的节…

STL空间配置器入门

STL简介   STL&#xff08;Standard Template Library&#xff0c;标准模板库&#xff09;&#xff0c;从根本上说&#xff0c;STL是一些“容器”的集合&#xff0c;这些“容器”有list,vector,set,map等&#xff0c;STL也是算法和其他一些组件的集合。 谈及组件&#xff0c…

如何在免费版 pycharm 中使用 github copilot (chatGPT)?

起因 在 vscode 中使用了 github copilot 以后&#xff0c;感觉这个人工智能还不错。 但 vscode 对于 python 项目调试并不是特别方便&#xff0c;所以想在 Pycharm 中也能使用同一个 github 账号&#xff0c;用上 copilot 的功能。 不需要等待&#xff0c;安装即用&#xff…

C++和Lua交互总结

C和Lua交互总结 Chapter1. C和Lua交互总结一、Lua与C的交互机制——Lua堆栈二、堆栈的操作三、C 调用 Lua1&#xff09;C获取Lua值2&#xff09;C调用Lua函数示例&#xff1a; 四、Lua 调用 C包装C函数 最后总结一下 Chapter1. C和Lua交互总结 原文链接&#xff1a;https://bl…