乐于分享
好东西不私藏

信任、可解释性、可说明性《人工智能-现代方法》19.9.4

信任、可解释性、可说明性《人工智能-现代方法》19.9.4

19.9.4 信任、可解释性、可说明性

信任、可解释性、可说明性”,是当前机器学习工程化方法论中最受关注也最难攻克的一环。
在模型完成选择与训练之后,若缺乏这些要素,性能再好的模型也可能无法部署或引发风险。
机器学习方法,可以使用训练数据构建模型,通过验证数据来选择超参数,并使用测试数据获得模型的最终衡量。

在这个指标上做得好是你信任该模型的一个必要条件,但它并不充分。并且不仅是你,还有其他利益相关者,包括监管机构、立法者、新闻界和用户,也对该系统的可信度(以及相关属性,如可靠性、责任性和安全性)感兴趣。

 信任、可解释性、可说明性这三个词常被混用,但各有侧重:
可解释性:侧重模型内部机理。能否用人能理解的方式,描述模型是如何得出结果的?(比如“决策树的分裂规则”)
面向对象:开发者/监管者。
可说明性:侧重为个体决策提供理由。能向受影响的用户解释“为什么是这个结果,而不是其他”。(比如“因为你的收入降低了20%,所以额度下调”)
面向对象:制度/法律
信任:这是最终目标,建立在使用者对模型能力(准确度)和可靠性(稳健、公平)的综合信心之上。
面向对象:用户/公众

一个机器学习系统本质上是一个软件,因此仍可以使用所有用于检验和验证任何软件系统的典型工具来建立信任。

  • 源代码控制:用于版本控制、构建和缺陷/问题跟踪的系统。

  • 测试:所有组件的单元测试,包括简单的典型测试用例和棘手的对抗测试用例、模糊测试(生成随机输入)、回归测试、负载测试和系统集成测试:这些对于任何软件系统都很重要。对于机器学习,我们还要对训练数据集、验证数据集和测试数据集进行测试。

  • 审查:代码走查和审查、隐私审查、公平性审查(见27.3.3节)和其他法律合规性审查。

  • 监控:仪表盘和警报,以确保系统已启动并运行,并继续以高精度运行。

  • 问责:当系统出错时会发生什么?对系统做出的决定进行投诉或申诉的过程是什么?我们怎样才能追踪到谁该对错误负责?社会期望(但并不总是得到)银行、政客和法律对做出的重要决策负责,他们也期望包括机器学习系统在内的软件系统对做出的决策负责。

此外,还有一些因素对机器学习系统特别重要,我们接下来将详细介绍。

可解释性(interpretability):如果你能观察实际模型并理解为什么它会在得到给定输入后给出的特定输出,以及当输入发生变化时输出将如何变化,我们就称此机器学习模型是可解释的

决策树模型被认为是高度可解释的;在决策树中,某个样本遵循Patrons=Full且WaitEstimate=0~10将使决策树给出wait的决策,这是可以理解的。

决策树是可解释的有两个原因。

首先,我们人类有理解IF/THEN规则的经验。(相比之下,人类很难直观地理解像神经网络模型那样的矩阵乘积与激活函数的结果。)其次,决策树在某种意义上是按照可解释性进行构造的,树的根节点就是具有最高信息增益的属性。

线性回归模型也被认为是可解释的;我们可以研究一个预测公寓租金的模型,根据这个模型,每增加一间卧室,租金就会增加500美元。其中的想法“如果我改变x,输出会怎样变化?”可解释性的核心。当然,相关性不是因果关系,所以可解释的模型所解释的是会发生什么,但不一定是为什么

可说明性(explainability):一个可说明的模型可以帮助你理解为什么某个输入对应着某个输出”。术语可解释性来自于对实际模型的剖析,而可说明性可以通过单独的过程说明。也就是说,模型本身可能是一个很难理解的黑匣子,但是说明模块可以总结模型的工作。

例子:

对于一个将某图片分类为狗的神经网络图像识别系统,如果我们试图直接解释该模型,我们能得到的最好的结果是“卷积层后,softmax层中输出为狗的激活性高于任何其他类”。这不是一个令人信服的结论。但是,一个单独的说明模块应该能够检查神经网络模型,并给出说明“它有4条腿、皮毛、尾巴、松软的耳朵和长长的鼻子;它比狼小,躺在狗床上,所以我认为它是狗”。说明是建立信任的一种方式,一些法规,如欧洲GDPR(General Data Protection Regulation,通用数据保护条例)要求系统提供说明。

作为单独的说明模块的,局部可解释的模型不可知说明(local interpretable model-agnostic explanation,LIME)系统的工作原理如下:无论你使用什么模型类,LIME都会构建一个可解释模型,它通常是决策树或线性模型,该模型将近似你给的模型,然后通过解释线性模型来创建说明以说明每个特征的重要性。

LIME通过将机器学习模型视为一个黑盒来实现这一点,并用不同的随机输入值来测试它,从而创建一个数据集,从中可以建立可解释的模型。这种方法适用于结构化数据,但不适用于像图像这样的数据,因为图像中每个像素都是一个特征,但没有单独一个像素本身是“重要的”。

有时我们选择模型类是因为它的可说明性——我们可能会选择决策树而不是神经网络,不是因为它有更高的精度,而是因为它的可说明性让我们对它更加信任。

然而,一个简单的说明可能会导致错误的安全感。毕竟,我们通常选择使用机器学习模型(而不是手工编写的传统程序),因为我们试图解决的问题本身就很复杂,而且我们不知道如何编写传统程序。在这种情况下,我们不应该期望每个预测都有一个简单的说明。

如果你建立一个机器学习模型主要是为了理解这个领域,那么可解释性和可说明性将帮助你理解这个领域。但是,如果你只是想要性能最好的软件,相比于说明,测试可能会给你更多的信心和信任。

实践中的关键权衡与陷阱
可解释性与性能的取舍:深层模型往往比简单模型表现更好。平衡点是,先尝试做足特征工程的强可解释基线模型,若性能差距很大且业务收益巨大,再转向复杂模型加事后解释。
解释的忠实度风险:LIME、SHAP等方法给出的是对人类友好的近似解释,并不等于模型的真实内部逻辑。设计可能产生稳健解释的模型架构(如概念瓶颈模型)是前沿方向。
确认偏差:人们倾向于只相信符合自己直觉的解释。客观、系统地将解释作为发现数据泄露或捷径的工具,而非仅用来佐证自己。