论文:https://arxiv.org/pdf/1901.09891.pdf
代码:https://github.com/GuYuc/WS-DAN.PyTorch
论文主要训练流程及思想为:(1)生成attention maps;(2)Bilinear Attention Pooling(BAP); (3)loss设计

(1)生成attention maps
①首先使用Inceptionv3等普通网络作为主干网络提取特征,得到特征图F,

②然后对F进行1*1卷积操作,得到attention map,其中,这里的M为一个经验值。

实验证明,attention map数越多,模型精度会越高,但是直到增加到32时,模型精度趋于稳定,所以,论文中,便将M设置成32.
32个attention map表示原图目标中32个不同的部位,那么就是一张原图,会生成32张attention maps。

(2)BAP

①将F与每个channel 的attention map逐元素相乘(element-wise multiplication),得到32个Part Feature Maps组合。

Ak表示第k个通道的attention map。
②对每个Part Feature Maps组合进行GAP,或者GMP,或者卷积操作,进行降维。

每组Part Feature Maps中的一张Part Feature Map,最终降维变成一个数,那么一组Part Feature Maps通过降维操作(论文里使用GAP)就变成一组一维tensor。也就是说,一张attention map与F融合后,最终成为一组一维tensor。然后将这32张attention map与F融合后的结果拼接(concatenate)在一起,便形成了最后线性分类层的输入特征Feature Matrix。
(3)loss 设计
得到Feature Matrix之后,再接个loss,就能完成网络构建了。论文中总共有2处loss,一处为普通分类的交叉熵损失函数,论文中定义为预测粗粒度概率(Predict coarse-grained probability)的函数;另一处为均方差损失函数,文中定义为attention归一化约束(attention Regularization),这个loss,对辅助部分,即通过attention maps增强得到的数据不使用,如下图所示:

fk为对每个Part Feature Maps组合进行GAP降维后的结果,表示原图第k部分的attention map与F融合的结果;初始值为0,是一个学习出来的tensor,其表示的意义为objects part`s feature center.学习更新过程为:

整个LA设计的初衷为:在细粒度分类中,objects之间的差别一般在于物体局部的某个part,所以,我们希望生成的各个attention map不要有太大差异,比如对于鸟类品种的细粒度分类,我们希望,生成的所有attention map大多数在鸟头部的part。所以设计的LA就是能够使得每个特征图能够固定到每个parts的中心。
辅助部分
辅助部分便是对attention maps进行数据增强。论文中存在两处,一处为attention cropping;另一种为attention Dropping。首先看这两辅助部分给模型结果带来的优势。

(1)attention cropping
对归一化之后的attention maps进行兴趣域选取,所截取的兴趣域文中叫Crop Mask。通过设置一个超参数,将归一化的attention map中,像素值大于这个超参数的值置1,小于这个超参数的值置0。这里设置为1的区域我们重点关注的FGVC细节区域。得到这块区域之后,对这块区域进行上采样到原图大小,也就是扩大细节方式,作为增强的数据集,参与模型训练。
(2)attention dropping
这种方式与attention cropping正好相反,attention dropping的过程为将Crop Mask的区域从原图中eliminated去,将剩下的其他parts作为训练集参与模型训练。

细粒度分析--WS-DAN相关推荐

  1. 细粒度分析综述(Fine-grain image analysis)

    细粒度分析(Fine-grain image analysis) 简介: 细粒度性质会引起的小的类间变化和大的类内变化,我们将现有的 FGIA 技术研究分为三大类:细粒度图像识别.细粒度图像检索和细粒 ...

  2. 细粒度分析与Bilinear CNN model(附代码实现)

    前言 有时,我们逛街时看到不同的狗,却不知道其具体品种,看到路边开满鲜花,却傻傻分不清具体是什么花.实际上,类似的问题在实际生活中屡见不鲜,人类尚且如此,更别说人工智能了.为了解决这一问题,研究者们提 ...

  3. 超细粒度分析XLNet中神奇的Attention Mask

    ©PaperWeekly 原创 · 作者|海晨威 学校|同济大学硕士生 研究方向|自然语言处理 BERT 后时代,XLNet 在 20 个任务上超越 BERT,引起不小的关注.最重要的改进是 XLNe ...

  4. Hibernate Session中的save(),update(),delete(),saveOrUpdate() 细粒度分析

    Hibernate在对资料库进行操作之前,必须先取得Session实例,相当于JDBC在对资料库操作之前,必须先取得Connection实例, Session是Hibernate操作的基础,它不是设计 ...

  5. 超细粒度分析 XLNet 中神奇的 Attention Mask

    BERT后时代,XLNet 在20个任务上超越BERT,引起不小的关注.最重要的改进是 XLNet 实现了不在输入中加[Mask] 标志,同样可以利用上下文信息,解决了BERT预训练和微调不一致的问题 ...

  6. 细粒度视觉分析综述TPAMI2021

    细粒度图像分析(FGIA,Fine-grained image analysis)是计算机视觉中一个长期存在的基本问题,并支撑着一系列不同的现实应用.FGIA的任务目标是分析从属类别(subordin ...

  7. 周四话分析:数据驱动,如何塑造下一个“教育领头羊”?

    "教育的目的在于能让青年人毕生进行自我教育." --哈钦斯 随着经济社会的发展,教育开始渗透在全年龄段的各个方面,覆盖面的扩充,必定带来碰撞和革新,相较于传统的教学方式,如今的教育 ...

  8. 弱监督学习下商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介

    弱监督学习下商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介 细粒度视觉分类(FGCV,Fine-Grained Visual Categorization)即识别细分类别的任务,一般它需要同 ...

  9. 【基于深度学习的细粒度分类笔记2】弱监督学习下商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介

    细粒度视觉分类(FGCV,Fine-Grained Visual Categorization)即识别细分类别的任务,一般它需要同时使用全局图像信息与局部特征信息精确识别图像子类别.细粒度分类是计算机 ...

最新文章

  1. 用python解“超速判断”题
  2. 结账任务 - 年终结账
  3. 深度之眼 | 《如何高效度论文》笔记
  4. 【NOI2013】树的计数【树的遍历】【期望】
  5. android 字符串特殊字符转义
  6. HDU - 1495 - 非常可乐
  7. 治愈系休闲旅游创意海报PSD模板|做设计没思路,快来Get这个小技巧
  8. python代码示例-总算知道python入门代码示例
  9. tcp三次握手后被马上rst_TCP为什么需要三次握手?
  10. vsftp限制ip地址访问
  11. 老大:用脚本实现Nginx日志每天切分的功能?我:脱了裤子放屁!
  12. Cost function of Logistic Regression and Neural Network
  13. 金蝶KIS 14.1 专业版安装教程
  14. MVPArms MVP+Dagger+Rxjava+Retrofit快速集成框架
  15. SPSS问卷数据处理步骤
  16. 计算流体动力学软件和服务市场现状研究分析-
  17. 设置计算机每天定时自动开关机,如何设置电脑定时自动关机?
  18. 人工神经网络课后题答案,人工神经网络原理答案
  19. 加载、编辑和保存Wod格式所见所得的Word文档处理控件TX Text Control ActiveX
  20. 1758:二叉树——结点关系

热门文章

  1. Java学习---第二周周报
  2. CBAP备考|BABOK 01 业务分析核心概念
  3. 【22考研】国家线/34所自划线 集合!【计算机和软件专业】
  4. 构建一个简单的go-web镜像
  5. NTP时间同步服务器_万金油_新浪博客
  6. SDL-软件安全设计初探
  7. python图片切割导入excel_python处理excel中的图片-裁剪
  8. 中国氮化铝陶瓷基片行业研究与投资预测报告(2022版)
  9. 【拒绝造车轮】韦伯分布-Python
  10. 2021-09-28 竞斗云 2.0 刷机 PandoraBox 固件不能开启 802.11r问题处理