原始网址:原文链接
前言
写这篇的目的是把英文的ppt给内化成自己的语言,方便第二次阅读,也能够在理解的过程中了解可解释性的一些内容。如有错误,欢迎二次修订。
整体概述
- 第一部分,将介绍AI中解释的不同方面
- 第二部分,重点介绍两个特定的方法、目前的技术状态和下一步的限制和研究挑战:(1)XAI使用机器学习(2)XAI使用基于图的知识表示和机器学习的组合
- 第三部分,概述XAI的实际应用
XAI介绍和动机
AI是什么
作为一个值得信赖的AI,需要包含下列四个方面:
- 能够有效的解决问题
- 能够保护隐私
- 能够负责任,结果稳定值得信赖(Responsible)
- 能够被人类/机器分别解释,足够理性(Rational)
为什么需要可解释性呢?
原因有下面两点:
- 首先,如果机器学习具有了可解释性,那么在训练出模型之后,人类将能够理解这个模型,并且利用人类的理解,去改进这个模型。如此一来,模型的进化将不仅仅依赖于传统的泛化误差(也就是具有普遍性、可扩展性的误差),更能够增加人类的经验。
- 其次,欧盟的GDPR和CCPA这些标准都指出,无论是数据的使用者还是数据的控制者,数据以及它的使用方法都应该具备下列四种特征:(1)公平性(2)隐私性(3)透明性(4)可解释性
小结
如果一个机器学习模型具有可解释性,那么它将获得三点好处:
- 它能让机器学习(ML,Machine Learning,下文都将用ML替代)更加值得信赖
- 它能够有效的改进(甚至提升)模型训练过程中的优化部分,这里或许是会提高训练出好模型的效率。
- 它能够让这个模型通过欧盟标准,从而将依赖某些技术的产品推向欧洲市场。
设计可解释性的AI产品
那么对于AI产品来说,“设计可解释性”是什么呢?(这一页的目的并没有看的很懂)
下面是一个可解释性的AI的产品流程环路:
- 训练一个模型
- 模型debug
- 模型可视化
- 质量测试
- 模型评估
- 符合性测试
- 部署(发布)
- 模型发布签准
- 模型发布管理
- 预测
- 可解释决策
- API支持
- A/B测试
- 几个不同模型的比较
- 队列分析
- 监控
- 模型表现监视
- 实时监控
- debug
- 模型诊断
- 根本原因分析
- 重新回到第一步训练模型。重复这些过程
通过了解AI产品的运营步骤,可以大致了解可解释性工作的位置,或者说是人类经验可以介入的地方。
什么是可解释性的AI
了解了可解释的必要性以及产品开发流程,我们来看看可解释性的AI是什么。
下面将会把传统黑盒AI和可解释性AI进行对比。
黑盒AI
首先来讲现今普遍流行的黑盒AI。它是不可解释的,也就是用我们人的经验逻辑是无法理解的。
黑盒AI的工作流程
将数据导入进黑盒中,进行我们不能理解的训练后,得到一个模型,由这个模型得到一个AI产品。这个AI产品给用户(我们)提供服务,包括给我们的疑惑进行解答(也就是做决定),或者是给我们做推荐等。
黑盒AI带来的疑惑
- 为什么AI选择了这个?它是基于什么来判断的?
- 为什么AI不选择那个?它又是基于什么信息/条件排除的?
- 我怎么能保证它什么时候是正确的,什么时候工作错误了?
- 如果我发现它工作错误了,我用什么办法才能让它纠正这个错误,并且不再犯错?
这里的我,可能是AI模型的缔造者,比如程序员;也可能是使用者,比如使用该产品的用户
可解释性AI
有了黑盒AI的基础,就可以对比出可解释性AI的优势。
可解释性AI的流程
将数据导入进可解释性AI的训练盒中,训练出一个具有可解释性的AI模型,将这个模型用于可解释性AI产品,给用户做决策、解释,而用户基于模型的决策、解释的结果,可以反馈给训练盒,于是训练盒可以继续改进模型。
可解释性AI:清晰透明的预测
- 我知道AI为什么做出了这样的判断
- 我知道AI为什么不选择其他的判断、结果
- 我知道AI为什么会判断成功,又为什么会判断失败,从而我能够改进它,或者很容易明白它的局限性和优势
- 我清楚的知道一切,所以我信赖它的决策。
如何进行AI解释呢?(这一页也没看懂)
基于现有的办法来说,这些方法的可解释性主要体现在三种方法上:
- 非线性函数
- 多项式函数
- 拟线性函数
正因为能够拟合成相应的函数,所以这些方法是可以用人类知识、经验来介入、控制的。但有一点需要声明,上述三种方法在人类理解上是由难到易的,某种程度上来说,其可解释性也是由低到高。即越难理解,越难解释。
从而,预测准确性和预测的可解释性是难以兼顾的两方面。总的来说,往往准确性高的方法,在可解释性上是较低的。这里唯一的特例就是决策树方法,具有较高的准确性和很强的解释性。
同时,现有的方法实在是多种多样,有的是监督学习,有的是非监督学习;在方法上,有表征学习(Representation Learning)和随机选择(Stochastic Selection);在输出上,只输出了准确度,却没有输出因果关系。这些都使得现有方法难以被解释出来,特别是用统一的方法解释。
Explanation Or Interpretation?
这里是一个插播,在英文中,“可解释性”究竟是使用Explaination还是Interpretation来表示呢?
根据牛津英语词典的解释,explanation表示的是一种让某物变得更加清楚、清晰、明白的状态或者解释;而interpret(这里是个动词)它解释了信息或者是行为的内涵。
所以可以根据不同语境使用不同的单词。但我在谷歌学术上用Interpretation能检索出更多的相关。
可解释性的多个指标
(太难翻译出来了,应该有很多错误)
尽管可解释性只有一个词,但是它的内涵却很丰富:要达到怎么样的指标才能算可解释了呢?这里给出了六个指标:
- 可理解性:需要用多少的力气才能获得正确的人类解释性(correct human interpretation)?
- 简洁性:解释有多简洁明了?
- 可操作性:一个操作,在解释性的帮助下能够做什么?
- 可重用性:一个解释性可以被私有化吗?
- 精确性:解释有多准确
- 完整性:解释是完整的,部分的,还是在特定条件下的?
人工智能的解释
有必要明确的是,人工智能(AI)和机器学习(ML)是不同的概念。可以说,ML只是AI的一个分支领域。
本段的目的是,通过对人工智能各个领域(优化、知识表示和推理、机器学习、搜索和约束优化、规划、自然语言处理NLP,机器人和视觉)的解释概述,使每个人对解释的各种定义保持一致。
同时,本段还将讨论可解释的评估。
虽然本段涵盖了大多数定义,但仅对下列领域进行深入:
- 可解释的机器学习
- 可解释的AI与知识图和机器学习
可解释性AI:一个目标,很多'AI',很多定义,很多方法
演讲者在这里放了很多例子。
对可解释性机器学习的概述
数学模型
下面列举了一些具有可解释性的模型:
- 决策树/决策列表/决策集(Decision Trees, Lists and Sets)(其实就是使用的数据结构不同吧)
- GAMs(Generalized Additive Models)
- GLMs(广义线性模型)
- 线性回归
- Logistic回归
- KNNs(k最近邻算法)
- 简单贝叶斯模型
- 反事实假设(Counterfactual What-if)(一知半解)
- 特征重要性PDP图和ICE图的敏感度分析(同样一知半解)
人工神经网络
除了上面的这些模型之外,还有一些人工神经网络:
- 深度网络的属性(基于综合梯度)
- 自编码器算法(auto-encoder)(后面跟着的prototype我不知道想要表达什么)
- 注意力机制(attention Mechanism)
- 代理模型(surogate model)(也不明白)
计算机视觉
在计算机视觉这一块,也有一些方法是可解释的:
- 可解释单位(Interpretable Units)(不是很明白指哪些)
- 不确定性图(Uncertainty map)
- 可视化解释(Visual explanation)
- 显著图(Saliency Map)(可以理解为特征图?)
其他AI领域
很多名字难以翻译,于是直接原文了。对这些领域内的内容非常不了解,下列理解仅作参考。
博弈论
- SHAP(SHapley Additive exPlanations)(是一种解释任何机器学习模型输出的博弈论方法)
- L-shapley and c-shapley (with graph structure)这是一个对结构性数据很有效的模型解释方法
- Instance-wise feature importance(causal influence)
搜索与约束满足
- 冲突解决(conflict resolution)
- 鲁棒计算(Robustness Computation)
- 约束松弛(Constraints relaxation)
知识表征和推理
- 解释推理(通过正当理由)如涵摄(Subsumption)
- 诱因推理(在贝叶斯网络中)
- 诊断推理
多代理系统
- 代理冲突和有害交互的解释
- 代理策略总结
- 可解释的代理
NLP(自然语言处理)
- 可解释的NLP
- NLP中的LIME(LIME是一种解释机器学习模型的方法)
- NLP调试器
这里有一段不明含义的内容:
“细粒度的解释形式如下:(1)真实数据集中的文本;(2)数值分数”
计划和调度
- XAI 计划
- “人机回圈”计划(Human-in-the-loop planning)
- 计划比较
机器人领域
- 自主机器人体验解说(Narriation of Autonomous Robot Experience)
- 从决策树到人性化信息(From Decision Tree to human-friendly information)
可解释的机器学习(从机器学习的角度)
这一部分的核心是分析不同类别的黑盒问题,从黑盒模型解释到黑盒结果解释。
从这句话可以看出,解释性可以包含至少两个方面:
- 使模型本身可解释。
- 模型的结果可以通过一些方法解释出来。
实现可解释的人工智能
方法有如下几种:
- 事后解释给定的AI模型
- 从输入的特征、(对结果)有影响力的例子、概念、局部决策规则来进行个别预测解释
- 从局部相关图、全局特征重要性、全局决策规则对整个模型进行全局预测解释
- 建立一个可解释的模型
- 比如上面提到过的:Logistic回归,决策树/列表/集,广义可加模型(GAMs)等
可解释性备忘单
这张图非常庞大,截图也截不清楚。这个内容的具体解释可以在github上看到,但是链接地址没有暴露在外面。在这里用一张根据我自己的理解制作的流程图说明:
可解释的机器学习(从知识图谱的角度)
这一部分将讨论基于图形的知识库与机器学习方法相结合的解释力
知识图
定义
三元组的集合(也就是主语、谓语、宾语,英文简写SPO)中,主语(subject)和宾语(object)是实体,而谓语(predicate)是两者之间的关系。
任何一对SPO三元组表示一个事实(facts),即两个实体之间实际关系的存在。
介绍一些知识图集
里面的KG=Knowledge Graph,也就是知识图
这些知识图有的是人工制作的,需要进行策划和协作;有的是自动化生成的,需要对内容进行半结构化或者非结构化(或者这里的意思是指要对非结构化或者半结构化的数据进行结构化?)
下图是一个链接的开放数据云的图,其中有超过1200内联的知识图编码成超过200M的事实(facts),内含大约50M的实体:
知识图可以跨多个领域:地理、政府、生命科学、语言学、媒体、出版物、跨领域等等。
机器学习中的知识图
总的来说,机器学习的网络层是能够给中间特征增加更多的语义,比如说增加知识图的嵌入或者是实体。
配图的文字说明是:
以训练识别狗的品种为例,输入层输入了大量各种品种的狗的照片的训练数据集,同时也输入了一个没有标注品种的狗的图片。
然后就进入了隐藏层,总的来说,隐藏层是一个由低维向量向高维向量转变的过程。比如隐藏层的第一层,神经元代表了一些简单的形状;到了第二层,神经元就代表了一些更加复杂的结构,某种意义上就是把简单的形状给解构了;到了第n层,神经元就表达了一些更高维、复杂、抽象的概念。
最终根据把未知品种的狗的照片通过隐藏层的解构、重组、映射到高维上之后,评估这张照片上的狗是不是品种A,是不是品种B,是不是品种C。将各个品种的狗的可能性输出,或者是输出这张图片是哪种品种,就是输出层的内容。
机器学习中的知识图——一种实践
图很复杂,信息量很大。懒得翻译了kkk。
XAI工具的应用、经验教训和研究挑战
这一节中,回顾一些XAI开源和商业工具在实际应用中的例子。
在这里,我们关注的用例有八个,不一一例举。具体可以往下看。
可解释的增强目标检测——行业不可知(没看懂)
(似乎是来自THALES的一篇论文)
论文中的某一部分结果对比是:对比通过快速RCNN上进行目标检测的结果,使用语义增强能够以相对较高的准确度检测出目标,而且增加检测出了另外的物体,这个结果附带了下面的解释:人、浆板和水是图片内容的一部分,也是“船”这个概念的知识图中的一部分。
挑战:目标检测通常是从大量标记数据上训练的人工神经网络(ANNs)体系结构中进行的。由于最精确的人工神经网络的高度复杂性,解释目标检测相当困难
AI技术:集成人工智能相关技术,即机器学习(深度学习 / CNNs),以及知识图 / 链接开放数据。
XAI技术:知识图和ANNs
如何利用GDBT的特征重要性
在说此处的信息之前,我们有必要离开本篇,去学习GDBT,对GDBT有一个至少是概念上的理解。
现在回到正文。
- 理解特征偏离
- 哪个功能不再具有影响力
- 我们应该调试特征生成吗?
- 批量引入新特征并且识别有效特征
- 最近3小时、6小时、12小时甚至24小时都活跃着的特征(计算成本高)
- 我们需要保留所有这些特征吗?
- 分离出那些引起改善的因素
- 这个改善是因为加入了一个新的特征,还是引入了新的标签策略,或是数据资源?
- 功能之间的顺序是否有改变?
- 缺点:这是一个全局的角度来看的,而不是根据个别例子一个个看的
被使用的TensorFlow模型并且解释它们
我们使用了综合梯度[ICML 2017]的方法(来解释他们)。
现在的问题是,我们如何决定基线(baseline)的示例?
(下面陈述了寻找baseline示例的困难之处)
- 实际上,每个查询(query)都为同一个候选(candidate)创造了一个自己的特征值。
- 而查询匹配了特征,(尤其是)基于时间的特征。
- 招聘者亲和力和候选亲和力的特征(原句:Recruiter affinity, and candidate affinity features)(这里我认为大意是选择更加相似的、有用的特征,或者说是权重很大的)
- 一个候选会被不同的查询评估出不同的分数
- 不能把“软件工程师”作为查询“法医化学家”的推荐回答(我的理解是,这个示例不能偏离正确答案太多)
- 不存在一个可以比较全局的中立示例。
解决上面这个问题的关键点在于:
首先,将宽泛的“解释”视作一个特殊的contributor(贡献者)或者是influencer(影响者)的特征,会对这个问题的解决比较有效。在这段话中,“贡献者”和“影响者”的定义如下:
- 贡献者:根据当前的输出结果,逐一的得到在最终结果中出现的特性。
- 影响者:同样也是根据每个例子,思考如果要提高似然度,需要做些什么。
比如说xLIME旨在能够通过下列方法提高LIME的效果,而这些方法,某种意义上就是“解释”:
- 分段线性回归:更准确地描述局部点,有助于找到正确的影响因素
- 局部分层抽样:更真实的局部点集
如此一来,就更好的捕捉到了重要的特征。
Fiddler的可解释AI引擎
这个引擎的任务目标是:通过让每个企业都能解释人工智能,来释放信任、可见性和洞察力。
他的工作流程是:用户向Fiddler提供所有的数据(这些数据可以在任何的数据仓库中),然后Fiddler就会通过内置的常见的模型(比如TensorFlow、PyTorch、Spark等),将数据转化成任何人都能理解的可解释AI,这些可解释的内容会通过API、仪表盘(Dashboard)、报告、或者是值得信赖的内视(Trusted insights)展现出来。
机器学习中的可解释性:普遍的挑战
这一段讲述的是想要实现机器学习的可解释性,必然会遇到的普遍的挑战。
- 解释性需要具有可操作性
- 模型的可解释性和模型的保密性是天平的两端。如果需要发展可解释性,必然需要综合考虑模型的保密性,否则将会造成巨大损失。
- 对于故障模式(或者是机器学习模块之间的相互作用)的解释需要有鲁棒性。
- 特别针对于应用方面的挑战:
- 会话AI系统:语境解释。在不同的对话语境下应该如何更好的表现解释性。
- 解释的层次。(这里没看懂)
- 在AI生命周期中进行可解释的工具
- 机器学习模型的前后端的部署。
- 模型开发者和最终使用者,两者不同的关注点和侧重点。
结语
终于,冗长的翻译、理解过程结束了,对可解释性有了一些新的理解。里面依然有很多我不懂、或者是大胆猜想的地方,有错误是在所难免的。但总体来说还是很开心的。
这个ppt的最后有说:
教程网页:https://xaitutorial2020.github.io
可以去那里看看呀。