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/ ↩︎

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zabbix配置文件中Server和ServerActive参数讲解

目录 参数总结 实例: Zabbix Server 配置 (zabbix_server.conf) Zabbix Agent 配置 (zabbix_agentd.conf) 配置文件解析 实际应用 Zabbix Server 配置文件 (zabbix_server.conf) 对代理端的影响 1. Server 参数 2. ServerActive 参数 Zabbix Agent 配置文…

ubuntu 22 安装 lua 环境 编译lua cjson 模块

在 windows 下使用 cygwin 编译 lua 和 cjson 简直就是灾难,最后还是到 ubuntu 下完成了。 1、下载lua源码(我下载的 5.1 版本,后面还有一个小插曲), 直接解压编译,遇到一个 readline.h not found 的问题,需要安装 re…

python使用langchain整合通义千文

首先pip安装langchain和dashscope pip install langchain pip install langchain_community pip install dashscope --upgrade然后测试一下运行效果 from langchain_community.chat_models.tongyi import ChatTongyi from langchain.schema import HumanMessage #api_key可以…

如何使用C++中的内联函数和编译器优化

在C中,内联函数(inline functions)是一种请求编译器尝试在调用点将函数体展开,而不是按照常规函数调用的方式(即产生调用指令、保存寄存器、栈帧操作等)来执行的特殊函数。内联函数主要用于小的、频繁调用的…

CentOS命令格式及常用命令

在CentOS中,系统目录结构遵循了标准的Linux文件系统层次结构(Filesystem Hierarchy Standard,FHS)。下面是CentOS系统中一些重要的目录及其用途的介绍: 1. /(根目录):整个文件系统的…

207 课程表

题目 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。 …

ArcGIS Pro SDK (七)编辑 13 注解

ArcGIS Pro SDK (七)编辑 13 注解 文章目录 ArcGIS Pro SDK (七)编辑 13 注解1 注释构建工具2 以编程方式启动编辑批注3 更新批注文本4 修改批注形状5 修改批注文本图形6 接地到网格 环境:Visual Studio 2022 .NET6 …

在 PostgreSQL 中,如何处理数据的版本控制?

文章目录 一、使用时间戳字段进行版本控制二、使用版本号字段进行版本控制三、使用历史表进行版本控制四、使用 RETURNING 子句获取更新前后的版本五、使用数据库触发器进行版本控制 在 PostgreSQL 中,处理数据的版本控制可以通过多种方式实现,每种方式都…

ensorFlow是由Google开发的

TensorFlow是由Google开发的一个开源的深度学习框架。它提供了一种灵活且高效的方法来构建、训练和部署各种机器学习模型。 TensorFlow的基本概念是计算图(computational graph)。在TensorFlow中,用户通过定义计算图来描述模型的结构和计算流…

JVM(Java虚拟机)详解(JVM 内存模型、堆、GC、直接内存、性能调优)

JVM(Java虚拟机) JVM 内存模型 结构图 jdk1.8 结构图(极简) jdk1.8 结构图(简单) JVM(Java虚拟机): 是一个抽象的计算模型。如同一台真实的机器,它有自己…

思维导图插件--jsMind的使用

vue引入jsmind(右键菜单)_jsmind.menu.js-CSDN博客 第一版 vue-JsMind思维导图实现(包含鼠标右键自定义菜单)_jsmind 右键菜单-CSDN博客 // 新增节点addNode() {console.log(this.get_selected_nodeid());this.get_selected_…

Vue的学习之数据与方法

前段期间&#xff0c;由于入职原因没有学习&#xff0c;现在已经正式入职啦&#xff0c;接下来继续加油学习。 一、数据与方法 文字备注已经在代码中&#xff0c;方便自己学习和理解 <!DOCTYPE html> <html><head><meta charset"utf-8">&l…

如何使用HippoRAG增强LLM的记忆

大型语言模型&#xff08;LLM&#xff09;已经证明是一种非常宝贵的思考工具。经过大量文本、代码和其他媒体数据集的训练&#xff0c;它们能够创作出接近人类水平的文章、翻译语言、生成图像&#xff0c;还能以信息丰富的方式回答人们提出的问题&#xff0c;甚至可以编写不同类…

SQLite 附加数据库

SQLite 附加数据库 SQLite 是一种轻量级的数据库管理系统,因其小巧、快速和易于使用而广受欢迎。在 SQLite 中,可以将多个数据库文件附加到单个数据库连接中,从而允许用户在不同的数据库之间轻松切换和操作数据。本文将详细介绍如何在 SQLite 中附加数据库,并探讨其使用场…

CANopen协议开发梳理总结笔记教程

0、提醒 CANOpen使用时&#xff0c;需要清楚什么是大端和小端&#xff0c;这对于CANOpen数据发送及解析时&#xff0c;有很大的帮助。且学习开发CANOpen时&#xff0c;需要具备一定的CAN基础。 1、CANOpen协议介绍 ①、什么是CANOpen协议 CANOpen协议是一种架构在控制局域网络…

基于CLIP特征的多模态大模型中的视觉短板问题

【论文极速读】 基于CLIP特征的多模态大模型中的视觉短板问题 FesianXu 20240706 at Tencent WeChat search team 前言 今天读到篇CVPR 24’的论文 [1]&#xff0c;讨论了常见的多模态大模型&#xff08;大多都基于CLIP语义特征&#xff0c;以下简称为MLLM&#xff09;中的视觉…

若依 / 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…

Python处理表格数据常用的 N+个操作

Python作为一种强大且易用的编程语言&#xff0c;其在数据处理方面表现尤为出色。特别是当我们面对大量的表格数据时&#xff0c;Python的各类库和工具可以极大地提高我们的工作效率。以下&#xff0c;我将详细介绍Python处理表格数据常用的操作。 首先&#xff0c;我们需要安…

2024.7.5总结

今晚的总结是在图书馆前的梯子上写的&#xff0c;我多次辗转&#xff0c;可能是我最后一次看看这个学校了&#xff0c;明天就要踏上回家的旅途了。还有半个月入职&#xff0c;干脆回家看看&#xff0c;毕竟&#xff0c;工作以后机会不多了。 下午的时候&#xff0c;用顺丰寄了…

复现YOLO_ORB_SLAM3_with_pointcloud_map项目记录

文章目录 1.环境问题2.遇到的问题2.1编译问题1 monotonic_clock2.2 associate.py2.3 associate.py问题 3.运行问题 1.环境问题 首先环境大家就按照github上的指定环境安装即可 环境怎么安装网上大把的资源&#xff0c;自己去找。 2.遇到的问题 2.1编译问题1 monotonic_cloc…