Abstract

研究了全局平均池化(global average pooling, GAP),分析了它如何仅仅使用图像级标签训练就能使CNN具有出色的定位能力(localization ability)。作者发现,尽管GAP若为一种正则化手段被提出(来自Network in Network),但它其实建立了一种具有定位能力的表示 ,可以显示出CNN在一张图片中关注到的区域。作者仅使用GAP和图像级标签(即仅使用图像标签进行弱监督语义分割),在ILSVRC2014的目标检测任务上取得了37.1%的top-5错误率。

Introduction

先前的工作表明CNN具有类似目标检测的定位能力(文章题目:Object detectors emerge in deep scene cnns.),即可以定位到图片中的物体,但一旦后面接全连接层进行分类,这种能力就消失了。许多卷积网络如NiN和GoogLeNet没有使用全连接层。

Global average pooling最初是在NiN中作为一种正则化方法提出的(避免过拟合)。但在作者本文的实验中,发现GAP层不仅有这个作用,而且可以保存CNN的这种localization ability。如图所示,仅使用分类标签训练的CNN就可以定位到图像中最discriminative的区域(即对分类最重要的,最具判别力的区域)。

作者仅使用GAP和图像级标签(即仅使用图像标签进行弱监督语义分割),在ILSVRC2014的目标检测任务上取得了37.1%的top-5错误率,接近当时的全监督方法。

Method

Class Activation Mapping

提出Class Activation Map(CAM)。某一类的CAM指出了CNN识别此类时最重要(discriminative)的图像区域。

作者使用类似NiN和GoogleNet的网络结构,即包含若干卷积层,在最后的输出层(如分类用的softmax层)之前,在最后一个卷积层的feature map上使用global average pooling,并将输出通过一个全连接层获取分类预测。

可以通过将输出层的权重投影回卷积层feature map来获取不同图像区域(region)的重要性,这就是class activation mapping。

如图2所示,GAP将最后一个卷积层的feature map在空间上取平均。然后人通过对GAP后的向量元素进行加权求和(即一个全连接层)获取分类logit。与这个过程类似,可以通过计算最后一个卷积层的feature map的加权和来获取class activation maps

fk(x,y)f_k(x,y)fk​(x,y)表示最后一个卷积层中的第k个通道在位置(x,y)(x,y)(x,y)的激活值(即最后一层feature map中通道k、位置(x,y)(x,y)(x,y)处的值)。经过GAP后的输出为Fk=∑x,yfk(x,y)F_k=\sum_{x,y}f_k(x,y)Fk​=∑x,y​fk​(x,y)。所以对于一个给定的分类c,softmax层的输入(class score)Sc=∑kwkcFkS_c=\sum_kw_k^cF_kSc​=∑k​wkc​Fk​,其中wkcw_k^cwkc​是权重。可以认为wkcw_k^cwkc​表示了FkF_kFk​对分类c的重要性。最终再经过softmax得到类别c的分类概率:Pc=exp(Sc)∑cexp(Sc)P_c=\frac{exp(S_c)}{\sum_cexp(S_c)}Pc​=∑c​exp(Sc​)exp(Sc​)​。这里没有考虑偏置项,或者可以认为偏置项为0。

ScS_cSc​可以进行如下变换:

Sc=∑kwkcFk=∑kwkc∑x,yfk(x,y)=∑x,y∑kwkcfk(x,y)S_c=\sum_kw_k^cF_k=\sum_kw_k^c\sum_{x,y}f_k(x,y)=\sum_{x,y}\sum_kw_k^cf_k(x,y) Sc​=k∑​wkc​Fk​=k∑​wkc​x,y∑​fk​(x,y)=x,y∑​k∑​wkc​fk​(x,y)

即对每个位置先乘以权重w再求和,结果不变。于是可以定义类别c的class activation map McM_cMc​,这个map的每个位置的值如下:

Mc(x,y)=∑kwkcfk(x,y)M_c(x,y)=\sum_kw_k^cf_k(x,y) Mc​(x,y)=k∑​wkc​fk​(x,y)

因此有Sc=∑x,yMc(x,y)S_c=\sum_{x,y}M_c(x,y)Sc​=∑x,y​Mc​(x,y)。所以,Mc(x,y)M_c(x,y)Mc​(x,y)直接表明了位置(x,y)(x,y)(x,y)处的激活值对于图像属于类别c的重要性

我们知道,feature map中每个通道都会识别一种特定的visual pattern,即fkf_kfk​表示这种visual pattern的存在性。Class activation map就是对这些不同位置的visual pattern的存在性进行加权求和。通过将class activation map上采样到输入图片相同尺寸,我们就可以得出图片中每个区域对它被分为某个分类的重要程度(即对图片中对分类贡献最大的区域进行可视化)。图3显示了每张图片中对分类最重要的区域。

图4显示了同一张图片对不同分类的CAMs,可以发现对不同分类重点区域也不一样。

Global average pooling (GAP) vs global max pooling (GMP)

作者认为,使用GAP进行训练可以鼓励网络分辨出对于分类最重要的物体范围,而使用GMP(全局最大池化,即选择feature map中最大的一个值保留)则会让网络分辨出图像中仅一个最重要的位置。这是因为,GAP后的值来自于图像中所有discriminative parts,而GMP中只关注一个最大值,其余低一点的值都被忽略了。

由于二者的这个差别,GAP和GMP在分类任务上表现相似,但在检测任务上GAP比GMP表现要好许多。

Experiments

【论文阅读】Learning Deep Features for Discriminative Localization相关推荐

  1. 论文笔记 | Learning Deep Features for Discriminative Localization

    作者 Bolei Zhou, Aditya Khosla, Agata Lapedriza, Aude Oliva, Antonio Torralba Bolei Zhou Abstract 受到NI ...

  2. Learning Deep Features for Discriminative Localization -CAM方法帮助若监督学习研究实现物体定位论文阅读笔记

    作者:18届会长cyl 时期: 2020-9-11 论文<Learning Deep Features for Discriminative Localization> 期刊:2016CV ...

  3. 【CAM】Learning Deep Features for Discriminative Localization

    论文链接 github Abstract 1. Introduction CNN能保留位置信息,但经过用于分类的全连接神经网络时会丢失位置信息.最近的NIN和GoogLeNet使用全卷积网络.避免使用 ...

  4. 记录之Learning Deep Features for Discriminative Localization阅读

    这篇文章有两个重要概念: 1.弱监督物体定位(Weakly-supervised object localization) 2.可视化卷积神经网络 文章的作法是,将最后一个卷积层的输出做一个加权融合, ...

  5. 论文阅读-Learning Deep CNN Denoiser Prior for Image Restoration

    Zhang K, Zuo W, Gu S, et al. Learning Deep CNN Denoiser Prior for Image Restoration[J]. 2017. 1.引言 图 ...

  6. 论文阅读:Deep Learning in Mobile and Wireless Networking:A Survey

    论文阅读:Deep Learning in Mobile and Wireless Networking:A Survey 从背景介绍到未来挑战,一文综述移动和无线网络深度学习研究 近来移动通信和 5 ...

  7. 【论文阅读】Deep Compositional Captioning: Describing Novel Object Categories without Paired Training Data

    [论文阅读]Deep Compositional Captioning: Describing Novel Object Categories without Paired Training Data ...

  8. [论文阅读:姿态识别Transformer] TransPose: Keypoint Localization via Transformer 2021 ICCV

    [论文阅读:姿态识别&Transformer] TransPose: Keypoint Localization via Transformer 2021 ICCV 文章目录 [论文阅读:姿态 ...

  9. 【论文阅读】DEEP GRAPH INFOMAX(DGI)

    DEEP GRAPH INFOMAX(DGI) 摘要 1 Introduction 2 相关工作 2.1 对比方法 2.2 抽样战略 2.3 预测编码 3 DGI Methodology 3.1 基于 ...

最新文章

  1. android 之四大组件的Activity详解
  2. 【VC基础】 6、VC条件定价
  3. php 自动列,设置自动调整列phpExcel
  4. linux搭建交换机日志,用LINUX的SYSLOG做交换机、路由器的日志服务器
  5. freetds php mssql 中文乱码,PHP读取mssql json数据中文乱码的解决办法
  6. UESTC_酱神寻宝 2015 UESTC Training for Dynamic ProgrammingProblem O
  7. TurboMail邮件系统实用技巧十四:如何知道对方已经读信
  8. Libra教程之:Libra protocol的逻辑数据模型
  9. 策略模式与简单工厂模式区别(转)
  10. Spring Data JPA 从入门到精通~Auditing及其事件详解
  11. 根据数组中的某个键值大小进行排序,仅支持二维数组
  12. Maven STS创建WEB项目
  13. 疫情,降薪,跳槽工作难找,任务重加班多,程序员的出路在何方?
  14. 如何在 iPhone 和 Mac 上的 Apple Notes 中使用智能文件夹?
  15. 确定要离开当前页面吗
  16. 树莓派硬件编程——(一)用RPi.GPIO库输出信号
  17. 让Google搜索到GitHub上的个人博客
  18. 台式win7旗舰版如何调节屏幕亮度
  19. 无刷直流电动机矢量控制(一)——无刷直流电机(BLDC)与永磁同步电机(PMSM)的相同点和区别
  20. Swift 类和结构体总结

热门文章

  1. 联想笔记本ideapad 320C 15IKB笔记本电脑改装总结
  2. 行波进位(Ripple Carry)与超前进位(Loodahead Carry)
  3. 如何利用字符串格式化漏洞
  4. 读书笔记-代码的未来
  5. 顺丰和菜鸟互撕 专家:核心是大数据
  6. 极简的wrk安装和使用教程
  7. linux将文件 abc 更名为 bca.,Linux命令行操作文本文件
  8. 性能测试指标和报告解析
  9. pandas dataframe 分组聚合时,分组组名并入列的方法
  10. 测试 软通动力软件测试机试_软通动力软件测试面试经验