这篇文章主要讲述了一种解释模型预测方法LIME,让人们能够理解模型背后的基本原理,有助于辅助用户什么时候信任或者不信任一个模型的预测。文章通过图像识别和文本分类的案例说明准确率有时并不是最好的评价指标,此时需要一个解释器的角色来告诉我们分类器如何做出预测等细节。作者提出了六个问题,并在两部分实验中一一解答。
关键词:解释预测方法、图像识别、文本分类
1 为什么我们需要解释器?
在进行机器学习的相关工作时,我们经常依据其prediction的精度来选择是否信任一个模型,但是我们能否选择信任这个预测结果,或者信任这个模型做出的判断。改论文提供了两个方向阐述了为什么需要解释性:
·说服别人:在我们使用机器学习的方法来帮助专业人士进行判断时,比如医生、法律这种十分重视理由的专业,不能仅仅说“模型是这样说的”就结束了,我们需要通过解释器去了解模型背后的原理,以此来说服别人。
·说服自己:在建立模型后,通过样本的可解释性帮助人类进行判断,模型是否真正学到了我们所预期的事情。
论文中有一组实验可以很好的说明为何我们需要解释器,下面一组图片展示了某分类器将哈士奇识别成了狼,我们的第一反应也许是分类器发生了误判,毕竟模型本身不可能百分百正确。这时我们希望出现图2所示的分类器,来告诉我们为什么这个样本被识别成狼,此时分类器解释:“因为这张图片除了本体之外都是白色的雪地,因此模型把该图片分类成狼”。
图1 将哈士奇识别成狼
图2 解释器返回的Explanation
从上面的例子我们可以发现,在样本的刻意选取下,模型学习到了只要背景是白色的(雪地),就很可能识别为狼,反之背景不是白色的,那就很可能是哈士奇。这样的学习结果肯定不是我们想要模型去学习的内容。这也是我们需要一个解释器这样的角色,来选择是否信任模型做出的判断。
文章还举出了一个文章分类的例子,判定该文章与“基督教”有关还是“无神论教”,如图3。我们可以观察到两次的分类都是正确的,而且在具体的试验中达到了惊人的90%+的准确率,这种情况下我们很可能会相信这个分类器。但仔细观察下算法2中的词汇特征,发现Posting(邮件标头的一部分)在无神论文章中出现的频次很高,但这个词汇与无神论本身并没有太多的联系。这意味着尽管模型准确率很高,但所使用的原因是错误的。
图3 文章分类实验
2 解释器的基础特征
身为一个解释器,文中要求至少满足以下特征:
·可解释性(Interpretable)
·局部忠诚(Local Fidelity)
·与模型无关(Model-Agnostic)
·全局视角(Global Perspective)
可解释性:包含两个部分,分别为模型和特征。我们以模型为例,像决策树或是线性回归都是很适合拿来解释的模型,前提是特征也要容易解释才行。所以利用可解释的模型配上可解释的特征,才是真正的可解释性。否则像是词嵌入(Word Embedding)的方式,即使是简单的线性回归也无法做到可解释性。而且解释性还要取决于目标群体,比如如何向不了解的机器学习的门外汉去解释这些模型。
局部忠诚:既然我们已经使用了可解释的模型与特征,就不可能期望简单的可解释模型在效果上等同于复杂模型(比如原始CNN分类器)。所以解释器不需要在全局上达到复杂模型的效果,但至少在局部上效果要很接近,而此处的局部代表我们想观察的那个样本的周围。
与模型无关:这里所指的是与复杂模型无关,换句话说无论多复杂的模型,像是SVM或神经网络,该解释器都可以工作。
全局视角:从图3文章分类的案例中可以看出,准确度有时并不是一个很好的指标,所以我们才需要去解释模型。解释器的工作在于提供对样本的解释,来帮助人们对模型产生信任。
3 LIME方法介绍
首先回忆下解释器的目的:“对于一个分类器(复杂模型),想用一个可解释的模型(简单模型如线性规划),搭配可解释的特征进行适配,并且这个可解释模型再局部的表现上很接近复杂模型的效果”。
LIME的全称为:Local Interpretable Model-Agnostic Explanation,中文字面上的意思就是与模型无关的局部可解释性的解释。LIME通过扰动输入样本(perturb the input),来判断哪些特征的存在与否,对于输出结果有着最大的影响。而扰动的精髓在于这些绕扰动必须是人类可以理解的。像是一张图片中,将图片中的部分区域进行遮盖,对识别效果肯定是有一定影响的;
然后我们用图4来描述上面的信息,如图所示,红色和蓝色区域表示一个复杂的分类模型(黑盒),图中加粗的红色十字表示需要解释的样本,显然,我们很难从全局用一个可解释的模型(例如线性模型)去逼近拟合它。但是,当我们把关注点从全局放到局部时,可以看到在某些局部是可以用线性模型去拟合的。具体来说,我们从加粗的红色十字样本周围采样,所谓采样就是对原始样本的特征做一些扰动,将采样出的样本用分类模型分类并得到结果(红十字和蓝色点),同时根据采样样本与加粗红十字的距离赋予权重(权重以标志的大小表示)。虚线表示通过这些采样样本学到的局部可解释模型,在这个例子中就是一个简单的线性分类器。在此基础上,我们就可以依据这个局部的可解释模型对这个分类结果进行解释了。然后介绍下LIME的步骤,就可以理解什么是可理解的特征。
图4 局部可解释图例
例如图像分类中,可以用超像素(super pixel)的方式先做image separation,然后用二分向量(binary vector)来表示某个超像素是否存在。以文章资料为例,也是利用二分向量来表示某个字是否出现在这篇文章(bag-of-words)。所以这个二分向量代表的是某个元素存在与否(presence/absence),下面简单介绍了超像素的原理以及使用的原因。
由于LIME不介入模型的内部,需要不断的扰动样本特征,这里所谓的样本特征就是指图片中一个一个的像素了。但如果LIME采样的特征空间太大的话,效率会非常低,而一张普通图片的像素少说也有上万个。若直接把每个像素视为一个特征,采样的空间过于庞大,严重影响效率;如果少采样一些,最终效果又会比较差。所以针对图像任务使用LIME时还需要一些特别的技巧,也就是考虑图像的空间相关和连续的特性。不考虑一些极小特例的情况下,图片中的物体一般都是由一个或几个连续的像素块构成,所谓像素块是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块,我们称之为超像素。
我们在图像识别上来详细介绍上述的方法,左边是原始的图像,右边则是用图像分割的方式取得的超像素。两张图片设计的特征也是不同的,如左图的特征就是一个三维的RGB向量,每个维度就代表对应像素在该channel的数值;右图的超像素特征则是用一个二分向量来表示,每一个元素代表第i个super pixel是否存在于该图中。
图5 可解释性特征表示
我们想要解释模型而且效果不能很差,所以在局部忠诚性和可解释性上做个取舍。作者定义了一个目标函数ξ,便包括了这两个部分一起进行最优化,这里的L函数作为一个度量,描述如何通过πx在局部定义中,不忠诚的g(简单的解释模型)如何逼近f(复杂模型),在当Ωg足够低可以被人类理解时,我们最小化L函数得到目标函数的最优解。文章中为了方便解释将简单模型视为简单线性回归,图6为目标函数和变量解释。
图6 目标函数和变量解释
接着用树蛙的图片进行解释,下面相对这个样本进行可解释的扰动(perturb),并在扰动完后,要还原到原始特征的维度。图7左图是原始的图像,由于扰动样本是需要可以被解释的,因此是基于可解释性上的特征进行。而图像的可解释性特征如前面所述通过超像素来完成。使用二分向量将超像素图片分成N个覆盖某些区域的图片,扰动的程度(覆盖)大小可以由使用者来设定。
图7 扰动图例
文中还对扰动前后的样本相似度中距离进行了定义,这取决于样本的类型(文本的话就是余弦相似性,图像的话就是L2范数距离)。有了相似度的定义,便可以将原先的目标函数该写成图8的形式。其中f(z)就是扰动样本,在d维空间(原始特征)上的预测值,并把该预测值作为答案,g(z’)则是在d’维空间(可解释特征)上的预测值,然后以相似度作为权重,因此上述的目标函数便可以通过线性回归的方式进行优化。
图8 引入相似度后的目标函数
下图9为LIME的伪代码过程:
1.首先要有一个好的分类器(复杂模型)
2.选定一个要解释的样本x,以及在可解释维度上的x’
3.定义一个相似度计算方式,以及要选取的K歌特征来解释
4.进行N次perturb扰动
5.zi’:从x‘扰动而来(可解释的扰动)
6.将z’还原到d维度,并计算预测值f(z)以及相似度
7.收集到N次扰动后的样本后,利用Lasso regression取得对这个样本有影响力的系数
图9 LIME伪代码
尽管,对single prediction的解释可以让用户对分类器的可靠性有些理解,但想要达到对整个模型的评估和信任是不够的,于是本文提出了Submodular pick的思路(SP)来对模型进行解释,下面通过图10来进行介绍。
由于用户没有时间来检查大量的解释,我们使用budget B代表人类的耐心,也就是为了理解一个模型而愿意看到的解释的数量,右图就是给定了一组实例X,定义了选取B实例的流程。
左图举了一个5实例5个特征的例子,行代表文档列代表特征也就是words。我们可以看到篮框的f2特征得到了最高的importance,相比f3,4只cover了两个instance。然后我们想选择最少的instance来cover较高的importance 特征,比如f2的有最高的importance我们选择了第二行instance,但第三行instance没有增加新的value,第四行出现了一个重复,因此选择第五行instance。
图10 Submodular Pick策略
4 图像分类的案例
最后我们以树蛙图像分类为例,将LIME的过程展示一遍:
图11为我们假设的CNN模型的预测结果,预测一张图片中可能有哪些物体。模型此时告诉我有54%的概率这张图像是一只树蛙,但也有7%的概率是台球和5%的概率是热气球。现在我们想使用LIME来理解模型为何做出下图的判断。
图11 为什么模型会做出这样的预测?
先把原始图片转成可解释的特征表示,通过可解释的特征表示对样本进行扰动,得到N个扰动后的样本。然后再将这N个样本还原到原始特征空间,并把预测值作为真实值,用可解释的特征数据表示建立简单的数据表示,观察哪些超像素的系数较大。
图12 获得最大相关系数
将这些较大的系数进行可视化可以得到图13的样子,从而理解模型为什么会做出这种判断。青蛙的眼睛和台球很相似,特别是在绿色的背景下。同理红色的心脏也与热气球类似。
图13 解释
5 实验与结果
在介绍相关工作前,简单讲一下本文的实验部分,首先是模型用户实验,来评估信任相关任务中explanation的作用:(具体可看论文中的实验部分 给出了六张有趣的实验结果)
1、第一个实验针对的问题是:explanation是否忠于模型?
实验中,对于任何实例 其特征的最大数目为10,也就是是个最importance 的features,然后计算不同方法中这些importance features的吻合程度,我们可以发现在逻辑回归中,parzen和greedy方法的召回率差不多,但在决策树中greedy表现很差,这是因为每次只改变single features对预测是没有很大的影响。而且parzen的值并不高,可能是因为很难逼近原始的高维分类器造成的。
2、第二个实验针对的问题是:我们是够该相信这个预测?
实验让用户选择了一些不值得信任的features(前提是用户可以识别的不信任的features),通过对测试集生成的prediction贴了一个untrustworthy的标签,如果这些不信任的features被removed后prediction发生了变化。为了模拟用户,我们认为当explanation中所有的不信任feature都被removed后,预测的线性逼近 发生了变化,我们认为用户得到了不值得信任的结果。
3、第三个实验针对的问题是:我们能够相信这个模型?
也就是用户面对两个精度差不多的模型,如何进行取舍的问题。试验中作者添加了10个人工的noisy features,如果我们计算出的importance features中出现了我们加入的噪声特征,就认为这个explanation不值得信任。
第二部分实验就是在机器学习中重新创建三个场景,这些场景需要对预测和模型的trust和explanation。主对LIME和SP-LIME在以下方面进行评估:
1、第一个实验针对的问题是:用户能够选择出最好的分类器吗?
询问人们通过lime产生的explanation来选出最好的算法,用的数据集是前面提到过的无神论 基督教的新闻数据集
2、第二个实验是针对的问题是:那些没有先验知识的人是否能够改进一个分类器?
做了一个有关特征工程的实验,通过得到的explanation来对那些他们认为不重要的features进行删除,我们可以发现通过SP选取的方法,可以帮助人们提高分类器的prediction能力。
3、第三个实验是针对问题:explanations能够指出模型的insights吗?
当我们样本中狼都是在白雪背景中,哈士奇并没有雪地背景。这样的话我们扔给模型一个没有白雪背景的狼图片很可能识别成哈士奇,相反给一张哈士奇站在雪地里的图片很可能识别成狼。
6 近期工作与思考
LIME除了能够对图像的分类结果进行解释外,还可以应用到自然语言处理的相关任务中,如主题分类、词性标注等。因为LIME本身的出发点就是模型无关的,具有广泛的适用性。虽然LIME方法虽然有着很强的通用性,效果也挺好,但是在速度上却远远不如Grad-CAM(18年新文章提出的Grad-CAM方法描述了深度神经网络可解释性的探索研究)那些方法来的快。当然这也是可以理解的,毕竟LIME在采样完成后,每张采样出来的图片都要通过原模型预测一次结果。
本文的作者在18年新提出了Anchors的方法,指的是复杂模型在局部所呈现出来的很强的规则性的规律,注意和LIME的区别,LIME是在局部建立一个可理解的线性可分模型,而Anchors的目的是建立一套更精细的规则系统。在和文本相关的任务上有不错的表现。
第三篇是18年AAAI上一篇有关模型可解释性的文章,这都在一定程度上说明,业内还是重视这个方向的。尤其在涉及到医疗、自动驾驶等人命关天的应用场合,可解释性显得尤为重要。
图14 近期有关可解释模型的论文
参考文献
[1] Ribeiro M T, Singh S, Guestrin C. “Why Should I Trust You?”:Explaining the Predictions of Any Classifier[C]// ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 2016:1135-1144.