深度学习的可解释性问题研究图文详解.docx
- 文档编号:29958786
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:35
- 大小:3.31MB
深度学习的可解释性问题研究图文详解.docx
《深度学习的可解释性问题研究图文详解.docx》由会员分享,可在线阅读,更多相关《深度学习的可解释性问题研究图文详解.docx(35页珍藏版)》请在冰豆网上搜索。
深度学习的可解释性问题研究图文详解
深度学习的可解释性问题研究图文详解
一、深度学习的可解释性研究概述
随着深度学习模型在人们日常生活中的许多场景下扮演着越来越重要的角色,模型的「可解释性」成为了决定用户是否能够「信任」这些模型的关键因素(尤其是当我们需要机器为关系到人类生命健康、财产安全等重要任务给出预测和决策结果时)。
在本章,我们将从深度学习可解释性的定义、研究意义、分类方法 3个方面对这一话题展开讨论。
1.1
何为可解释性
对于深度学习的用户而言,模型的可解释性是一种较为主观的性质,我们无法通过严谨的数学表达方法形式化定义可解释性。
通常,我们可以认为深度学习的可解释性刻画了「人类对模型决策或预测结果的理解程度」,即用户可以更容易地理解解释性较高的模型做出的决策和预测。
从哲学的角度来说,为了理解何为深度学习的可解释性,我们需要回答以下几个问题:
首先,我们应该如何定义对事务的「解释」,怎样的解释才足够好?
许多学者认为,要判断一个解释是否足够好,取决于这个解释需要回答的问题是什么。
对于深度学习任务而言,我们最感兴趣的两类问题是「为什么会得到该结果」和「为什么结果应该是这样」。
而理想状态下,如果我们能够通过溯因推理的方式恢复出模型计算出输出结果的过程,就可以实现较强的模型解释性。
实际上,我们可以从「可解释性」和「完整性」这两个方面来衡量一种解释是否合理。
「可解释性」旨在通过一种人类能够理解的方式描述系统的内部结构,它与人类的认知、知识和偏见息息相关;而「完整性」旨在通过一种精确的方式来描述系统的各个操作步骤(例如,剖析深度学习网络中的数学操作和参数)。
然而,不幸的是,我们很难同时实现很强的「可解释性」和「完整性」,这是因为精确的解释术语往往对于人们来说晦涩难懂。
同时,仅仅使用人类能够理解的方式进行解释由往往会引入人类认知上的偏见。
此外,我们还可以从更宏大的角度理解「可解释性人工智能」,将其作为一个「人与智能体的交互」问题。
如图1所示,人与智能体的交互涉及人工智能、社会科学、人机交互等领域。
图1:
可解释的人工智能
1.2
为什么需要可解释性
在当下的深度学习浪潮中,许多新发表的工作都声称自己可以在目标任务上取得良好的性能。
尽管如此,用户在诸如医疗、法律、金融等应用场景下仍然需要从更为详细和具象的角度理解得出结论的原因。
为模型赋予较强的可解释性也有利于确保其公平性、隐私保护性能、鲁棒性,说明输入到输出之间个状态的因果关系,提升用户对产品的信任程度。
下面,我们从「完善深度学习模型」、「深度学习模型与人的关系」、「深度学习模型与社会的关系」3个方面简介研究机器深度学习可解释性的意义。
(1)完善深度学习模型
∙大多数深度学习模型是由数据驱动的黑盒模型,而这些模型本身成为了知识的来源,模型能提取到怎样的知识在很大程度上依赖于模型的组织架构、对数据的表征方式,对模型的可解释性可以显式地捕获这些知识。
∙尽管深度学习模型可以取得优异的性能,但是由于我们难以对深度学习模型进行调试,使其质量保证工作难以实现。
对错误结果的解释可以为修复系统提供指导。
(2)深度学习模型与人的关系
∙在人与深度学习模型交互的过程中,会形成经过组织的知识结构来为用户解释模型复杂的工作机制,即「心理模型」。
为了让用户得到更好的交互体验,满足其好奇心,就需要赋予模型较强的可解释性,否则用户会感到沮丧,失去对模型的信任和使用兴趣。
∙人们希望协调自身的知识结构要素之间的矛盾或不一致性。
如果机器做出了与人的意愿有出入的决策,用户则会试图解释这种差异。
当机器的决策对人的生活影响越大时,对于这种决策的解释就更为重要。
∙当模型的决策和预测结果对用户的生活会产生重要影响时,对模型的可解释性与用户对模型的信任程度息息相关。
例如,对于医疗、自动驾驶等与人们的生命健康紧密相关的任务,以及保险、金融、理财、法律等与用户财产安全相关的任务,用户往往需要模型具有很强的可解释性才会谨慎地采用该模型。
(3)深度学习模型与社会的关系
∙由于深度学习高度依赖于训练数据,而训练数据往往并不是无偏的,会产生对于人种、性别、职业等因素的偏见。
为了保证模型的公平性,用户会要求深度学习模型具有检测偏见的功能,能够通过对自身决策的解释说明其公平。
∙深度学习模型作为一种商品具有很强的社会交互属性,具有强可解释性的模型也会具有较高的社会认可度,会更容易被公众所接纳。
1.3
可解释性的分类
根据可解释性方法的作用时间、可解释性方法与模型的匹配关系、可解释性方法的作用范围,我们可以将深度学习的可解释性方法分为:
本质可解释性和事后可解释性、针对特定模型的可解释性和模型无关可解释性、局部可解释性和全局可解释性。
其中,本质可解释性指的是对模型的架构进行限制,使其工作原理和中间结果能够较为容易地为人们所理解(例如,结构简单的决策树模型);事后可解释性则指的是通过各种统计量、可视化方法、因果推理等手段,对训练后的模型进行解释。
由于深度模型的广泛应用,本文将重点关注深度学习的可解释性,并同时设计一些深度学习方法的解释。
二、深度学习的可解释性
对于深度学习模型来说,我们重点关注如何解释「网络对于数据的处理过程」、「网络对于数据的表征」,以及「如何构建能够生成自我解释的深度学习系统」。
网路对于数据的处理过程将回答「输入为什么会得到相应的的特定输出?
」,这一解释过程与剖析程序的执行过程相类似;网络对于数据的表征将回答「网络包含哪些信息?
」,这一过程与解释程序内部的数据结构相似。
下文将重点从以上三个方面展开讨论。
2.1
深度学习过程的可解释性
常用的深度网络使用大量的基本操作来得出决策:
例如,ResNet使用了约5×107个学习参数,1010个浮点运算来对单个图像进行分类。
解释这种复杂模型的基本方法是降低其复杂度。
这可以通过设计表现与原始模型相似但更易于解释的代理模型来完成(线性代理模型、决策树模型等),或者也可以构建显著性图(saliencemap),来突出显示最相关的一部分计算,从而提供可解释性。
(1)线性代理模型(ProxyModels)
目前被广泛采用的深度学习模型,大多仍然是「黑盒模型」。
在根据预测结果规划行动方案,或者选择是否部署某个新模型时,我们需要理解预测背后的推理过程,从而评估模型的可信赖程度。
一种可能的方法是,使用线性可解释的模型近似“黑盒模型”。
Marcoet.al[1]提出了一种新的模型无关的模型解释技术「LIME」,它可以通过一种可解释的、准确可靠的方式,通过学习一个围绕预测结果的可解释模型,解释任意的分类器或回归模型的预测结果。
本文作者还通过简洁地展示具有代表性的个体预测结果及其解释,将该任务设计成了一种子模块优化问题。
文中指出,一种优秀的解释方法需要具备以下几点特质:
(1)可解释性:
给出对输入变量和响应的关系的定性理解,可解释性需要考虑用户自身的限制。
(2)局部保真:
解释方法至少需要在局部是可靠的,它必须与模型在被预测实例附近的表现相对应。
需要指出的是,在全局上重要的特征不一定在局部环境下仍然重要,反之亦然。
(3)模型无关:
解释方法需要能够解释各种各样的模型。
(4)全局视角:
准确度有时并不是一个很好的模型评价指标,解释器旨在给出一些具有代表性的对样本的解释。
文中的方法可以基于对分类器局部可靠的可解释表征,来鉴别器模型的可解释性。
LIME会对输入样本进行扰动,识别出对于预测结果影响最大的特征(人类可以理解这些特征)。
图2
如图2所示,加粗的红色十字样本有待解释。
从全局来看,很难判断红色十字和蓝色圆圈对于带解释样本的影响。
我们可以将视野缩小到黑色虚线周围的局部范围内,在加粗红色十字样本周围对原始样本特征做一些扰动,将扰动后的采样样本作为分类模型的输入,LIME的目标函数如下:
其中,f为分类器,g为解释器,π_x为临近度度量,Ω(g)为解释器g的复杂度,L为损失函数。
图3
因为代理模型提供了模型复杂度与可信度之间的量化方法,因此方法间可以互相作为参考,吸引了许多研究工作。
(2)决策树方法
另一种代理模型的方法是决策树。
将神经网络分解成决策树的工作从1990年代开始,该工作能够解释浅层网络,并逐渐泛化到深度神经网络的计算过程中。
一个经典的例子是Makotoet.al[2]。
文中提出了一种新的规则抽取(RuleExtraction)方法CRED,使用决策树对神经网络进行分解,并通过c/d-rule算法合并生成的分支,产生不同分类粒度,能够考虑连续与离散值的神经网络输入输出的解释。
具体算法如下:
一.将网络输入变量按设定的特征间隔大小分成不同类别,并划分网络的目标输出和其他输出。
二.建立输出隐藏决策树(Hidden-OutputDecisionTree)每个结点使用预测目标的特征做区分,以此分解网络,建立网络的中间规则。
三.对于2建立的每个节点,对其代表的每个函数建立输入隐藏决策树(Hidden-InputDecisionTree),对输入的特征进行区分,得到每个节点输入的规则。
四.使用3中建立的输入规则替换结点的输出规则,得到网络整体的规则。
五.合并结点,根据设定的规则,使表达简洁。
图4:
CRED算法
DeepRED[3]将CRED的工作拓展到了多层网络上,并采用了多种结构优化生成树的结构。
另一种决策树结构是ANN-DT[4],同样使用模型的结点结构建立决策树,对数据进行划分。
不同的是,判断节点是采用正负两种方法判断该位置的函数是否被激活,以此划分数据。
决策树生成后,通过在样本空间采样、实验,获得神经网络的规则。
这阶段的工作对较浅的网络生成了可靠的解释,启发了很多工作,但由于决策树节点个数依赖于网络大小,对于大规模的网络,方法的计算开销将相应增长。
(3)自动规则生成
自动规则生成是另一种总结模型决策规律的方法,上世纪80年代,Gallant将神经网络视作存储知识的数据库,为了从网络中发掘信息和规则,他在工作[4]中提出了从简单网络中提取规则的方法,这可以被看作是规则抽取在神经网络中应用的起源。
现今,神经网络中的规则生成技术主要讲输出看作规则的集合,利用命题逻辑等方法从中获取规则。
HiroshiTsukimoto[6]提出了一种从训练完成的神经网络中提取特征提取规则的方法,该方法属于分解法,可以适用在输出单调的神经网络中,如sigmoid函数。
该方法不依赖训练算法,计算复杂度为多项式,其计算思想为:
用布尔函数拟合神经网络的神经元,同时为了解决该方法导致计算复杂度指数增加的问题,将算法采用多项式表达。
最后将该算法推广到连续域,提取规则采用了连续布尔函数。
Towell[7]形式化了从神经网络中提取特征的方法,文章从训练完成的神经网络中提取网络提取特征的方法,MoFN,该方法的提取规则与所提取的网络的精度相近,同时优于直接细化规则的方法产生的规则,更加利于人类理解网络。
MoFN分为6步:
1)聚类;2)求平均;3)去误差;4)优化;5)提取;6)简化。
聚类采用标准聚类方法,一次组合两个相近的族进行聚类,聚类结束后对聚类的结果进行求平均处理,计算时将每组中所有链路的权重设置为每个组权重的平均值,接下来将链接权重较低的组去除,将留下的组进行单位偏差优化,优化后的组进行提取工作,通过直接将每个单元的偏差和传入权重转换成具有加权前因的规则来创建,最后对提取到的规则简化。
MOFN的算法示例如下图所示。
图5:
MOFN算法
规则生成可以总结出可靠可信的神经网络的计算规则,他们有些是基于统计分析,或者是从模型中推导,在保障神经网络在关键领域的应用提供了安全保障的可能。
(4)显著性图
显著性图方法使用一系列可视化的技术,从模型中生成解释,该解释通常表达了样本特征对于模型输出的影响,从而一定程度上解释模型的预测。
常见方法有反卷积、梯度方法等。
Zeiler[8]提出了可视化的技巧,使用反卷积观察到训练过程中特征的演化和影响,对CNN内部结构与参数进行了一定的“解读”,可以分析模型潜在的问题,网络深度、宽度、数据集大小对网络性能的影响,也可以分析了网络输出特征的泛化能力以及泛化过程中出现的问题。
利用反卷积实现特征可视化
为了解释卷积神经网络如何工作,就需要解释CNN的每一层学习到了什么东西。
为了理解网络中间的每一层,提取到特征,论文通过反卷积的方法,进行可视化。
反卷积网络可以看成是卷积网络的逆过程。
反卷积可视化以各层得到的特征图作为输入,进行反卷积,得到反卷积结果,用以验证显示各层提取到的特征图。
Eg:
假如你想要查看Alexnet的conv5提取到了什么东西,就用conv5的特征图后面接一个反卷积网络,然后通过:
反池化、反激活、反卷积,这样的一个过程,把本来一张13*13大小的特征图(conv5大小为13*13),放大回去,最后得到一张与原始输入图片一样大小的图片(227*227)。
反池化过程
池化是不可逆的过程,然而可以通过记录池化过程中,最大激活值的坐标位置。
然后在反池化的时候,只把池化过程中最大激活值所在的位置坐标的值激活,其它的值置为0,当然这个过程只是一种近似,因为在池化的过程中,除了最大值所在的位置,其它的值也是不为0的。
图6
反激活
在Alexnet中,relu函数是用于保证每层输出的激活值都是正数,因此对于反向过程,同样需要保证每层的特征图为正值,也就是说这个反激活过程和激活过程没有什么差别,都是直接采用relu函数。
另一些可视化方法可视化方法主要是通过deconv的方法将某一层特征图的Top-k激活反向投射到原图像上,从而判断该激活值主要识别图像的什么部分。
这就要求针对每一层都必须有对应的逆向操作。
具体而言,对于MaxPooling层,在前馈时使用switch变量来记录最大值来源的index,然后以此近似得到Unpooling。
对于Relu层,直接使用Relu层。
而对于conv层,使用deconv,即使用原来卷积核的转置作为卷积核。
通过可视化方法,对训练完成的模型在ImageNet的数据各层可视化后,可以得到不同结构的重建特征图,与原图进行对比能够直观地看到网络各层学习到的信息:
图7:
第二层学习边缘,角落信息;第三层学到了一些比较复杂的模式,网状,轮胎;第四层展示了一些比较明显的变化,但是与类别更加相关了,比如狗脸,鸟腿;第五层则看到了整个物体,比如键盘,狗。
同时,通过可视化,我们也可以发现模型的缺陷,例如某些层学习到的特征杂乱无章,通过单独训练,可以提升模型效果。
另外的方法也被采用,例如使用遮挡的方法,通过覆盖输入的某部分特征,分析输出和模型计算的中间参数,得到模型对被遮挡部分的敏感性,生成敏感性图,或者用梯度方法得到输出对于输入图像像素的梯度,生成梯度热力图。
总结性的工作来自ETHZurch的EneaCeolini[9]证明了基于梯度的归因方法(gradient-basedAttributionmethods)存在形式上\联系,文章证明了在一定情况下,诸如sigma-LRP[10]、DeepLIF[11]方法间存在的等价和近似关系,并基于统一的数学表达,提出了一个更普适的梯度归因方法框架Sensitivity-n,用于解释模型输入输出之间的关联。
深度学习的归因分析用于解释输入的每个变量对于神经网络的贡献(contribution),或相关程度(relevance),严格来说,假设网络的输入为x=[x1,...,xN],C个输出神经元对应的输出为S(x)=[S1(x),...,SC(x)],归因分析的目标便是找到xi对于每个神经元输出的贡献,Rc=[Rc1,...,RcN]。
基于梯度的方法可以被看作直接使用输出对输出的特征求梯度,用梯度的一定变换形式表示其重要性,工作中展示的考虑不同大小特征区域热力图如下:
图8
文章分析了不同方法的效果差异:
图 9
通过证明,得到通用的梯度方法表示为:
基于上述推导,作者得以提出了sensitivity-n方法,总结了相似的梯度方法,并使后续工作可以在更广泛的框架下讨论。
2.2
深度网络表示的可解释性
尽管存在大量神经网络运算,深度神经网络内部由少数的子组件构成:
例如,数十亿个ResNet的操作被组织为约100层,每层计算64至2048信息通道像素。
对深层网络表示的解释旨在了解流经这些信息瓶颈的数据的作用和结构。
可以按其粒度划分为三个子类:
基于层的解释,将流经层的所有信息一起考虑;基于神经元的解释,用来说明单个神经元或单个filter通道的情况;此外基于(其他)表示向量的解释,例如概念激活向量(CAV)[12]是通过识别和探测与人类可解释概念一致的方向来解释神经网络表示,用单个单元的线性组合所形成的表示向量空间中的其他方向作为其表征向量。
(1)基于层的解释
Bengio等人[13]分析了在图片分类任务中,不同层的神经网络的功能和可迁移性,以及不同迁移方法对结果的影响。
从实验的角度分析了神经网络不同层参数具有的一些性质,证明了模型迁移方法的普遍效果。
作者验证了浅层神经网络在特征抽取功能上的通用性和可复用性,针对实验结果提出了可能的解释,表明影响迁移学习效果的因素有二:
1) 共同训练变量的影响
通过反向传播算法训练的神经网络,结点参数并非单独训练,其梯度计算依赖于一系列相关结点,因此迁移部分结点参数会引起相关结点的训练困难。
2) 迁移参数的通用性能和专用性
网络中较浅层网络的功能较为通用,而高层网络与网络的训练目标更加相关。
若A、B任务不想关,则专用于A的参数迁移后会影响对B任务的学习。
图10
实验结果发现,在不同的实验条件下,两种因素会不同程度决定迁移学习的效果。
例如,当迁移较深层网络并固定参数时,高层参数的专用性会导致在迁移到的任务上表现不佳,但这时共同训练的变量影响会减小,因为大部分参数都被迁移获得;当迁移自身的参数并固定时,在层数较小的情况下出现了性能下降,这说明了共同训练的变量对表现的影响。
另外,实验发现完全不相关的任务对应的迁移,在经过充分微调后仍然能提升模型的性能,这证明了参数迁移是一个通用的提升模型性能的方法。
牛津大学KarenSimonyan等人[14]为解决深层卷积神经网络分类模型的可视化问题,提出了两种方法:
第一种生成图像使得类得分最大化,再将类可视化;第二种计算给定图像和类的类显著性映射,同时还证明了这种方法可以使用分类转换网络的弱监督对象分类。
整个文章主要有三个贡献:
证明了理解分类CNN模型可以使用输入图像的数值优化;提出了一种在图像中提取指定类别的空间表征信息(image-specificclasssaliencymap)的方法(只通过一次back-propagation),并且这种saliencymaps可以用于弱监督的物体定位。
证明gradient-based的可视化方法可以推广到deconvolutionalnetwork的重构过程。
在第一类方法中,文中采用公式
(1)进行图像分类模型的可视化操作,其中
表示c的分数,由ConvNet的分类层对图像I计算得到,
是正则化参数。
可视化过程与ConvNet训练过程类似,不同之处在于对图像的输入做了优化,权重则固定为训练阶段得到的权重。
图1所示为使用零图像初始化优化,然后将训练集的均值图像添加到结果中的输出图。
(1)
图11
在第二类方法中,给定一张图像I0,在I0附近使用一阶泰勒展开的线性函数来近似Sc(I):
,其中w即为Sc对于图像I的导数在I0点的值:
。
在给定的图像I0(m行n列)和对应的类别c中,要求得它对应saliencymapM(M∈Rmxn),首先按照上述公式利用back-propagation可以求得导数w,然后对w元素进行重新排列即可得到SaliencyMap。
SaliencyMap是利用训练好的CNN直接提取的,无需使用额外的标注,而且对于某个特定类别的image-specificsaliencymap的求解是很快的,只需要一次back-propagation。
可视化结果如图2所示
图12
在第二类方法中得到的SaliencyMap编码了给定图像中特定类别的物体位置信息,所以它可以被用来进行物体定位(尽管它在分类任务上得到训练,弱监督学习)。
给定一张图像和其对应的SaliencyMap,可以使用GraphCut颜色分割模型来得到物体分割mask。
要使用颜色分割模型主要是因为SaliencyMap只能捕捉到一个物体最具有区分性的部分,它无法highlight整个物体,因此需要将thresholdmap传递到物体的其他区域,本文使用colourcontinuitycues来达到这个目的。
前景和背景模型都被设置为高式混合模型,高于图像Saliencydistribution95%的像素被视为前景,Saliency低于30%的像素被视为背景。
标记了前景和背景像素之后,前景像素的最大连接区域即为对应物体的分割mask(使用GraphCut算法),效果如图3所示。
图13
此外,Zhanget.al.的工作[15]发现网络浅层具有统计输入信息的功能,并发现其和共享的特征信息一样,对迁移带来的性能提升起到了帮助。
通过从相同checkpoint训练,发现参数迁移,可以使模型损失每次都保持在相同的平面内(basin),具有相似的地形,但随机初始化的参数每次损失所在的训练平面不同。
文章支持了高层、低层网络具有的不同功能,发现高层网路对于参数的改变更加敏感。
(2)基于神经元的解释
香港中文大学助理教授周博磊的工作[16]为CAM技术的奠定了基础,发现了CNN中卷积层对目标的定位功能。
在改文中,作者对场景分类任务中训练CNN时得到的目标检测器展开了研究。
由于场景是由物体组成的,用于场景分类的CNN会自动发现有意义的目标检测器,它们对学到的场景类别具有代表性。
作者发现,单个网络可以支持多个级别的抽象(如边缘、纹理、对象、场景),同一个网络可以在无监督环境下,在单个前向传播过程中同时完成场景识别和目标定位。
图14:
估计每个神经元的感受野
针对每个神经元,作者估计出了其确切地感受野,并观察到激活区域倾向于随着层的深度增加而在语义上变得更有意义(这是启发后来一系列计算机视觉神经网络框架的理论基础)。
周博磊CVPR2017[17]提出了一种名为“NetworkDissection”的通用框架,假设“单元的可解释性等同于单元的随机线性结合”,通过评估单个隐藏单元与一系列语义概念间的对应关系,来量化CNN隐藏表征的可解释性。
这种方法利用大量的视觉概念数据集来评估每个中间卷积层隐藏单元的语义。
这些带有语义的单元被赋予了大量的概念标签,这些概念包括物体、组成部分、场景、纹理、材料和颜色等。
该方法揭示CNN模型和训练方法的特性,而不仅仅是衡量他们的判别能力。
论文发现:
人类可解释的概念有时候会以单一隐藏变量的形式出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深度 学习 解释性 问题 研究 图文 详解