[2021-CVPR] Fine-grained Angular Contrastive Learning with Coarse Labels 论文简析

论文地址:https://arxiv.org/abs/2012.03515

代码地址:https://github.com/guybuk/ANCOR

首先通俗地介绍一下细粒度(fine-grained),细粒度分类是指在原来粗分类的基础上再对子类进行更细致的分类。举个例子,图中有一只狗,粗(coarse)分类的分类结果即是一只狗,而细粒度的分类结果则会细致到这只狗是什么品种,是比格,柯利还是哈巴狗。

本文提出了一个新任务C2FS(Coarse-to-Fine Few-Shot),即由粗粒度转向细粒度的小样本的分类任务,在训练阶段使用粗类样本进行训练,在测试阶段经过细粒度子类小样本数据集的微调之后测试细粒度子类的分类准确度。

并提出了一个针对该任务的网络架构,使用有监督学习对样本进行粗分类,使用自监督对比学习(文中用的是MoCo V2)进行细粒度分类,并针对两种分类训练时损失函数会冲突的问题提出了Angular Normalization模块,将自监督的infoNCE损失转移到角度空间,从而提升两个分类任务之间损失函数的协同性。

整体网络结构如下:

其中针对粗分类的任务,根据粗类标签进行有监督学习,来将粗类之间分开,损失函数就是我们熟悉的交叉熵。而针对粗类的子类进行细粒度分类时,作者使用了最近大火的自监督对比学习,具体使用的是何恺明团队的MoCo V2,使得属于同一个粗类内的每个不同的实例分开有一定距离,损失函数是最近对比学习最常用的infoNCE,但针对两损失的冲突问题,对infoNCE的输入进行了一些改动。

具体流程是:一张图片(实际上训练是在batch内进行的,这点对于对比学习来说很关键,上图简明起见用一张图片表示)输入进来以后,经过两种不同的数据扩增方法(Aug. 1,2)得到同一张原图的两张图片 xqx_qxqxkx_kxk,然后其中 xqx_qxq 经过backbone B\mathcal{B}B (就是MoCo中的encoder_q)和MLP E\mathcal{E}E 得到 xqx_qxq 的特征表示 qqq ,这个 qqq 会经过一个分类器(全连接+Softmax)得到粗类的预测概率,而粗类分类的训练是有标签的,可以直接做交叉熵损失,这一部分是有监督的粗类分类训练。

再说两种数据扩增得到另一张图片 xkx_kxk ,它会经过动量更新的(详见MoCo)Bk\mathcal{B}_kBkEk\mathcal{E}_kEk ,得到特征表示 k+k_+k+k+k_+k+ 会在对比学习中与 qqq 组成正对(positive pair),而从MoCo维护的队列中拿到的与输入图片属于同一粗类(比如图中的狗类)的不同图片样本 k−k_-k 会和 qqq 组成负对(negative pair),从而根据 qqqk+k_+k+k−k_-k 计算infoNCE损失进行对比学习,来使得同一粗类内的不同样本也有一定的距离,方便后面测试时进行小样本的细粒度分类学习。

至此看起来一切顺其自然,十分合理。但是作者敏锐地发现了一个重要问题:如下图上半部分所示,粗类分类的有监督CE损失会使得同一粗类的每个样本都尽量靠到一起,而对比学习infoNCE损失又会使得粗类中的每个样本有一定的距离,也就是说这两个损失会有冲突存在。

针对这个问题,作者提出了Angular Normalization(AN)模块,来增强两个损失之间的协同性(synergy)。

首先说明一些符号:输入图片 III ,它的特征表示 qqq ,它所属的粗类 yyy ,分类器 CCC 的参数 WWW 的第 yyyWyW_yWy ,分类器 CCCyyy 类的logit WyqW_yqWyq

这样,要想使CE损失 LCE=(C(q),y)\mathcal{L}_{CE}=(C(q),y)LCE=(C(q),y) 最小,要 WyqW_yqWyq 最大且 Wi≠yqW_{i\neq y}qWi=yq 最小,也就是 qqq (单位向量,embedder E\mathcal{E}E 的最后再经过L2 norm)转到 WyW_yWy 的方向,这对所有的 yyy 类的图片都是相同的,会使他们倒向(collapse to)最接近 WyW_yWy 的单位向量Wy∣∣Wy∣∣\frac{W_y}{||W_y||}WyWy 。但是这种倒向(collapse)与 y 类特定的 InfoNCE 对比损失 Lcont(q,k−,k+)\mathcal{L}_cont(q,k_-,k_+)Lcont(q,k,k+) 存在冲突,后者试图将 yyy 类的样本彼此之间推开。

作者提出的解决方法即是AN,定义 yyy 类的angular normalzation:
A(x,W,y)=∠x=x∣∣x∣∣−Wy∣∣Wy∣∣∣∣x∣∣x∣∣−Wy∣∣Wy∣∣∣∣\mathcal{A}(x,W,y)=\angle x = \frac{\frac{x}{||x||}-\frac{W_y}{||W_y||}}{||\frac{x}{||x||}-\frac{W_y}{||W_y||}||} A(x,W,y)=x=xxWyWyxxWyWy
这就将单位向量 x∣∣x∣∣\frac{x}{||x||}xx 转换为了表示其与 Wy∣∣Wy∣∣\frac{W_y}{||W_y||}WyWy 的角度的单位向量。

根据以上定义,我们将 Lcont\mathcal{L}_{cont}Lcont 中的 q,k−,k+q,k_-,k_+q,k,k+ 分别替换为它们的 yyy 类angular normalization的形式:
∠q=A(q,W,y)\angle{q}=\mathcal{A}(q,W,y) q=A(q,W,y)
∠k−=A(k−,W,y)\angle{k_-}=\mathcal{A}(k_-,W,y) k=A(k,W,y)
∠k+=A(k+,W,y)\angle{k_+}=\mathcal{A}(k_+,W,y) k+=A(k+,W,y)

从而我们损失函数的最终形式就是:
L=LCE(C(y),y)+Lcont(∠q,∠k+,∠k−)\mathcal{L}=\mathcal{L}_{CE}(C(y),y)+\mathcal{L}_{cont}(\angle{q},\angle{k_+},\angle{k_-}) L=LCE(C(y),y)+Lcont(q,k+,k)
如上图下方所示,改进后的AN形式的 Lcont\mathcal{L}_{cont}Lcont 运作在角度空间中围绕着 Wy∣∣Wy∣∣\frac{W_y}{||W_y||}WyWy 的“轨道"(orbit)上。这样就不会干扰到 LCE\mathcal{L}_{CE}LCE 损失使倒向(collapse)Wy∣∣Wy∣∣\frac{W_y}{||W_y||}WyWy,即不会与CE损失产生冲突,从而提升了两损失的协同性。

AN一个额外的好处是它忽视了(在normalize之后)到权重向量的距离,这样可以保护 Lcont\mathcal{L}_{cont}Lcont 不会收到不同子类间“松紧”程度的影响。

实验部分有兴趣可以去查看原文。

作为2021 CVPR的 oral,本文的质量还是很足的,一个颇有意思的新任务C2FS,并结合了一些最新的方法提出了一个比较合理的解决方案,还针对这个框架存在的一个关键问题有一个不错的解决方案。

有理解不对的地方欢迎指正。

[2021-CVPR] Fine-grained Angular Contrastive Learning with Coarse Labels 论文简析相关推荐

  1. [2021-CVPR] Jigsaw Clustering for Unsupervised Visual Representation Learning 论文简析及关键代码简析

    [2021-CVPR] Jigsaw Clustering for Unsupervised Visual Representation Learning 论文简析及关键代码简析 论文:https:/ ...

  2. [2020-AAAI] Revisiting Image Aesthetic Assessment via Self-Supervised Feature Learning 论文简析

    [2020-AAAI] Revisiting Image Aesthetic Assessment via Self-Supervised Feature Learning 论文简析 论文链接:htt ...

  3. 【CVPR 2021】Joint Generative and Contrastive Learning for Unsupervised Person Re-identification

    方法概述 1,提出了一种用于无监督行人重识别的联合生成对比学习框架,生成和对比模块互相提高对方的性能. 2, 在生成模块中,我们引入了3D网格生成器. 3, 在对比模块,我们提出了一种视角无关的损失, ...

  4. A Simple Framework for Contrastive Learning of Visual Representations[论文学习] SimCLR

    We simplify recently proposed contrastive self-supervised learning algorithms without requiring spec ...

  5. SIGMOD 2021 论文简析:当公交网络连接满足通勤需求时的公共交通规划 Public Transport Planning

    SIGMOD-2021 论文简析:当公交网络连接满足通勤需求时的公共交通规划 - Public Transport Planning: When Transit Network Connectivit ...

  6. 对比学习(Contrastive Learning)综述

    A.引入   https://zhuanlan.zhihu.com/p/346686467 A.引入 深度学习的成功往往依赖于海量数据的支持,其中对于数据的标记与否,可以分为监督学习和无监督学习. 1 ...

  7. 对比学习(Contrastive Learning)相关进展梳理

    ©PaperWeekly 原创 · 作者|李磊 学校|西安电子科技大学本科生 研究方向|自然语言处理 最近深度学习两巨头 Bengio 和  LeCun 在 ICLR 2020 上点名 Self-Su ...

  8. M5Product: Self-harmonized Contrastive Learning for E-commercial Multi-modal Pretraining 论文解读

    2022年CVPR<M5Product: Self-harmonized Contrastive Learning for E-commercial Multi-modal Pretrainin ...

  9. 论文笔记 NAACL findings 2022|Zero-Shot Event Detection Based on Ordered Contrastive Learning and Prompt-

    文章目录 1 简介 1.1 动机 1.2 创新 2 方法 2.1 Contrastive sample generator 2.2 Event encoder 2.3 Ordered contrast ...

最新文章

  1. 设计模式:结构型模式总结
  2. tyvj1102 单词的划分
  3. Note change in webclient ui - delete case research
  4. Android之使用getIdentifier()获取资源Id
  5. Java更快地对基元数组进行排序?
  6. 爱尔兰圣三一学院计算机全球排名,QS世界大学学科排名,爱尔兰圣三一学院20个学科进世界百强...
  7. 微信小程序定义全局变量_微信小程序第二天学习内容分享
  8. 【elasticsearch】如何部分更新文档 (partial update的使用)
  9. 如何删除windows服务zz 重新安装PostgreSQL时删除上次遗留service的方法
  10. layui upload 点击上传没有反应 JS动态加载
  11. day31 模块 与包
  12. MySQL for Excel的安装教程
  13. 单片机常用C代码汇总
  14. AcrelCloud-6800智慧消防管理云平台在某中学的应用
  15. 孤儿文档是怎样产生的(MongoDB orphaned document)
  16. 任天堂3D掌上游戏机3DS正式发布
  17. 读行学区块链专栏 | 全球区块链资讯Top10
  18. SyntaxHighlighter 设置
  19. 恶意软件的检测和攻击 文献整理
  20. 使用vbs脚本操作登陆对话框-登陆QQ为例

热门文章

  1. 秒杀场景_重复抢单问题分析与实现_03
  2. PLSQL 查询结果只显示年月日不显示时分秒的解决方法
  3. Centos7 安装docker-compose
  4. 项目管理过程组和知识领域 简介重点记忆
  5. SpringMVC 集成 mybatisPlus
  6. 开发经验分享_05_葫芦画瓢
  7. flowable实战(四)flowable任务实例管理接口
  8. ajax异步提交案例(用户校验)
  9. spring cloud gateway 网关_微服务网关Spring Cloud Gateway全搞定
  10. 关闭word_Word文档如何快速查找?超实用的5个Word技巧教给你