OrdinalCLIP: Learning Rank Prompts for Language-Guided Ordinal Regression

Motivation

现有的方法通常将每个 Rank 视为一个类别,并使用一组权重来学习这些概念。由于学习到的概念主要来源于训练集,这些方法容易过拟合,通常效果不理想。最近,像 CLIP 这样的大型预训练视觉语言模型在各种视觉任务中表现出了令人印象深刻的表现。本文从 CLIP 丰富的语义潜在空间中学习秩概念。具体来说,将该任务重新表述为具有对比目标的图像 - 语言匹配问题,标签视为文本,并从每个 Rank 的文本编码器中获得语言原型。虽然 CLIP 的提示工程非常耗时,但 OrdinalCLIP 是一种可微分的提示方法,用于使 CLIP 适应有序回归。OrdinalCLIP 由可学习的上下文和可学习的秩嵌入组成。可学习的秩嵌入通过显式建模数值连续性来构建,从而在 CLIP 空间中得到有序的、紧凑的语言原型。

CV 中的 Ordinal regression 旨在预测给定数据的秩或连续值 y y y。例如,年龄估计旨在估计给定面部图像的年龄,而图像美学评估则预测图像的美学分数。Ordinal regression 作为一个基本问题,因其广泛的应用而受到越来越多的关注。一个简单解决方案是直接回归尺度值。它是用单个神经元实现的,并通过 L1 \text{L1} L1 L2 \text{L2} L2 损失进行优化。

然而,它的性能有限。常用的方法通常将连续目标空间离散到不同的 bin 中,或者将秩标签视为不同的数字。然后,将这些离散值视为不同的类别,并使用线性层进行分类。这些方法本质上是学习一组权重来模拟顺序的概念。这些方法面临两个主要挑战。首先,将秩作为独立的类范畴,未能把握秩的序数性质。其次,由于学习到的概念主要来源于训练集,这些方法容易过拟合,通常效果不理想。
在这里插入图片描述
由于仅从图像域学习秩概念容易出现过拟合,可以利用多模态信息来缓解这个问题。语言包含着丰富的语义信息和先验知识,同时考虑借用语言领域的秩概念。具体来说,每个秩标签不仅被视为一个类类别,而且还与描述相应秩的句子相关联,例如 “这个人23岁”。模型不仅学习了视觉数据集上定义的 Rank 概念,而且还利用了语言领域中关于排名的常识。

Method

Problem Statement

有序回归的目标是估计给定图像的 Rank 或连续值。虽然可以用单个神经元直接回归这个值,但一个流行的 baseline 是将其视为一个分类任务,并使用额外的约束来尝试利用序数属性。在数学上,将 Rank 空间表示为 R = { r j ∣ 0 ≤ j < C } \mathcal{R}=\{r_j|0≤j<C\} R={rj∣0j<C},其中 r j r_j rj 表示 Rank 类, C C C 表示 Rank 类的个数。在训练过程中,随机抽取一批图像 X = { x i ∣ 0 ≤ i < B } \mathbf{X}=\{x_i|0≤i<B\} X={xi∣0i<B},关联标签 Y = { y i ∣ 0 ≤ i < B } \mathbf{Y}=\{y_i|0≤i<B\} Y={yi∣0i<B},其中 B B B 表示 Batch 大小, y i ∈ { 0 , 1 } C y_i∈\{0,1\}^C yi{0,1}C。分类基线将每个 Rank 视为一个类,假设样本 x i x_i xi 的 Rank 标签为 r j r_j rj,则设 y i , l = 1 y_{i,l}=1 yi,l=1,若 l = j l=j l=j,则 y i , l = 0 y_{i,l}=0 yi,l=0,其中 l l l 为索引,且 0 ≤ l < C 0≤l<C 0l<C,则构造单热标签。

首先用图像编码器以提取图像特征,将图像特征传入线性层。得到如下输出:
l i , j = w j T f i + b j l_{i,j}=\mathcal{w}^T_jf_i+b_j li,j=wjTfi+bj
l i , j l_{i,j} li,j 为输出 logits,优化损失为:
L c l s = 1 B ∑ i = 0 B − 1 ∑ j = 0 C − 1 − y i , j log exp ( l i , j ) ∑ j = 0 C − 1 exp ( l i , j ) \mathcal{L}_{cls}=\frac{1}{B}\sum^{B-1}_{i=0}\sum^{C-1}_{j=0}-y_{i,j}\text{log}\frac{\text{exp}(l_{i,j})}{\sum^{C-1}_{j=0}\text{exp}(l_{i,j})} Lcls=B1i=0B1j=0C1yi,jlogj=0C1exp(li,j)exp(li,j)

许多现有方法在分类公式的基础上开发了额外的技术,如标签分布、均方差损失等。然而,这些方法简单地将每个 Rank 视为一个数字,主要从训练数据中学习 Rank 的概念,导致过拟合问题,性能不理想。本文提出了一种语言驱动的范式,它从语言中学习 Rank 概念来解决上述问题。

Language Prototypes

自然语言包含了丰富的先验知识,为保持有序性,将学习到的 Rank 与其语言概念联系起来。为了充分利用语言能力,采用 CLIP 的文本编码器作为语言模型。CLIP 遵循视觉语言预训练框架,并从图像-文本对中学习表示,从而产生视觉语言联合潜在空间。由于 CLIP 模型在下游任务中表现出强大的性能,因此使用 CLIP 驱动的文本编码器实现方法。将有序回归任务重新表述为图像语言匹配问题,该问题由一个文本编码器和一个图像编码器组成。文本编码器采用固定的 CLIP 语言模型提取语言特征。由于文本编码器的参数是固定的,将文本映射到一个学习良好的语言潜空间,该潜空间编码丰富的语言先验。

为了利用语言先验和文本编码器,将 Rank 视为单词。得到一组单词,用于 Rank 类别 { [ r 0 ] , [ r 1 ] , . . . , [ r C − 1 ] } \{[r_0], [r_1],..., [r_{C-1}]\} {[r0],[r1],...,[rC1]}。为了获得每个 Rank 的语言嵌入,为这些 Rank 构造一个句子,并将整个句子传入文本编码器。例如,可以构造一个 “一个人的年龄是 [ r j ] [r_j] [rj]” 的句子来表示等级。将该句子的每个单词映射到 512-D 单词嵌入向量上。所有的词嵌入都被发送到文本编码器以获得文本嵌入。通过这种方式,每个 Rank 被映射到语言潜在空间。将映射嵌入作为其相应 Rank 类别的原型。由于这些位置存在于我们熟知的语言流形上,并对语言概念进行编码,称之为语言原型。形式上,使用 { p j ∈ R d ∣ 0 ≤ j < C − 1 } \{\mathcal{p}_j∈\mathbb{R}^d|0≤j<C−1\} {pjRd∣0j<C1} 来表示 l 2 \mathcal{l}_2 l2 归一化语言原型,其中 p j \mathcal{p}_j pj 对应秩为 r j r_j rj 的语言原型, d d d 为特征维数。

通过图像编码器对输入图像进行处理以提取图像特征,可以使用任何流行的视觉主干作为图像编码器。在文本编码器参数固定的情况下,训练整个图像编码器使图像特征与语言潜在空间对齐。对于一批图像 X X X,将 l 2 l_2 l2 归一化图像特征记为 I = { I i ∈ R d ∣ 0 ≤ I < B − 1 } I=\{I_i∈\mathbb{R}_d|0≤I<B-1\} I={IiRd∣0I<B1},其中 d d d 为特征维数。作为图像语言匹配框架,通过内积计算两种模态之间的相似度得分,得到相似度矩阵 a a a

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值