现实世界的数据通常表现为长尾分布,常跨越多个类别。这种复杂性突显了内容理解的挑战,特别是在需要长尾多标签图像分类(LTMLC)的场景中。在这些情况下,不平衡的数据分布和多物体识别构成了重大障碍。为了解决这个问题,论文提出了一种新颖且有效的LTMLC方法,称为类别提示精炼特征学习(CPRFL)。该方法从预训练的CLIP嵌入初始化类别提示,通过与视觉特征的交互解耦类别特定的视觉表示,从而促进了头部类和尾部类之间的语义关联建立。为了减轻视觉-语义领域的偏差,论文设计了一种渐进式双路径反向传播机制,通过逐步将上下文相关的视觉信息纳入提示来精炼提示。同时,精炼过程在精炼提示的指导下促进了类别特定视觉表示的渐进纯化。此外,考虑到负样本与正样本的不平衡,采用了非对称损失作为优化目标,以抑制所有类别中的负样本,并可能提升头部到尾部的识别性能。

来源:晓飞的算法工程笔记 公众号,转载请注明出处

论文: Category-Prompt Refined Feature Learning for Long-Tailed Multi-Label Image Classification

Introduction


  随着深度网络的快速发展,近年来计算机视觉领域取得了显著的进展,尤其是在图像分类任务中。这一进展在很大程度上依赖于许多主流的平衡基准(例如CIFARImageNet ILSVRCMS COCO),这些基准具有两个关键特征:1)它们提供了在所有类别之间相对平衡且数量充足的样本,2)每个样本仅属于一个类别。然而,在实际应用中,不同类别的分布往往呈现长尾分布模式,深度网络往往在尾部类别上表现不佳。同时,与经典的单标签分类不同,实际场景中图像通常与多个标签相关联,这增加了任务的复杂性和挑战。为了应对这些问题,越来越多的研究集中在长尾多标签图像分类(LTMLC)问题上。

  由于尾部类别的样本相对稀少,解决长尾多标签图像分类(LTMLC)问题的主流方法主要集中在通过采用各种策略来解决头部与尾部的不平衡问题,例如对每个类别的样本数量进行重采样、为不同类别重新加权损失、以及解耦表示学习和分类头的学习。尽管这些方法做出了重要贡献,但它们通常忽略了两个关键方面。首先,在长尾学习中,考虑头部和尾部类别之间的语义相关性至关重要。利用这种相关性可以在头部类别的支持下显著提高尾部类别的性能。其次,实际世界中的图像通常包含多种对象、场景或属性,这增加了分类任务的复杂性。上述方法通常从全局角度考虑提取图像的视觉表示。然而,这种全局视觉表示包含了来自多个对象的混合特征,这阻碍了对每个类别的有效特征分类。因此,如何在长尾数据分布中探索类别之间的语义相关性,并提取局部类别特定特征,仍然是一个重要的研究领域。

  最近,视觉-语言预训练(VLP)模型已成功适应于各种下游视觉任务。例如,CLIP在数十亿对图像-文本样本上进行预训练,其文本编码器包含了来自自然语言处理(NLP)语料库的丰富语言知识。文本编码器在编码文本模态中的语义上下文表示方面展示了巨大的潜力。因此,可以利用CLIP的文本嵌入表示来编码头部和尾部类别之间的语义相关性。此外,在许多研究中,CLIP的文本嵌入已成功作为语义提示,用于将局部类别特定的视觉表示与全局混合特征解耦。

  为了应对长尾多标签分类(LTMLC)固有的挑战,论文提出了一种新颖且有效的方法,称为类别提示精炼特征学习(Category-Prompt Refined Feature LearningCPRFL)。CPRFL利用CLIP的文本编码器的强大的语义表示能力提取类别语义,从而建立头部和尾部类别之间的语义相关性。随后,提取的类别语义用于初始化所有类别的提示,这些提示与视觉特征交互,以辨别与每个类别相关的上下文视觉信息。

  这种视觉-语义交互可以有效地将类别特定的视觉表示从输入样本中解耦,但这些初始提示缺乏视觉上下文信息,导致在信息交互过程中语义和视觉领域之间存在显著的数据偏差。本质上,初始提示可能不够精准,从而影响类别特定视觉表示的质量。为了解决这个问题,论文引入了一种渐进式双路径反向传播(progressive Dual-Path Back-Propagation)机制来迭代精炼提示。该机制逐步将与上下文相关的视觉信息积累到提示中。同时,在精炼提示的指导下,类别特定的视觉表示得到净化,从而提高其相关性和准确性。

  最后,为了进一步解决多类别中固有的负样本与正样本不平衡问题,论文引入了在这种情况下常用的重新加权(Re-Weighting,RW)策略。具体来说,采用了非对称损失(Asymmetric LossASL)作为优化目标,有效抑制了所有类别中的负样本,并可能改善LTMLC任务中头部与尾部类别的性能。

  论文贡献总结如下:

  1. 提出了一种新颖的提示学习方法,称为类别提示精炼特征学习(CPRFL),用于长尾多标签图像分类(LTMLC)。CPRFL利用CLIP的文本编码器提取类别语义,充分发挥其强大的语义表示能力,促进头部和尾部类别之间的语义关联的建立。提取的类别语义作为类别提示,用于实现类别特定视觉表示的解耦。这是首次利用类别语义关联来缓解LTMLC中的头尾不平衡问题,提供了一种针对数据特征量身定制的开创性解决方案。

  2. 设计了一种渐进式双路径反向传播机制,旨在通过在视觉-语义交互过程中逐步将与上下文相关的视觉信息融入提示中,从而精炼类别提示。通过采用一系列双路径梯度反向传播,有效地抵消了初始提示带来的视觉-语义领域偏差。同时,精炼过程促进了类别特定视觉表示的逐步净化。

  3. 在两个LTMLC基准测试上进行了实验,包括公开可用的数据集COCO-LTVOC-LT。大量实验不仅验证了方法的有效性,还突显了其相较于最近先进方法的显著优越性。

Methods


Overview

CPRFL方法包括两个子网络,即提示初始化(PI)网络和视觉-语义交互(VSI)网络。首先,利用预训练的CLIP的文本嵌入来初始化PI网络中的类别提示,利用类别语义编码不同类别之间的语义关联。随后,这些初始化的提示通过VSI网络中的Transformer编码器与提取的视觉特征进行交互。这个交互过程有助于解耦类别特定的视觉表示,使框架能够辨别与每个类别相关的上下文相关的视觉信息。最后,在类别层面计算类别特定特征与其对应提示之间的相似性,以获得每个类别的预测概率。为了减轻视觉-语义领域偏差,采用了一个逐步的双路径反向传播机制,由类别提示学习引导,以细化提示并在训练迭代中逐步净化类别特定的视觉表示。为进一步解决负样本与正样本的不平衡问题,采用了重加权策略(即非对称损失(ASL)),这有助于抑制所有类别中的负样本。

  • Feature Extraction

  给定来自数据集 \(D\) 的输入图像 \(x\) ,首先利用一个主干网络提取局部图像特征 \(f_{loc}^x \in \mathbb{R}^{h \times w \times d_0}\) ,其中 \(d_0,h,w\) 分别表示通道数、高度和宽度。论文采用了如ResNet-101的卷积网络,并通过去除最后的池化层来获取局部特征。之后,添加一个线性层 \(\varphi\) ,将特征从维度 \(d_0\) 映射到维度 \(d\) ,以便将其投影到一个视觉-语义联合空间,从而匹配类别提示的维度:

\[\begin{equation}
\mathcal{F} = \varphi(f_{loc}^x) = \{f_1,f_2,...,f_v\} \in \mathbb{R}^{v \times d}, v = h \times w.
\label{eq:1}
\end{equation}
\]

  利用局部特征,我们在它们与初始类别提示之间进行视觉-语义信息交互,以辨别类别特定的视觉信息。

  • Semantic Extraction

  形式上,预训练的CLIP包括一个图像编码器 \(f(\bullet)\) 和一个文本编码器 \(g(\bullet)\) 。为了论文的目的,仅利用文本编码器来提取类别语义。具体来说,采用一个经典的预定义模板 "a photo of a[CLASS]" 作为文本编码器的输入文本。然后,文本编码器将输入文本(类别 \(i\) , \(i=1,...,c\) )映射到文本嵌入 \(\mathcal{W} = g(i) =\{w_1,w_2,...,w_c\}\in \mathbb{R}^{c \times m}\) ,其中 \(c\) 表示类别数, \(m\) 表示嵌入的维度长度。提取的文本嵌入作为初始化类别提示的类别语义。

Category-Prompt Initialization

  为了弥合语义领域和视觉领域之间的差距,近期的研究尝试使用线性层将语义词嵌入投影到视觉-语义联合空间。论文选择了非线性结构来处理来自预训练CLIP文本嵌入的类别语义,而不是直接使用线性层进行投影。这种方法能够实现从语义空间到视觉-语义联合空间的更复杂的投影。

  具体来说,论文设计了一个提示初始化(PI)网络,该网络由两个全连接层和一个非线性激活函数组成。通过PI网络执行的非线性变换,将预训练CLIP的文本嵌入 \(\mathcal{W}\) 映射到初始类别提示 \(\mathcal{P} = \{p_1,p_2,...,p_c\}\in \mathbb{R}^{c \times d}\) :

\[\begin{equation}
\mathcal{P} = GELU(\mathcal{W}W_1+b_1)W_2+b_2,
\label{eq:2}
\end{equation}
\]

  其中, \(W_1\) 、 \(W_2\) 、 \(b_1\) 和 \(b_2\) 分别表示两个线性层的权重矩阵和偏置向量,而 \(GELU\) 表示非线性激活函数。这里, \(W_1 \in \mathbb{R}^{m \times t}\) , \(W_2 \in \mathbb{R}^{t \times d}\) , \(t = \tau \times d\) , \(\tau\) 是控制隐藏层维度的扩展系数。通常情况下, \(\tau\) 被设置为0.5

PI网络在从预训练CLIP的文本编码器中提取类别语义方面发挥了至关重要的作用,利用其强大的语义表示能力,在不依赖真实标签的情况下建立不同类别之间的语义关联。通过用类别语义初始化类别提示,PI网络促进了从语义空间到视觉-语义联合空间的投影。此外,PI网络的非线性设计增强了提取类别提示的视觉-语义交互能力,从而改善了后续的视觉-语义信息交互。

Visual-Semantic Information Interaction

  随着Transformer在计算机视觉领域的广泛应用,近期的研究展示了典型注意力机制在增强视觉-语义跨模态特征交互方面的能力,这激励论文设计了一个视觉-语义交互(VSI)网络。该网络包含一个Transformer编码器,以初始类别提示和视觉特征作为输入。Transformer编码器执行视觉-语义信息交互,以辨别与每个类别相关的上下文特定视觉信息。这个交互过程有效地解耦了类别特定的视觉表示,从而促进了每个类别的更好特征分类。

  为了促进类别提示与视觉特征之间的视觉-语义信息交互,将初始类别提示 \(\mathcal{P} \in \mathbb{R}^{c \times d}\) 与视觉特征 \(\mathcal{F} \in \mathbb{R}^{v \times d}\) 进行连接,形成一个组合嵌入集 \(Z = (\mathcal{F},\mathcal{P}) \in \mathbb{R}^{(v+c) \times d}\) ,输入到VSI网络中进行视觉-语义信息交互。在VSI网络中,每个嵌入 \(z_i \in Z\) 通过Transformer编码器固有的多头自注意力机制进行计算和更新。值得注意的是,仅关注更新类别提示 \(\mathcal{P}\) ,因为这些提示代表了类别特定视觉表示的解耦部分。注意力权重 \(\alpha_{ij}^p\) 和随后的更新过程计算如下:

\[\begin{equation}
\alpha_{ij}^p = softmax\left((W_qp_i)^T(W_kz_i)/\sqrt{d}\right),
\label{eq:3}
\end{equation}
\]
\[\begin{equation}
\bar{p}_i = \sum_{j=1}(\alpha_{ij}^pW_vz_j),
\label{eq:4}
\end{equation}
\]
\[\begin{equation}
p_i' = GELU(\bar{p}_iW_r+b_3)W_o+b_4,
\end{equation}
\]

  其中, \(W_q, W_k, W_v\) 分别是查询、键和值的权重矩阵, \(W_r, W_o\) 是变换矩阵, \(b_3, b_4\) 是偏置向量。为了简化VSI网络的复杂度,选择了单层Transformer编码器而不是堆叠层。VSI网络的输出结果和类别特定的视觉特征分别记作 \(Z' = \{f_1', f_2', ..., f_v', p_1', p_2', ..., p_c'\}\) 和 \(\mathcal{P}' = \{p_1', p_2', ..., p_c'\}\) 。在自注意力机制下,每个类别提示嵌入综合考虑了其对所有局部视觉特征和其他类别提示嵌入的注意力。这种综合注意力机制有效地辨别了样本中的上下文相关视觉信息,从而实现了类别特定视觉表示的解耦。

Category-Prompt Refined Feature Learning

  在通过VSI网络实现视觉特征与初始提示的交互后,得到的输出 \(\mathcal{P}'\) 作为分类的类别特定特征。在传统的基于Transformer的方法中,从Transformer获得的具体输出特征通常通过线性层投影到标签空间,用于最终分类。与这些方法不同,将类别提示 \(\mathcal{P}\) 作为分类器,并计算类别特定特征与类别提示之间的相似性,以在特征空间内进行分类。类别 \(i\) 的分类概率 \(s_i\) 可以通过以下计算:

\[\begin{equation}
s_i = sigmoid(p_i' \cdot p_i).
\label{eq:6}
\end{equation}
\]

  在多标签设置中,由于数据特性的独特性,需要计算每个类别的类别特定特征向量与相应提示向量之间的点积相似度来确定概率(softmax一下),这种计算方法体现了绝对相似性。而论文偏离了传统的相似性模式,而是使用类别特定特征向量与所有提示向量之间的相对测量。这种做法的原因在于减少了计算冗余,因为计算每个类别的特征向量与无关类别提示之间的相似度是不必要的。

  初始提示缺乏关键的视觉上下文信息,导致在信息交互过程中语义域与视觉域之间存在显著的数据偏差。这种差异导致初始提示不准确,从而影响类别特定视觉表示的质量。为了解决这个问题,论文引入了一种由类别提示学习引导的渐进式双路径反向传播机制。该机制在模型训练过程中涉及两个梯度优化路径(如图2a所示):一条通过VSI网络,另一条直接到PI网络。前者路径还优化VSI网络,以增强其视觉语义信息交互的能力。通过采用一系列双路径梯度反向传播,提示在训练迭代中逐渐得到优化,从而逐步积累与上下文相关的视觉信息。同时,优化后的提示指导生成更准确的类别特定视觉表示,从而实现类别特定特征的渐进净化。论文将这一整个过程称为“提示精炼特征学习”,反复进行直到收敛,如图2b所示。

Optimization

  为了进一步解决多类别中固有的负样本与正样本不平衡问题,论文整合了在这种情况下常用的重新加权(Re-Weighting, RW)策略。具体而言,采用不对称损失(Asymmetric Loss, ASL)作为优化目标。ASL是一种焦点损失(focal loss)的变体,对正样本和负样本使用不同的 \(\gamma\) 值。给定输入图像 \(x_i\) ,模型预测其最终类别概率 \(S_i = \{s_1^i,s_2^i,...,s_c^i\}\) ,其真实标签为 \(Y_i = \{y_1^i,y_2^i,...,y_c^i\}\) 。

  使用ASL训练整个框架,如下所示:

\[\begin{equation}
\mathcal{L}_{cls} = \mathcal{L}_{ASL} = \sum_{x_i \in X}\sum_{j=1}^c
\begin{cases}
(1-s_j^i)^{\gamma^{+}}log(s_j^i),&s_j^i=1,\\
(\tilde{s}_j^i)^{\gamma^{-}}log(1-\tilde{s}_j^i),&s_j^i=0,\\
\end{cases}
\label{eq:7}
\end{equation}
\]

  其中, \(c\) 是类别的数量。 \(\tilde{s}_j^i\) 是ASL中的硬阈值,表示为 \(\tilde{s}_j^i = \max(s_j^i - \mu, 0)\) 。 \(\mu\) 是一个用于过滤低置信度负样本的阈值。默认情况下,设置 \(\gamma^{+} = 0\) 和 \(\gamma^{-} = 4\) 。在论文的框架中,ASL有效地抑制了所有类别中的负样本,可能改善了LTMLC任务中的头尾类别性能。

Experiments






如果本文对你有帮助,麻烦点个赞或在看呗~

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

CPRFL:基于CLIP的新方案,破解长尾多标签分类难题 | ACM MM'24的更多相关文章

  1. ICCV2021 | 简单有效的长尾视觉识别新方案:蒸馏自监督(SSD)

    ​  前言  本文提出了一种概念上简单但特别有效的长尾视觉识别的多阶段训练方案,称为蒸馏自监督(Self Supervision to Distillation, SSD).在三个长尾识别基准:Ima ...

  2. 基于NDK的Android防破解& Android防破解 【转载】

    两篇防破解文章转载 基于NDK的Android防破解:http://blog.csdn.net/bugrunner/article/details/8634585 Android防破解:http:// ...

  3. Ice系列--基于IceGrid的部署方案

    前言 前一篇文章介绍了IceGrid的简单应用.这篇文章来介绍一下它的高端玩法-如何将模板,复制组,知名对象应用于部署方案及其作用. 基于模板的部署方案 之前介绍了xml格式的配置文件通过各种描述符如 ...

  4. 基于nginx的频率控制方案思考和实践

    基于nginx的频率控制方案思考 标签: 频率控制 nginx 背景 nginx其实有自带的limit_req和limit_conn模块,不过它们需要在配置文件中进行配置才能发挥作用,每次有频控策略的 ...

  5. 基于jQuery的新浪游戏首页幻灯片

    分享一款基于jQuery的新浪游戏首页幻灯片,带左右箭头,选项卡缩略图,自动轮播切换的jQuery幻灯片代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <br>& ...

  6. 第五十个知识点:什么是BLS基于对的签名方案?

    第五十个知识点:什么是BLS基于对的签名方案? BLS签名方案使用了椭圆曲线上了Weil对,本质上是一个在曲线上除n划分的双线性形式,使用 \(n^{th}\) 个单位根. 假设我们有一个椭圆曲线\( ...

  7. PGL图学习之基于GNN模型新冠疫苗任务[系列九]

    PGL图学习之基于GNN模型新冠疫苗任务[系列九] 项目链接:https://aistudio.baidu.com/aistudio/projectdetail/5123296?contributio ...

  8. 我的基于 JamStack 的新博客

    概述 今天心血来潮,介绍一下我的新博客站点 -- https://EWhisper.cn. 我是做基础平台 PaaS 运维和架构的,挺喜欢把工作中学到的新知识写下来.记笔记,突然有一天就抱着「资源共享 ...

  9. 翻屏类 h5 适配方案:解决宽高自适应难题

    表格 图片等 宽度自适应  :width:100%;  box-sizing: border-box; 基于淘宝适配方案flexible + 翻屏h5 适配方案adaptive flexible解读及 ...

  10. 机器学习算法(九): 基于线性判别模型的LDA手写数字分类识别

    1.机器学习算法(九): 基于线性判别模型的LDA手写数字分类识别 1.1 LDA算法简介和应用 线性判别模型(LDA)在模式识别领域(比如人脸识别等图形图像识别领域)中有非常广泛的应用.LDA是一种 ...

随机推荐

  1. 一张图看懂 SQL 的各种 JOIN 用法(含数据集和韦恩图)

  2. 亚马逊 vpc 子网 路由表 互联网网关 弹性ip

    创建vpc,子网,路由表,互联网网关,弹性ip等网络资源 vpc和子网 创建互联网网关 附加到vpc 创建路由表 路由表编辑路由 此路由通过这个网关出去 编辑子网关联 保存关联 有关云主机 创建属于那 ...

  3. 10、SpringMVC之处理Ajax请求

    创建名为spring_mvc_ajax的新module,过程参考9.1节和9.5节 10.1.SpringMVC处理Ajax请求 10.1.1.页面请求示例 <input type=" ...

  4. 【SpringMVC】05 RestFul风格

    什么是RestFul风格? 一个资源定位和资源操作的风格,不是标准,也不是协议, 基于此风格的路径访问可以隐藏真实的参数传递,以提高网站的安全访问 以往的请求参数: jdbc:mysql://loca ...

  5. [rCore学习笔记 021]多道程序与分时任务

    写在前面 本随笔是非常菜的菜鸡写的.如有问题请及时提出. 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 导读 ...

  6. Ubuntu/Linux系统中的multi-user.target

    相关: https://www.cnblogs.com/devilmaycry812839668/p/17999041 multi-user.target 是 Linux 系统中 systemd 的一 ...

  7. 《A Palestinian Woman Embraces the Body of Her Niece》—— 4月19日报道 2024年世界新闻摄影大赛结果在荷兰出炉,一张巴勒斯坦妇女在加沙地带抱着被杀害的五岁侄女尸体的照片被评为年度最佳作品

    The genocide is not just a matter between the parties involved; it's a concern for all humanity. Gen ...

  8. 强化学习算法真的适合于你的应用吗 —— 强化学习研究方向(研究领域)现有的不足(短板、无法落地性) —— Why You (Probably) Shouldn’t Use Reinforcement Learning

    外文原文: Why You (Probably) Shouldn't Use Reinforcement Learning 地址: https://towardsdatascience.com/why ...

  9. java多线程之ReentrantLock详解

    1.背景 2.基本语法 public class Test01 { // 定义锁 static ReentrantLock reentrantLock = new ReentrantLock(); p ...

  10. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-63 - Canvas和SVG元素定位

    1.简介 今天宏哥分享的在实际测试工作中很少遇到,比较生僻,如果突然遇到我们可能会脑大.懵逼,一时之间不知道怎么办?所以宏哥这里提供一种思路供大家学习和参考. 2.SVG简介 svg也是html5新增 ...