Advertisement

LIME:一种解释机器学习模型的方法

阅读量:

在本研究中,我们计划阐述一种方法,在分析这篇论文](http://arxiv.org/pdf/1602.04938v1.pdf)中的各种分类器预测结果时所采用的技术,并借助于开源包这一工具来实现这一目标。

动机:我们为什么要理解预测结果?

当前机器学习领域备受关注。随着计算机在围棋等游戏中击败人类专家后,在驾驶任务上能否达到人类水平,并是否会取代医生这一职位?人们不禁好奇地探讨起:机器是否具备足够的智慧来承担司机的角色,并且是否会替代现有的医生岗位?

目前许多先进的机器学习模型仍如同黑匣子般难以洞察其内部的工作状态。

举个例子来说,在替换现有的机器学习系统时,请确保新系统的稳定性和可靠性至关重要。(参考《疑犯追踪》中的情节)

从直觉上讲,在阐述其内在机制的基础上了解每次独立预测的核心要素有助于提高或者降低对预测结果的信任度,并进而影响整个分类器的表现。即便模型的整体行为尚不明朗,在多数实际应用中仍可深入解析其局部行为模式。

最后,说一下准确性。如果你有机器学习的经验,我敢说你正在想的是:“我当然知道模型在真实情况下能取得不错的效果,因为在交叉验证中已经得到了很高的准确率!当99%的情况下模型都能准确预测时,我为啥还要去理解它的预测结果呢?”任何一位在现实问题中(不是在静态的数据集上)使用过机器学习方法的人都能证明,交叉验证的准确率很具有误导性。有时候预测数据会不小心混入训练数据中。有时候你收集数据的方法会引入现实中不存在的相关性,而模型却能捕捉到。其它许多棘手的问题都会影响我们评判模型性能,即使是使用A/B测试。我不是不让你测试准确率,而是准确率不应该是你的唯一标准。

Lime:一些例子

你真的相信你的新闻数据集的分类器吗?

首先,我们采用一个文本分类案例来说明问题。常用的新闻数据集(20 newsgroups dataset)常被用于比较不同模型的效果。为了确保选择的标准具有可比性,我们挑选了两个容易混淆的类别:基督教(Christianity)和无神论(Atheism)。这些类别被选中的依据是它们在词项上有较大的重叠度。为了提高模型的效果,在构建过程中我们采用了包含500棵决策树的随机森林算法,并在测试集上获得了92.4%的准确率这一令人瞩目的成绩。如果以准确率为唯一评价指标的话,则会认为该算法表现优异并值得信赖

此图阐述了测试集中任意一个案例的说明,并由 [lime 包](GitHub 上链接)生成。

图片描述

该分类器预测结果准确但其解释机制存在局限性。通过详细分析发现'Posting'(邮件主题部分)在训练集中占比较高,并仅出现两次并被归类为'基督教'类别。同样地,在测试集中的样本也呈现出类似特征:'Posting'占比较高的比例,并且仅有两次属于'基督教'类别。这种数据分布状态使得问题相较于实际情况更为简化,并导致该分类器难以有效地区分这两个类别(基督教与无神论)。值得注意的是,在实际数据中这一现象表现得更为明显:尽管原始数据中没有直接观察到这一指标的表现差异(准确率等),但借助模型解释工具却能够清晰识别出这一潜在的问题点。一旦深入理解模型的工作原理及其泛化能力,则会发现这类洞察能够变得极为直观且易于验证

深入探究其解释能力:该模型是一个高度稀疏的线性结构(仅包含6个特征变量)。尽管采用复杂随机森林作为分类器,在这一特定案例中其实质表现却相当接近于线性模型。基本上可以预期:如果从例子中删除"Host"和"NNTP"这两个关键术语,则预测结果为atheism的概率值将通过计算得到0.31

由深度神经网络解释预测结果

该研究论文中的插图展示了我们在任意选取的图片上对Google's Inception神经网络进行了详细解析。在此案例中,我们特别关注并解析了最具辨识度的部分,即图片中的某个特定区域.在这个分析过程中,我们发现该区域原本应被归类为木吉他,然而分类系统误判将其归类为电吉他.通过分析这一现象,我们可以更好地理解为何两种乐器容易被混淆:它们具有非常相似的手指板结构.目前,LIME方法尚未实现对图像分类器的有效解释功能,这一技术仍在研发阶段进行测试和优化.

图片描述

可作为参考阅读的材料:《深度神经网络的灰色区域:可解释性问题》这篇文章链接为 [

Lime:我们是如何进行解释

Lime 是 Local Interpretable Model-Agnostic Explanations 的简称。其名称中的每个组成部分都体现了我们对解释目标的理解。Local 一词指的是局部保真性——即我们的解释应真实反映出分类器在被预测样本上的行为模式。这一要求则是指该方法必须具备可解释性(interprétabilité),以便人类易于理解。此外,在无需对原始模型进行任何修改或适应的情况下(model-agnostic),Lime仍能提供有效的解码结果。

现在我们来了解 lime 的工作原理。如需进一步了解细节,请查阅我们的论文预印版 https://arxiv.org/pdf/1602.04938v1.pdf

下面让我们谈谈模型的可解释性问题。一些分类器依赖于难以被人类理解的表征方法(例如词向量)。Lime则采用可被理解的表征手段(如使用单词)来解析这些分类器的行为模式,尽管该方法并非分类器真正采用的方式来处理数据。此外,Lime还考虑到了人类认知的限制:生成的解释内容长度适中。目前我们的工具包主要支持稀疏线性模型的可解释性分析,在开发中我们也在逐步引入其他表征方法以丰富其适用范围。

为了不依赖于模型,LIME方法不会深入探究其内部机制。为了确定哪些输入特征对预测结果产生重要影响,在不影响整体语义的前提下,我们将输入样本在其周围加入微小的噪声点进行测试。随后我们计算这些被扰动样本与原始样本之间的距离,并以此为基础分配权重值。基于这些权重值的学习结果生成一个可解释的模型和预测结果说明。举例来说,在分析"我讨厌这部电影"这句话的情感倾向时,在保持原意的前提下我们会将该句拆分成"我讨厌电影"、"我这部电影"、"我电影"以及"我讨厌"等多个版本进行测试分析。即使分类器采用了更多复杂的词汇组合方式,在这种情况下我们依然能够合理地预期到只有其中的关键词汇(如"讨厌")会对预测结果产生显著影响作用。值得注意的是即使分类器采用了不可解释的某些高级语言处理技术(如词向量),这种方法依然能够适用:我们只需采用词向量的方式进行随机打乱即可,并且最终所得出的解释也将聚焦于诸如"讨厌"或"电影"这样具有明显意义的关键词汇上。

此过程的可视化展示图如下。

图片描述

结论

我希望你能够认识到单独使用预测器所做出的预测结果的价值。有了进一步的信息来帮助你决定是否信任这一单独使用的预测器及其输出的结果表现,并能够为提升整体模型性能提供一些改进建议。

代码和论文的链接

为了透彻掌握lime的工作原理以及过去的验证实验,研究者若感兴趣,请继续阅读论文的预打印版.

如果你想对文本分类器使用lime,请下载我们的python工具包。安装命令如下:

pip install lime

该工具包的操作极为简便。它相对而言较为容易解释scikit-learn分类器的功能与用法。在GitHub官方页面上我们提供了多套实用教程资源包下载链接,并附带详细的说明文档。例如这个,作为scikit-learn官方提供的示例链接

原文链接:LIME - Local Interpretable Model-Agnostic Explanations
译者:赵屹华 审校:刘翔宇
编责:周建丁(投稿请联系zhoujd@.net)

LIME方法是一种基于可解释性模型的特征重要性评估技术,在机器学习领域具有重要的应用价值。

全部评论 (0)

还没有任何评论哟~