文章目录
This Looks Like That: Deep Learning for Interpretable Image Recognition
文章来源:NIPS 2019
Motivation
当面临具有挑战性的图像分类任务时,我们经常通过剖析图像并指出一类或另一类的原型方面来解释我们的推理。每类的原型越多,越有利于最终的分类。这种人类的对于图像分类任务的推理,是否神经网络也可以从图像中学习到类似的原型,用于图像的分类。
Main idea
尝试将这种使用图像原型部分的推理整合到现有的分类网络中,进而利用从训练集中学习到的图像原型用于图像分类决策,进一步提升了深度学习的可解释水平。
Main Contributions
- 本文所提出的 ProtoPNet 方法,该网络是可端到端训练的,并且每个类可以学习一定数量的原型;
- 由于ProtoPNet是仅使用原型来进行分类决策的,从而也使得该模型在全局和局部都是可解释的,以及由于训练获得的原型可以被视为训练数据的patch,因此视觉质量没有损失;
- 通过集成多个ProtoPNet网络可以获得与不可解释方法相近的分类准确率。
Method
该模型分为三层:(1). 用于原型提取的卷积神经网络,(2). 用于将原型与图像块进行比较的原型层,(3). 一个全连接层,用于获取原型的相似度分数并计算最终结果分类分数。
- CNN 层是完善的图像分类网络的卷积层,所有这些都在相关的数据集上进行了预训练。 两个额外的1*1卷积层的输出维度为 7 x 7 x D(D 为 128、256 或 512)被添加到现有层。 此输出表示用作原型的潜在空间中的patch。
- 在原型层,将测试图像块与学习的原型块进行比较,并使用全局最大池化计算相似度分数。 这个分数是不是高,只是说明图像中有一些与原型相似的patch,而不是这个补丁的确切位置。
- 使用全连接层将所有相关分数相加并计算最终的每个类别分数,最高分数代表最可能的类别。
Architecture
Training
ProtoPNet的训练分三个阶段完成:卷积层的随机梯度下降、原型的投影和最后一层的凸优化。
Stochastic Gradient Descent
在这个训练阶段,学习了一个有意义的潜在空间来表示原型。需要优化的函数如下:
其中,CrsEnt是交叉熵用于惩罚错误分类, Clst是聚类的成本最小化用于使得每个训练数据至少有一个接近正确类别的原型的隐空间表征的patch,Sep是最小化分离成本使训练图像的每个隐空间表征的patch远离不属于自己类别的原型。
Projection of the Prototypes
这一步是在卷积层的初始训练之后完成的,主要用于原型的表示。 每个原型都被推到来自同一类的所有训练图像块的最接近的潜在表示上,这意味着通过filter被迫等于最接近的训练图像的patch潜在表示。 这允许使用来自训练数据的图像patch进行直接可视化,同时与学习的潜在表示相比仍保持几乎相同的准确性。
Convex Optimisation of the Last Layer
最后一层连接使用交叉熵和稀疏惩罚针对最终分类进行了优化。 此外,由于在这步中所有参数都是固定的,因此可以获得全局最小值并且优化是凸的。
##Experiments
CUB-200数据集上与SOTA对比的结果,ProtoPNet模型每个类要训练10个原型。
主要结论是,所提出的方法在提供更多可解释性的同时,实现了与大多数最先进方法相当的准确性。
此外,作者使用卷积网络的集成来找到越来越多有意义的原型,但这种集成方法不会影响可解释性,它只会导致每个类有更多的原型和更长的训练时间。
下面是从论文中选出的三个图,它们表明可以清楚地看到哪个原型对给定的测试图像具有最高的激活以及它如何影响最终决策。
下面的例子显示了一个错误的分类,它清楚地显示了这个错误的原因——高度相似的羽毛图案比其他特征被更突出地考虑,这导致了错误的分类。
Conclusion
本文所提出的方法支持case-based的分类推理,同时专门考虑其他方法所不具备的可解释特征。 通过使用训练图像块将学习到的原型可视化,它可以从本质上解释其决策。 此外,在学习原型时引入的分离项会导致更明显的潜在空间。
Think
- 该方法在进行分类时用了过多的原型,而且训练时也不简单
- 是否还有别的方式可以对该方法进一步改进