什么是可解释性?
可解释性被定义为向人类解释或以呈现可理解的术语的能力。这个说法还是比较不数学的,因此很难把这个topic提到一个很高的高度。但是基于这个topic的一个子话题,叫adversal attack已经是很火的一个话题了,在通信领域,计算机网络领域,物联网和边缘计算领域都已经有很多人在做了。
而对于深度学习模型的攻击,可以follow一下微众银行 Qiang Yang 的工作。
在可解释AI的工作中,经常有人混用 Interpretability 和 Explainability 这两个词,实际上是有一些区分的,这里说明一下。
Explainable models are interpretable by default, but the reverse is not always true. 解释性可以说是理解模型运作的数学机理和符合人类思维的逻辑,而Interpretability可以译为可推理性,他关注于对于一个输入,我们能不能保证依据我们对模型的理解,可以得到预期的输出。因为完整的解释性还非常难做,所以下文提到的解释性都是Interpretability。
可解释性旨在帮助人们理解:
如何学习的?学到了什么?针对一个特定输入为什么会做出如此决策?决策是否可靠?这里用一个例子说明一下可解释性工作的意义。
这是一个邮件分类的任务,我们测试两个解决这个任务的算法。通过某种方法我们统计了对模型判断影响较大的词,如上图。
两个算法的分类结果都是正确的,但是我们通过结果依照算法自身的逻辑反推到每个输入单词的,得到每个元素的贡献度,就可以看到一些不正常的地方了。
从做出判断的原因来看,Alg1的原因是关注到GOD这类词得出这是无神论类型的结果,而Alg2更多的关注了报头(本身就有很多重复性但是没有意义),所以Algo2是不合人类的思维逻辑的。因此我们说运行Alg2的模型不具备我们上述的可解释性。
为什么非得符合人类思维习惯的决策才是可以使用的呢?这里举一个简单的例子,医疗图像处理,寻找病灶。
如果一个算法的运算逻辑符合人类思维,那么他标出的病灶位置应该和人类的认知有一定的相似性(比如某种特殊细胞特别多)。一个模型如果在实际使用时给出一个位置是病灶的判断,但是该位置并没有符合人们预期的特点,那么医生无法根据该模型得出正确的结论。因为模型的不可解释性,他不知道是模型错误了,还是模型有其他的潜在逻辑。无法判断这一点,就无法对模型进行结果上的修正。
而对于一个解释性良好的模型,其结果正确,则通过反推等手段应该可以获得正确的图像关注区。同样,关注区和人们期望不符的预测结果,也应该是错误的。
可解释性的分类
依据模型本身的结构特点,可以对可解释模型做以下分类:
Ante-hoc可解释性 模型自身具有可解释性
Post-hoc可解释性
全局可解释性(Global Interpretability)
局部可解释性(Local Interpretability)
什么是Ante-hoc的可解释性呢?
我们可以理解为模型内置可解释性或者事先可解释性,比如:
朴素贝叶斯线性回归决策树基于规则的模型这些模型的特点是本身就是符合数学逻辑,或者说我们可以理解的。我们要做的目标只是提升他们的性能表现而已。一般认为,符合可模拟和可分解这两个特点的模型就是Ante-hoc的模型。
可模拟,指的是模型可以通过其他手段模拟出来。举个 :
在朴素贝叶斯模型中,可以将模型的决策过程转化为概率运算。在决策树模型中,树的每一个分支代表一种可能的决策结果。可分解,就是指模型可以被分解成更小的模块,每个模块有自己特定的意义。举个 :
在朴素贝叶斯模型中,模型的预测可以转化为单个特征值的贡献(特征向量),特征向量的每一维表示每个特征值对最终分类结果的贡献程度。这种内置解释性的模型有自身的缺点,就是没办法做的很复杂。有人用所谓广义加性模型,但是也是杯水车薪。
G(y)=f1(x1)+f2(x2)+…+fn(xn)G(y)=f_1(x_1)+f_2(x_2)+…+f_n(x_n)
每一个$f$都具有良好的解释性,$G$具有良好的表现。
什么是Post-hoc的可解释性呢?
我觉得可以理解为事后可解释性,就是指对于黑盒模型,通过某些方法,体现出他的决策逻辑。
这里又可以分为全局的和局部的解释性。
全局的解释性就是可以解释模型的每一个单元,每一个模块的作用,有这几种方法:
规则提取模型蒸馏激活最大化这里说一下模型蒸馏和激活最大化。
模型蒸馏是指利用结构紧凑的学生模型来模拟结构复杂的教师模型,从而完成从教师模型到学生模型的知识迁移过程,实现对复杂教师模型的知识“蒸馏”。
学生模型可以看作是教师模型的全局近似,反映了教师模型的整体逻辑。可以基于学生模型,提供对教师模型的全局解释,因为学生模型通常采用可解释性好的模型来实现。
蒸馏的难点在于如何在压缩模型结构的同时,保留教师模型从海量数据中学习到的知识和模型的泛化能力。
通用的方法是利用软目标辅助硬目标一起训练学生模型:硬目标为原始数据的类别信息,软目标为教师模型的分类概率值,包含的信息量大,体现了不同类别之间相关关系的信息。
Loss=αLsoft+(1−α)LℎardLoss= αL^{soft}+(1−α)L^{ℎard}
激活最大化,本质上是针对神经网络模型的一个极值优化问题。
它的基本思想是一个神经元最大限度地响应的输入模式可能是一个单元在模型中功能的良好的一阶表示。
这个说法比较绕,但说白了就是他说自己的前提是,每个单元对结果产生的影响都可能是独立或者近似独立的。
通过极值优化,可以分析一个unit对输入的影响。
x=argmaxfl(x)−λ|x−s|2x=argmax{f_l(x)−λ|x−s|^2}
$f_l(x)$是第$l$层一个神经元的输出$s$ 是原图像,第二项希望图像变化尽可能小这个得到的$x$就是对特定unit影响最大的输入,也反映了这个unit对输入的敏感度。通过分析每一个unit,有学者就得出了这样的结论:
从模型的第一层到最后一层,模型学习到的特征表征由局部过渡到整体,由一般任务过渡到特定任务。如,CNN 从浅到深依次学习到:颜色、边缘 → 纹理 → 狗的脸部、鸟的脚部。
上图是Bolei Zhou的一个研究,他竟然分析了一个GAN模型所有的unit。
下面写一下最重要的局部解释性,因为全局解释,尤其是对于神经网络模型,是非常困难的。但是局部的解释性,就比较有可行性,而且效果不错。
局部解释性:以输入样本为导向,通过分析输入样本的某一维特征对模型最终决策结果的贡献来体现解释性。
局部解释方法有:
敏感性分析局部近似反向传播特征反演类激活映射敏感度分析,可以理解为利用模型的局部梯度信息评估特征与决策结果的相关性,常见的相关性定义如下:
Ri(x)=|∂f(x)/∂xi|2R_i(x)=|∂f(x)/∂x_i|^2
( )可以看作是模型梯度的$l_2$范数的分解,通过梯度反向传播来求解。说白了,就是把反向传播到第一层的梯度,作为每一个元素贡献度(重要程度)的依据。
局部近似是基于整个数据空间中,待解释模型的决策边界可以任意的复杂,但模型针对某一特定实例的决策边界通常是简单的,甚至是近线性的。
Local Interpretable Model-Agnostic Explanation(LIME)通过扰动输入样本,来判断特征的存在与否,对于输出结果有着最大的影响。扰动的精髓在于这些绕扰动必须是人类可以理解的。
通过把这些割裂的部分输入进去,得到输出的confidence,通过一个回归,得出影响程度最高的部分。
反向传播这里只讲一个相关性逐层传播(LRP)。
计算单个像素对图像分类器预测结果的贡献。LRP 的核心则是利用反向传播将高层的相关性分值递归地传播到低层直至传播到输入层。与梯度反向传播方法不同的是,LRP 方法不要求DNN神经元的激活是可微的或平滑的。
在不进行数值稳定性修正的情况下,原始LRP 方法的输出结果等价于梯度方法(敏感度分析)所求显著图与输入之间的乘积。
对于如上图所示的连接模型,可以向BP一样把我们定义的相关度反向传播。我们认为最后一层的unit,confidence最高的输出值为相关度,其余unit的相关度为0。通过连接的权重矩阵,一步步反传回第一层。因为是逐层传播,所以每一层的相关度之和是确定的,也就是:
R7=R4+R5+R6=R1+R2+R3R_7=R_4+R_5+R_6=R_1+R_2+R3
而传递关系也就是(以$R_4$为例):
R4=R4a1w14∑i=1,2aiwi4+R4a2w24∑i=1,2aiwi4R_4 = R_4\frac{a_1 w_{14}}{\sum_{i=1,2}a_iw_{i4}}+R_4\frac{a_2 w_{24}}{\sum_{i=1,2}a_iw_{i4}}
对于LSTM,GRU这类有门控的乘性单元来说,学者们提出的解决方法是,门控单元不分担相关度,也就是:
$zj=zg∗zs$$z_j=z_g∗z_s$
$Rj=Rg+Rs,wℎereRg=0$$R_j=R_g+R_s, wℎere R_g=0$
特征反演的基本思想是把中间的feature map上采样,不细说了。
类激活映射利用全局平均池化(Global Average Pooling)层来替代传统CNN模型中除softmax层以外的所有全连接层,并通过将输出层的权重投影到卷积特征图来识别图像中的重要区域。
全局平均池化还可以将CNN良好的定位能力保留到网络的最后一层,本质是用一个值代替一个channel。
他的缺点也很明显:
只适用于解释CNN模型。CAM需要修改网络结构并重训练模型,模型的准确性与可解释性之间始终存在一个权衡。针对重训练模型做出的解释结果与原待解释模型的真实行为之间存在一定的不一致性。还有一些比较新的paper,之后再补。
PS:知乎的markdown写作真是灾难!