论文提出了类似于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. 吴裕雄--天生自然 PHP开发学习:在centos7操作系统下使用命令安装ThinkPHP 5框架

    前提条件是系统已经安装好了php,一般来说安装好的php根目录是:/var/www/html 系统安装composer(我使用的系统是centos7) .使用命令下载 curl -sS https:/ ...

  2. DEBUG -- CLOSE BY CLIENT STACK TRACE问题的两种解决方案,整理自网络

    1.DEBUG -- CLOSE BY CLIENT STACK TRACE 最近用c3p0遇到各种奇怪的问题,也不知道是它不行还是我不行. 今天又遇到了一个"DEBUG -- CLOSE ...

  3. scrapy爬虫框架教程(二)-- 爬取豆瓣电影

    前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大家讲解一个完整爬虫的流程. 工具和环境 语言:python 2 ...

  4. C++走向远洋——54(项目一2、分数类的重载、取倒数)

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

  5. 02ARM体系结构

    1.哈佛结构和冯式结构 8086: 冯氏结构 相同存储RAM相同的通道 统一编址 区别:运行态与存储态 STM32F103:哈弗结构 不同的存储不同的通道  统一编址 8051: 改进型的哈弗结构 不 ...

  6. Manjaro 19.01 kde下Tim sogou软件安装问题及解决

    我的系统配置 首先第一个问题是,在manjaro下Tim Thunderspeed这种deepin-wine的软件.今天我在装这些软件的时候,安装之后不能打开,闪退.苦恼了我好一会儿.终于找到了解决的 ...

  7. android通过NFC开启/关闭NTAG213的密码保护功能

    穷遍全网没有资料,最后找到了官方的寄存器文档和StackOverflow上找到了解决方案 首先要用 MifareUltralight 来进行操作,在onNewIntent处先校验返回的tag是否包含了 ...

  8. JavaScript,ajax与springboot之间的传参方式

    Springboot:@PostMapping("/mDelTest")public String mDelTest (@RequestBody List<String> ...

  9. 前端每日实战:111# 视频演示如何用纯 CSS 创作一只艺术的鸭子

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/aaoveW 可交互视频 此视频是可 ...

  10. 鼠年开元用逐浪CMS v8.13版-NoSQL安装更轻便

    作为国内领先的Zoomla!逐浪CMS,一直以来深受人道的除了其功能强大.性能稳定外,易用性也是其突出的现. 自Zoomla!逐浪CMS 8.x开始,官方在其程序包中,集成了一键安装进程,从而大大提升 ...