Advertisement

MaPLe: Multi-modal Prompt Learning

阅读量:

收录:CVPR2023

代码:https://github.com/muzairkhattak/multimodal-prompt-learning

Abstract

CLIP这类预训练视语模型对输入文本提示的选择极为敏感,作者需要慎重选择Prompt模板,因为单一地优化其中任何一个分支的能力远非最优方案,由于现有方法无法灵活地动态协调语言与视觉两个表示空间,为此作者提出了Maple方法,该方法分别针对视觉与语言两个维度进行优化处理,以期改善两者表征的一致性

双分支学习和SOTA效果:

Method

与以往仅在文本分支中进行上下文学习的方法不同,Maple提出了一种联合提示方法 ,其中上下文提示在视觉和文本分支中均得到学习。具体而言,在文本分支中我们增加了可学习的上下文token ,并通过函数F实现显式依赖关系(vision prompts conditional on the language prompts),从而建立两者之间的交互机制。为了构建分层表示模型,在两个分支中引入了跨不同transformer块的独立可学习上下文提示 ,以实现深度提示的学习过程。

在微调训练阶段, 该系统仅限于对上下文提示及其相关联的函数F进行学习, 而模型的其他部分将不再参与这一训练过程.

结果显示,在进行图像分类任务时,Maple图像嵌入模型展现了显著的优势。研究发现,在提取视觉特征与语言描述的基础上进行联合优化能够显著提升模型性能。

除了多模态提示之外, 研究者发现, 在更深层的 transformer 层中提取提示用于表示阶段性特征是必要的.

Deep Language Prompting

对于文本端,在对输入文本描述执行分词处理后并将其映射到词嵌入空间中时,则记为W0:

,维度为N * dl,N为embeddings个数,dl为 text encoder 的维度512。

现在我们引入b个可学习token 作为文本端prompt:

和前面的word embeddings一起组成新了的embeddings:

在此基础上,在text encoder(Li)的每个transformer模块中依次添加可学习参数化的token单元直至第J个模块。在第J个模块之后的部分负责从前一层生成器输出的内容中提取关键信息并生成最终表示z。

当J=1时,可学习token P仅应用于第一个transformer层的输入,退化成Coop。

Deep Vision Prompting

改写说明

。还引入额外的class token (CLS) c i c_i做分类:

基于Deep Language Prompting的方法,在视觉分支中采用了b****个可学习token 作为image端prompt

(dv为768),与输入图像token并列。与文本端相同,引入的prompt也是到J层结束:

深度视觉提示展现出在VIT架构中跨层级功能结构之间交互学习的灵活特征。实验表明,在跨阶段共享配置下所获得的效果优于独立设置方案(即单独设置),这得益于多层transformer架构带来的特征累积效应。

因此,与早期阶段(<J)相比,后期阶段(>J)不提供独立学习的补充提示。

Vision Language Prompt Coupling

接下来的想法是如何综合运用深度视觉与语言的prompt。一种直接的想法是让语言提示P和视觉提示˜P如同上文所述的方式分别独立学习,并将其命名为‘Independent V-L Prompting’。

这种设计未能实现视觉和语言分支间的有效协作 ,因为两个分支在处理学习任务相关的内容时无法建立明确的联系。

本研究开发了一种具有分支意识的多模态提示机制(branch-aware multi-modal prompting),通过在不同感知渠道间开发共性引导来优化CLIP模型的视觉特征与语言理解能力。

对于两端来说,在Text Encoder的前J层中引入prompt信息如前所述,在PPT中提到过

为了更好地实现V-L提示间的相互协调关系,在本文中我们采用了**V-L耦合函数F(·)**这一关键手段。具体而言,在处理文本提示P时,我们通过该函数将其映射生成相应的视觉提示˜P(即:〖 P〗_k ) ̃ =F_k (〖 P〗_k ))。

连接层F通过线性变换将dl维输入转换为dv维输出。它在不同模式之间起到了纽带作用,并实现了不同路径间梯度的有效传递。

因此,视觉分支的prompt更新为:

Experiments

Benchmark setting

该实验方案遵循CoCoOp的框架,在自底-up至 novel类别通用化、跨数据集评估以及在域间通用化方面进行了深入研究;具体而言;本研究涵盖了以下三个主要方面:自底-up至 novel类别通用化;跨数据集评估;以及在域间通用化方面的深入研究。

该数据集仍然是常用的11个分类数据集之一,并主要采用了基于预训练的ViT-B/16模型。

prompt depth J to 9 (在imagenet上训练时深度设为3)

language and vision prompt lengths to 2

在prompt中对第一层P0进行初始化时,请使用一张该类别的具体图片作为基础;而对于其余层级,则采用基于正态分布的随机初始化方法。

全部评论 (0)

还没有任何评论哟~