【可解释AI】Alibi explain: 解释机器学习模型的算法

Alibi explain: 解释机器学习模型的算法

  • 可解释人工智能简介
  • Alibi特点
  • 算法
  • Library设计
  • 展望
  • 参考资料

今天介绍Alibi Explain,一个开源Python库,用于解释机器学习模型的预测(https://github.com/SeldonIO/alibi)。该库具有最先进的分类和回归模型可解释性算法。算法涵盖了模型不可知(黑框)和模型特定(白框)设置,满足多种数据类型(表格、文本、图像)和解释范围(局部和全局解释)。该库公开了一个统一的API,使用户能够以一致的方式使用解释。Alibi坚持最佳开发实践,在持续集成环境中广泛测试代码正确性和算法收敛性。该库提供了关于方法的用法和理论背景的大量文档,以及一套端到端的工作用例。Alibi旨在成为一个可生产的工具包,集成到Seldon Core和KFServing等机器学习部署平台,并使用Ray实现分布式解释功能。

Alibi Explain

可解释人工智能简介

可解释的人工智能,也称为模型可解释性,是指以人类观察者可以理解的格式阐明复杂、不透明的机器学习模型做出的预测背后的原因的技术(Molnar,2019)。 解释预测的能力有助于建立对模型决策过程的信任,因此是强大的机器学习系统不可或缺的一部分(Bhatt 等人,2020;Klaise 等人,2020)。

解释所提供的所需见解在很大程度上取决于解释的使用者,从调试模型的数据科学家到审核模型的监管机构。 因此,需要多种方法来满足目标受众的需求(ICO,2019;Bhatt et al.,2020)。 此外,独立的解释方法可能会产生非信息性甚至误导性的解释(Heo et al., 2019)。 这意味着需要采用整体方法来解释模型。
Explainability
我们推出 Alibi,旨在弥合快速增长的可解释性研究领域与行业之间的差距。 Alibi 的目标是托管各种可用于生产的模型解释算法的参考实现。 Alibi 包含本地、全局、黑盒和白盒事后解释方法,涵盖各种用例。 虽然有一些同时存在的可解释性库(参见表 1),但 Alibi 唯一专注于提供具有部署平台集成和分布式后端的生产级解释方法

Alibi特点

  • 应用范围。 模型的可解释性通常需要一种整体方法,因为没有一刀切的解决方案。 这反映在当前支持的算法的广度(第 2.1 节)及其适用性指南(表 2)中。
  • 建立稳健性。 在各种Python版本下使用pytest对代码正确性和算法收敛性进行广泛的测试。 使用 Github Actions 通过持续集成设置对每个拉取请求执行测试。
  • 文档和示例。 该库具有全面的文档和广泛深入的用例示例1。 该文档包括每种方法的用法和理论背景。 此外,所有方法的范围和适用性都有清晰的记录,以帮助从业者快速识别相关算法(表2)。
  • 行业相关性。 Alibi 已集成到部署平台 Seldon Core(Cox 等人,2018 年)和 KFServing(KFServing,2019 年)中,以便将解释部署到生产中。 Alibi 还具有使用 Ray 的分布式后端(Moritz et al., 2018)来启用批量解释的大规模并行计算。

Clobal Insights vs Local Insights

我们还提供了与其他积极开发的解释库的更详细的功能比较,请参见表 1。
表1
表1:与相关解释库AIX360(Arya等人,2020)、Interpret(Nori等人,2019)、Captum(Kokhlikyan等人,2020)、iNNvestigate(Alber等人,2019)的比较。 库的选择和比较是基于提供事后、黑盒或白盒、本地或全局解释技术,这些技术是用 Python 实现的,这些技术在过去 12 个月内进行了一些开发活动。

算法

该库的当前版本包括以下解释算法(详细功能参见表 2):

    1. Accumulated Local Effects (ALE),Apley 和 Zhu (2016):计算模型预测的全局特征影响。
    1. Anchor explanations(锚点解释),Ribeiro 等人。 (2018):找到最小的特征子集,以保证(以高概率)相同的预测,而不管其他特征如何。
    1. Contrastive Explanation Methods(对比解释法 , CEM),Dhurandhar 等人。 (2018):找到应该最少且充分存在的特征以及应该必然不存在的特征,以证明对特定的预测是合理的实例。
    1. Counterfactual explanations(反事实解释),Wachter 等人。 (2018):找到接近原始但导致不同预测的合成实例。
    1. Counterfactual explanations with prototypes(原型反事实解释),Van Looveren 和 Klaise (2019):改进反事实解释方法,以产生更多可解释的分布实例。
    1. Integrated Gradients(积分梯度),Sundararajan 等人。 (2017):通过沿着从基线实例到感兴趣实例的路径累积梯度来计算预测的特征属性。
    1. Kernel Shapley Additive Values,Lundberg 和 Lee (2017):通过博弈论方法通过考虑特征组“无信息”来计算预测的特征归因。
    1. Tree Shapley Additive Values,Lundberg 等人。 (2020):树集成模型的 Shapley 加性值的算法改进。

Table 2

图 1 显示了一系列支持的解释算法的输出:
Figure 1
图 1:支持的解释算法的选择。 左上:图像分类的锚点解释解释了预测“波斯猫”。 右上:情绪预测任务的综合梯度归因解释了预测“积极”。 左下:(a) MNIST 数字分类和 (b) 收入分类的反事实解释。 右下:ALE 特征对 Iris 数据集上逻辑回归模型的影响。

Library设计

Alibi 面向用户的 API 设计为跨算法一致且易于使用(代码片段 1)。 解释算法是通过在黑盒情况下传递预测函数(采用并返回 numpy 数组的 Python Callable)或在白盒情况下传递预训练模型(例如 TreeSHAP 或 TensorFlow 的 xgboost)来初始化的。 如表2所示,对于需要训练数据的方法,必须调用fit方法。 最后,调用解释方法来计算一个实例或一组实例的解释。 这将返回一个 Explanation 对象,其中包含字典元数据和数据,分别具有解释元数据(例如超参数设置、名称)和解释数据。 Explanation 对象的结构可以在生产系统中轻松序列化以进行进一步处理(例如日志记录、可视化)。 元数据捕获用于获取每个解释的设置并充当审计跟踪。
Code
代码片段 1:使用 AnchorTabular 解释算法的 Alibi API 演示。

展望

Alibi 开发的第一阶段重点是创建一组精选的参考解释算法,并对典型用例提供全面指导。 虽然基于白盒梯度的方法的工作重点是支持 TensorFlow 模型,但在不久的将来实现与 PyTorch 模型的功能对等是一个关键目标。 此外,我们计划扩展 Ray 项目的使用,以实现所有解释算法的并行化。 Ray 的选择还可以将解释扩展到单个多核计算节点之外。

补充:
Ray是一个用于扩展AI和Python应用程序的统一框架。Ray由一个核心分布式运行时和一组用于加速ML工作负载的AI库组成。
Ray

参考资料

  1. Alibi explain: algorithms for explaining machine learning models
  2. Alibi explain
  3. Ray

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

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

相关文章

Java --- JVM的执行引擎

目录 一、执行引擎概述 1.1、执行引擎的工作过程 二、Java代码编译和执行的过程 三、解释器 3.1、解释器工作机制 3.2、解释器分类 3.3、解释器现状 四、JIT编译器 五、热点代码及探测方式 六、方法调用计数器 6.1、热点衰减 七、回边计数器 八、HotSpot VM设置程序…

axios1.5取消请求,中断请求的方法

给input的onchange绑定事件 引入axios,使用axios.CancelToken.source()创建标记 实例中,把cancelToken的值填上

CSS常用示例100+ 【目录】

目前已有文章 11 篇 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS相关…

Python参数传递,从入门到精通

Python是一种非常灵活的编程语言,以多种方式定义和调用函数。其中一个关键方面是参数传递的灵活性。在Python中,可以通过位置、关键字、默认值和可变长度参数等多种方式来传递参数。 1. 位置参数 位置参数是最常见的参数传递方式。当调用一个函数时&am…

node插件express(路由)的插件使用(二)——cookie 和 session的基本使用区别

文章目录 前言一、express 框架中的 cookie0、cookie的介绍和作用1. 设置cookie2.删除cookie3.获取cookie(1)安装cookie-parser(2)导入cookie-parser(3)注册中间件(4)获取cookie&…

使用Python分析时序数据集中的缺失数据

大家好,时间序列数据几乎每秒都会从多种来源收集,因此经常会出现一些数据质量问题,其中之一是缺失数据。 在序列数据的背景下,缺失信息可能由多种原因引起,包括采集系统的错误(例如传感器故障)…

Intel® DevCloud for oneAPI SYCL编程项目实践

问题陈述 实验所用的硬件环境和软件环境 本次实验使用oneAPI中支持SYCL编程模型的C编译器,使用英特尔oneAPI Developer Cloud服务,可以免安装额外环境,利用CPU作为主机(Host),同时利用GPU作为设备&#xf…

LCA

定义 最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。 性质 如果 不为 的祖先并且 不为 的祖先,那么 分别处于 的两棵不同子树中&#…

【机试题】LazyIterator迭代器懒加载问题

将下面这个未完成的Java工具类补充完成,实现懒加载的功能,该类需要实现Iterable接口,能够遍历所有数据。具体要求如下: 工具类提供了一个ValueLoader接口,用于获取数据,其中ValueLoader的接口定义为&#x…

修改django开发环境runserver命令默认的端口

runserver默认8000端口 虽然python manage.py runserver 8080 可以指定端口,但不想每次runserver都添加8080这个参数 可以通过修改manage.py进行修改,只需要加三行: from django.core.management.commands.runserver import Command as Ru…

二十四、W5100S/W5500+RP2040树莓派Pico<PHY的状态模式控制>

文章目录 1. 前言2. 相关简介2.1 简述2.2 原理2.3 优点&应用 3. WIZnet以太网芯片4. PHY模式配置测试4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 测试现象 5. 注意事项6. 相关链接 1. 前言 W5100S/W5500不仅支持自动PHY自动协商,而且支持用户自定义…

自动生成Form表单提交在苹果浏览器中的注意事项

以下是本人在公司旧系统中看到的该段代码 function Post(URL, PARAMTERS) {//创建form表单var temp_form document.createElement("form");temp_form.action URL;//如需打开新窗口,form的target属性要设置为_blanktemp_form.target "_blank"…

[EFI]技嘉 Z490 VISION G i5-10500 电脑 Hackintosh 黑苹果引导文件

硬件配置 硬件型号驱动情况主板技嘉 Z490 VISION G CLPC controller Z490芯片组)处理器英特尔 Core i5-10500 3.10GHz 六核已驱动内存16GB( 威到DDR42655MHz8GBx 2〕已驱动硬盘SSDSC2BB150G7R (150 GB/ 国态硬盘)已驱动显卡AMD Radeon RX 58…

[论文阅读] CLRerNet: Improving Confidence of Lane Detection with LaneIoU

Abstract 车道标记检测是自动驾驶和驾驶辅助系统的重要组成部分。采用基于行的车道表示的现代深度车道检测方法在车道检测基准测试中表现出色。通过初步的Oracle实验,我们首先拆分了车道表示组件,以确定我们方法的方向。我们的研究表明,现有…

Python之字符串、正则表达式练习

目录 1、输出随机字符串2、货币的转换(字符串 crr107)3、凯撒加密(book 实验 19)4、字符替换5、检测字母或数字6、纠正字母7、输出英文中所有长度为3个字母的单词 1、输出随机字符串 编写程序,输出由英文字母大小写或…

ESP32 BLE特征值示例

键盘特征值初始化示例 void BleKeyboard::begin(void) {BLEDevice::init(deviceName);BLEServer* pServer BLEDevice::createServer();pServer->setCallbacks(this);hid new BLEHIDDevice(pServer);inputKeyboard hid->inputReport(KEYBOARD_ID); // <-- input R…

大洋钻探系列之二IODP 342航次是干什么的?(上)

本文简单介绍一下大洋钻探IODP 342航次&#xff0c;从中&#xff0c;我们一窥大洋钻探航次的风采。 IODP342的航次报告在网络上可以下载&#xff0c;英文名字叫《Integrated Ocean Drilling ProgramExpedition 342 Preliminary Report》&#xff0c;航次研究的主要内容是纽芬兰…

【Linux】第十五站:环境变量

文章目录 一、进程相关的一些概念1.一些常见的概念2.对于并发3.**进程切换** 二、环境变量1.PATH环境变量2.HOME环境变量3.SHELL环境变量4.env5.系统调用接口与环境变量6.什么是环境变量&#xff1f;7.命令行参数8.main函数的第三个命令行参数9.如何验证环境变量是可以被继承的…

前端面试之事件循环

什么是事件循环 首先&#xff0c; JavaScript是一门单线程的语言&#xff0c;意味着同一时间内只能做一件事&#xff0c;这并不意味着单线程就是阻塞&#xff0c;而是实现单线程非阻塞的方法就是事件循环 在JavaScript中&#xff0c;所欲任务都可以分为&#xff1a; 同步任务…

【RPC】前传

前传 本地程序用的go语言&#xff0c;想把main.go程序当中一些计算工作放到服务器上进行&#xff0c;而只需要把结果给我即可。由于平台上暂时不能运行Go代码&#xff0c;所以写的是python文件。 1、主要是使用ssh依赖进行连接&#xff0c;但是大概率是需要手动添加的&#xf…