CNN可视化技术总结(三)--类可视化

CNN可视化技术总结(一)-特征图可视化网络

CNN可视化技术总结(二)--卷积核可视化ide

导言:工具

    前面咱们介绍了两种可视化方法,特征图可视化和卷积核可视化,这两种方法在论文中都比较常见,这两种更多的是用于分析模型在某一层学习到的东西。在理解这两种可视化方法,很容易理解图像是如何通过神经网络后获得识别分类。学习

 

    然而,上次我在知乎看到一个经过yolov3作跌倒检测,但愿加上人脸识别进行多任务学习从而提升准确率的提问。这明显提问者并不理解神经网络是如何对这种带有时间维度的视频进行分析从而实现行为识别,从本质上来说,这实际上是不理解神经网络具体是如何识别一个类的。所以,当在这一点上理解错误后,所进行的模型选择、方案设计和改进,就都是不合理的。ui

    (我在知乎上回答了这个问题正确的跌倒检测思路应该是什么,感兴趣的能够去看看,个人知乎id是仿佛如有光)设计

 

    所以,在本文中,咱们将介绍一种对于不一样的类,如何知道模型根据哪些信息来识别的方法,即对类进行可视化,通俗一点来讲就是热力图。这个方法主要是CAM系列,目前有CAM, Grad-CAM, Grad-CAM++。3d

 

CAM(Class Activation Map)

 

图片

如上图所示,CAM的结构由CNN特征提取网络,全局平均池化GAP,全链接层和Softmax组成。视频

 

实现原理:一张图片在通过CNN特征提取网络后获得feature maps, 再对每个feature map进行全局平均池化,变成一维向量,再通过全链接层与softmax获得类的几率。blog

 

假定在GAP前是n个通道,则通过GAP后获得的是一个长度为1x n的向量,假定类别数为m,则全链接层的权值为一个n x m的张量。(注:这里先忽视batch-size)token

 

对于某一个类别C, 如今想要可视化这个模型对于识别类别C,原图像的哪些区域起主要做用,换句话说模型是根据哪些信息获得该图像就是类别C。

 

作法是取出全链接层中获得类别C的几率的那一维权值,用W表示,即上图的下半部分。而后对GAP前的feature map进行加权求和,因为此时feature map不是原图像大小,在加权求和后还须要进行上采样,便可获得Class Activation Map。

 

用公式表示以下:(k表示通道,c表示类别,fk(x,y)表示feature map)

图片

效果图:

 

图片

 

 

CAM的分析

CAM有个很致命的缺陷,它的结构是由CNN + GAP + FC + Softmax组成,也就是说若是想要可视化某个现有的模型,但大部分现有的模型没有GAP这个操做,此时想要可视化便须要修改原模型结构,并从新训练,至关麻烦,且若是模型很大,在修改后从新训练不必定能达到原效果,可视化也就没有意义了。

所以,针对这个缺陷,其后续有了改进版Grad-CAM。

 

Grad-CAM

 

Grad-CAM的最大特色就是再也不须要修改现有的模型结构了,也不须要从新训练了,直接在原模型上便可可视化。

 

原理:一样是处理CNN特征提取网络的最后一层feature maps。Grad-CAM对于想要可视化的类别C,使最后输出的类别C的几率值经过反向传播到最后一层feature maps,获得类别C对该feature maps的每一个像素的梯度值,对每一个像素的梯度值取全局平均池化,便可获得对feature maps的加权系数alpha,论文中提到这样获取的加权系数跟CAM中的系数几乎是等价的。接下来对特征图加权求和,使用ReLU进行修正,再进行上采样。

 

使用ReLU的缘由是对于那些负值,可认为与识别类别C无关,这些负值多是与其余类别有关,而正值才是对识别C有正面影响的。

 

用公式表示以下:

图片

图片

图片

Grad-CAM的结构图如上图所示,对于Guided Backpropagation不了解的读者,可看CNN可视化技术总结的第一篇文章。

效果图以下:

图片

 

Grad-CAM后续还有改进版Grad-CAM++,其主要的改进效果是定位更准确,更适合同类多目标的状况,所谓同类多目标是指一张图像中对于某个类出现多个目标,例如七八我的。

改进方法是对加权系数的获取提出新的方法,该方法复杂到不忍直视。所以这里就不介绍了,感兴趣的读者可经过文章末尾的连接获取该论文。

  下一篇将对全部的一些可视化工具进行总结。内容将放在CV技术总结部分。

CAM:  https://arxiv.org/pdf/1512.04150.pdf
Grad-CAM:  https://arxiv.org/pdf/1610.02391v1.pdf
Grad-CAM++:  https://arxiv.org/pdf/1710.11063.pdf

参考论文:

1. Learning Deep Features for Discriminative Localization

2.Grad-CAM: Why did you say that?Visual Explanations from Deep Networks via Gradient-based Localization

3. Grad-cam++: Generalized gradient-based visual explanations for deep convolutional networks

本文来源于公众号《CV技术指南》的技术总结部分,更多相关技术总结请扫描文末二维码关注公众号。

相关文章
相关标签/搜索