gezp

  • 4

    获得赞
  • 2

    发布的文章
  • 0

    答辩的项目

CAM技术在CNN可解释性上的应用简析

CNN

最后更新 2020-04-17 16:55 阅读 5237

最后更新 2020-04-17 16:55

阅读 5237

CNN

一、CAM概述 

CAM(class activation mapping) 来自CVPR2016 《Learning Deep Features for Discriminative Localization》,作者在研究global average pooling(GAP)时,发现GAP不止作为一种正则,减轻过拟合,在稍加改进后,可以使得CNN具有定位的能力(当然RCNN系列已经说明CNN中蕴含着目标的位置信息,但是在进行分类任务时,引入全连接层,将目标的空间位置信息丢弃了)。CAM(class activation mapping)是指输入中的什么区域能够指示CNN进行正确的识别,作者提出了一种简单的方法,整个流程图如下: 

image.png

通常特征图上每个位置的值在存在其感知野里面某种模式时被激活,最后的class activation map是这些模式的线性组合。为了简便,可以直接使用上采样,将class activation map 还原到与原图一样的大小,通过叠加,我们就可以知道哪些区域是与最后分类结果息息相关的部分。


二、基于CAM的实验 

2.1 数据集与实验方案                                          

在之前,做过一个小鱼分类的课题,所以直接使用之前的课题进行此次CAM的研究。

image.png

即设计一个分类器,将对玩具鱼进行分类,这是一个二分类问题,只需要采用主流的CNN网络即可。这里,我们采用PyTorch作为我们的深度学习平台,采用深度神经网络作为分类器,并采用迁移学习的方法,使用在ImageNet上进行预训练的模型参数,加速收敛过程。 

2.2 深度网络训练

这里分别采用ResNet18,ResNet50,DenseNet121,DenseNet161作为我们的分类网络,进行了网络训练,训练过程如下:

image.png

在训练中,采用交叉熵损失函数,SGD优化器,设置学习率=0.001,训练batch size为32。

2.3 CAM可视化结果    

对于上面四种深度神经网络分类模型中,效果都表现的很好,但是,计算机为什么能够准确的进行分类,依然无法对其网络内部进行解释。采用CAM技术,对5张测试图继续测试,生成了一个类激活热力图,如下图所示:  

image.png

例如,第一列图,小鱼目标区域被激活,其热力图呈现红色,说明分类器判断这张图片为小鱼的根据,是因为看到红色区域,正是小鱼的主体部分,符合人类视觉常识。第三列图的热力图为蓝色,说明没有看到小鱼的特征,于是判断为不是小鱼。通过热力图,可以很直观的看到计算机是如何去分类图片的,帮助我们了解深度神经网络的工作原理。 

2.4 CAM的弱监督检测 

在CAM实验中,可以看到计算机是因为看到了目标区域,所以会判断一张图片到底属不属于目标图片,CAM技术保留了图片的空间位置,可以用于定位。如果将目标区域使用边界框进行框选出来,就实现了目标检测,我们采用一张更大图进行检测,如下图所示:   

image.png

在上图中,图中的小鱼被很好的检测出来,只需要对红色区域画出一个边界框,即实现了目标检测,用分类模型解决目标检测问题,这属于弱监督学习。 对于多个目标,采用CAM技术也能检测出来,如下图所示,两个目标均被成功检测出来。

image.png

当然,CAM技术也不是万能的,它也有它的局限性,如下图所示,图中有三个目标,它只很好的检测出一个目标,有一个目标只是被轻微的激活,还有一个目标根本没有被激活。这就是使用CAM做检测具有局限性,效果并不是那么理想,检测精度远远低于有监督的目标检测模型。

image.png


三、CAM的应用与展望 

本文的实验是一个简单的二分类问题,识别图片是不是玩具小鱼,通过CAM技术,我们可以看到网络关注哪里。CAM可视化这可以帮助我们理解网络。 

CAM也可以应用到很多方面。比如,它可以发现场景中有用的物体;在弱标记图像中定位比较抽象的概念;弱监督文字检测,它可以关注文字部分即使网络没有训练过文字或者任何注释框;关于视觉问答,我们可以看到网络关注答案区域;

利用CAM的可视化技术,我认为CAM也能帮助我们对比模型,选择一个更合适的结构;在日常做实验的时候也可以利用CAM帮助我们发现问题,改进结构。 同时,CAM使得弱监督学习发展成为可能,可以慢慢减少对人工标注的依赖,能降低网络训练的成本。通过可视化,就像往黑箱子里打了一个手电筒,让人们可以尝试去理解网络。

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。
本文链接地址:https://flyai.com/article/393
讨论
500字
表情
发送
删除确认
是否删除该条评论?
取消 删除