可解释机器学习:黑盒模型可解释性理解指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 可解释性的重要性

当一个机器学习模型运行良好时,可以完全信任该模型而忽略做出决策的原因呢?分类准确性(Classification Accuracy)之类的单一指标无法完整地描述大多数实际任务[4]

1.何时需要解释

下面深入探讨可解释性的重要性。当涉及预测模型时,需要做出权衡:是只想知道预测是什么?例如,客户流失的概率或某种药物对病人的疗效。还是想知道为什么会做出这样的预测?这种情况下可能为了提高可解释性付出预测性能下降的代价。在某些情况下,你不必关心为什么要做出这样的预测,只要知道模型在测试数据集的预测性能良好就足够了。但是在其他情况下,了解“为什么”可以帮助你更多地了解问题、数据以及模型失败的原因。有些模型可能不需要解释,因为它们是在低风险的环境中使用的,这意味着出现错误不会造成严重后果(例如电影推荐系统),或者该方法已经被广泛研究和评估(例如光学字符识别)。对可解释性的需求来自问题形式化的不完整性[4],这意味着对于某些问题或任务,仅仅知道预测结果是不够的。该模型还必须解释是如何获得预测的,因为正确的预测只部分地解决了原始问题。以下原因推动了对可解释性(Interpretability)和解释(Explanation)的需求[2, 4]

·人类的好奇心和学习能力是指人类有着对周围环境的心理模型(Mental Model),当发生意外时,人类就会通过为意外事件找到解释来更新这个模型。例如,一个人突然感到不舒服,就会问自己:“为什么我感到如此不舒服?”他得出每次吃那些红色浆果后都会生病,于是更新了他的心理模型,认为浆果导致了疾病,因此应该避免食用。在研究中使用不透明的机器学习模型时,如果模型仅给出预测而没有给出解释,则科学发现仍是完全不可知的。为了促进学习并满足人们的好奇心--“为什么机器产生了某些预测或行为”,可解释性和解释至关重要。当然,人们不需要对发生的一切都进行解释。对于大多数人来说,他们可以不理解计算机是如何工作的。但意外事件使我们好奇,例如“为什么我的计算机会意外关闭?”

·与学习密切相关的是人类渴望找到事物存在的意义。我们希望调和自己知识结构要素之间的矛盾或不一致。例如,“为什么我的狗会咬我,它以前从来没有这样做过?”狗过去的行为与新发生的、令人不快的咬伤经历之间存在着矛盾。兽医的解释调和了狗主人的矛盾:“那只狗因为紧张而咬人。”机器的决策对人的生活影响越大,机器行为的解释就越重要。如果机器学习模型拒绝贷款申请,这对于申请者来说可能是完全意外的。他们只能用某种说法来调和期望和现实之间的这种不一致。这些解释实际上并不需要完全说清楚情况,但应该至少提供一个主因。另一个例子是算法产品推荐,就我个人而言,一直在思考为什么算法将某些产品或电影推荐给我。通常情况是:网络上的广告跟踪着我,因为我最近买了一台洗衣机,我知道在接下来的几天里,洗衣机广告会推送给我;由于购物车中已经有冬帽,建议戴手套是很合理的;算法推荐某部电影,是因为和我喜欢相同类型电影的其他用户也喜欢看这部电影。互联网公司越来越多地在推荐中添加解释。亚马逊产品推荐就是一个很好的例子,它的推荐基于经常购买的产品组合,如图2-1 所示。

图2-1 从亚马逊购买颜料后推荐的产品

·在许多学科中,从定性方法到定量方法(例如社会学、心理学),以及机器学习(例如生物学、基因组学),都发生了变化。科学的目标是获取知识,但是许多问题都是通过大数据集和黑盒机器学习模型解决的。模型本身应该成为知识的来源,而不是数据。可解释性使得通过模型捕获的这些额外知识可以被提取。

·机器学习模型承担安全措施和测试的实际任务。想象一下,一辆自动驾驶汽车根据深度学习系统自动检测骑自行车的人。你要100% 确保系统学到的抽象是无误的,因为一旦汽车直接碾过骑自行车的人,这种情况是非常糟糕的。一种解释可能会指出,最重要的学习特征是识别自行车的两个轮子,这种解释也可以帮助你思考极端的情况,例如自行车车轮被遮住了。

·在默认情况下,机器学习模型从训练数据中学到了某种偏见,这可能把你的机器学习模型变成歧视受保护群体的种族主义者。可解释性是机器学习模型中一种有效检测偏见的调试工具。用于自动批准或拒绝信用申请的机器学习模型可能会歧视少数人。而你的主要目标是只向最终会偿还贷款的申请人提供贷款。在这种情况下,问题表述的不完整性在于,你不仅想要最大限度地减少贷款违约,而且有义务不根据某些人口统计数据加以区分。这是问题制定中的一个附加约束(例如以低风险和合规的方式发放贷款),而机器学习模型优化针对的损失函数并没有包含这一约束。

·将机器和算法整合到日常生活中的过程需要可解释性,以增加社会认可度。人们把信仰、欲望、意图等归因到物体上。在一个著名的实验中,Heider 和Simmel[5] 向参与者展示了一些形状的视频,用一个圆圈打开一扇“门”,进入一个“房间”(例如描述为长方形)。参与者描述了形状的动作,就像描述人的行为一样,这为形状分配了意图、甚至情感和性格特征。机器人就是一个很好的例子,比如我的一个扫地机器人,名字就叫“Doge”。如果Doge 被卡住了,我可以这么想:Doge 想继续打扫,但它因为卡住了而向我求助。后来,当Doge 打扫完并寻找插座充电时,我想:Doge 想充电,并打算找到插座。我还可以给它赋予性格特征:Doge 有点笨,但很可爱。这些是我的想法,尤其是当我发现Doge 在尽职地打扫房子时撞倒了一棵植物时。能对预测进行解释的机器或算法会得到更多的认可,后文将讨论解释是一个社会化过程。

·解释用于管理社交互动。通过创造某个事物的共同含义,解释者影响着解释的接收者的行为、情感和信念。对于一个要与我们互动的机器,它可能需要塑造情感和信念。机器必须“说服”我们,这样它们才能达到预期的目标。如果我的扫地机器人没有在某种程度上解释它的行为,则我不会完全接受它。扫地机器人创造了一个共同的含义,例如对于“事故”(再次被困在浴室的地毯上),解释说它被卡住了,而不是简单地停止工作却不发表评论,如图2-2 所示。有趣的是,解释机器的目标(例如构建信任)和接收者的目标(例如理解预测或行为)之间可能存在偏差。也许对Doge 被卡住原因的完整解释可能是电池电量非常低,其中一个轮子工作不正常,还有一个故障让机器人即使有障碍物也一次又一次地走到同一个地方等。这些原因导致机器人被卡住,但它只解释了有什么东西挡在路上,这足以让我相信它的行为。

图2-2 扫地机器人Doge 被卡住了

·机器学习模型只有在可以解释时才能进行调试和审核。即使在低风险环境中,例如电影推荐,在研究阶段、开发阶段及部署之后,解释能力也是很有价值的。之后,当模型用于开发产品时,可能会出错。对错误预测的解释有助于理解错误的原因,它为如何修复系统提供了指导方向。考虑哈士奇与狼分类器的例子,分类器将一些哈士奇误分类为狼。使用可解释的机器学习方法,会发现错误分类是由图像上的雪造成的。分类器学会了使用雪作为一个特征来将图像分类为狼,这对于在训练数据集中区分狼和哈士奇可能是有道理的,但在实际使用中则不然。

如果要确保机器学习模型能够解释决策,还可以更容易地检查以下性质[4]

·公平性(Fairness)。确保预测是公正的,不会隐式或显式地歧视受保护的群体。可解释的模型可以告诉你为什么它决定某个人不应该得到贷款,并且使人们更容易判断该决策是否基于学习人口统计学偏见(例如种族)。

·隐私性(Privacy)。确保保护数据中的敏感信息。

·可靠性(Reliability)或健壮性(Robustness)。确保输入的微小变化不会导致预测发生剧烈变化。

·因果性(Causality)。检查是否只找到因果关系。

·可信任性(Trust)。与黑匣子相比,人们更容易信任用于解释其决策的系统。

2.何时不需要解释

以下场景说明了何时不需要甚至不希望了解机器学习模型的可解释性。

·如果模型没有重大影响,则不需要可解释性。想象一下,一个名为麦克的人正在做一个机器学习方面的项目,根据Facebook 的数据预测他的朋友们下一个假期会去哪里。麦克喜欢有依据地推测朋友们会去哪里度假,从而让他的朋友们感到吃惊。如果模型是错误的,那也没有问题(最坏的情况是,麦克有点尴尬);如果麦克不能解释模型的输出,那也没有问题。在这种情况下,没有可解释性是完全可以的。如果麦克开始围绕这些度假目的地的预测建立业务,情况将有所不同。如果模型是错误的,企业可能会赔钱,或者模型可能会因为种族偏见而变得更糟。模型一旦对金融业或社会产生重大影响,可解释性就变得很重要了。

·当问题被研究得很深时,就不需要可解释性了。一些应用已经得到了充分的研究,因此有足够的实践经验,随着时间的推移,模型的问题已经得到解决。一个很好的例子是光学字符识别的机器学习模型,它处理信封中的图像并提取地址。这些系统有多年的使用经验,很明显它们是有效的。此外,我们对获取信封上面文字任务的原理并不真正感兴趣。

·可解释性可能使人或程序能够操纵系统。欺骗系统的用户问题是由模型的创建者和用户的目标不匹配造成的。信用评分就是这样一个系统,因为银行希望确保贷款只发放给能偿还贷款的申请人,而申请人的目标则是获得贷款,即使银行不想提供给他们。这两个目标之间的不匹配迫使申请人与系统进行博弈,以增加他们获得贷款的机会。如果申请人知道拥有两张以上的信用卡会对他的信用分数产生负面影响,则他只需要通过注销第三张信用卡来提高分数,并在贷款获得批准后申请新的信用卡。虽然他的分数有所提高,但偿还贷款的可能性并没有改变。只有当输入是因果特征的代理,而不是实际导致结果时,系统才能被博弈。应该尽可能避免使用代理特征,因为它们使模型有可能被博弈。例如,Google 开发了一个名为“Google 流感趋势”的系统来预测流感爆发。该系统将Google 搜索与流感爆发相关联,但其表现不佳。搜索查询的分布发生了变化,Google 流感趋势错过了许多次流感爆发。Google 搜索不会导致流感,当人们搜索“发烧”这样的症状时,仅因为这是与实际流感爆发的关联。在理想情况下,模型只使用因果特征,因为它们不可被博弈。