CNN 可视化解释:Saliency Maps

Image-Specific Class Saliency Visualization

给定一个图像和 CNN 的分类结果,图像中哪个像素对分类结果贡献大?

Simonyan et. al. 在文章 [1] 提出 saliency maps 解决这个问题。

saliency-map-fig-1

给定图像 Im×nI^{m \times n} ,求 salency map Mm×nM^{m \times n}

  1. 记把输入 II 在 ConvNet 的对应 c 类的输出分数为(其中 II 被一维化)

Sc(I)S_c(I)

  1. 将在 I0I_0 处其一阶泰勒展开,得到等式

Sc(I)wTI+bS_c(I) \approx w^T I + b

  1. 其中 wwScS_cI0I_0 的一阶导数,用 single backprop 方法求解

w=δSc(I)δII0w=\frac{\delta S_c(I)}{\delta I} \bigg|_{I_0}

  1. 计算 saliency map MM

Mij=maxchannelw(i,j,channel)M_{ij}=\max_{channel} |w_{(i,j,channel)}|

其中,用一阶导数表示 saliency map 的另外一种解释,是数值越大表明对结果影响越大,颜色越深。

另外,用 saliency map 的结果,可以辅助 GraphCut.

Class Model Visualisation

给定一个模型,如何将其可视化?Simonyan et. al. 在文章 [1] 提出 class representiative image generation 方法:

  1. ScS_c 表示 ConvNet 对类别 C 的评分函数(softmax 的输入),设最优化目标

argmaxISc(I)λI22\arg \max_I S_c(I) - \lambda ||I||^2_2

  1. 初始化

I0=1ni=1nIiI_0 = \frac{1}{n} \sum_{i=1}^n I_i

  1. 通过 backprop 梯度下降求解 II,得到每类的图像

saliency-map-fig-0

Deconv Reconstruction

[1] 的作者与 Deconv Reconstruction 方法 [2] 进行了对比,详见 [1] PPT

saliency-map-fig-2

[1] Simonyan, Karen, Andrea Vedaldi, and Andrew Zisserman. “Deep inside convolutional networks: Visualising image classification models and saliency maps.” arXiv preprint arXiv:1312.6034 (2013). APA PDF PPT

[2] Zeiler, Matthew D., and Rob Fergus. “Visualizing and understanding convolutional networks.” European conference on computer vision. Springer, Cham, 2014. APA

本文有帮助?