论文提出了类似于dropout作用的diversification block,通过抑制特征图的高响应区域来反向提高模型的特征提取能力,在损失函数方面,提出专注于top-k类别的gradient-boosting loss来优化训练过程,模型在ResNet-50上提升3.2%,算法思路巧妙,结构易移植且效果也不错,值得学习

论文:Fine-grained Recognition: Accounting for Subtle Differences between Similar Classes

Introduction


  在FGVC(fine-grained visual categorization)上,一般的深度学习模型都是通过学习输入图片到输出标签的映射,这样会导致模型倾向于专注少部分显著区域来同时区分模糊的种群内(inter-class)相似性和种群间(intra-class)的变化

  如图1所示,一般的深度学习模型的attention经常密集地集中在小部分区域,因此只会提出有限的特征。因此,论文建议分散attention来构建多样的分布在特征图上的特征。因为在特征层面进行attention分散,在预测时则需要反过来,例如只关注最相似的类别来提高模型的辨别能力。通过关注相似的类别以及分散模型的attention,论文实际是在让模型避免对训练集的overfiting,增加泛化能力。论文的主要贡献如下:

  • 提出gradient-boosting loss,通过适当地调整梯度更新的幅度来解决高度相关类别的模糊部分
  • 提出diversification block,掩盖显著的特征,从而迫使网络去寻找外观相似的类别的不易察觉的不同点
  • 论文提出的方法能够加速模型的收敛以及提高识别的效果

Method


  论文提出的方法能简单地接到所有分类网络中,结构如图2所示。使用论文的方法,需要将主干网络的所有global pooling layer和最后的fully conntected layer替换成1x1 convolution,ouput channel等于类别数,模型主要包含两个部分:

  • diversification module,用于迫使网络去获取更多不易察觉的特征,而非专注于明显特征
  • gradient boosting loss,使模型在训练时专注于容易混淆的类别

Diversification Block

  考虑如图2中$C$个类别的多标签分类任务,$I$为训练图片,$l\in J, J={1,2,...,C}$是对应的GT,diversification block的输入是类别特定(category-specific)的特征图$M\in R^{C\times H\times W}$ ,由修改后的主干网络输出。标记$M={M_c : c\in [1,C]}$,其中$M_c\in \mathbb{R}^{H\times W}$是对应类别$c^{th}$的独立特征图。diversification block的核心思想是抑制$M$中的明显区域,从而迫使网络去提取其它区域的特征,主要面临两个问题:1) 抑制哪些特征? 2) 怎么抑制?

  • Mask Generation

  下面解释如何产生用于指明抑制区域的mask,定义$B={B_c : c\in [1, C]}$,$B_c\in \mathbb{R}^{H\times W}$是二值抑制mask对应特征图$M_c$,1表示抑制,0表示不抑制

  1. Peak suppression

  首先对特征图的峰值进行随机抑制,因为这是对分类器最显著的部分,$P_c\in \mathbb{R}^{H\times W}$是$M_c$的峰值mask,'*'是element-wise的相乘,而$r_c$是服从伯努利分布的随机值,即有$p_{peak}$的概率为1

  1. Patch suppression

  将每个$M_c$分成多个固定大小的patch,定义l行m列的patch为$M_c^{[l,m]}\in \mathbb{R}^{G\times G}$,$G_c$为patch的集合

  $B_c^{''}\in \mathbb{R}^{H\times W}$对应$M_c$的抑制mask,跟峰值的mask一样,使用伯努利分布对块进行赋值,随机值为1的块将整块进行抑制,$[0, 1]\in \mathbb{R}^{G\times G}$

  由于只考虑非峰值点,因此将峰值点的值设为0

  最后将两种mask相加得到最后的抑制mask

  • Activation Suppression Factor

  $M_c^{'}$为抑制后的特征图,$\alpha$为抑制因子,后面的实验设置为0.1

  在进行特征抑制后,对特征进行global average pooling来获取最后的置信度$s\in \mathbb{R}^{1\times C}$

Gradient-boosting Cross Entropy Loss

  diversification module用于发现更多不易察觉的细微特征,而gradient-boosting loss则是避免容易混淆的类别的误分

  • Loss Function

  论文认为,目前使用最广的交叉熵损失函数平均地考虑了所有的负类别,而在细粒度分类中,模型更应该关注相似的负类别,因此提出gradient-boosting cross entropy(GCE),只专注于top-k个负类别

  首先定义$J'$为所有的负类别,$J'={i : i\in [1,C]\land i\neq l }$,$s'={s_i, i\in J'}$为所有负类别的得分,$t_k$为负类别的top-k类别集合,将$J'$分别top-k集合和非top-k集合

  对交叉熵进行改造,只考虑top-k类别的计算,k一般设置为15

  • Gradient Boosting

  公式13和公式14分别是交叉熵和GCE的梯度回传公式

  根据公式10和公式11的定义,可以发现公式15的包含关系

  因此可以推出GCE的梯度是要比交叉熵的梯度要大的,使用GCE能够让模型专注于区分混淆类别

Training and Inference

  diversification block仅在训练阶段使用,在测试阶段不再使用,改为将完整的特征图输入到global average pooling中

Experiments


  实验在5个最常用的数据机上进行

Quantitative Results

  其中两个数据集的结果如表2、表3所示,可以看到,论文提出的方法在效果上的提升还是挺不错的,而且参数量比较小,在另外几个数据集上,论文提出的方法也是比其它方法要出色

Ablation Study

  • Diversification block (DB)

  使用diversification block能让ResNet-50的性能提升0.8%

  • Gradient-boosting loss

  如表4所示,使用gradient-boosting loss能让ResNet-50+DB从86.3%提升到87.7%,提升要比其它损失函数方法要好

  • Suppressing Factor

  从实验看出,抑制因子$\alpha$对实验结果影响挺大的,选择0.1的时候表现最好

  • Choices of k

  top-k的数量选择对结果影响也是比较大的,选择top-15的时候效果最好

  • Convergence Analysis

  从图5可以看出,论文提出的方法收敛速度更快,尽管可以看到原始方法在训练集上的准确率比论文提出的方法要好,但是在测试集的表现不好,这说明原始方法对训练集有点过拟合了

Qualitative Results

  从图4可以看出,论文提出的方法提取了更多的特征区域

ImageNet Results

  为了进一步验证论文提出的模型的效果,在ImageNet上进行了实验。由于论文的方法专注于难样本,因此在50轮后的训练才进行对比,可以看到论文的方法的效果在ImageNet上还是不错的

Conclusion


  论文提出了diversification block以及gradient-boosting loss,diversification block通过随机抑制响应高的区域引导模型学习更多的不易察觉的特征,有点类似dropout的思想,而gradient-boosting loss则让模型专注于top-k个类别的学习,加大对应类别的梯度回传,使得训练收敛更快且提升性能。总体而言,论文的思路清晰,而且效果还是有的,可以实验下,然后当作基本方法加入到平时网络的架构中,特别是后面的gradient-boosting loss

写作不易,未经允许不得转载~

更多内容请关注 微信公众号/知乎专栏【晓飞的算法工程笔记】

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升的更多相关文章

  1. CAP:多重注意力机制,有趣的细粒度分类方案 | AAAI 2021

    论文提出细粒度分类解决方案CAP,通过上下文感知的注意力机制来帮助模型发现细微的特征变化.除了像素级别的注意力机制,还有区域级别的注意力机制以及局部特征编码方法,与以往的视觉方案很不同,值得一看 来源 ...

  2. Infrared-Visible Cross-Modal Person Re-Identification with an X Modality (AAAI 2020)

    Infrared-Visible Cross-Modal Person Re-Identification with an X Modality (AAAI 2020) 1. Motivation 可见 ...

  3. 京东云与AI 10 篇论文被AAAI 2020 收录,京东科技实力亮相世界舞台

    美国时间2月7-12日,AAAI 2020大会在纽约正式拉开序幕,AAAI作为全球人工智能领域的顶级学术会议,每年评审并收录来自全球最顶尖的学术论文,这些学术研究引领着技术的趋势和未来.京东云与AI在 ...

  4. AAAI 2020论文分享:通过识别和翻译交互打造更优的语音翻译模型

    2月初,AAAI 2020在美国纽约拉开了帷幕.本届大会百度共有28篇论文被收录.本文将对其中的机器翻译领域入选论文<Synchronous Speech Recognition and Spe ...

  5. Region Normalization for Image Inpainting, AAAI 2020

    论文:Region Normalization for Image Inpainting, AAAI 2020 代码:https://github.com/geekyutao/RN 图像修复的目的是重 ...

  6. ACNet: 特别的想法,腾讯提出结合注意力卷积的二叉神经树进行细粒度分类 | CVPR 2020

    论文提出了结合注意力卷积的二叉神经树进行弱监督的细粒度分类,在树结构的边上结合了注意力卷积操作,在每个节点使用路由函数来定义从根节点到叶子节点的计算路径,结合所有叶子节点的预测值进行最终的预测,论文的 ...

  7. AAAI 2020 | DIoU和CIoU:IoU在目标检测中的正确打开方式

    论文提出了IoU-based的DIoU loss和CIoU loss,以及建议使用DIoU-NMS替换经典的NMS方法,充分地利用IoU的特性进行优化.并且方法能够简单地迁移到现有的算法中带来性能的提 ...

  8. Spiking-YOLO : 前沿性研究,脉冲神经网络在目标检测的首次尝试 | AAAI 2020

    论文提出Spiking-YOLO,是脉冲神经网络在目标检测领域的首次成功尝试,实现了与卷积神经网络相当的性能,而能源消耗极低.论文内容新颖,比较前沿,推荐给大家阅读   来源:晓飞的算法工程笔记 公众 ...

  9. 史上最详细的VM虚拟机安装Kali-linux教程(以2020.1版本为例,含下载地址+默认提升为root权限)

    一.官方下载 Kali Linux 官方网址:www.Kali.org下载方式分两种:http 下载和 bt 下载(由于是国外网站 http 方式下载会非常慢),选择对应版本点击即可下载. 二.创建新 ...

随机推荐

  1. Python实现线程交替打印字符串

    import threading con = threading.Condition() word = u"12345上山打老虎" def work(): global word ...

  2. SpringMVC之添加照片并修改照片名字

    @RequestMapping(value="/addIdcardsSubmit",method={RequestMethod.POST,RequestMethod.GET}) p ...

  3. 理解 LinkedList

    java -version :jdk 1.8.0_191 构造 类内参数,方法 实现 基于双向链表实现. 插入时间复杂度 O(1) 查找时间复杂度 O(n) 删除时间复杂度 O(1) 修改时间复杂度 ...

  4. JavaScript中如何给按钮设置隐藏与显示属性

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.html * 作者:常轩 * 微信公众号:Worldh ...

  5. java集合-set

    #java集合-set Map用于存储key-value的映射,其中key的值是不能重复的.并且还需要正确的覆写equals方法和hashCode方法 如果我们只需要存储不重复的key,并不需要存储对 ...

  6. CentOS7 安装python 3.5 及 pip安装

    1.CentOS7 安装Python 的依赖包 # yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-d ...

  7. AI:拿来主义——预训练网络(二)

    上一篇文章我们聊的是使用预训练网络中的一种方法,特征提取,今天我们讨论另外一种方法,微调模型,这也是迁移学习的一种方法. 微调模型 为什么需要微调模型?我们猜测和之前的实验,我们有这样的共识,数据量越 ...

  8. 关于Js的那些面试题

    1.javascript的typeof返回哪些数据类型 number string boolean Object function underfind 2.例举3种强制类型转换和2种隐式类型转换?强制 ...

  9. JZOJ 1775. 合并果子2 (Standard IO)

    1775. 合并果子2 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 在一个果园里,多多已经将所有的果子 ...

  10. 使用NPOI将Excel表导入到数据库中

    public string ExcelFile() { //指定文件路径, string fileName=@"d:\Stu.xls"; //创建一个文件流,并指定其中属性 usi ...