基于可视化的局部解释

Author Avatar
NENEIIII Mar 21, 2022
  • Read this article on other devices

综述阅读

[1]王鹏达. 面向分类任务的深度神经网络可解释性研究[D].大连理工大学,2021.DOI:10.26991/d.cnki.gdllu.2021.000185.

[2]司念文. 面向图像识别的深度学习可视化解释技术研究[D].战略支援部队信息工程大学,2021.DOI:10.27188/d.cnki.gzjxu.2021.000012.

[3]庞焱萌. 基于可解释CNN的图像分类方法[D].西安电子科技大学,2020.DOI:10.27389/d.cnki.gxadu.2020.001163.

关于目标检测这方面的可解释研究,由于分类问题是个大类,语义分割、目标检测、自然语言处理等任务的特征提取模块都是深度神经网络,因此研究分类问题的可解释性是基础。

一个关于可解释方法的工具箱

事前可解释算法:

ICNN 每一个神经元加入一个损失函数,其特征图将表示一个具体的物体部分[14] ada-shen/ICNN: A pytorch implementation of interpretable convolutional neural network. (github.com)

hard attention:模型会给出其做出预测所关注的图像区域[15] parsatorb/PyTorch-Saccader: PyTorch implementation of Saccader: Improving Accuracy of Hard Attention Models for Vision (github.com)

基于概念的分类模型:对于一次预测,模型将展示输入图像与每个概念的相关性[17] AmanDaVinci/SENN: Self-Explaining Neural Networks (github.com)

事后可解释算法[^ 对完成训练的模型在运用中得到的决策进行解释]

局部解释:在测试阶段对单幅图像的预测结果做出解释

[可视化](MisaOgura/flashtorch: Visualization toolkit for neural networks in PyTorch! Demo –> (github.com))[^ 有个工具集flashtorch]:主要是内部特征的表示形式以及与输入输出的关系等

替代模型解释:利用传统的可解释性较好的机器学习模型去替代

全局解释:针对一类图像的预测做出解释

CNN可视化[^ 此标题下的引用为第三篇文章的]

新型可解释CNN模型

胶囊网络[7] gram-ai/capsule-networks: A PyTorch implementation of the NIPS 2017 paper “Dynamic Routing Between Capsules”. (github.com)

可解释的R-CNN【8】msracver/Deformable-ConvNets: Deformable Convolutional Networks (github.com)

infoGAN【9】msracver/Deformable-ConvNets: Deformable Convolutional Networks (github.com)

可解释CNN【10】ada-shen/ICNN: A pytorch implementation of interpretable convolutional neural network. (github.com)

卷积层是如何提取特征的

每个卷积核都能生成一个特征图,体现的特征可能也不相同

之后对特征图进行池化:缩小图像同时提取重要信息

==注意卷积层提取特征时并不会关注特征产生的位置==

通过反向传播不断比较预测值和真实值,来对卷积核的参数进行自适应调整,提高模型的泛化能力

一个CNN可视化的详细研究

[基于pytorch实现可视化的一系列方法](utkuozbulak/pytorch-cnn-visualizations: Pytorch implementation of convolutional neural network visualization techniques (github.com))

  • Gradient visualization with vanilla backpropagation

  • Gradient visualization with guided backpropagation

  • Gradient visualization with saliency maps

  • Gradient-weighted class activation mapping

  • Guided, gradient-weighted class activation mapping

  • Smooth grad

  • CNN filter visualization

  • Inverted image representations

  • Deep dream

  • Class specific image generation

对不同网络进行可视化的实例

torchvision实现的各种可视化方法

torchRay实现各种可视化方法

开源可视化工具

一个目标检测开源工具箱: OpenMMLab Detection Toolbox

部署在不同任务上的cam用法-目标检测 语义分割 图片分类

相关CNN可视化综述(待读)

[1]How convolutional neural networks see the world — A survey of convolutional neural network visualization methods

[2]Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps

[3]Visualizing and Understanding Convolutional Networks