Lime:我们是如何进行解释

Lime是Local Interpretable Model-Agnostic Explanations的缩写。名字的每一部分反映了我们进行解释的意图。Local指的是局部保真——也就是说我们希望解释能够真实地反映分类器在被预测样本上的行为。这个解释要求是可以理解的(interpretable)——即能够被人类读懂。Lime能够解释任何模型,而不需要进行模型适配,所以是与模型无关的(model-agnostic)。
现在我们来俯瞰一下lime的工作原理。若想了解更多细节,请查阅我们论文的预印版
首先来说一说可解释性。有些分类器使用的用户完全无法理解的表征方式(如词向量)。Lime用可以被理解的表征方式(比如用单词)来解释这些分类器,即使它不是分类器真正在使用的方式。另外,lime考虑了人类的局限性:解释内容不会过长。目前,我们的工具包支持稀疏线性模型的解释,我们正在开发支持其它表征方式。
为了做到与模型无关,lime不会深入模型内部。为了搞清楚哪一部分输入对预测结果产生贡献,我们将输入值在其周围做微小的扰动,观察模型的预测行为。然后我们根据这些扰动的数据点距离原始数据的距离分配权重,基于它们学习得到一个可解释的模型和预测结果。举个例子,如果我们要解释“我讨厌这部电影”这句话的预测结果,我们将打乱这个句子,对“我讨厌电影”、“我这部电影”、“我电影”、“我讨厌”等句子进行预测。即使起初的分类器使用了更多的词语,但是我们可以合理的预期例子中只有“讨厌”这个词相关。注意,如果分类器用到了一些不可解释的表达方式,比如词向量,此方法依旧可行:我们只需用词向量来打乱句子,不过最后的解释还是会落到诸如“讨厌”或“电影”的词。
这个过程的演示图如下。原始模型的决策函数用蓝/粉背景表示,显然是非线性的。亮红色的叉叉表示被解释的样本(称为X)。我们在X周围采样,按照它们到X的距离赋予权重(这里权重的意思是尺寸)。我们用原始模型预测这些扰动过的样本,然后学习一个线性模型(虚线)在X附近很好地近似模型。注意,这个解释只在X附近成立,对全局无效。

LIME

LIME的主要思想是利用可解释性模型(如线性模型,决策树)局部近似目标黑盒模型的预测,此方法不深入模型内部,通过对输入进行轻微的扰动,探测黑盒模型的输出发生何种变化,根据这种变化在兴趣点(原始输入)训练一个可解释性模型。值得注意的是,可解释性模型是黑盒模型的局部近似,而不是全局近似,这也是其名字的由来。
    LIME的数学表示如下:(高斯采样,距离为权重)
LIME - 图1
LIME - 图2
LIME - 图3是一个线性可加模型,表示归因特征的权重多少。
对于实例x的解释模型g,我们通过最小化损失函数来比较模型g和原模型f的近似性,其中,Ω(g)代表了解释模型g的模型复杂度,G表示所有可能的解释模型(例如我们想用线性模型解释,则G表示所有的线性模型),πx 定义了x的邻域。我们通过最小化L使得模型f变得可解释。其中,模型g ,邻域范围大小LIME - 图4 ,模型复杂度LIME - 图5均需要定义。
【参考】
LIME参考网站R举例