机器学习中的可解释性

「AI秘籍」系列课程:

  • 人工智能应用数学基础

  • 人工智能Python基础

  • 人工智能基础核心知识

  • 人工智能BI核心知识

  • 人工智能CV核心知识

为什么我们需要了解模型如何进行预测

我们是否应该始终信任表现良好的模型?模型可能会拒绝你的抵押贷款申请或诊断你患有癌症。这些决定的后果是严重的,即使它们是正确的,我们也希望得到解释。人类可以告诉你,你的收入太低,无法获得抵押贷款,或者特定的细胞群可能是恶性的。提供类似解释的模型比仅提供预测的模型更有用。

在这里插入图片描述

通过获得这些解释,我们说我们正在解释一个机器学习模型。在本文的其余部分,我们将更详细地解释可解释性的含义。然后,我们将继续讨论能够解释模型的重要性和好处。然而,仍然存在一些缺点。最后,我们将讨论这些问题,以及为什么在某些情况下,你可能更喜欢不太可解释的模型。

我们所说的可解释性是什么意思?

在之前的一篇文章中,我讨论了模型可解释性的概念以及它与 interpretable 和 explainable 的机器学习的关系。大部分时候,我们可以将 interpretable 理解为可解释模型,将 explainable 理解为解释性模型。其区别就在于前者通常比较简单、透明,人类可以很容易理解模型是如何得出结论的,而后者则需要通过后处理技术和工具来解释复杂和黑箱模型的决策过程,通过解释工具和方法,揭示模型的内部工作机制和决策依据。

总而言之,可解释性是指模型在人类眼中可以被理解的程度。如果人类更容易理解模型 A 如何进行预测,则模型 A 比模型 B 更具可解释性。例如,卷积神经网络的可解释性不如随机森林,而随机森林的可解释性又不如决策树。

考虑到这一点,如果一个模型无需任何其他辅助/技术就能被理解,我们就说它是一个可解释的模型。Interpretable 的模型具有高度可解释性。相比之下,Explainable 的模型太复杂了,如果没有其他技术的帮助就无法理解。我们说这些模型的可解释性很低。我们可以在图 1 中看到这些概念是如何关联的。一般来说,模型可以分为 interpretable 或者 explainable,但也存在人们意见不一致的灰色地带。

在这里插入图片描述

为什么可解释性很重要?

如上所述,我们需要额外的技术,例如[特征重要性](https://machinelearningmastery.com/calculate-feature-importance-with-python/#:~:text=Feature importance refers to techniques,at predicting a target variable.)1或LIME: https://github.com/marcotcr/lime,来了解 explainable 模型的工作原理。实现这些技术可能需要付出很多努力,而且重要的是,它们只能提供模型工作原理的近似值。因此,我们不能完全确定我们理解了 explainable 模型。在比较 interpretable 模型时,我们可能会遇到类似的情况。

在这里插入图片描述

例如,逻辑回归和决策树。这些都不需要额外的技术,但逻辑回归可能仍需要更多努力来解释。我们需要了解 S 型函数以及系数与几率/概率的关系。这种复杂性也可能导致我们的解释错误。一般来说,模型越容易解释,它就越容易理解,我们就越能确定我们的理解是正确的。可解释性很重要,因为它有很多好处。

更容易解释

我们的第一个好处是 interpretable 模型更容易向其他人解释。对于任何主题,我们理解得越好,解释起来就越容易。我们还应该能够用简单的术语来解释它(即不提及技术细节)。在行业中,许多人可能希望对你的模型的工作原理进行简单的解释。这些人不一定具有技术背景或机器学习经验。

例如,假设我们创建了一个模型,可以预测某人是否会提出人寿保险索赔。我们希望使用此模型来自动化公司的人寿保险承保。为了批准该模型,我们的老板需要详细解释其工作原理。不满的客户可能会要求解释为什么他们没有获得人寿保险批准。监管机构甚至可以依法要求提供这样的解释。

在这里插入图片描述

试图向这些人解释神经网络如何进行预测可能会引起很多困惑。由于不确定性,他们甚至可能不会接受这种解释。相比之下,像逻辑回归这样的可解释模型可以用人类的术语来理解。这意味着它们可以用人类的术语来解释。例如,我们可以精确地解释顾客的吸烟习惯在多大程度上增加了他们的死亡概率。

更容易感知、检查和修复错误

上面描述的关系是因果关系(即吸烟导致癌症/死亡)。一般来说,机器学习模型只关心关联。例如,模型可以使用某人的原籍国来预测他们是否患有皮肤癌。但是,就像吸烟一样,我们能说某人的国家导致癌症吗?原因是皮肤癌是由阳光引起的,而有些国家比其他国家阳光更充足。所以我们只能说皮肤癌与某些国家有关。

在这里插入图片描述

华盛顿大学研究人员进行的一项实验很好地说明了关联可能出错的地方。研究人员训练了一个图像识别模型,将动物分类为哈士奇或狼。他们使用 LIME 试图了解他们的模型如何做出预测。在图 2 中,我们可以看到该模型的预测是基于图像背景。如果背景有雪,动物总是被归类为狼。他们基本上建立了一个检测雪的模型。

问题在于狼与雪有关。狼通常会在雪地里出现,而哈士奇则不会。这个例子告诉我们,模型不仅可以做出错误的预测,还可以以错误的方式做出正确的预测。作为数据科学家,我们需要检查我们的模型,以确保它们不会以这种方式进行预测。你的模型越容易解释,就越容易做到这一点。

在这里插入图片描述

更容易确定未来表现

随着时间的推移,模型的预测能力可能会下降。这是因为模型特征和目标变量之间的关系可能会发生变化。例如,由于工资差距,收入目前可能是性别的良好预测指标。随着社会变得更加平等,收入将失去其预测能力。我们需要意识到这些潜在的变化及其对我们模型的影响。对于 explainable 模型来说,这一点更难做到。由于特征的使用方式不太清楚,即使我们知道对单个特征的影响,我们也可能无法判断对整个模型的影响。

更容易从模型中学习

试图在未知事物中寻找意义是人类的天性。机器学习可以帮助我们发现数据中未知的模式。但是,我们无法仅通过查看模型的预测来识别这些模式。如果我们无法解释我们的模型,那么任何教训都会丢失。最终,模型的可解释性越差,从中学习就越困难。

在这里插入图片描述

算法公平性

重要的是,你的模型必须做出公正的决策,这样它们才不会延续任何历史不公正。识别偏见的来源可能很困难。它通常来自模型特征与受保护变量(例如种族或性别)之间的关联。例如,由于南非有强制隔离的历史,种族与某人的所在地\邻里关系密切。位置可以作为种族的代理。使用位置的模型可能会偏向某一种族。

使用 interpretable 模型并不一定意味着你将拥有一个无偏见的模型。这也不意味着更容易确定模型是否公平。这是因为大多数公平性衡量标准(例如假阳性率、不同影响)与模型无关。对于任何模型,它们都很容易计算。使用 interpretable 模型确实可以更轻松地识别和纠正偏见来源。我们知道正在使用哪些特征,并且可以检查其中哪些与受保护的变量相关。

在这里插入图片描述

可解释性的缺点

好的,我们明白了…… interpretable 模型很棒。它们更容易理解、解释和学习。它们还使我们能够更好地感知当前性能、未来性能和模型公平性。然而,可解释性也存在缺点,在某些情况下我们更喜欢 explainable 模型。

容易被操纵

基于机器学习的系统容易受到操纵或欺诈。例如,假设我们有一个自动发放汽车贷款的系统。一个重要特征可能是信用卡数量。客户拥有的卡越多,风险就越大。如果客户知道这一点,他们可以暂时取消所有卡,申请汽车贷款,然后重新申请所有信用卡。

在这里插入图片描述

客户取消信用卡时偿还贷款的概率不会改变。客户操纵模型做出了错误的预测。模型越容易解释,就越透明,越容易操纵。即使模型的内部工作原理是保密的,情况也是如此。特征和目标变量之间的关系通常更简单,因此更容易猜测。

学习内容更少

我们提到,interpretable 模型更容易学习。但另一方面,它们不太可能教会我们新东西。像神经网络这样的 explainable 模型可以自动模拟数据中的交互和非线性关系。通过解释这些模型,我们可以发现这些我们从未知道存在的关系。

相比之下,线性回归等算法只能对线性关系进行建模。要对非线性关系进行建模,我们必须使用特征工程将任何相关变量纳入我们的数据集。这将需要事先了解这些关系,从而违背了解释模型的目的。

领域知识/专业知识要求

构建 interpretable 模型需要大量的领域知识和专业知识。通常,interpretable 模型(如回归)只能对数据中的线性关系进行建模。要对非线性关系进行建模,我们必须执行特征工程。例如,对于医学诊断模型,我们可能希望使用身高和体重来计算 BMI。了解哪些特征具有预测性以及创建哪些特征需要特定领域的领域知识。

你的团队可能不具备这些知识。或者,你可以使用 explainable 模型,该模型将自动对数据中的非线性关系进行建模。这样就无需创建任何新特征;本质上将思考留给了计算机。正如我们上面详细讨论的那样,缺点是,对如何使用这些特征进行预测的理解较差。

在这里插入图片描述

复杂性与准确性之间的权衡

从上面我们可以看出,一般来说,模型越简单,可解释性就越强。因此,为了获得更高的可解释性,可能会以较低的准确度为代价。这是因为,在某些情况下,较简单的模型可能会做出不太准确的预测。这实际上取决于你要解决的问题。例如,使用逻辑回归进行图像识别会得到较差的结果。

对于许多问题,interpretable 模型的表现与 explainable 模型一样好。在之前的文章「特征工程的力量」中,我们将 interpretable 模型 Logistic 回归与 explainable 模型神经网络进行了比较。我们证明,通过对我们的问题进行一些思考并创建新特征,我们可以用 interpretable 模型实现类似的准确性。这是对我们在本文中讨论的一些概念的一个很好的实践。

特征工程的力量

为什么你应该使用逻辑回归来建模非线性决策边界(使用 Python 代码)

参考


  1. How to Calculate Feature Importance With Python, https://machinelearningmastery.com/calculate-feature-importance-with-python/#:~:text=Feature%20importance%20refers%20to%20techniques,at%20predicting%20a%20target%20variable. ↩︎

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

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

相关文章

高性能Python网络框架实现网络应用详解

概要 Python作为一种广泛使用的编程语言,其简洁易读的语法和强大的生态系统,使得它在Web开发领域占据重要位置。高性能的网络框架是构建高效网络应用的关键因素之一。本文将介绍几个高性能的Python网络框架,详细描述它们的特点、使用场景及具体示例代码,帮助高效实现网络应…

【linux高级IO(二)】多路转接之select详解

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux高级IO 1. 前言2. 初识s…

基于vue的可视化大屏

要提前准备一个xinyang.json文件 可以在这个网站下载 DataV.GeoAtlas地理小工具系列 (aliyun.com) 代码结构 总框架代码&#xff1a; <template><div><div class"center"><center-left /><center-map /><center-right /><…

Xterminal工具的安装与使用体验

Xterminal工具的安装与使用体验 一、Xterminal简介二、Xterminal核心特性三、Xterminal使用场景四、Xterminal下载地址五、Xterminal的基本使用5.1 设置仓库密码5.2 SSH连接5.3 Windows远程桌面5.4 笔记功能5.5 AI工具 六、总结 一、Xterminal简介 Xterminal是一款专为开发者设…

FastReport 指定sql 和修改 数据库连接地址的 工具类 :FastReportHelper

FastReport 指定sql 和修改 数据库连接地址的 工具类 &#xff1a;FastReportHelper 介绍核心代码&#xff1a;完整代码&#xff1a; 介绍 在FastReport中&#xff0c;经常会遇到需要给 sql 加条件的情况&#xff0c;或者给数据库地址做更换。 &#xff08;废话不多说&#x…

达梦数据库的系统视图v$auditrecords

达梦数据库的系统视图v$auditrecords 在达梦数据库&#xff08;DM Database&#xff09;中&#xff0c;V$AUDITRECORDS 是专门用来存储和查询数据库审计记录的重要系统视图。这个视图提供了对所有审计事件的访问权限&#xff0c;包括操作类型、操作用户、时间戳、目标对象等信…

1.DDR3 SO-DIMM 内存条硬件总结

最近在使用fpga读写DDR3&#xff0c;板子上的DDR3有两种形式与fpga相连&#xff0c;一种是直接用ddr3内存颗粒&#xff0c;另一种是通过内存条的形式与fpga相连。这里我们正好记录下和ddr3相关的知识&#xff0c;先从DDR3 SO-DIMM 内存条开始。 1.先看内存条的版本 从JEDEC下载…

如果你想手写Linux系统

哈喽&#xff0c;我是子牙老师。今天咱们聊聊这个话题吧&#xff0c;Linux作为当今科技世界的地基&#xff0c;我们越来越接近真理了&#xff0c;有木有&#xff1f; 这个文章的角度&#xff0c;你可能全网都很难找到第二篇如此系统讲透这个问题的文章 你可能想问&#xff1a…

强化学习编程实战-2马尔可夫决策过程

2.1 从多臂赌博机到马尔可夫决策过程 如图2-1&#xff0c;图中A为多臂赌博机&#xff0c;B为一堆鸳鸯&#xff0c;其中左上角为雄性鸳鸯&#xff0c;右上角为雌性鸳鸯&#xff0c;B展示的任务是雄性鸳鸯绕过障碍物找到词性鸳鸯。跟多臂赌博机不同的是&#xff0c;雄性鸳鸯经过一…

【SpringCloud应用框架】Nacos集群配置

第八章 Spring Cloud Alibaba Nacos之集群配置 文章目录 一、Linux版NacosMySql生产环境配置具体配置&#xff1a; 二、Nacos集群配置更改Nacos启动命令配置原理具体配置测试启动总结 一、Linux版NacosMySql生产环境配置 上一篇博客中已经了解了Nacos生产环境下需要搭建集群配…

angular 请求响应拦截

在module中provide 对请求做一些操作 对响应做一些操作 import { Injectable } from angular/core; import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpResponse } from angular/common/http; import { Observable, throwError } from rxjs; import { catc…

[ControlNet] Adding Conditional Control to Text-to-Image Diffusion Models

1、目的 让预训练好的大型DDPM模型支持额外的输入条件&#xff08;如Canny edges、Hough lines、user scribbles、segmentation maps、human key points、shape normals、depths等&#xff09; 不同于image-to-image translation致力于学习不同domain之间的映射&#xff0c;Con…

【Mac】Folder Icons for mac(文件夹个性化图标修改软件)软件介绍

软件介绍 Folder Icons for Mac 是一款专为 macOS 设计的应用程序&#xff0c;主要用于个性化和定制你的文件夹图标。以下是它的主要特点和使用方法&#xff1a; 主要特点&#xff1a; 个性化文件夹图标 Folder Icons for Mac 允许用户为 macOS 上的任何文件夹定制图标。你…

C嘎嘎:类和对象(一)

目录 面向过程和面向对象的初步认识 类的引入 类的定义 类的访问限定符及封装 访问限定符 封装 类的作用域 类的实例化 类对象模型 如何计算类对象大小 结构体内存对齐规则 this指针 this指针的引出 this指针的特性 类的6个默认成员函数 构造函数 概念 特性 …

前端vue打印后端对象为[object,object]

今天给自己项目进行编写前端页面时&#xff0c;惊讶的发现&#xff0c;自己进行打印后端传递的对象&#xff0c;一直显示未[object,object]&#xff0c;如下图所示&#xff1a; 感觉很奇怪&#xff0c;于是我猜测是不是自己获取的返回数据的问题&#xff0c;在进行添加了datat…

关于Linux的操作作业!24道题

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

Sleuth--链路追踪

1 链路追踪介绍 在大型系统的微服务化构建中&#xff0c;一个系统被拆分成了许多模块。这些模块负责不同的功能&#xff0c;组合成 系统&#xff0c;最终可以提供丰富的功能。在这种架构中&#xff0c;一次请求往往需要涉及到多个服务。互联网应用构建 在不同的软件模块集上&am…

鸿蒙‘ohpm‘ 不是内部或外部命令,也不是可运行的程序-解决方案

&#x1f525; 博客主页&#xff1a; 小韩本韩&#xff01; ❤️ 感谢大家点赞&#x1f44d;收藏⭐评论✍️ 在鸿蒙的DevEco Studio的终端下输入 ohpm -v 或者 你需要下载第三方ohpm包的时候提示‘ohpm‘ 不是内部或外部命令&#xff0c;也不是可运行的程序- 主要是因为我们…

Redies基础篇(一)

Redis 是一个高性能的key-value数据库。Redies支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作&#xff0c;而且这些操作都是原子性的&#xff…

idea2024破解安装教程

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 目录 &#x1f324;️下载安装 &a…