机器学习的可解释性:概述

2020-11-30 11:52:01

本文提供了机器学习可解释性子领域的广泛概述。尽管不详尽,但我的目标是审查概念框架,现有研究和未来方向。

我遵循Lipton等人的模型可解释性神话中使用的分类,我认为这是了解不同可解释性定义的最佳论文。我们将探讨许多方法来形式化“可解释性”的含义。广义上讲,可解释性集中在方式上。它着重于对我们的模型所做出的决策进行解释。下面,每个部分都由一个具体问题进行操作,我们可以使用可解释性的特定定义来询问我们的机器学习模型。如果您不熟悉所有这些,我们将首先简要说明为什么我们可能根本不关心可解释性。

首先,机器学习中的可解释性很有用,因为它可以帮助建立信任。作为人类,除非我们知道“它们是如何工作的”,否则我们可能不愿意依靠机器学习模型来完成某些关键任务,例如医学诊断。当人们信任一些不透明的东西时,通常会担心未知。当人们面对新技术时,我们会看到这种未知,这会减慢采用速度。着眼于透明度的可解释性方法可以帮助减轻其中的一些担忧。

第二,安全性。在模型训练和部署之间的分布几乎总是会有所变化。归纳失败或诸如规范博弈之类的古德哈特定律之类的现象是未解决的问题,有可能在不久的将来引发问题。可解释性的方法可以解释模型的表示形式或哪些特征最相关,可以帮助及早诊断这些问题,并提供更多的机会来纠正这种情况。

第三,也许是最有趣的是可竞争性。随着我们将更多的决策委托给ML模型,人们对这些决策提出上诉变得很重要。黑匣子模型无法提供此类资源,因为它们不会将决策分解为任何可竞争的事物。缺乏竞争性已经导致对COMPAS等专有累犯预测变量的严重批评。着重于将模型分解为子模型或说明推理链的可解释性方法可能有助于解决此类问题。

根据Lipton等人的观点,透明度作为可解释性是指模型的属性,这些属性易于理解,可以在培训开始之前就知道;他们提出了三个不同的(但相关的)问题。

该属性用于解决人类是否可以遍历算法的每个步骤并检查每个步骤是否对他们合理。线性模型和决策树经常被引用为使用这些理由的可解释模型。他们所需的计算很简单,并且在做出预测时解释每个执行的步骤相对容易。线性模型还具有很好的属性,即参数本身具有非常直接的映射关系-它们表示不同输入特征的重要性。例如,我在MNIST上训练了线性分类器。以下是一些权重,每个权重对应于一个像素值:

0.00000000e + 00,0.00000000e + 00,0.00000000e + 00,-1.47542413e-03,-1.67811041e-04,-3.83280468e-02,-8.10846867e-02,-5.01943218e-02,-2.90314621e-02 ,-2.65494116e-02,-8.29385683e-03,0.00000000e + 00,0.00000000e + 00,1.67390785e-04,3.92789141e-04,0.00000000e + 00,0.00000000e + 00,0.00000000e + 00,0.00000000e +00,0.00000000e + 00]

这些权重本身很难解释。即使我们知道它们对应的像素,也很难确定特定像素甚至代表的像素,特别是对于大图像。但是,有一个简单的技巧可以将这些权重转变为可以解释的东西。我们将它们重塑为与模型输入相同的尺寸,并将其视为图像,像素颜色由权重值表示。

在这两种情况下,我们都可以看到代表正权重的蓝色区域与看起来像被检测到的数字大致一样的像素配置相对应。在0的情况下,我们可以在图像中心看到一个明显的空白点,并在其周围看到曲线状的形状; 3的曲线也很明显。

但是,Lipton等。指出,这种需求可能与模型的特定类型无关,而与模型的大小有关。例如,拥有十亿个节点的决策树可能仍然很难理解。理解还涉及将大多数模型牢记在心,这通常与如何参数化模型有关[1]。

当然,参数化还不是全部。有诸如K最近邻居之类的方法,这些方法由整个数据集进行参数化。这可能是数十亿点。然而,从某种意义上说,尽管KNN规模庞大,但仍然可以解释。我们可以清楚地描述该算法的作用,甚至可以看到“为什么”之所以做出特殊选择,因为该算法易于理解。

另一个理想的功能是了解模型在每个步骤中的功能。例如,想象一个决策树,其节点对应于容易识别的因素,例如年龄或身高。可以根据在树的不同节点上做出的决策来解释模型的预测。通常,由于模型的性能与所使用的表示非常紧密地耦合在一起,因此(对模型按时间步长做出的决策)进行这样的详细分析非常困难。原始特征(例如RGB像素值)通常自身无法很好地解释,但对于学习模型可能非常有用。另一方面,可解释的特征可能不是该模型最有用的信息。

这些功能似乎至少会有一些有用的信息; “一个”趋向于具有较小的面积(因此average_luminosity会更低),“八个”可能具有更多的角,等等。然而,结果得到的深度为3的决策树(如下所示)仅达到33%的训练精度。一路深入到十的深度只会将其提高到50%左右。

如果我们查看这些节点,则也许可以了解发生了什么。在顶部,我们可以看到,如果宽度小于7.5像素,我们的模型将预测为“ 1”,这看起来很直观,因为“ 1”可能是最薄的数字。在底部附近,我们看到拐角的数量被用来区分“ deven”和“四个”。这似乎也很合理,因为“四个”确实比“七个”具有更多的可视角。但是这些都是非常粗糙的功能,因此总体性能仍然不是很好。

我通过使用像素值(即784个灰度值的向量)训练决策树(深度为3)来将这些手工设计的功能与原始视觉功能进行比较。如下所示,生成的模型可获得50%的训练和测试精度。

在这里,不清楚为什么选择这些像素值作为分割点。但是,对于相同数量的节点,最终的决策树的性能要好得多。在这种简单的情况下,表示形式的性能与可解释性之间的权衡非常重要。算法透明度:算法是否提供任何保证?

这个问题问我们的学习算法是否具有任何易于理解的理想属性。例如,我们可能知道该算法仅输出稀疏模型,或者可能始终会收敛到特定类型的解决方案。在这些情况下,生成的学习模型可能更易于分析。例如,保证金支持向量机(Shard Margin SVM)可以确保找到一种独特的解决方案,以最大化保证金。同样,如果数据是线性可分离的,则可以保证感知器找到参数(虽然不一定是唯一的),但可以达到0的训练损失。

当涉及深度学习时,对结果的完整概述将超出本文的范围。通常,尽管如此,会有许多其他的值配置也可以比较执行。这意味着我们无法直接将某些独特的权重概念与在当前任务中表现良好的概念进行类比。

前面讨论的KNN算法说明了机械透明性以外对“简单算法中的功能”的另一种理解。 KNN很容易描述为“它报告最接近输入的点的标签”。该属性在此处完成最多工作的部分是我们的描述方式。显然,大多数ML模型可以描述为“它找到满足某些约束的参数”,但这是一个非常广泛且不可行的陈述。除了像“它学习映射到输入数据的高维流形”之类的东西外,在神经网络的相同粒度级别上查找描述似乎更加困难。即使我们经常可以得到关于ML模型所做的简要总结,但从可模拟的角度来看,其中只有一部分是有益的。

Lipton等。对事后解释性提出四个问题,这是指我们在训练结束后可以从模型中学到的东西。

就像人类如何为自己的行为提供事后证明一样,拥有可以解释的模型(可能是自然语言陈述)也可能很有帮助。然而,将文本与决策配对的幼稚方法可能会针对诸如“解释对人类听起来的可信度”之类的东西进行优化,而不是针对“对模型所采取的步骤进行总结时解释的准确性”。

尽管这似乎显然是可取的,但它仍然是一个新兴领域,Lipton等人。只提供一篇针对RL的论文。在ConnectedPapers上,我发现引用的论文是通过人的建议进行的强化学习的一个较大相关领域的一部分。这似乎集中在相反的问题上:给定人类的解释,模型如何将其纳入决策中?也许这里的见解最终可以用于另一个方向。

显着性图是一类广泛的方法,这些方法着眼于输入(或输入的部分)变化如何改变输出。一种简单的方法是采用损失函数相对于输入的导数。除了这种简单的方法外,许多修改还涉及平均梯度,扰动输入或局部近似。通过极端扰动和平滑蒙版了解深层网络可以很好地概述这一领域的工作。

举例来说,我在MNIST上训练了CNN,并对这3张图片进行了简单的渐变可视化:

使用PyTorch,我针对输入图像计算了logit的导数(对应于数字“三”)。这给了我下面的图片。在此,白色像素对应于将增加“三”的对数值的图像部分,黑色像素对应于相反的方向。我们可以看到数字“ 3”的粗略曲线通过。

请注意,这与我们先前在第一部分中用红色和蓝色的线性分类器进行可视化处理有何不同。这些可视化代表了整个输入空间的总体重要性。此处的可视化仅对于此特定输入有意义。对于不同的输入(例如,数字“ 3”的不同实例),局部梯度看起来会有所不同,如下所示:

另一类方法侧重于相对于模型参数本身而不是输入的可视化。克里斯·奥拉(Chris Olah),珊·卡特(Shan Carter),路德维希·舒伯特(Ludwig Schubert)等人在distill.pub上完成了许多工作。他们在这一领域的工作已经从可视化特定神经元和层的激活变为许多网络的整个激活图,再到将模型分解为可解释的构造块。此类工作的另一个出色的可视化资源是OpenAI Microscope。此处的进展非常令人兴奋,但是对于能够专注于图像识别以外任务的神经网络,是否可以找到类似的方法还有待观察。

举例说明:模型能否显示其认为与该输入/输出有关的训练数据中的其他内容?

该问题询问其他哪些培训示例与当前输入内容相似。当相似性度量只是原始特征空间中的距离时,这类似于K = 1的KNN模型。更复杂的方法可能会寻找模型正在使用的表示空间或潜在空间中的相似示例。这种方法的人为理由是,它类似于类推推理,在此我们提出一个相关场景来支持我们的行动。

虽然我认为这很有用,但似乎并不需要我们理解所需要的全部,甚至不是我们需要的大部分。

为了更深入地研究特定技术,我建议对黑匣子模型的方法进行调查,该方法涵盖了针对许多不同的特定机器学习模型以及与模型无关的算法的多种方法。对于神经网络,《可解释的深度学习:入门指南》提供了深入的阅读。对于该领域的其他概念性调查,可解释性机器学习和可解释性机器学习中的定义,方法和应用有助于科学洞察和发现。特别是,Explainable Machine Learning论文非常出色,因为它给出了跨多个领域和用例的,越来越可解释的模型的层次结构。

概括地说,我认为可解释性研究应该走两个主要方向,而“显而易见的方向”是“找到更好的方式来规范我们所指的可解释性”。这两个领域是评估和实用性。

第一个领域是找到评估这些众多可解释性方法的更好方法。对于这些基于可视化的方法中的许多方法,默认方法似乎是通过人工检测来进行健全性检查,以确保突出显示可解释的功能。确实,这就是我们为上面的MNIST示例所做的工作。但是,我们不能大规模地这样做。为每个模型输出添加人工评估是不可行的。

此外,最近的论文《健全性地图的合理性检查》(Sanity Checks for Saliency Maps)很好地说明了为什么这还不够。如前所述,显着性图表示一类广泛的方法,这些方法通常通过渐变来了解输入的哪些部分对于模型的输出必不可少。这些方法中的几种的输出如下所示。通过目视检查,它们似乎合理,因为它们似乎都集中在图像的相关部分。

但是,最后一列是输出,不是用于显着图,而是用于应用于输入的边缘检测器。这使其不是模型的功能,而仅仅是输入。但是,它可以输出“显着性图”,这些显性图在视觉上可与其他结果进行比较。这可能使我们想知道其他方法是否真的在告诉我们有关模型的信息。作者提出了几种测试方法进行调查。

第一个测试将经过训练的模型的显着性图与具有随机初始化的权重的模型进行比较。在这里,很明显,如果显着图看起来相似,则它更多地取决于输入,而不是模型的参数。

第二项测试将经过训练的模型的显着性图与经过随机排列的标签的经过训练的模型进行比较。再次,如果显着图看起来相似,这也是输入依赖的标志,因为已经使用了相同的“显着”特征来证明两个不同的标签是正确的。

总的来说,作者发现基本梯度图对上述测试显示出所需的灵敏度,而其他特定方法(如Guided BackProp)则没有。在此之前,归因研究更为主观。例如,关于Grad-CAM的论文深入探讨了其显着性图如何帮助提供解释或识别数据集的偏见。但是他们没有考虑其方法对模型参数的敏感性。

在上述有关健全性检查的论文中,他们发现Grad-CAM对输入的变化敏感,这很好,但是我绝对希望看到这些健全性检查被更频繁地应用。在新方法之外,我认为模仿现实世界用例的其他可解释性基准对于该领域可能具有重要价值。

朝这个方向发展的另一种方法是,将人们在日常生活中使用的解释推后链,以得出更好的基准。人工智能中的解释:来自社会科学的见解概述了哲学和社会科学可以在中间遇到ML的地方。当然,所有这一切的最终仲裁者是人们如何有效地使用和解释这些可解释性结果,这使我想到了第二点。

第二个领域是确保这些可解释性方法确实在提供价值。即使我们找到解释实际上对学习的参数(以及其他所有参数)敏感的模型的方法,但我认为这些解释在实践中是否有用还有待观察。至少对于当前的技术,我认为答案是不确定的,甚至可能是负面的。

微软研究院进行的一项大型预注册研究[2]操纵和衡量模型的可解释性发现,带有模型权重之类的附加信息的模型通常对帮助用户自行决定如何做出更准确的判断甚至在何时发现决策时无济于事。模型是错误的。为用户提供了黑盒模型或更具解释性的模型。

“ [在典型示例中,就参与者对模型的预测的密切程度而言,几乎没有特征的透明模型与具有很多特征的黑匣子模型之间没有显着差异。我们还看到人们的状况会更好仅仅令人惊讶的是,我们发现透明模型具有有害的影响,削弱了人们纠正不正确的预测的能力,这似乎是由于人们对透明模型提供的附加信息不知所措。”

另一篇著作《解释可解释性:理解数据科学家对机器学习的解释性工具的使用》发现,即使数据科学家也可能不理解可解释的可视化告诉他们的内容。这会激发人们对基本模型的不必要的信心,甚至导致可疑结果的临时合理化。

最后,评估可解释的AI:哪些算法解释可帮助用户预测模型行为?是对五种可解释性技术以及它们如何凭经验帮助人类模拟模型的最新研究。作者发现,任何一种方法的好处都很少。一项值得注意的发现是,被参与者评定为高质量的解释对实际改善人类绩效不是很有用。

所有这些都指出了可解释性研究面临的困难。这些方法和视觉效果容易被误用和误解。即使一旦我们有了直观属性的可解释性的改进概念,是否可以使用它们来实现我一开始就列出的好处,还有待观察。虽然形式化解释性当然要好于使用它,这无疑具有挑战性,但我很高兴已经进行了实证检验。他们希望也可以指导下一步的研究。

最后,潜伏在所有方面的是性能下降和采用率下降的问题。这些天很明显

......