【可解释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.mfbz.cn/a/136777.html

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

相关文章

基于Qt 多线程(继承自QThread篇)

# 简介 我们写的一个应用程序,应用程序跑起来后一般情况下只有一个线程,但是可能也有特殊情况。比如我们前面章节写的例程都跑起来后只有一个线程,就是程序的主线程。线程内的操作都是顺序执行的。恩,顺序执行?试着想一下,我们的程序顺序执行,假设我们的用户界面点击有某…

从0开始python学习-32.pytest.mark()

目录 1. 用户自定义标记 1.1 注册标记​编辑 1.2 给测试用例打标记​编辑 1.3 运行标记的测试用例 1.4 运行多个标记的测试用例 1.5 运行指定标记以外的所有测试用例 2. 内置标签 2.1 skip :无条件跳过(可使用在方法,类,模…

Leetcode154. Find Minimum in Rotated Sorted Array II

旋转数组找最小,这次值可以重复 不妨假设你已经做了上一题,题解 上一题的方法1肯定是用不了了,因为不再能完全分成2个不同的部分 所以我们沿着方法2走 如果 > n u m s [ r ] >nums[r] >nums[r],我们依然可以找右半边 …

可以为一个servlet定义多个servlet-mapping、或url-pattern

在web描述符文件web.xml文件中,可以为同一个servlet定义多个servlet-mapping;也可以在同一个servlet-mapping中,定义多个url-pattern。也就是说,可以把多个地址(相对于上下文路径)映射到同一个servlet处理。…

Windows桌面黑屏无法打开软件窗口不显示卡死等解决方案

问题还原 该软件窗口无论如何操作均 无法打开显示的窗口 ,但是 可使用 ALTTab 看到任务视图 目录 问题还原 解决方案 1. 使用 WinR 打开命令窗口 盲输 cmd 2. 盲输 taskkill /f /im explorer.exe 关闭资源管理器 3. 输入 start explorer.exe 启动任务管理器即可恢复正常…

通过Malloc 和 Free 的具体实现 加深对C指针 的理解(笔记)

【彻底搞懂C指针】Malloc 和 Free 的具体实现 https://danluu.com/malloc-tutorial/ 进程间的通信 : ①共享内存 ② 消息传递 (内核实现) 分配策略 (实现方面) by DUCK sbrk() malocal实现的主要函数 man sbrk 查看 数据结构 一个参考代码 https…

FD-Align论文阅读

FD-Align: Feature Discrimination Alignment for Fine-tuning Pre-Trained Models in Few-Shot Learning(NeurIPS 2023) 主要工作是针对微调的和之前的prompt tuining,adapter系列对比 Motivation: 通过模型对虚假关联性的鲁棒…

windows系统winget一键安装和使用

winget命令概述 用户可以在 Windows 10 和 Windows 11 计算机上使用 winget 命令行工具来发现、安装、升级、删除和配置应用程序。 此工具是 Windows 程序包管理器服务的客户端接口 在 Windows 沙盒上安装 winget Windows 沙盒提供了一个轻型桌面环境,可以安全地独…

【数字图像处理】RGB 转灰度图

常见的数字图像格式有 RGB, RGBA, YCbCr 等,RGB/RGBA 格式适合存储,而 YCbCr 格式适合图像处理。在数字图像处理中,通常需要将 RGB 格式的图像变换为灰度图,再进行后续的处理,例如边缘检测、锐化等。本文主要介绍数字图…

改进YOLO系列 | YOLOv5/v7 引入反向残差注意力模块 iRMB | 《ICCV 2023 最新论文》

论文地址:https://arxiv.org/abs/2301.01146 代码地址:https://github.com/zhangzjn/EMO 本论文着重于开发现代、高效、轻量级的模型,用于进行密集预测,同时在参数、FLOPs和性能之间进行权衡。倒置残差块(IRB)作为轻量级CNN的基础设施,但在基于注意力的研究中尚未找到对…

计算机毕业设计选题推荐-个人记账理财微信小程序/安卓APP-项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Linux——vim简介、配置方案(附带超美观的配置方案)、常用模式的基本操作

vim简介、配置方案、常用模式的基本操作 本章思维导图: 注:本章思维导图对应的xmind和.png文件都已同步导入至资源 1. vim简介 vim是Linux常用的文本编辑器,每个Linux账户都独有一个vim编辑器 本篇我们介绍vim最常用的三种模式:…

6可靠的局域网组建

前面聊的拓扑结构都比较简单,所以能用,但是未必可靠。为了可靠,我们需要做冗余,同时需要做一些其他的配置。 生成树协议STP 假设交换机按照上面的方案连,虽然可以提高网络可靠性,但是因为形成了环路&#…

谈谈越来越无效的拥塞控制

简单看一个图: 它不是互联网本身,但这是典型网络的必要组件,它决定了 flow 如何从从一边流向另一边:一条 flow 经过交换节点通过 NIC 被导入一条链路前在 buffer 中排队。 现如今大多数工程师的工作都在折腾那个单独的盒子&…

Django(复习篇)

项目创建 1. 虚拟环境 python -m venv my_env ​ cd my_env activate/deactivate ​ pip install django ​2. 项目和app创建 cd mypros django-admin startproject Pro1 django-admin startapp app1 ​3. settings配置INSTALLED_APPS【app1"】TEMPLATES【 DIRS: [os.pat…

双11终极官方战报 凯迪仕智能锁全网全渠道第一 持续领跑智能锁行业

一年一度双11狂欢盛典暂时落下帷幕,作为下半年最大的电商购物节,本次双11电商平台借机推出优惠券、补贴、折扣等促销活动,激发消费者购物热情。其中,智能门锁等智能家居产品更是取得了亮眼的成交。 据悉,凯迪仕智能锁双…

【Linux】 mdir命令使用

mdir 为mtools工具指令,模拟MS-DOS的dir指令,可显示MS-DOS文件系统中的目录内容。 语法 mdir [参数][目录] mdir命令 -Linux手册页 命令选项及作用 执行令 mdir--help 执行命令结果 参数 -a  显示隐藏文件。-f  不显示磁盘所剩余的可用空间。-w…

【C语言】函数的系统化精讲(三)

文章目录 一、递归举例二、递归举例2.1求n的阶乘2.2 顺序打印⼀个整数的每⼀位 三、递归与迭代3.1递归的思考3.2求第n个斐波那契数 总结 一、递归举例 .通过上回(【C语言】函数的系统化精讲(二))我们了解到递归的限制条件&#x…

Java终端模式小尝试

Java终端模式小尝试 1、IDE中终端1.1 拉去代码 jediterm1.2 IDE调用系统终端 2、待续~~ 1、IDE中终端 终端_Intellij IDEA、Terminal emulator | pycharm Documentation JetBrains jediterm WindTerm:新一代开源免费的终端工具,GitHub星标6.6k&#xff…

冒泡排序

贵阳这个地方的天气变化好大呀,前两天晒大太阳,今天就冷的脚抖,简直不要太冷,但是不管怎么样,还是要学习的哟! 冬天来了,春天确实还有一点远! 好了,话不多说,…
最新文章