卷积神经网络模型可解释性
Posted wujianming-110117
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卷积神经网络模型可解释性相关的知识,希望对你有一定的参考价值。
卷积神经网络模型可解释性
缺乏可解释性仍然是在许多应用中采用深层模型的一个关键障碍。在这项工作中,明确地调整了深层模型,这样人类用户可以在很短的时间内完成他们预测背后的过程。具体地说,训练了深度时间序列模型,使得类概率预测具有较高的精度,同时被节点较少的决策树紧密地建模。使用直观的玩具例子以及治疗白血症和HIV的医疗任务,这种新的树正则化产生的模型比简单的L1或L2惩罚更容易模拟,而不牺牲预测能力。
使用普通的反向传播得到的图像噪声较多,基本看不出模型的学到了什么东西。使用反卷积可以大概看清楚猫和狗的轮廓,但是有大量噪声在物体以外的位置上。导向反向传播基本上没有噪声,特征很明显的集中猫和狗的身体部位上。
虽然借助反卷积和导向反向传播“看到”了CNN模型神秘的内部,但是却并不能拿来解释分类的结果,因为它们对类别并不敏感,直接把所有能提取的特征都展示出来了。在刚才的图片中,模型给出的分类结果是猫,但是通过反卷积和导向反向传播展示出来的结果却同时包括了狗的轮廓。换句话说,并不知道模型到底是通过哪块区域判断出当前图片是一只猫的。要解决这个问题,必须考虑其他办法。
对时间序列模型的树正则化方法进行评估。将重点放在GRU-RNN模型上,以后将对新的混合GRU-HMM模型进行一些实验。与MLP一样,每个正则化技术(tree,L2,L1)都可以应用于GRU的输出节点上的一系列强度参数λ。重要的是,算法可以计算给定参数的任何固定深度模型的平均决策树路径长度,因此可以用于测量任何正则化(包括L1或L2)下的决策边界复杂性。这意味着,在训练任何模型时,都可以跟踪预测性能(按ROC曲线(AUC)下的面积测量;较高的值意味着更好的预测),以及解释每个模型所需的决策树的复杂性(按的平均路径长度度量;较低的值意味着更多的可解释模型)。展示没有任何相关深度模型的基线独立决策树分类的结果,扫描控制分支大小的一系列参数,以探索该基线如何权衡路径长度和预测质量。
CAM
大家在电视上应该都看过热成像仪生成的图像
图像中动物或人因为散发出热量,所以能够清楚的被看到。接下来要介绍的CAM(Class Activation Mapping)产生的CAM图与之类似,当需要模型解释其分类的原因时,它以热力图(Saliency Map,不知道怎么翻译最适合,叫热力图比较直观一点)的形式展示它的决策依据,如同在黑夜中告诉哪有发热的物体。
对一个深层的卷积神经网络而言,通过多次卷积和池化以后,它的最后一层卷积层包含了最丰富的空间和语义信息,再往下就是全连接层和softmax层了,其中所包含的信息都是人类难以理解的,很难以可视化的方式展示出来。所以说,要让卷积神经网络的对其分类结果给出一个合理解释,必须要充分利用好最后一个卷积层。
CAM利用GAP(Global Average Pooling)替换掉了全连接层。可以把GAP视为一个特殊的average pool层,只不过其pool size和整个特征图一样大,其实说白了就是求每张特征图所有像素的均值.
GAP的优点在NIN的论文中说的很明确了:由于没有了全连接层,输入就不用固定大小了,因此可支持任意大小的输入;此外,引入GAP更充分的利用了空间信息,且没有了全连接层的各种参数,鲁棒性强,也不容易产生过拟合;
还有很重要的一点是,在最后的 mlpconv层(也就是最后一层卷积层)强制生成了和目标类别数量一致的特征图,经过GAP以后再通过softmax层得到结果,这样做就给每个特征图赋予了很明确的意义,也就是categories confidence maps。
如果当时不理解这个categories confidence maps是个什么东西,结合CAM应该就能很快理解。
重点看下经过GAP之后与输出层的连接关系(暂不考虑softmax层),实质上也是就是个全连接层,只不过没有了偏置项,如图所示:
对每一个类别C,每个特征图k的均值都有一个对应的w,记为wckwkc 。
CAM的基本结构就是这样了,下面就是和普通的CNN模型一样训练就可以了。训练完成后才是重头戏:如何得到一个用于解释分类结果的热力图呢?其实非常简单,比如说要解释为什么分类的结果是羊驼,把羊驼这个类别对应的所有wckwkc 取出来,求出它们与自己对应的特征图的加权和即可。由于这个结果的大小和特征图是一致的,需要对它进行上采样,叠加到原图上去,如下所示。
CAM以热力图的形式告诉了,模型是重点通过哪些像素确定这个图片是羊驼了。
Grad-CAM方法
前面看到CAM的解释效果已经很不错了,但是它有一个致使伤,就是它要求修改原模型的结构,导致需要重新训练该模型,这大大限制了它的使用场景。如果模型已经上线了,或着训练的成本非常高,几乎是不可能为了它重新训练的。于是乎,Grad-CAM横空出世,解决了这个问题。
Grad-CAM的基本思路和CAM是一致的,也是通过得到每对特征图对应的权重,最后求一个加权和。
整体结构如下图所示
注意这里和CAM的另一个区别是,Grad-CAM对最终的加权和加了一个ReLU,加这么一层ReLU的原因在于只关心对类别c有正影响的那些像素点,如果不加ReLU层,最终可能会带入一些属于其它类别的像素,从而影响解释的效果。使用Grad-CAM对分类结果进行解释的效果如下图所示:
除了直接生成热力图对分类结果进行解释,Grad-CAM还可以与其他经典的模型解释方法如导向反向传播相结合,得到更细致的解释。
这样就很好的解决了反卷积和导向反向传播对类别不敏感的问题。当然,Grad-CAM的神奇之处还不仅仅局限在对图片分类的解释上,任何与图像相关的深度学习任务,只要用到了CNN,就可以用Grad-CAM进行解释,如图像描述(Image Captioning),视觉问答(Visual Question Answering)等,所需要做的只不过是把yc换为对应模型中的那个值即可。
限于篇幅,本文就不展开了,更多细节,强烈建议大家去读读论文,包括Grad-CAM与CAM权重等价的证明也在论文中。如果只是想在自己的模型中使用Grad-CAM,可以参考这个链接,熟悉tensorflow的话实现起来真的非常简单,一看就明白。
LIME
前面共同的局限性:当模型对来说完全为一个黑盒时就无能为力了。针对这个问题,这里介绍另一套办法,即使对模型一无所知也能够对它的行为作出解释。
LIME是KDD 2016上一篇非常漂亮的论文,思路简洁明了,适用性广,理论上可以解释任何分类器给出的结果。其核心思想是:对一个复杂的分类模型(黑盒),在局部拟合出一个简单的可解释模型,例如线性模型、决策树等等。这样说比较笼统,从论文中的一张示例图来解释:
如图所示,红色和蓝色区域表示一个复杂的分类模型(黑盒),图中加粗的红色十字表示需要解释的样本,很难从全局用一个可解释的模型(例如线性模型)去逼近拟合它。
但是,当把关注点从全局放到局部时,可以看到在某些局部是可以用线性模型去拟合的。具体来说,从加粗的红色十字样本周围采样,所谓采样就是对原始样本的特征做一些扰动,将采样出的样本用分类模型分类并得到结果(红十字和蓝色点),同时根据采样样本与加粗红十字的距离赋予权重(权重以标志的大小表示)。虚线表示通过这些采样样本学到的局部可解释模型,在这个例子中就是一个简单的线性分类器。在此基础上,就可以依据这个局部的可解释模型对这个分类结果进行解释了。
一个看似复杂的模型通过巧妙的转换,就能够从局部上得到一个让人类理解的解释模型,光这样说还是显得有些空洞,具体来看看LIME在图像识别上的应用。希望LIME最好能生成和Grad-CAM一样的热力图解释。但是由于LIME不介入模型的内部,需要不断的扰动样本特征,这里所谓的样本特征就是指图片中一个一个的像素了。存在一个问题,LIME采样的特征空间太大的话,效率会非常低,而一张普通图片的像素少说也有上万个。若直接把每个像素视为一个特征,采样的空间过于庞大,严重影响效率;如果少采样一些,最终效果又会比较差。
所以针对图像任务使用LIME时还需要一些特别的技巧,也就是考虑图像的空间相关和连续的特性。不考虑一些极小特例的情况下,图片中的物体一般都是由一个或几个连续的像素块构成,所谓像素块是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块,称之为超像素。相应的,将图片分割成一个个超像素的算法称为超像素分割算法,比较典型的有SLIC超像素分割算法还有quickshit等,这些算法在scikit-image库中都已经实现好了,quickshit分割后如图所示:
从特征的角度考虑,实际上就不再以单个像素为特征,而是以超像素为特征,整个图片的特征空间就小了很多,采样的过程也变的简单了许多。更具体的说,图像上的采样过程就是随机保留一部分超像素,隐藏另一部分超像素,如下所示:
从图中可以很直观的看出这么做的意义:找出对分类结果影响最大的几个超像素,也就是说模型仅通过这几个像素块就已经能够自信的做出预测。这里还涉及到一个特征选择的问题,毕竟不可能穷举特征空间所有可能的样本,所以需要在有限个样本中找出那些关键的超像素块。虽然这部分没有在论文中过多提及,但在LIME的代码实现中是一个重要部分,实现了前向搜索(forward selection)、Lasso和岭回归(ridge regression)等特征选择方式,默认当特征数小于等于6时采用前向搜索,其他情况采用岭回归。
整体流程如图:
和Grad-CAM一样,LIME同样可以对其他可能的分类结果进行解释。
LIME除了能够对图像的分类结果进行解释外,还可以应用到自然语言处理的相关任务中,如主题分类、词性标注等。因为LIME本身的出发点就是模型无关的,具有广泛的适用性。
虽然LIME方法虽然有着很强的通用性,效果也挺好,但是在速度上却远远不如Grad-CAM那些方法来的快。当然这也是可以理解的,毕竟LIME在采样完成后,每张采样出来的图片都要通过原模型预测一次结果。
比较GRUs与各种正则化的实验的主要结论概述如下。
树正则化模型比其他形式的正则化有更少的节点。通过任务,发现在小决策树(低平均路径长度)的目标区域中,提出的树正则化实现了更高的预测质量(更高的AUCs)。在信号和噪声HMM任务中,当树的平均路径长度为10时,树正则化(图3(d)中的绿线)实现了接近0.9的AUC值。具有L1或L2正则化的类似模型仅使用复杂度几乎为2倍的树(路径长度超过25)达到该AUC。在任务(图4)中,看到在路径长度为2-10时AUC增加0.05-0.1。在TIMIT任务(图5a)中,看到路径长度为20-30时的AUC增益为0.05-0.1。在图5b中的HIV CD4血细胞计数任务中,看到路径长度为10-15的AUC在0.03和0.15之间的差异。图5d中的HIV粘附任务在19到25的路径长度范围内的AUC增益在0.03到0.05之间,而在较小的路径上,所有方法都非常差,这表明问题的难度。总之,这些AUC增益在确定如何实施后续的HIV治疗中特别有用。对于独立决策树(橙色线)、L1正则化深度模型(红色线)或L2正则化深度模型(蓝色线),树正则化通常在短路径长度上实现高auc的最佳点。在非自举实验中,还测试了L1和L2惩罚的线性组合弹性网正则化(Zou和haste2005)。发现弹性网遵循与L1和L2相同的趋势线,没有明显的差异。在需要人的可模拟性的领域中,在小复杂度的情况下,预测精度的提高可能意味着提供任务价值的模型与不可用的模型之间的差异,这可能是因为性能太差或预测不可预测。
结论
介绍了一种新的层次树正则化技术,它鼓励任何可微模型的复杂决策边界都能很好地用人工模拟函数来逼近,从而使领域专家能够快速理解和近似计算更复杂的模型在做什么。总的来说,培训程序是稳健和有效的;未来的工作可以继续探索和提高学习模型的稳定性,并确定如何将方法应用于输入本身不可解释的情况(例如图像中的像素)。在三个复杂的现实世界领域(HIV治疗、脓毒症治疗和人类语音处理)中,树正则化模型在更简单、近似人类模拟模型的情况下提供了预测精度的提高。未来的工作可以将树正则化应用于局部的、具体的损失近似(Ribeiro、Singh和Guestrin 2016)或表示学习任务(鼓励简单边界的嵌入)。更广泛地说,一般训练程序可以将树正则化或其他程序正则化应用于广泛的一类流行模型,帮助超越稀疏性,走向人类可以轻松模拟并因此信任的模型。
以上是关于卷积神经网络模型可解释性的主要内容,如果未能解决你的问题,请参考以下文章