人工智能-机器学习:机器学习的可解释性(Explainable Machine Learning)

什么是机器学习的可解释性?

  • 可解释性(explainability)有大量的近义词,比如可理解 (understandable), 可诠释 (interpretable), 透明(transparent), 可靠 (robust), 公平 (fair), 明确(explicit),忠实(faithful), 负责(responsible)。这些词与可解释性 (explainable) 之间到底存在什么样的关系?
  • 最近有篇来自以色列的19页长文 Explainability in Human-Agent Systems,专门探讨可解释性的定义,以及与这些相似概念之间的联系与区别。
  • 文章提出五个根本问题 – Why, 为何需要解释。Who, 由谁向何人解释。What,解释什么。When,何时解释。How,如何解释。

一、Why 为何解释?

这个领域最重要的问题是:为什么机器学习需要可解释性?为了回答这个问题,必须知道一个机器学习系统究竟多需要可解释性。如果将此需求分为三层,大概可以这样分:

  1. 没什么用,不需要
  2. 用则有益,不用无损
  3. 不用不行,至关重要

1、可解释性不重要的场景

  • 如果一个系统完全由人工控制,操作员知道他做的任何一个操作能带来怎样后果,则机器只是人这个概念的延伸,此时并不需要可解释性。
  • 对于自我控制的机器,如果其决策理由非常显然,比如基于协同过滤算法的推荐系统,利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,也不需要可解释性。
  • 如果机器学习系统的预测结果不会造成严重后果,不会带来无法承受的损失,也不太需要可解释性。
  • 如果机器学习系统带来的收益远大于损失,则可解释性也不重要。

2、可解释性可有可无的场景

  • 为其决策说出道理,以说服拥有完全控制权的人类操作员接受其决策
  • 解释其做出的选择,以消除人类对安全的担心
  • 在操作员怀疑系统出错或对系统不熟悉时,建立信任
  • 解释其做出的选择是公平,无偏见,道德,合法的
  • 启发科学家做出新的知识,科学发现
  • 解释其做出的选择,以在新状况下评估,调试机器

在这些场景中,如果能提供可解释性,则会带了很大好处。但如果无法提供可解释性,也不会带来太大危害。

3、可解释性至关重要的场景:

  • 自动驾驶
  • 医疗诊断
  • 政府决策制订
  • 兵棋推演
  • 智能教育

二、Who 谁向谁解释?

  • 面向的对象不一样,可解释性也会有所不同。
  • 比如在特斯拉,Uber等自动驾驶汽车出车祸的时候,解释面向的对象可能是法律专家,工程师或者程序员。
  • 在知识发现中,解释面向的对象是某个专业的研究人员,而非普通大众。
  • 在网络安全方面,系统管理员能够完全理解的解释,对于普通用户来说可能毫无用处。

虽然解释面向的对象千差万别,但能够提供解释的好像只有一种人,那就是人工智能系统的开发人员。

三、What 解释什么?

人们讨论可解释性的时候,往往忽略谁向谁解释,为何解释与何时解释,只关注解释什么与如何解释。比如知文《打开人工智能的黑盒子》,就专注于回答解释什么和如何解释。
根据解释的对象,可以分为对输入空间 F F F 的解释,以及对神经网络 L L L 本身的解释。

1、事前分析 (Ad Hoc Analysis)

  • 对输入空间 F F F 的解释属于数据预处理,是一种事前分析 (Ad Hoc Analysis)。这种分析脱离将要使用的机器学习模型,单独分析输入样本中哪些特征重要。

2、事后分析 (Post Hoc Analysis)

  • 对神经网络 L L L 的解释,是一种事后分析 (Post Hoc Analysis),需要等待神经网络在输入输出数据上完成训练,才开始解释。事后分析(Post Hoc Analysis) 根据输入输出空间的不同,分为解释全局与解释局部。

2.1 事后分析之解释全局

  • 全局解释试图构建一种诠释函数 I I I,让目标人群明白神经网络 L L L 如何将整个输入空间 F F F 映射到输出空间 T T T
  • 全局解释的中文表达式为:
    在这里插入图片描述
    其中 ∩ ∩ 表示交集。写成数学表达式为: E = I ( L ( F , T ) ) ∩ U E=I(L(F,T))∩U E=I(L(F,T))U

2.2 事后分析之解释局部

  • 局部解释只负责解释如何将输入空间中的局部 f , f ∈ F f,f∈F f,fF (比如一张或几张照片)映射到输出空间的一个类别 t , t ∈ T t,t∈T t,tT
  • 局部解释的数学表达式为: E i j = I ( L ( F i , T j ) ) ∩ U E_{ij}=I(L(F_i,T_j))∩U Eij=I(L(Fi,Tj))U
    其中 F i F_i Fi 代表输入空间中的第 i i i 个样本, T j T_j Tj 代表输出空间中的第 j j j 个类别。

全局与局部解释都可以简化为: E = I ∩ U E=I∩U E=IU,即
E x p l a i n a b i l i t y = I n t e r p r e t a b i l i t y ∩ U n d e r s t a n d a b i l i t y 可 解 释 性 = 诠 释 ∩ 理 解 能 力 \begin{aligned}Explainability &= Interpretability ∩ Understandability\\可解释性 &= 诠释 ∩ 理解能力\end{aligned} Explainability=InterpretabilityUnderstandability=
上面这个定义明确了诠释与解释的区别。

  • 解释是诠释的子集。
  • 可解释性是诠释和理解能力之间的交集。
  • 所以增强可解释性可以从两方面入手,
  • 一方面构造更加通俗易懂的诠释,
  • 另一方面尽力提升人类的理解能力。
  • 如果人类能够理解四维或更高维度的数据,就会像一个从未见过光影的盲人突然获得视觉,瞬间明了世人口中的色彩。

至于上面列出的这些近义词,透明(transparent) 与可解释是等价的。健壮 (robust) 与人工智能系统的精确度与泛化能力有关,有时候会影响 Why,比如人工智能做出了让人大跌眼镜的决策,则人类会急切知道人工智能做出此决策的理由。公平 (fair) 与人工智能系统在某一类数据集上的偏差有关,也会影响Why,比如人工智能系统决策涉及性别歧视,种族歧视时,人类也会急切知道理由。负责(responsible)与开发,部署和使用人工智能系统的人员有关,与可解释性没有太大关系。

明确(explicit) 和 忠实(faithful) 则是与人工智能可解释性密切相关的核心词汇。明确(explicit) 表示的一个诠释与给定人群的理解能力之间到底有多大的交集,诠释越明确,则交集越大,即可理解性越强。忠实(faithful) 则反应诠释的正确性,即多大程度上揭示了人工智能系统的真正机理。

四、How 如何解释?

介绍的这篇文章将很多方法论的东西,比如特征选择, 模型工具,输出工具,可视化,典型样例都放在了 What 类里。按照我的想法,这些该被放进 How 如何解释 的类别。
人工智能-机器学习:机器学习的可解释性(Explainable Machine Learning)_第1张图片
上面这个列表中的特征分析(Feature analysis)方法,属于数据预处理方法。有篇引用数超过一万两千次的文章,An introduction to variable and feature selection 详细的介绍了这种方法。特征分析的目标是使模型更小更快,结果方差更小。特征分析的方法包含特征选择(Feature Selection),特征子集选择(Feature Subset and Wrapper method)以及特征构造(Feature Construction)。这些方法的共同目标是减少特征数量,提高特征质量。

特征选择 最简单的方法是计算一个输入样本中某个特征与标签的关联函数,与标签关联越强,说明特征越重要。特征重要性排序是特征选择的依据。如果输出Y连续变化,则 Pearson 关联函数定义为:

在这里插入图片描述
其中 cov() 计算协方差,var 计算方差, X i X_i Xi 是输入样本 X X X 的第 i i i 个特征, Y Y Y 是标准答案。 R ( i ) R(i) R(i) 代表 X i X_i Xi 与标准答案之间的关联或反关联, R ( i ) 2 R(i)^2 R(i)2值越大,则关联越强,特征越重要。第二个公式是对第一个公式的展开,也可以理解成去中心之后,向量 x ‾ i \overline{x}_i xi 与 y 的 cosine similarity。为了防止过拟合,还可以先对 X X X 做预处理,计算每个特征的平方,平方根,log,指数,倒数等,再计算关联函数。使用 R ( i ) 2 R(i)^2 R(i)2 做判据筛选出来的都是与标准答案线性回归拟合最好的特征。这种方法可以通过构造单变量的分类器,推广到分类任务中。

另一种复杂点的方法是信息论里面的互信息与信息增益。互信息与之前的关联函数定义很像,

在这里插入图片描述
其中 p ( x i ) p(x_i) p(xi) p ( y ) p(y) p(y) 代表 x i x_i xi y y y 的概率密度, p ( x i , y ) p(x_i,y) p(xi,y) 代表 x i x_i xi y y y 的联合概率密度。 I ( i ) I(i) I(i) x i x_i xi y y y 的概率密度依赖的测度。这些概率密度可以通过频率来计算。

1、特征子集选择 (Wrapper)

特征子集选择 (Wrapper)这种方法与事后分析里面的LIME方法很像,都是将机器学习模型当作黑盒子,通过选择特征子集,输入到黑盒子中,来筛选重要特征。

2、特征构造

特征构造 最简单的方法是通过聚类,或者PCA/SVD,LDA 进行线性变换,更复杂的线性变换有谱变换(傅立叶变换,Hadamard变换),小波分析,卷积,对特征子集应用简单的多项式函数。

3、事后分析全局解释方法

  • 事后分析(Post Hoc Analysis)中,全局解释只有一种方案,即神经元可视化 – 通过梯度上升生成图片,最大程度激活某个神经元,来描述每个神经元学到了什么。

4、事后分析局部解释方法

  • 局部解释有很多方法,LIME,Prediction Difference Analysis,Saliency Map,Class Activation Map等。
  • 局部解释的方法都基于高维弯曲空间的局域平直假设。在此假设下,对输入空间中某张图片做微扰(比如部分排除,模糊,加噪声),神经网络的输出对微扰线性响应。
  • 对神经网络做关于输入的一阶泰勒展开 f ( x ) ≈ x w + b f(x)≈xw+b f(x)xw+b 那么 ∂ f ∂ x \cfrac{\partial f}{\partial x} xf 就能解释每个像素的重要性。在输出层之前的最后一个卷积 Feature Map 附近做一阶泰勒展开,就得到了 Gradient Weighted Class Activation Map。《打开人工智能的黑盒子》对各种事后分析方法做了详细介绍。

五、When 何时解释?

解释的时机分三种,

  • 任务开始前
  • 任务进行中
  • 任务完成后

看起来好像是废话,但其实很有道理。在用到人工智能系统的场所,最好在任务开始之前告知用户,其面对的是人工智能系统生成的决策。这样会在当前的弱人工智能阶段,降低用户期待,减少后期失望。比如人工智能客服。

在自动驾驶汽车街道测试阶段,如果有一个物体探测系统,如 SSD,YoLo 实时的将汽车行进过程中识别的行人,汽车,红绿灯打上标签,向工程师告知其每个决策的理由,则会大大增加系统的透明度,提高人类对自动驾驶系统的信任。

在辅助知识发现的用途中,只需要任务完成之后,告诉科学家人工智能系统基于哪些特征,哪些重要区域,在输入空间和输出空间之间建立了有效映射,则已经可以给科学家带来火花带闪电般的灵感。

六、总结

可解释性是客观诠释与主观理解能力之间的交集。通过回答Why,Who,What,How and When 几个问题,我们可以加深对机器学习可解释性的理解。如何构造一个框架,以流水线的方式为机器学习系统提供可解释性,并量化可解释性,从而指导可解释性与模型复杂度之间的权衡,仍是未来的研究热点之一。




参考资料:
Explainability in Human-Agent Systems
Interpretable Machine Learning
《打开人工智能的黑盒子》

你可能感兴趣的:(#,机器学习/ML,人工智能,机器学习)