什么是机器学习的可解释性?
这个领域最重要的问题是:为什么机器学习需要可解释性?为了回答这个问题,必须知道一个机器学习系统究竟多需要可解释性。如果将此需求分为三层,大概可以这样分:
在这些场景中,如果能提供可解释性,则会带了很大好处。但如果无法提供可解释性,也不会带来太大危害。
虽然解释面向的对象千差万别,但能够提供解释的好像只有一种人,那就是人工智能系统的开发人员。
人们讨论可解释性的时候,往往忽略谁向谁解释,为何解释与何时解释,只关注解释什么与如何解释。比如知文《打开人工智能的黑盒子》,就专注于回答解释什么和如何解释。
根据解释的对象,可以分为对输入空间 F F F 的解释,以及对神经网络 L L L 本身的解释。
全局与局部解释都可以简化为: E = I ∩ U E=I∩U E=I∩U,即
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可解释性=Interpretability∩Understandability=诠释∩理解能力
上面这个定义明确了诠释与解释的区别。
至于上面列出的这些近义词,透明(transparent) 与可解释是等价的。健壮 (robust) 与人工智能系统的精确度与泛化能力有关,有时候会影响 Why,比如人工智能做出了让人大跌眼镜的决策,则人类会急切知道人工智能做出此决策的理由。公平 (fair) 与人工智能系统在某一类数据集上的偏差有关,也会影响Why,比如人工智能系统决策涉及性别歧视,种族歧视时,人类也会急切知道理由。负责(responsible)与开发,部署和使用人工智能系统的人员有关,与可解释性没有太大关系。
明确(explicit) 和 忠实(faithful) 则是与人工智能可解释性密切相关的核心词汇。明确(explicit) 表示的一个诠释与给定人群的理解能力之间到底有多大的交集,诠释越明确,则交集越大,即可理解性越强。忠实(faithful) 则反应诠释的正确性,即多大程度上揭示了人工智能系统的真正机理。
介绍的这篇文章将很多方法论的东西,比如特征选择, 模型工具,输出工具,可视化,典型样例都放在了 What 类里。按照我的想法,这些该被放进 How 如何解释 的类别。
上面这个列表中的特征分析(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 的概率密度依赖的测度。这些概率密度可以通过频率来计算。
特征子集选择 (Wrapper)这种方法与事后分析里面的LIME方法很像,都是将机器学习模型当作黑盒子,通过选择特征子集,输入到黑盒子中,来筛选重要特征。
特征构造 最简单的方法是通过聚类,或者PCA/SVD,LDA 进行线性变换,更复杂的线性变换有谱变换(傅立叶变换,Hadamard变换),小波分析,卷积,对特征子集应用简单的多项式函数。
解释的时机分三种,
看起来好像是废话,但其实很有道理。在用到人工智能系统的场所,最好在任务开始之前告知用户,其面对的是人工智能系统生成的决策。这样会在当前的弱人工智能阶段,降低用户期待,减少后期失望。比如人工智能客服。
在自动驾驶汽车街道测试阶段,如果有一个物体探测系统,如 SSD,YoLo 实时的将汽车行进过程中识别的行人,汽车,红绿灯打上标签,向工程师告知其每个决策的理由,则会大大增加系统的透明度,提高人类对自动驾驶系统的信任。
在辅助知识发现的用途中,只需要任务完成之后,告诉科学家人工智能系统基于哪些特征,哪些重要区域,在输入空间和输出空间之间建立了有效映射,则已经可以给科学家带来火花带闪电般的灵感。
可解释性是客观诠释与主观理解能力之间的交集。通过回答Why,Who,What,How and When 几个问题,我们可以加深对机器学习可解释性的理解。如何构造一个框架,以流水线的方式为机器学习系统提供可解释性,并量化可解释性,从而指导可解释性与模型复杂度之间的权衡,仍是未来的研究热点之一。
参考资料:
Explainability in Human-Agent Systems
Interpretable Machine Learning
《打开人工智能的黑盒子》