可解释学习开源框架

  |  

摘要: 一些可解释学习的开源框架,截至 2021

【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


1. 微软可解释学习框架 InterpretML

项目信息

背景

微软在可解释机器学习项目 InterpretML 的 GitHub 页面上这样写到。很显然,他们相信 InterpretML 会是打开机器学习黑箱的钥匙。

在机器学习领域,可解释性(interpretability)至少在以下几个方面至关重要:

  • 调试模型——为什么我的模型会这样出错?
  • 检测偏见——我的模型会区别对待目标吗?
  • 人与人工智能合作——我怎样才能理解和信任模型的决策?
  • 合规性——我的模型符合法律规定吗?
  • 高风险应用——医疗保健、金融、司法……

功能

InterpretML 是一个为实践者和研究者提供机器学习可解释性算法的开源 Python 软件包。InterpretML 能提供两种类型的可解释性:

(1)明箱(glassbox),这是针对可解释性设计的机器学习模型(比如线性模型、规则列表、广义加性模型)
(2)黑箱(blackbox)可解释技术,用于解释已有的系统(比如部分依赖、LIME)。

这个软件包可让实践者通过在一个统一的 API 下,借助内置的可扩展可视化平台,使用多种方法来轻松地比较可解释性算法。

InterpretML 也包含了可解释 Boosting 机(EBM)的首个实现,这是一种强大的可解释明箱模型,可以做到与许多黑箱模型同等准确。

特性

InterpretML 将很多当前最先进的可解释性算法纳入到了一个统一的 API 下。这个 API 包含两种主要的可解释性形式:明箱模型,即让用户能够理解以及向用户解释;黑箱可解释性,即能为任何机器学习流程(不管多么不透明)生成解释的方法。其还开发了进一步的功能,支持交互式可视化,还有一个为可解释性算法比较而设计的内置仪表盘。InterpretML 使用了 MIT 许可,并重点关注可扩展性以及与 scikit-learn 和 Jupyter Notebook 环境等常见开源项目的兼容性。

架构和 API 设计

  • 易于比较。使多个算法的比较尽可能地容易。机器学习可解释性还处于发展早期,不同的研究创造了很多不同的算法方法,每一种都各有优劣。比较能让用户找到最适合自身需求的算法。InterpretML 实现了这一点,其做法是采用了一种 scikit-learn 风格的统一 API,另外其还提供了一个以算法比较为中心的可视化平台。
  • 忠于来源。尽可能地使用参照算法和可视化。InterpretML 的目标是以最准确的形式为世界提供可解释性算法。
  • 能与其它方法很好协同。利用开源生态系统,不重复发明轮子。InterpretML 与 Jupyter Notebook 和 scikit-learn 等常用项目高度兼容,并且其构建过程也使用了很多库,比如 plotly、lime、shap 和 SALib。
  • 按需使用。能使用和扩展 InterpretML 的任意组件,而无需引入整个框架。比如可以在服务器上得到计算密集型的解释,无需 InterpretML 的可视化及其它相关依赖。

2. LIME

项目信息

功能

LIME是一种算法(库),可以解释任何分类器或回归器的预测。LIME的做法: 通过可解释的模型在局部不断接近预测值,这个模型解释器可用于生成任何分类算法的解释。

3. H2O

项目信息

功能

提供简单的数据可视化技术,用于表示高度特征交互和非线性模型行为,通过可视化提供机器学习可解释性(MLI),说明建模结果和模型中特征的影响。

4. explAIner

项目信息

功能

伴随着各种层出不穷的XAI技术,如何选择不同的方法和适应不一样的依赖和输出成为了新的挑战。explAIner 正是在这样的大背景下提出的一套一体化可视分析框架,它提供了标准化的接口属性去统一了目前比较流行的XAI方法,并统一了完整的交互式可解释机器学习的工作流程。此外,论文作者在研究基础上实现了一个基于TensorBoard的原型系统: explainer.ai

在研究前期准备过程中,研究者调研了目前流行的XAI方法,如下表所示。对于每种XAI的方法,文中统计了三种属性,分别为

  • Level:表示数据的覆盖程度(数据全覆盖或样本数据)
  • Abstraction:表示模型的覆盖程度(完整模型或部分模型)
  • Dependency:依赖数据、模型或领域。

这些属性会成为explAIner里的标准参数作为XAI流程的输入参数。


Share