暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

AI可解释性工具

AI2ML人工智能to机器学习 2021-09-17
1137

AI的这次突飞猛进的发展离不开深度学习的功劳, 但是深度学习带来了模型的复杂度, 以及海量数据的依赖,使AI模型的可信任性变得很差。 



前言


人的信任其实主要依赖4个方面:

  1.  历史上的信任表现(confidence, competence, ability): 历史很大次数都让你失望, 那么下一次很大概率也不会让我失望。 

  2. 人能理解并预见执行的结果(predictability): 超过3米的高度,人就不敢往下跳了。 虽然之前从来没有做过这个事情。

  3. 行为的善意、公正性(ethics, positive,benevolence, integrity)

  4. 风险可控(risk): 明确知道风险点在哪里。


类似的,人们要信任AI, 那么AI在历史表现,让人能预测它的行为, 风险控制, 伦理道德等方面要做的足够好。 


其中可解释性, 隐私保护,伦理等方向成为新的AI研究热点。 



可解释性概率


一个基础的AI模型架构分为输入数据, 学习算法/模型, 预测,预测结果。


根据上面的模型流程, 所以要做好可解释性就分好几块:

  1.  解释输入数据。

  2.  解释算法模型机制。

    1. 解释算法的效率:运行速度,稳定性

    2. 解释算法的效果:决策机制

  3.  解释预测结果。




常见的机器学习模型大致有4大块:

  1.  经典统计学习模型: 广义线性, 决策树, SVM等

  2.  图模型

  3.  集成学习

  4.  深度学习


从模型来看, 主要有3个大的方面:

  1.  经典的可解释性模型回顾

  2.  用经典可解释模型来解读黑盒模型。 

  3.  对深度学习模型进行解读





模型效果的可视化





经典的可解释性模型


  1.  线性模型

人对线性模型的理解较好,线性模型是最基本的模型。


2. 决策树模型, 决策树模型丰富多彩, 具体可以参考:“决策树会有哪些特性?


3. 规则模型, 是逻辑模型的直观表述,经常用于决策树进行解读。



4. 贝叶斯模型, 贝叶斯是有限数据下最佳的概率推理, 详见‘概率分布の三奥义



5. 基于实例的模型(instance based), 它的解释性来源于数据的可解释性。 



而数据的解释性, 非常依赖经验,因此基于实例的解释性非常需要行业的知识。 



经典可解释性模型的扩充


除了上面5种经典模型, 还有一些经典模型的扩充。 


  1.  广义线性模型, 可以通过替换,线性组合变为线性模型


广义线性模型的能力已经远超线性模型了, 但是这种扩展的泛化性能,严重依赖经验积累。 



在GAM方面, Robert Tibshirani有着深入的研究,详细参考“机器学习经典人物关系[全]


当然Prototype Selection, Bootstrap, Lasso都是Tibshirani的杰出代表。 



2. 对树与森林的规则解读:RuleFit



其中, RuleFit是Jerome Friedman发明的。 详细参考“机器学习经典人物关系[全]


Friedman是统计大神, PDP, RuleFit, GBM, CART,Projection Pursuit都有他的贡献。 


可见, 在上一波机器学习的浪潮中, 统计大神Friedman, Tibshirani就已经非常重视扩展经典模型的可解释性。 



经典数据解释工具



  1.  特征重要性Feature Importance

  2. 敏感性分析Sensitivity Analysis

  3. 显著图Saliency Map

  4. 部分依赖图Partial Dependence Plot

  5. 代表点选择Prototype Selection

  6. 激活最大化Activation Maximization


特征重要性Feature Importance


1. 决策树的Mean Decrease in Impurity (MDI)

2. 万能的Permutation Importance(PI)

3. Drop Column Importance (DCI) - 删除某列重新训练。


MDI


PI



1. MDI 与PI 一般使用的样本不一样。PI 使用OOS 的样本,

避免过拟合情况的不准确性。

2. MDI 的基于Impurity 的计算,对于低基数的特征有偏见,

例如二值变量。



敏感性分析Sensitivity Analysis



1. Morris method (One-at-A-Time|OAT)

2. Sobol method (Monte Carlo methods)

3. Fourier Amplitude Sensitivity Test 傅里叶振幅敏感性分析方

法(FAST)

4. extended FAST 扩展傅里叶振幅敏感性分析方法(eFAST)

5. Random Balance Designs FAST 随机平衡傅里叶振幅敏感性

分析方法(RBD-FAST)



Sobol


FAST







显著图Saliency Map








部分依赖图Partial Dependence Plot

依赖图是对数据分布的一种解读,常见的有PDP, ICE, M-Plot, ALE。






个体条件期望图Individual Conditional Expectation


M-Plot

ALE-Plot



代表点选择Prototype Selection


代表点类似人大代表的选择,就是化面为点的解读。 






大体就是2条路, 一种分区,一种聚类。


  1. Condensation: 删除代表点附件的点

  2. Edition: 去除噪音后聚类






激活最大化 Activation Maximization


AM就是可视化分类的激活点与人追求的分类要求是否一致。 






事后解读工具


事后解读的基本架构如下所示,就是4步:

  1.  依赖训练数据得到模型

  2.  依赖模型生成任意的预测结果

  3.  基于预测结果训练可解释模型

  4.  基于可解释模型进行解读


事后解释的工具大体分为2大类, 一种是全局解读, 一种局部解读。 




其中, 知识蒸馏是最常见的全局解读方法。 


局部解读主要看单个预测中,相关特征的贡献程度。 


主流的局部解读主要有3种。 

1. LIME

2. SHAP

3. Anchors


LIME Local interpretable model-agnostic explanations


就是在待解释样本周围生成大量样本, 用模型预测, 再用预测结果训练线性模型对该样本进行解释。 








但是如何在样本周围进行均匀采样呢?人们想到了VAE进行高斯采样映射。 



VAE-LIME


也有人想到了广义线性, 于是有了2次函数。 


QLIME


也有人用于对声音这种难以理解的对象进行LIME分析。 


Sound-LIME






SHAP SHapley Additive exPlanations


SHAP就是利用Shapely Value中博弈的思想考察特征对结果预测的贡献度。 



Shapley Value


是一种考虑了协作组合与协作顺序无关的方法来计算贡献度的方法:



但是在具体的应用中, 一般贡献度是近似计算的,否则计算量实在太大了。 


由于存在正向与反向特征的关系, SHAP通常围绕在0值左右:


为了与特征值重要性类似,也可以按绝对值的期望进行计算比较:



Kernel SHAP


当把LIME与SHAP进行结合来进行SHAP的计算, 那么就可以完成任何模型的SHAP计算, 因此成为Kernel SHAP。


Tree SHAP


当然也有按决策树进行特征选择的思路进行特征优先性排序, 那就是Tree SHAP。 




Anchors


Anchors 类似 Prototype Selection, 是选择代表实例, 但是与Prototype selection不一样, Anchor选择的标准是对预测结果具有最佳解释性的代表。 

Anchor与LIME不一样的地方在于, LIME使用的是生成的伪数据得到样本点左右的线性模型。  而Anchor是真实样本,并且可以基于样本实例进行解释。 

因此Anchor的选择是一个需要样本遍历的事情, 而这个过程存在一定的近似最优的方法。Beam Search + Multi-Armed Bandit





深度可解释性工具


深度可解释性工具的一般架构如下:



它的核心是对深度学习的模型的某个实例中间数据进行可视化解释。 而中间数据的可视化数据依赖可以分为2个方向:

  1. 正向依赖: 中间层可视化的界定信息来源于原始输入的特征选择

  2. 反向依赖: 中间层可视化的界定信息来源于分类结果的倒推。 



最优经典的有如下7种深度可解释性技巧:


1. Gradient-based Saliency Map

2. Activation Maximization (AM)

3. Class Activation Mapping (CAM)

4. DeConvNet

5. Layer-Wise Relevance Propagation (LRP)

6. Guided Backpropagation

7. Gradient-Weighted CAM (Grad-CAM)




1 Gradient-based Saliency Map


比较直观, 利用梯度的Saliency Map来对梯度数据进行解读。




2 Activation Maximization (AM)


利用阈值对激活数据进行可视化。




3 Class Activation Mapping (CAM)



对于多分类的最终CNN特征按加权平均的方法进行计算。








要注意区分GMP, GAP, GWAP的区别。 


Global average pooling (GAP)






4 DeConvNet


通过DeconvNet把结果倒推回中间的特征。 



5 Layer-Wise Relevance Propagation (LRP)


发现相关性计算可以进行反向传播。 


6 Guided Backpropagation


对比了3种相关性反向传播计算方式:

  1. 原始的相关性反向传播, 要求激活大于0 (高能)。 

  2. 通过deconvnet进行传播, 要求相关性大于0 (高相关)。

  3. guided方式传播, 并且要求激活大于0,也要求相关性大于0


对比下来, 可见guided backprop更能精确的定位到相关又高能的特征上。 






7 Gradient-Weighted CAM (Grad-CAM)


选择梯度而不是特征本身进行GAP分析。 




这里有个流程图,大致可以看到以上经典概念出现的顺序。 



可解释性工具包



可解释性工具包有:

  1.  ELI5库

  2.  LIME库

  3.  SHAP库

  4.  Yellowbrick库

  5.  Alibi库

  6.  Lucid库


更多的包:



更多的深度可解释性包:








总结


综合来说,可解释性有几种分法


  1.  内在intrinsic interpret model-specific vs 事后post-hoc / explain model-agnostic

  2. Global vs Local



大致可以看一下这些分类与常见术语之间的分类关系。


再附上一份术语表供大家回顾:




文章转载自AI2ML人工智能to机器学习,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论