作者:Quanshi Zhang, Ying Nian Wu, and Song-Chun Zhu University of California, Los Angeles
原文:arxiv.org/abs/1710.00935
摘要
本文提出了一种将传统的卷积神经网络(CNNs)修改为可解释的CNNs的方法,以阐述在高卷积层CNNs中的知识表示。在可解释的CNN中,高卷积层中的每个filter代表一个特定的对象部分(鸟头,鸟翅膀这种)。本方法不需要额外标注和监督。在学习过程中,可解释的CNN自动给高卷积层每个过滤器分配一个对象部分。实验表明,可解释CNN中的filter比传统CNN中的filter在语义上更有意义。
引文
在传统的CNN中,一个高层过滤器可能会描述一个混合的模式,即过滤器可能被猫的头部和腿部同时激活。这种高卷积层的复杂表示大大降低了网络的可解释性。相比之下,我们可解释的CNN中的过滤器是由某个部分激活的。通过这种方式,我们可以明确的识别出CNN中哪些对象部分被记忆下来进行分类,而不会产生歧义。
四个目标:
1.对CNN稍作修改,提高其可解释性,广泛应用于不同结构的CNN。
2.无需额外标注,自动给filter分配模式
3.不改变顶层的loss function,使用与原始CNN相同的训练样本
4.作为一项探索性的研究,可解释性设计可能会使识别能力有所下降,我们希望将这种下降限制在一个小范围内。
方法:对高卷积层的每个filter计算loss,种loss降低了类间激活的熵和神经激活的空间分布的熵,就是说,每个filter必须编码一个单独的对象部分(鸟头鸟尾巴),并且过滤器必须由对象的单个部分来激活,而不是重复地出现在不同的对象区域。假设不同区域的重复形状更倾向于描述低级纹理(例如颜色和边缘),而不是高级部分。
相关工作
网络可视化:CNN中过滤器的可视化是探索隐藏在神经单元中的模式的最直接方法。比如量化神经元得分。
模式检索:一些研究超越了被动的可视化,主动地从CNN中检索特定的单元,用于不同的应用。检索filter中的模式。
模型诊断:人们开发了许多方法来诊断黑箱模型的表示。LIME,Grad-Cam。
学习更好的表现形式:与预先训练的CNN的诊断和/或可视化不同,开发了一些方法来学习更有意义的表现形式。比如在训练过程中增加一些规则和标注等。
算法
见上图,对于一个nn的filter,设计n^2个模板(一个像素一个模板),每个模板也是nn的。这些模板用来描述目标部分(鸟头鸟尾巴)触发filter中的第i个单元时的理想激活分布。
在前向传播的过程中,对于每一张输入图片,从n^2个模板中选择一个,来过滤掉filter x中激活的噪声单元。
上图展示了原图、掩模,淹没处理图片后的激活区域。
反向传播的过程中,通过loss使得filter向一种固定的目标模式收敛。换而言之,如果图片I属于C类,那么filter就可以指定给某个mask,如果不属于C类,则希望filter匹配给一个负的mask,所以总共有n^2+1个模板。
我们把filter的loss表示为filter(X)和mask(T)之间的交互信息。论文给出了详细的先验概率计算公式。
filter x和模板T之间的契合度用条件似然p(x|T)测量:
学习
我们通过端到端的方式训练可解释CNN。在前向传播过程中,CNN中的每个过滤器都是自下而上传递信息的,就像传统的CNN一样。在反向传播过程中,每个可解释卷积层的filter接收最终的任务损失梯度和本身的filter loss:
我们计算filter x上每个部件的 Lossf 梯度:
这个公式使用了近似方法以减少计算量,这个公式保证当Image属于filter的目标类时,T会指定为某个模板,否则会分配给负模板。
确定每个filter的目标类别:哪个类别的图激活filter最多,就给filter指定为哪个类别。
理解Loss
这一节从filter的分类,和filter对模式定位两个方面分析上述公式时如何保证低熵的。
实验
以上都是filter的部分可解释性比较,数值代表filter包含的语义信息量(同行对比)。
后面比较了filter定位的不稳定性,和把filter的模式叠加到原图上的效果(应用效果)。
总结
在这篇论文中,我们提出了一种通用的方法来修改传统的CNN以提高其可解释性。除了分类能力之外,网络的可解释性也是一个重要的属性。我们设计了一个Loss,以推动filter在高卷积层表示对象的部分,无任何注释。实验表明,我们的可解释CNNs在高卷积层中编码的语义信息比传统CNN编码的语义信息更有意义。在未来的工作中,我们将设计新的filter来描述一个类别的有区别的纹理,并为多个类别共享的对象部件设计新的filter实现更高的模型灵活性。