当前位置: 首页 > news >正文

Interpretability 与 Explainability 机器学习

「AI秘籍」系列课程:

  • 人工智能应用数学基础
  • 人工智能Python基础
  • 人工智能基础核心知识
  • 人工智能BI核心知识
  • 人工智能CV核心知识

Interpretability 模型和 Explainability 模型之间的区别以及为什么它可能不那么重要

img

当你第一次深入可解释机器学习领域时,你会注意到类似的术语随处可见。Interpretability 与Explainability。解释与说明。我们甚至无法决定该领域的名称——是可解释机器学习 (interpretable machine learning - IML) 还是可解释人工智能 (explainable AI - XAI)?

我们将讨论一个定义,并希望澄清一些事情。这就是 Interpretability 模型和 Explainability 模型之间的区别。不过,我们应该警告你……

没有共性!

部分问题在于 IML 是一个新领域。定义仍在提出和争论中。机器学习研究人员也很快为已经存在的概念创造新术语。因此,我们将重点关注一个潜在的定义 1

Interpretability 与机器学习模型将原因和结果练习起来的准确性有关,指在机器学习中可以观察到系统中因果关系(先验推导)的程度。

Explainability 与隐藏在深层网络中的参数证明结果的能力有关,是指机器学习的内部机制可以用人类语言解释(后验解释)的程度。

具体来说,我们将:

  • 了解如何将模型分类为 interpretable 或者 explainable
  • 讨论 interpretability 的概念及其与此定义的关系
  • 了解该定义的问题以及为什么可能没有必要使用它来对模型进行分类

Interpretable 机器学习

如果某事物能够被理解,我们就说它是可解释的。考虑到这一点,如果一个模型能够被人类自己理解,我们就说它是可解释的。我们可以查看模型参数或模型摘要,并准确了解预测是如何做出的。这类模型的另一个术语是intrinsically interpretable model(本质上可解释的模型)2

Interpretable 模型可以被人类理解,无需任何其他辅助/技术。

决策树是此类模型的一个很好的例子。图 1给出了一棵经过训练的树,用于预测某人是否会拖欠(是)或不会拖欠(否)汽车贷款。要了解如何做出预测,我们只需遍历树的节点即可。

例如,假设一名29 岁、月收入3000 美元的女子提出申请。我们想了解为什么她会通过基于此模型的自动承保系统获得贷款。此人超过25 岁,所以我们直接进入第一个节点。然后,她的收入≥2000,所以我们再次直接进入 “No” 叶节点。换句话说,该模型预测该学生不会违约,贷款将获得批准。

在这里插入图片描述

假设我们还想要一个模型来预测一个人的最大贷款额度(Y)。我们使用一个人的年龄和收入作为特征。使用线性回归,我们得到以下等式:

Y = 100 × a g e + 10 × i n c o m e + 200 Y = 100 \times age + 10 \times income + 200 Y=100×age+10×income+200

我们可以很容易地看出为什么上述学生的预计最高贷款额为33,100 美元。也就是说,贷款额增加了:

  • 每增加一岁,需支付 100 美元
  • 每增加 1 美元收入就增加 10 美元

因此,就像决策树一样,我们可以查看该模型的参数并了解它如何进行预测。这是因为这些模型相对简单。决策树有几个节点,线性回归模型有 3 个参数。随着模型变得越来越复杂,我们不再能以这种方式理解它们。

Explainable 机器学习

您可以将 ML 模型视为一个函数。模型特征是输入,预测是输出。Explainable 模型是一种人类无法理解的复杂函数。这种模型的另一个名称是黑盒模型。我们需要一种额外的方法/技术才能窥视黑盒并了解模型的工作原理。

Explainable 模型需要额外的技术才能被人类理解

这种模型的一个例子是随机森林。随机森林由许多决策树组成。在做出最终预测时,会考虑所有单个树的预测。要了解随机森林的工作原理,我们必须同时了解所有单个树的工作原理。即使只有少量的树,人类也做不到这一点。

在这里插入图片描述

图片来源:Satya Mallick & Sunita Nayak

当我们开始研究神经网络等算法时,事情变得更加复杂。具体来说,用于图像识别的卷积神经网络 AlexNet362,378,344 个参数 4。相比之下,我们上面的回归模型只有3 个参数。人类不可能仅通过查看参数权重来理解 AlexNet 之类的模型的工作原理。

用于理解 explainable 模型的技术

因此,我们需要一些额外的技术来理解这些算法的工作原理。这些包括为特定模型创建的方法。例如,DeepLIFT: https://github.com/kundajelab/deeplift 就是为解释神经网络而创建的。它们还包括可应用于任何模型的模型无关方法。这些方法包括 LIME:https://github.com/marcotcr/lime、SHAP: https://github.com/slundberg/shap、PDPs 和 ICE Plots。

在这里插入图片描述

请记住,即使有了这些技术,我们也无法像使用i nterpretable 模型那样确定模型的工作原理。这些技术只能提供模型如何进行预测的近似值。它们都有自己的假设和局限性。

这意味着在使用任何技术得出结论时都应保持一定程度的谨慎。如果可能,应结合使用多种技术。还应使用数据可视化和领域知识来验证结论。

Interpretability

到目前为止,我们已经讨论了模型是 interpretable 还是 explainable。然而,应用这个二元标志可能并不总是有意义的。模型的 Interpretability 是一个范围。如果一个模型比另一个模型更容易让人理解它的预测方式,那么这个模型就比另一个模型更容易解释。

Interpretability 是指模型能被人类理解的程度2

图 2给出了可解释性频谱。卷积神经网络的可解释性不如随机森林,而随机森林的可解释性又不如决策树。大多数模型通常可以归类为可解释或可解释的。然而,存在一个灰色区域,人们对此的分类意见不一。

在这里插入图片描述

定义问题

这个灰色区域是我们发现这个定义的第一个问题。我们可能同意,一个有 2 棵树的随机森林是可解释的。然而,一个有 100 棵树的随机森林是不可解释的。在什么时候(即有多少棵树),模型从 interpretable 变为 explainable ?即使是具有许多节点的决策树或具有许多参数的回归,如果没有额外的技术,也可能变得过于复杂,人类无法理解。

问题是我们试图根据人类的理解能力对模型进行分类。没有正式的方法来衡量这一点。你理解模型的能力取决于你的技术技能和专业经验。即使在专业人士中,也会有分歧。

另一个问题是我们定义什么为附加技术。为了理解哪怕是最简单的模型,我们也会寻求其他方法的帮助。例如,在解释线性回归的权重时,通常使用相关矩阵。这是否意味着回归现在是一个 explainable 模型?

显示高度相关特征的相关热图

这就引出了一个问题:我们真的需要这个定义吗?IML 的目标是理解和解释我们的模型。我们不需要将它们归类为 interpretable 或 explainable。我们选择的方法最终将取决于模型的类型和我们寻求回答的具体问题。

参考


  1. C. Rudin, Stop explaining black-box machine learning models for high stakes decisions and use interpretable models instead (2019), https://arxiv.org/abs/1811.10154 ↩︎

  2. C. Molnar, Interpretable Machine Learning: A Guide for Making Black Box Models Explainable (2023), Chapter 3: Interpretability, https://christophm.github.io/interpretable-ml-book/taxonomy-of-interpretability-methods.html ↩︎ ↩︎

  3. AlexNet, https://en.wikipedia.org/wiki/AlexNet ↩︎

  4. S. Mallick & S. Nayak, Number of Parameters and Tensor Sizes in a Convolutional Neural Network (CNN) (2018), https://www.learnopencv.com/number-of-parameters-and-tensor-sizes-in-convolutional-neural-network/ ↩︎

相关文章:

Interpretability 与 Explainability 机器学习

「AI秘籍」系列课程: 人工智能应用数学基础人工智能Python基础人工智能基础核心知识人工智能BI核心知识人工智能CV核心知识 Interpretability 模型和 Explainability 模型之间的区别以及为什么它可能不那么重要 当你第一次深入可解释机器学习领域时,你会…...

Vue3项目如何使用npm link本地测试组件库

一、组件库操作 1、在组件库项目中先运行npm run lib,其效果如下 2、在组件库项目中在运行npm link,其效果如下 会创建一个全局的软连接指向本地的组件库 二、Vue3项目使用 1、在项目中运行 npm link 组件名称(即:组件库packag…...

后端之路——阿里云OSS云存储

一、何为阿里云OSS 全名叫“阿里云对象存储OSS”,就是云存储,前端发文件到服务器,服务器不用再存到本地磁盘,可以直接传给“阿里云OSS”,存在网上。 二、怎么用 大体逻辑: 细分的话就是: 1、准…...

大模型/NLP/算法面试题总结2——transformer流程//多头//clip//对比学习//对比学习损失函数

用语言介绍一下Transformer的整体流程 1. 输入嵌入(Input Embedding) 输入序列(如句子中的单词)首先通过嵌入层转化为高维度的向量表示。嵌入层的输出是一个矩阵,每一行对应一个输入单词的嵌入向量。 2. 位置编码&…...

【atcoder】习题——位元枚举

题意:求i&M的popcount的和,i属于0……N 主要思路还是变加为乘。 举个例子N22,即10110 假设M的第3位是1,分析N中: 00110 00111 00100 00101 发现其实等价于 0010 0011 0000 0001 也就是左边第4位和第5…...

世界人工智能大会 | 江行智能大模型解决方案入选“AI赋能新型工业化创新应用优秀案例”

日前,2024世界人工智能大会暨人工智能全球治理高级别会议在上海启幕。本次大会主题为“以共商促共享,以善治促善智”,汇聚了上千位全球科技、产业界领军人物,共同探讨大模型、数据、新型工业化等人工智能深度发展时代下的热点话题…...

css浮动及清除浮动副作用的三种解决方法

css浮动及清除浮动副作用的三种解决方法 文章目录 css浮动及清除浮动副作用的三种解决方法一、浮动定义二、浮动元素设置三、清除浮动副作用方法一四、清除浮动副作用方法二五、清除浮动副作用方法三 一、浮动定义 浮动(Float)是CSS中一种布局技术&…...

图像类别生成数字标签

类别 COCO 2017数据集分类标签。coco2017数据集下载。 cls [background, person, bicycle, car, motorcycle, airplane, bus,train, truck, boat, traffic light, fire hydrant,stop sign, parking meter, bench, bird, cat, dog,horse, sheep, cow, elephant, bear, zebra,…...

【Python】已解决:SyntaxError: invalid character in identifier

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:SyntaxError: invalid character in identifier 一、分析问题背景 在Python编程中,SyntaxError: invalid character in identifier是一个常见的编译…...

RDNet实战:使用RDNet实现图像分类任务(一)

论文提出的模型主要基于对传统DenseNet架构的改进和复兴,通过一系列创新设计,旨在提升模型性能并优化其计算效率,提出了RDNet模型。该模型的主要特点和改进点: 1. 强调并优化连接操作(Concatenation) 论文…...

Java小白入门到实战应用教程-介绍篇

writer:eleven 介绍 编程语言介绍 编程语言按照抽象层次和硬件交互的方式划分为低级编程语言和高级编程语言。 低级编程语言更接近计算机硬件层面,通常具有执行效率高的特点,但是由于注重计算机底层交互,所以编程难度相对较大。 高级编程…...

python脚本“文档”撰写——“诱骗”ai撰写“火火的动态”python“自动”脚本文档

“火火的动态”python“自动”脚本文档,又从ai学习搭子那儿“套”来,可谓良心质量👍👍。 (笔记模板由python脚本于2024年07月07日 15:15:33创建,本篇笔记适合喜欢钻研python和页面源码的coder翻阅) 【学习的细节是欢悦…...

若依 / ruoyi-ui:执行yarn dev 报错 esnext.set.difference.v2.js in ./src/utils/index.js

一、报错信息 These dependencies were not found: * core-js/modules/esnext.set.difference.v2.js in ./src/utils/index.js * core-js/modules/esnext.set.intersection.v2.js in ./src/utils/index.js * core-js/modules/esnext.set.is-disjoint-from.v2.js in ./src/utils…...

移动端Vant-list的二次封装,查询参数重置

Vant-list的二次封装 场景&#xff1a;在写项目需求的时候&#xff0c;移动端有用到vant-list组件。后续需求更新说要对列表数据页加搜索和筛选的功能。发现每次筛选完得在页面内手动重置一次查询参数。不方便&#xff0c;所以封了一层。 二次封装代码 <template><…...

SMU Summer 2024 Contest Round 2

[ABC357C] Sierpinski carpet - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路:通过因为图形的生成过程是完全一样的。可以通过递归&#xff0c;不断分形。函数process(x,y,k)定义为以坐标(x,y)为左上角,填充sqrt3(k)级的地毯。 int n; int c[800][800]; 默认全为…...

Qt:11.输入类控件(QLineEdit-单行文本输入控件、QTextEdit-多行文本输入控件、QComboBox-下拉列表的控件)

一、QLineEdit-单行文本输入控件&#xff1a; 1.1QLineEdit介绍&#xff1a; QLineEdit 是 Qt 库中的一个单行文本输入控件&#xff0c;不能换行。允许用户输入和编辑单行文本。 1.2属性介绍&#xff1a; inputMask 设置输入掩码&#xff0c;以限定输入格式。setInputMask(con…...

Qt 音频编程实战项目

一Qt 音频基础知识 QT multimediaQMediaPlayer 类&#xff1a;媒体播放器&#xff0c;主要用于播放歌曲、网络收音 机等功能。QMediaPlaylist 类&#xff1a;专用于播放媒体内容的列表。 二 音频项目实战程序 //版本5.12.8 .proQT core gui QT multimedia greate…...

C#委托事件的实现

1、事件 在C#中事件是一种特殊的委托类型&#xff0c;用于在对象之间提供一种基于观察者模式的通知机制。 1.1、事件的发送方定义了一个委托&#xff0c;委托类型的声明包含了事件的签名&#xff0c;即事件处理器方法的签名。 1.2、事件的订阅者可以通过运算符来注册事件处理器…...

Java策略模式在动态数据验证中的应用

在软件开发中&#xff0c;数据验证是一项至关重要的任务&#xff0c;它确保了数据的完整性和准确性&#xff0c;为后续的业务逻辑处理奠定了坚实的基础。然而&#xff0c;不同的数据来源往往需要不同的验证规则&#xff0c;如何在不破坏代码的整洁性和可维护性的同时&#xff0…...

【Linux】shell基础知识点(updating)

1.输出重定向2.多命令批量执行&#xff08;; 、&&、 ||&#xff09;3.脚本不同方式执行的区别&#xff08;source、bash、sh、./&#xff09;4.理解环境变量5.export6.引号的使用last.命令相关 1.输出重定向 3种数据流&#xff1a; stdin&#xff1a;标准输入&#xf…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...