FightingCV

V1

2022/11/24阅读:8主题:默认主题

NeurIPS 2022 | 清华大学提出OrdinalCLIP,基于序数提示学习的语言引导有序回归

NeurIPS 2022 | 清华大学提出OrdinalCLIP,基于序数提示学习的语言引导有序回归

1. 论文和代码地址

论文题目:OrdinalCLIP: Learning Rank Prompts for Language-Guided Ordinal Regression

单位:清华大学, 鉴智机器人

项目主页:https://xk-huang.github.io/OrdinalCLIP/[1]

论文地址:https://arxiv.org/abs/2206.02338v2[2]

代码地址:https://github.com/xk-huang/OrdinalCLIP[3]

2. 动机

2.1 概念介绍

有序回归(Ordinal Regression),就是解决类别之间有某种顺序关系的模型,比如年龄,收入等。使模型除了考虑分类损失以外,还要考虑不同类别之间的顺序关系,使与真实标签排序更近的误判的损失小于远离真实标签的误判的损失。

比如:我们对人的年龄进行分类:0岁,1岁和2岁。这时仅仅使用分类损失是不够的。如果一个样本的真实年龄是0,如果用分类方法,我们把它的年龄分类成1岁和2岁时的损失是相等的。但是,明显1岁要比2岁,更加接近于0岁,1岁是一个比2岁更可被接受的分类。因此从应用意义上,1岁应该比2岁有更小的损失。

有序回归就是解决这个问题,除了考虑分类损失以外,还要考虑误分类的类别和真实类别之间的排序关系,排序更近的损失应该更小。

2.2 现有方法缺陷:

现有方法通常将每个序数视为一个类别,但是这种方式忽视了序数的顺序信息。同时,因为学习到的序数概念主要来自训练集, 此种方式容易过拟合训练标签,通常无法取得令人满意的性能。

2.3 CLIP优势介绍:

近年来, 大规模视觉语言预训练模型在计算机视觉领域 "大放异彩",此类模型拥有强大的表征能力, 编码的特征具有很强的泛化能力和鲁棒性。 CLIP 等大型预训练视觉语言模型在各种视觉任务中取得了非常好的性能。如果如果能将CLIP引入序数回归问题,从蕴含丰富语义信息的 CLIP 特征空间中学习序数概念,那么也许能将大规模视觉语言模型引入有序回归任务中来。

2.4 问题重新定义:

本文将有序回归重新定义为具有对比目标的图像-语言匹配问题: 将标签视为文本, 输入文本编码器得到每个序数获取语言原型嵌入。

现有方法与论文提出方法的对比,如下图所示:

3. 方法

人工选择 CLIP 的提示词选择 (Prompt Engineering) 非常耗时。论文提出了 OrdinalCLIP, 一种可微分的提示词学习方法, 将 CLIP 适配到有序回归任务。

OrdinalCLIP 由可学习的上下文提示词嵌入和可学习的序数嵌入组成; 其中, 可学习的序数嵌入通过显式建模数值连续性来构建。OrdinalCLIP 可以在 CLIP 空间中产生有序且紧凑的语言原型嵌入,一旦完成学习, 可仅保存语言原型嵌入并丢弃庞大的语言模型。与使用线性预测头的模型相比,OrdinalCLIP 的额外计算开销为零。

论文提出的 OrdinalCLIP 包括 3 个模块: (1) 序数嵌入学习模块; (2) 序数嵌入与上下文嵌入联合编码模块; (3) 语言原型特征-图片特征匹配模块

序数嵌入学习模块:首先初始化可学习的基础序数嵌入,基础序数嵌入的数量往往远小于实际序数嵌入的数量,然后通过插值的方式,生成所有实际嵌入的数量,同时这种插值的方式也能够将序的概念引入到所有嵌入之中,即赋予了它们顺序信息。以年龄估计任务为例,可学习的基础序数嵌入的数量可被设置为 5, 然后通过插值得到101个实际序数嵌入为(从 0 到 100),这不仅增加的序数嵌入的数量,因为由插值产生,这些序数嵌入中还有着顺序信息。

序数嵌入与上下文嵌入联合编码模块:由于单独的序数嵌入所蕴含的信息有限, 将其直接输入 CLIP 的语言编码器所得到的语言原型特征的表现力不佳,因此模仿CLIP的做法,给序数词增加额外的上下文信息,例如在年龄估计任务中, 可以将上下文提示词设计为 "年龄估计: 这张照片中的人的年龄为 {}", 然后将其向量化 (Tokenization) 后得到上下文嵌入,与序数嵌入相连接然后输入CLIP的固定参数的语言编码器中提取语言特征。同时,这个上下文嵌入也是可学习的,可以通过训练得到优化。

语言原型特征-图片特征匹配模块:最后, 论文将语言原型特征和视觉编码器得到的图片特征, 通过L2范数,归一化到超球面上。之后通过矩阵内积的方式计算每张图片与每个语言原型的相似度, 得到最终的预测结果,具体计算公式如下图所示:

其中,I*__i_代表归一化后的图像特征,*P__j_代表归一化后的语言原型特征

论文使用 CLIP 和 ActionCLIP 论文中的损失计算方式, 同时计算文本到图像的损失以及图像到文本的损失,并使用了KL散度,具体计算公式如下图所示:

其中,公式左半部分计算图像到文本的损失,右半部分计算文本到图像的损失

4.实验

年龄估计任务:

美学估计任务:

历史年代估计任务:

不同插值方式实验:

消融实验:

语言原型嵌入的有序性可视化的消融实验

序数嵌入学习模块和各个可学习部件的消融实验:

同等设置下,OrdinalCLIP都取得比CoOp更优的效果。

少样本设置与分布偏移设置下的性能:

在年龄估计, 图像美学评估, 历史图像年代估计任务上,OrdinalCLIP基本都取得了SOTA的效果,通过消融实验以及小样本和分别偏移的实验,可得到以下实验结论:

  1. 相较于之前的范式, 基于语言-图像匹配的新范式能够学习到更加有序且非常紧凑的特征空间, 且获得了更好的性能。这种紧凑的特征空间仍然具有很强的判别力, 这从侧面展现了大规模预训练视觉-语言模型 (如 CLIP) 特征空间的丰富语义信息与结构。在少样本的分布偏移的设置下,相比于原有方法,新范式可取得更好性能表现。

  2. 随着语言原型嵌入的有序性提升, 模型性能能够得到提升。相较于之前的算法, OrdinalCLIP 构建的基于插值的序关系建模显著提升了嵌入的有序性。此外, 模型在少样本和分布偏移的设置下也获得了更好的性能。

  3. 同时训练秩嵌入层与上下文嵌入层能比单独训练这两个层得到更好的优化结果。在建模序关系的基础上, 引入可学习的上下文提示词嵌入, 相比于人工设计上下文提示词, 可进一步提升模型性能。

5. 总结

论文提出了基于语言引导的有序回归范式。现有的有序回归方法通常存在过拟合以及特征空间有序性缺失的问题, 这是因为这些方法仅从训练数据中学习序数概念。而论文提出的OrdinalCLIP模型, 它将每个序数类别与其源自CLIP文本编码器的语言概念相关联。为了利用语言先验, 每个序数概念都被映射到相应的语言原型。论文进一步提出了可学习的序数提示词来显式学习序数的嵌入,通过保持秩嵌入的顺序以及插值生成序数的方式,保持了语言原型在语言特征空间中的顺序。在年龄估计、历史图像年代估计和图像美学评估这三个任务上的大量实验结果表明, OrdinalCLIP 提升了深度学习模型在年龄估计任务的少样本和分布偏移设置下的性能,在有序回归任务中获得了非常有竞争力的性能。

参考资料:

[1]https://blog.csdn.net/Strive\_For\_Future/article/details/108933448[4]

[2]https://arxiv.org/abs/2206.02338v2[5]

[3]https://github.com/xk-huang/OrdinalCLIP[6]

[4]https://zhuanlan.zhihu.com/p/565034693[7]

[5]Radford, Alec, et al. "Learning transferable visual models from natural language supervision." International Conference on Machine Learning. PMLR, 2021.

[6]Hu, Xiaowei, et al. "Scaling up vision-language pre-training for image captioning." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.

[7]Zhou, Kaiyang, et al. "Learning to prompt for vision-language models." International Journal of Computer Vision 130.9 (2022): 2337-2348.

[8]Wang, Mengmeng, Jiazheng Xing, and Yong Liu. "Actionclip: A new paradigm for video action recognition." arXiv preprint arXiv:2109.08472 (2021).

参考资料

[1]

https://xk-huang.github.io/OrdinalCLIP/: https://link.zhihu.com/?target=https://xk-huang.github.io/OrdinalCLIP/

[2]

https://arxiv.org/abs/2206.02338v2: https://arxiv.org/abs/2206.02338v2

[3]

https://github.com/xk-huang/OrdinalCLIP: https://github.com/xk-huang/OrdinalCLIP

[4]

https://blog.csdn.net/Strive_For_Future/article/details/108933448: https://blog.csdn.net/Strive_For_Future/article/details/108933448

[5]

https://arxiv.org/abs/2206.02338v2: https://arxiv.org/abs/2206.02338v2

[6]

https://github.com/xk-huang/OrdinalCLIP: https://github.com/xk-huang/OrdinalCLIP

[7]

https://zhuanlan.zhihu.com/p/565034693: https://zhuanlan.zhihu.com/p/565034693

分类:

人工智能

标签:

人工智能

作者介绍

FightingCV
V1

公众号 FightingCV