开源的视觉语言分割模型,探索Prompt调优在视觉语言分割中的应用 !

点击下方卡片,关注 「AI视界引擎」 公众号

( 添加时备注:方向+学校/公司+昵称/姓名 )

picture.image

picture.image

视觉语言模型(VLMs)在视觉任务上表现出色,但将它们适应到新领域通常需要昂贵的微调。 Prompt 调优技术,包括文本、视觉和多模态 Prompt ,可以通过利用可学习的 Prompt 提供高效的替代方案。

然而,它们在视觉语言分割模型(VLSMs)上的应用以及在大领域转变下的评估仍然未受探索。

本工作提出了一个开源的基准测试框架 TuneVLSeg,将各种单模态和多模态 Prompt 调优技术集成到VLSMs中,使其可用于具有任意类别的下游分割数据集。

TuneVLSeg 包括在各种 Prompt 深度上使用的 6 个 Prompt 调优策略,总计用于 2 个 VLSMs,总共 8 种不同的组合。作者在 8 个不同的医学数据集上测试了各种 Prompt 调优,包括 3 个放射科数据集(乳腺肿瘤、超声心动图、胸部 X 光病理)和 5 个非放射科数据集(息肉、溃疡、皮肤癌),以及两个自然领域分割数据集。

作者的研究发现在显著领域转变(从自然领域图像到医学数据)下,文本 Prompt 调优存在困难。

此外,与多模态 Prompt 调优相比,视觉 Prompt 调优所需超参数较少,通常可以实现与多模态方法相当的表现,因此是一个有价值的首次尝试。

作者的工作提高了对不同 Prompt 调优技术在强健的领域特定分割理解方面的认识和适用性。

源代码可在 https://github.com/naaminepal/tunevlseg。

1 Introduction

医学影像中解剖结构和病理结构的分割对于计算机辅助诊断、预测和手术规划至关重要。最近基于深度学习的分割模型在精选数据集上表现出色,但它们在解剖结构和图像模式之间缺乏泛化能力,因为它们通常只针对一组解剖结构和模式进行训练,或者使用来自自然图像模型(如ImageNet)的预训练权重进行微调[10]。

最近在基础视觉语言模型(VLMs)方面的进展,由于它们在新数据集和视觉任务之间的泛化能力,引起了研究界的广泛关注。这些模型在自然图像分割任务中得到应用,并显示出良好的泛化能力。这些视觉语言分割模型(VLSMs)使用VLMs的预训练编码器以及添加的分割解码器。

VLSMs的惊人泛化能力源于文本输入提供的语言监督,称为 Prompt 。在推理过程中,类似于“一张{目标}的照片”的 Prompt 会提供辅助信息与图像嵌入,以识别目标类别,高质量的 Prompt 对提高VLSM的性能至关重要[21, 36]。

将VLSMs扩展到医学图像分割任务面临挑战,尤其是在为自然图像预训练的VLSMs设计有效 Prompt 时[36]。这通常导致医学图像分割性能不佳,需要对医学数据集进行微调。鉴于这些模型的巨大规模以及大型标注医学数据集的稀缺性,为医学数据集微调VLSMs通常不切实际。

将这些模型扩展到数据和计算要求较少的新领域的一个努力是 Prompt 调优。它对噪声标签具有鲁棒性,这使得将自然图像预训练的VLMs扩展到医学数据集具有优势。 Prompt 调优策略(也称为_上下文学习器_)可以扩展到VLSMs,因为它们与VLMs具有相似的架构,VLMs通常由文本和视觉编码器以及添加的分割解码器组成。

picture.image

Prompt 调优通过引入可学习的 Prompt (也称为上下文向量),解决了人工设计 Prompt 的挑战,通过只优化这些上下文向量,使VLMs适应新数据集[62]。将 Prompt 调优扩展到分割任务有其注意事项。如图2所示,上下文向量可以在文本、视觉[19]或两者输入中引入。此外,这些向量可以在编码器以不同的深度注入,并且对于分割任务,添加了一个解码器,这进一步加剧了这些挑战。然而,关于 Prompt 调优的研究主要集中在图像分类上,限制了对 Prompt 调优在下游图像分割任务上的前景的了解。

picture.image

在这项工作中,作者提出了一个开源的基准框架 _TuneVLSeg_,该框架整合了单模态和多模态的 Prompt 调优方法,以一种原则化的方式评估不同类别的视觉语言模型的 Prompt 调优。作者在图像编码器和解码器中研究了在多个深度 Level 添加上下文向量的效果。

作者还评估了6种 Prompt 调优方法在将2个预训练的视觉语言模型适应到2个自然和8个医学分割数据集上的性能。作者的基准框架可以轻松地扩展到使用新的 Prompt 调优方法适应其他类别的视觉语言模型到其他分割数据集上。

作者主要的贡献包括以下几点:

  1. 一种基于原则的评价不同单模态和多模态 Prompt 调优策略的方法,用于分割任务。
  2. 一个可修改和可重用的基准框架 TuneVLSeg ,利用预训练的VLSMs进行 Prompt 调优,以适配目标分割任务。

对比不同单模态和多模态 Prompt 调优在自然和医学分割数据集(跨越多个放射学和非放射学图像)中的有效性的效果。

2 Related Work

Vision-Language Models

视觉语言模型(VLMs)通过引入表示模块将图像和文本特征连接起来,使其能够在各种视觉语言任务中使用,如视觉问答(VQA)、图像分割、图像文本检索、目标检测和短语定位。Bordes等人[6]将VLM训练分为四个不同的类别。对比视觉语言模型(Contrastive VLMs)学习将文本和视觉特征映射到相同的嵌入空间,以建立不同模态之间的等价性。

具有遮挡目标的视觉语言模型(VLMs with masking objectives)[24, 8, 43]训练模型预测缺失的图像块或文本 Token ,以建立两种模态之间的相似性。生成型视觉语言模型(Generative models)[39, 52]优化用于使用文本表示生成图像,反之亦然。具有预训练基础模型的视觉语言模型(VLMs with pretrained backbone)在预训练编码器之间建立映射网络,因此需要更少的计算。

Vision-Language Segmentation Models

VLMs 的多模态信息捕获能力使其成为分割任务的基础设施。视觉语言分割模型(VLSMs)在预训练的 VLM 编码器之上添加了一个视觉语言解码器,以捕捉文本和视觉分支的信息。DenseCLIP [38] 在 CLIP 编码器之上使用视觉语言解码器,利用像素-文本得分映射指导密集预测模型的学习。

同样,CLIPSeg [32] 和 CRIS [45] 通过预测给定文本或图像 Query 的像素级激活来实现零样本分割。ZegCLIP [63] 在进行块文本对比之前,引入了调优的 Prompt 并关联图像信息与文本编码,旨在在归纳和Transductive零样本设置中减少已见类的过拟合。

Prompt Tuning

Prompt 在下游数据集[51, 21]中起着关键作用。然而,为给定的下游任务找到最佳 Prompt 可能是一项繁重的工作,有时还需要先验知识。因此,一种更有效的方法是自动学习特定下游任务所需的这些 Prompt ,而不是提供手动 Prompt 。

这种学习特定任务 Prompt 的方法称为 Prompt 调优,它最初在自然语言处理(NLP)[20, 26, 27, 29, 30, 41, 60]中使用。后来,它被应用于视觉语言模型的文本分支[61, 62, 64]和仅涉及视觉的模型[19, 46, 57, 47]。最后,将多模态 Prompt 调优策略[53, 23]应用于视觉语言模型的文本和视觉编码器,显示出比单模态方法更好的性能。

尽管 Prompt 调优策略已广泛研究用于像CLIP [37]这样的VLMs,但很少有研究将这些技术应用于VLSMs。DenseCLIP [38]和ZegCLIP [63]分别针对VLSMs引入了CoOp [62]和VPT [19]。然而,这些模型的一个主要缺点是,分割任务中的类别数量变化会改变其权重的通道数。除非在预训练过程中存在所需类别,否则在下游任务中使用它们的预训练权重将变得不可用。

3 Revisiting CLIP

Text Encoding

CLIP的文本编码器使用一些特殊 Token 对输入文本进行 Token ,生成相应的词向量,并在将它们传递给第一个变形器层之前添加位置编码,。每个都传递给变形器层,输出。从数学上讲,

picture.image

在这里, 表示文本编码器中的 Transformer 层数。此外,句子嵌入是从最终层()的输出中提取的,作为序列的最后一个向量(对应于句子结束 Token (EOS)),即 。

文本空间中的句子嵌入通过一个可学习的线性投影矩阵 从文本空间映射到视觉语言空间。从数学上讲,

picture.image

Image Encoding

CLIP的图像编码器将图像分割成多个预定义大小的patch。它们线性投影以获得token嵌入,并在将其传递到第一个ViT层之前,添加位置编码,即。此外,一个类(CLS)token嵌入()在将其传递到 Transformer 层之前,与token嵌入 ConCat ,输出。从数学上讲,

picture.image

在这里,表示图像编码器中的 Transformer 层数。最后一层的类(CLS)嵌入()对应于全局嵌入(或图像级嵌入),它在图像空间中。通过一个可学习的线性投影矩阵,将嵌入映射到视觉语言空间。数学上,

picture.image

4 Revisiting Prompt Tuning

Textual Prompt Tuning

为了学习语言特定的 Prompt ,作者将B个可学习的 Token 分配给CLIP的文本编码器的第一层,即。

文本分支的第一层输入是可学习 Prompt 和提供固定文本 Prompt 的拼接,即(参见图2a)。此外,这些可学习 Prompt 可以扩展到文本编码器的多个层,以便在每层的每个 Prompt 中学习新的 Prompt 。这种深度 Prompt 技术有助于将中间层输出的对齐与第一层输出的对齐。从数学上讲,

picture.image

在第层()及其之后,计算类似于子节3.1中描述的情况,此时假设 Prompt 与词向量相同。具体来说,在前层,对应可学习 Prompt 的输出被丢弃,并为每个层注入一组新的可学习 Prompt 。然而,在层之后,计算方法类似于子节3.1中所述,假设 Prompt 与词向量相同。从数学上讲,

picture.image

当网络深度达到 unity,即 时,它退化为 CoCoOp [61]。CoCoOp [61] 通过将 CLIP 的图像级嵌入投影到可学习的 Prompt 中,扩展了 CoCoOp。这使得文本 Prompt 相对于 CoCoOp 中的实例无关的任务相关 Prompt 变得图像依赖。

Visual Prompt Tuning

类似于文本 Prompt 调优,作者将B个可学习的 Token 分配给CLIP的视觉编码器的第一层Transformer,即(参见图2c)。ViT的第一层Transformer的输入是CLS Token 、固定图像 Token Embedding 以及可学习 Prompt 的拼接,即。从数学上讲,

picture.image

类似于文本 Prompt 调优,在最多第J层(层),对应可学习 Prompt 的输出将被丢弃,并为每个层注入一组新的可学习 Prompt 。

然而,在层之后(),计算将按照3.2节中描述的方式进行,仿佛 Prompt 与 Token Embedding 相同。从数学上讲,

picture.image

Multimodal Prompt Tuning

多模态的 Prompt 调优方法被设计出来,以调整encoders的输出。与单模态 Prompt 调优类似,作者在CLIP的文本和视觉编码器中,为每个transformer层i分配个 Token ,直到 Prompt 深度,即,。

直接实现多模态 Prompt 调优的一种简单方法是在相同的训练时间表中分别学习文本()和视觉() Prompt 各自。然而,研究表明,由于视觉和语言分支之间缺乏交互,这种简单的训练策略会导致性能下降 [23, 53]。两种模态之间的交互可以通过引入每个 Transformer 层的统一 Prompt 来实现,用表示。在这里,是一个超参数,表示统一 Prompt 的维数。作者通过以下方式从相应的统一 Prompt 中获取视觉和文本 Prompt 。

在这里, 是一个可学习的函数,它将每个 Transformer 层 的统一 Prompt 转换为相应的文本 和视觉 Prompt 。某些函数 的架构是自注意力机制、多层感知或两者的混合。在本工作中,作者使用每个 作为一个 Transformer 块,作为多模态 Prompt 调优的一种方法,称为 _共享注意力_(参见图2e)。

一种专门的案例是,当这些转换被拆分为文本和视觉转换的独立组件,即和,它们将统一 Prompt 转换为相应的文本和视觉空间。例如,转换函数是一个感知机(仿射变换)-- 并且可以由一个激活函数可选地跟随。从数学上讲,

picture.image

相应的,

picture.image

对于这些单独的变换,作者使用一个线性层后接 LayerNorm [4]来将统一的 Prompt 投影到文本和视觉维度。作者称之为共享分离(见图2f)。

这些可分变换的一个更专门的情况是,其中一个变换,即或等于身份。在这种情况下,统一的 Prompt 直接初始化为变换的身份空间。Khattak等人[23]也做了同样的事情;他们将在文本空间中的统一的 Prompt 初始化。

5 Method

图3展示了作者提出的框架的一般架构。对于多模态 Prompt 调优,可学习的 Prompt 被注入到编码器中;而对于单模态 Prompt 调优, Prompt 被注入到相应模态的编码器中。此外,由于预训练模型的所有参数都被冻结,作者只训练和存储每个下游任务的可学习上下文,从而节省计算资源和存储空间。

picture.image

在作者的研究中,作者使用了两个预训练自然图像的VLSMs,分别是CLIPSeg [32]和CRIS [45],进行 Prompt 调优。CLIPSeg与CRIS之间的一个关键区别是,CLIPSeg使用ViT [11]作为视觉编码器,而CRIS使用ResNet [15, 16]。尽管两种模型都使用文本 Prompt 调优,但只有CLIPSeg [32]应用了视觉和多模态 Prompt 调优技术,因为它们需要一个ViT编码器。

因此,作者对CLIPSeg使用了六种 Prompt 调优方法,分别是三种多模态、一种视觉和两种文本,而对CRIS应用了两种文本 Prompt 调优方法。这意味着每个数据集的 Prompt 调优和VLSMs组合有八个不同的组合。

此外,受到Jia等人[19]的启发,作者引入了一种可学习上采样器(如图3右下角所示),该上采样器接收解码器最后一层的输出;其输出与解码器输出的可学习残差因子相加。这种可学习模块包括一个双线性上采样器 followed by a 2D卷积层,其核大小为。

6 Experiments

Datasets

为了作者对医学数据集的实证分析,作者使用了Poudel等人[36]提供的八个数据集及其划分。这些数据集包括五个非放射科数据集——Kvasir-SEG [17],ClinicDB [5]和BKAI [3, 35]用于内窥镜图像中的多发性息肉分割,DFU [22]用于糖尿病足溃疡分割,以及ISIC-16 [14]用于皮肤病变分割——和三个放射科数据集——BUSI [2]用于乳腺超声分割,CAMUS [25]用于2D心脏超声分割,以及CheXlocalize [40]用于胸部X光分割。在作者的分析中,作者只使用前景类别名称来自动学习每个数据集的 Prompt 。

作为开放的 datasets,作者选择 Cityscapes [9] 和 PASCAL VOC 2012 [12] 数据集,分别包含19和20个类别。使用自然领域数据集的重要性在于评估各种 Prompt 调优方法在 VLSMs 预训练的相同领域中的性能。

同时,作者可以观察到在上述医学数据集的最大类别数(约为20)相比的情况下,当类别数更高(约为20)时,上下文学习者的表现如何。本研究所选数据集的详细描述见表1。

picture.image

为了分析开源域和医学数据集之间的领域漂移,作者在图4中绘制了CLIP的文本和视觉嵌入的t-SNE。除了6.1节中提到的数据集外,作者还绘制了Phrasccut数据集中的短语,该短语用于预训练CLIPSeg。由于数据集中的许多图像对应于单个 Prompt ,因此图像嵌入的数量少于文本嵌入的数量。内窥镜数据集具有相同的背景类别(息肉)。

与像PhraseCut这样的参考图像分割数据集相比,语义分割数据集中的短语数量微不足道,因此作者无法从图3(a)中得出太多结论。然而,在图3(b)中,作者可以看到医学数据集的图像嵌入形成了其簇,与开源域数据集的嵌入分开。同样,开源域数据集的图像嵌入重叠,具有息肉作为前景类的数据集位于同一簇(右上)。

这说明了CLIP的图像嵌入从VLSMs训练的数据集到医学数据集发生了显著的领域漂移,因此,图像嵌入需要对领域漂移进行更多的调整。

picture.image

Implementation Details

在将图像输入到模型之前,作者对各个模型原始分辨率的图像进行了缩放和归一化,即CRIS的图像尺寸为,CLIPSeg的图像尺寸为,并使用双立方插值进行处理。此外,对于训练子集,作者通过使用Albumentations库[7]在2%的范围内随机缩放图像、2%的平移和5°的旋转,稍微增强了图像。此外,图像的亮度和对比度也在10%的范围内进行了增强。

作者在本文中的所有实验中,使用16位浮点混合精度训练在NVIDIA GPUs上,使用AdamW [31]优化器,有效批量大小为32。对于损失函数,作者使用了Dice Loss [34]和Binary Cross Entropy损失的组合。从数学上讲,使用的损失函数可以表示如下。

在这里,作者分别将 和 设置为 1 和 0.2,针对所有数据集。

如图,贾亚等人[19]所示,类似的学习率和学习率衰减等超参数可能并不适用于所有数据集。因此,作者使用来自Optuna[1]库的TPESampler[48]进行超参数遍历。作者对每个参数在表2中显示的搜索空间进行了20次实验。尽管Coop[62]和CoCoOp[61]提出使用1层的 Prompt 深度,但作者想要观察在文本调优技术中增加 Prompt 深度的程度能带来多少益处,并使 Prompt 技术之间的比较公平统一,因此,作者将 Prompt 深度保持为所有上下文学习器的超参数。

picture.image

7 Results and Discussion

作者报告了在表3中最佳超参数组合对应的搜索空间中,每个可行模型组合和背景学习的结果。在后续小节中,作者将解释表中展示的结果。

picture.image

Choice of Prompt Tuning Technique

从表格3中可以看出,文本 Prompt 调优方法CoCoOp和CoOp的性能显著低于其他 Prompt 调优技术。表格显示,尽管Maple[23]在某些数据集上具有最高的冰山点分数,但VPT[19]在测试数据集上具有最高的平均冰山点分数,尽管它没有调优文本 Prompt 。

作者假设,由于作者为所有上下文学习器使用了相同数量的搜索尝试,因此找到VPT的最佳超参数集比多模态变体(见表2)更容易,因为VPT的超参数比多模态变体少。此外,这可能是因为,如所示于图4,在图像域中,从开放域到医学域存在显著的域转移。

这一假设得到了支持,即VPT在医学域中表现优于多模态变体,但多模态变体在开放域数据集上表现优于VPT(见表2)。从这一观察中,作者可以推理出,当您拥有与VLSMs预训练的数据集不同的数据集时,VPT是一个良好的起始点。

Importance of Prompt Initialization

周等人[61, 62]的研究表明, Prompt 的初始化对性能有很大影响。他们发现,将第一个 Prompt 的初始化从CLIP的文本编码器中随机初始化为"a photo of a"的词向量,性能更好。因此,对于在文本空间中初始化 Prompt 的上下文学习器(例如CoCoOp和Maple),第一个 Prompt 按照上述方式初始化。作者假设,Maple在某些数据集上比其他多模态 Prompt 调优技术表现更好的原因可能是,Maple能够在CLIP的文本编码器的文本空间中初始化上下文向量。作者在CLIPSeg上训练Maple,将上下文向量从高斯分布()中初始化。

从表4中可以看出,当第一个深度上下文向量以随机方式初始化时,Maple在大部分数据集上的性能降低,这支持作者的假设。此外,大多数数据集的不同的 Prompt 调优方法,在端到端精细调优(表3,医疗数据集的分数来自Poudel等人[36],其余数据集使用相同的超参数进行训练。)时,性能相当。

picture.image

Importance of Tuning Last Layer for Segmentation

正如在第五节中所述,作者使用了可学习的上采样器作为解码器最后层的残差连接。为了研究该层的重要性,作者进行了一个去学习层实验,同时冻结编码器和解码器;实验结果见表5。

从表中作者可以看出,在大多数情况下,骰子得分有所下降,将整体平均骰子得分降低了2.59。这表明可学习的上采样器对于分割具有优势。

picture.image

Importance of Prompt Depth

由于 Prompt 深度已被证明是 Prompt 调优的重要超参数[19, 53, 23],作者在第6.2节中提到的各种 Prompt 深度下进行了实验。作者绘制了测试骰子得分与 Prompt 深度之间的关系图,包括所有数据集。将所有数据集的骰子得分放在同一图中是为了观察每个 Prompt 学习技术在 Prompt 深度增加时是否普遍改善。从图6a到6d,作者可以看到,文本上下文学习者在 Prompt 深度增加时并没有显著受益。

picture.image

Learning Rate and Weight Decay

类似于Jia等人[19],作者也观察到对于所有数据集和上下文学习者,没有一个学习率和权重衰减对都能取得最佳性能。因此,作者需要进行某种超参数遍历,以获取所选下游数据集的最佳配置。

8 Limitations

本研究关注于使用在分割任务上预训练的VLSMs,并评估它们在下游任务上的性能。由于用于训练模型的类别可能与用于评估模型在下游任务中的类不同,作者选择输出二进制 Mask 的VLSMs,通过文本编码器提供需要分割的类别。作者将参数不需要改变的VLSMs称为下游任务与预训练任务不同的类,即类无关的VLSMs。

此外,由于多模态 Prompt 调优假设视觉编码器和文本编码器并行运行,相互依赖,作者限制了作者的研究范围仅限于使用(几乎)并行设置的两种编码器的VLSMs,即输出二进制分割 Mask 且使用CLIP的编码器进行分割任务的VLSMs。

9 Conclusion

在本文中,作者提出了一个开源的基准框架 _TuneVLSeg_,用于评估各种单模态和多模态的 Prompt 调优策略在VLSMs上的分割任务上的效果。

尽管本文中使用的VLSMs之外的其他VLSMs也存在,但由于预训练数据集和下游数据集之间的类别差异,作者只使用了无类别VLSMs。

然而,如果保留预训练权重不是问题,且可以轻松扩展到更多的VLSMs,以及更少的 Prompt 调优方法。

此外,为了展示作者框架的有效性,作者在将2个基于CLIP的VLSMs适应到2个自然领域和8个不同医学领域的分割数据集上,报告了6种 Prompt 调优方法的表现。

本研究将 Prompt 调优作为一种有效策略,用于适应预训练的基础VLSMs进行特定领域的分割任务,在临床设置中可能具有医学图像分割的潜在应用。

参考文献

[0]. TuneVLSeg: Prompt Tuning Benchmark for Vision-Language Segmentation Models.

点击上方卡片,关注 「AI视界引擎」 公众号

0
0
0
0
评论
未登录
暂无评论