关于深度学习的可解释性
在这里学习的,在此简要做了些笔记。
壹、可解释性概述
1. 可解释性是什么
人类对模型决策/预测结果的理解程度。
对于深度学习而言,可解释性面临两个问题:①为甚会得到该结果?(过程)②为甚结果应该是这个?(结果)
理想状态:通过溯因推理,计算出输出结果,可是实现较好的模型解释性。
衡量一个解释是否合理,需要考虑【可解释性:通过人类可以理解的方式描述系统的内部结构】和【完整性:通过精确的方式描述系统的各个操作步骤】两个方面。
2. 为什么需要可解释性
为模型赋予可解释性有利于确保公平性、隐私保护性能、鲁棒性;同时可以说明input到output之间的因果关系。
1)完善深度学习模型
大多数深度学习模型是data-driven的黑盒模型,通过这些模型可以获取知识(这些知识依赖于模型的组织架构、对数据的表征方式),而模型的可解释性可以显式地捕获知识。但因为深度学习模型不好解释,质量保证工作难以实现。
2)深度学习模型和人的关系
如果模型具备较强的可解释性:可以使用户获得良好的交互体验,满足好奇心,增加对模型的信任感。
如果机器做出的决策和人的意愿有出入,用户会试图解释这种差异;当模型的预测结果对用户的生活(尤其是一些涉及到安全、财产方面的决策)产生重要影响时,模型的可解释性与用户对模型的信任度息息相关。
4)深度学习模型和社会的关系
深度学习模型高度依赖于训练数据,但是训练数据可能会带有偏见(人种、性别、职业等因素);为了保证公平性,用户要求学习模型具有检测偏见的功能,能够通过对自身决策的解释说明其公平。
具有强可解释性的模型也会具有较高的社会认可度,会更容易被公众所接纳。
3. 可解释性的分类
根据可解释性方法的作用时间:本质可解释性、事后可解释性
本质可解释性:对模型的架构进行限制,使其工作原理和中间结果能够较为容易地为人们所理解(例如,结构简单的决策树模型)
事后可解释性:通过各种统计量、可视化方法、因果推理等手段,对训练后的模型进行解释
根据可解释性方法与模型的匹配关系:针对特定模型的可解释性、模型无关可解释性
根据可解释性方法的作用范围:局部可解释性、全局可解释性
贰、深度学习的可解释性
1. 深度学习过程的可解释性(网络对于数据的处理过程)
回答:输入为什么会得到相应的的特定输出?(与剖析程序的执行过程相似)
方法:降低复杂度。比如通过设计表现与原始模型相似但更易于解释的代理模型,也可构建显著性图。
1)线性代理模型(Proxy Models)
用线性可解释的模型模拟“黑盒模型”,Marco提出了一种新的模型无关的模型解释技术【LIME:通过学习围绕预测结果的可解释模型,解释任意模型的预测结果。对输入样本进行扰动,识别出对于预测结果影响最大的可理解的特征。】
优秀的解释方法具有以下特性:
① 可解释性;② 局部保真;③ 模型无关;④ 全局视角
代理模型提供了模型复杂度与可信度之间的量化方法。
2)决策树方法
Makoto提出新的规则抽取方法【CRED:使用决策树对神经网络进行分解,并通过c/d-rule算法合并生成的分支,产生不同分类粒度,能够考虑连续与离散值的神经网络输入输出的解释】;DeepRED将CRED的工作拓展到多层网络上,并采用多种结构优化生成树的结构。
另一种决策树方法是【ANN-DT:使用模型的结点结构建立决策树,对数据进行划分;判断节点是采用正负两种方法判断该位置的函数是否被激活,以此划分数据】
决策树生成后,通过在样本空间采样、实验,获得神经网络的规则。对较浅的网络生成了可靠的解释,但由于决策树节点个数依赖于网络大小,对于大规模的网络,方法的计算开销将相应增长。
3)自动规则生成
4)显著性图
2. 深度学习表示的可解释性(网络对于数据的表征)
回答:网络包含哪些信息?(与解释程序内部的数据结构相似)
1)基于层的解释
2)基于神经元的解释
3. 生成自我解释的深度学习系统(如何构建能够生成自我解释的深度学习系统)
1)注意力机制网络:学习一些功能,以提供对输入/内部特征的加权,进而引导网络其他部分可见的信息。
计算input与其中间过程表示之间的权重。
2)分离表示法:使用单独的维度来描述有意义的和独立的变化因素,应用中可以使用深层网络训练显式学习的分离表示。
用高低维度的、含义不同的独立的特征表示样本。
大多数DL模型学习到的特征往往复杂地耦合在一起。通过对学习到的特征解耦,可以得到解释性高的编码。