论文Visual Prompt Tune(视觉提示微调)详解

视频讲解:视频详解(代码和算法)

论文下载地址:https://arxiv.org/pdf/2203.12119v2.pdf

代码下载地址:https://github.com/KMnP/vpt

论文CLIP-Count(基于文本指导的零样本目标计数)详解(PyTorch)

        还记得我们之前讲的“CLIP-Count(基于文本指导的零样本目标计数)”论文的内容吗,如果看过的小伙伴应该知道CLIP-Count论文的作者就使用到了“Visual Prompt Tune”方法训练模型。我们今天来看这篇论文也是因为CLIP-Count提到了这一点。如果迁移微调的模型比较大的话,是不是也可以尝试采用“visual prompt tune”呢,关于这一点大家可以去尝试一下。同样,《Visual Prompt Tune》这篇论文的作者也是认为当前基于模型的全微调对于参数量大的模型并不好,不仅仅是数据集的问题,对于计算资源的要求也很高。

目录

一 提出目的和方法

提出目的

提出方法

具体方法

二 整个方法

ViT基本结构

VPT方法

NLP中的提示词和VPT中提示词进一步理解

(1)​​传统微调 vs. 提示调优(Prompt Tuning)​​

(2)​​提示词的工作方式​​

三 综合实验

综合结果对比

不同下游数据集性能对比

不同模型规模对比

Swin-B骨干网络实验效果 

Prompt放置位置

Prompt长度对比 

Prompt放置不同深度对比 

不同输出层对比

可视化对比

语义分割效果

附录部分


一 提出目的和方法

提出目的

        当前预训练模型的主流适配方法需要对整个主干网络参数进行更新(即全参数微调),但是对于向transformer这样参数量比较大的模型来说将大模型适配至下游任务仍面临显著挑战。最直接(通常也最有效)的适配策略是对预训练模型进行端到端的全参数微调,但该方案需要为每个任务单独存储和部署整套主干网络参数。这对于现代Transformer架构(其参数量远超卷积神经网络)而言成本极高且往往难以实现,例如ViT-Huge6.32亿参数)与ResNet-502500万参数)的体量差异如何以最优效能比将大规模预训练Transformer适配至下游任务?

提出方法

        本文提出​​视觉提示调优(Visual Prompt Tuning, VPT)​​作为大规模视觉Transformer模型的高效替代方案。受语言模型高效调优技术的启发,VPT仅在输入空间引入少量可训练参数(不足模型总参数的1%),同时冻结主干网络权重。通过大量下游识别任务的实验验证,VPT相比其他参数高效调优方法展现出显著性能优势。值得注意的是,在不同模型容量和训练数据规模下,VPT在多数场景中不仅超越全参数微调的表现,同时大幅降低了单任务存储开销

具体方法

        本文探索了全新路径:不直接修改预训练Transformer参数,而是对其输入进行改造。受自然语言处理中提示学习的启发,提出了一种简单高效的视觉Transformer适配方法——视觉提示调优(VPT),如图1(b)所示。该方法仅在输入空间引入少量任务特定可学习参数,同时冻结整个预训练Transformer主干网络。实际操作中,这些新增参数会预置于每层Transformer的输入序列,与线性分类头共同微调。

        基于预训练ViT主干网络在24个跨领域下游识别任务的测试表明,VPT不仅全面超越其他迁移学习基线,更在20项任务中优于全参数微调,同时保持单任务存储参数量优势(不足主干参数的1%),如图1(c)所示。这一结果揭示了视觉提示的独特优势:相比NLP领域提示调优仅能在特定条件下匹配全微调性能,VPT在少样本场景表现尤为突出,且优势随数据规模扩大持续保持。此外,VPT对不同规模(ViT-Base/Large/Huge)和架构(Swin)的Transformer均具竞争力

二 整个方法

ViT基本结构

VPT方法

        给定一个预训练的Transformer模型,在Embed层之后的输入空间中引入一组维度为 dd 的连续嵌入,即提示(prompts,数量为 p。在微调过程中,仅更新任务特定的提示,Transformer主干保持冻结。根据所涉及Transformer层的数量,该方法有两种变体:VPT-SHALLOWVPT-DEEP。

 

注:其中“橙色”表示可学习参数,“青色”表示冻结的参数。

NLP中的提示词和VPT中提示词进一步理解

(1)​​传统微调 vs. 提示调优(Prompt Tuning)​
  • ​传统微调​​:需要更新整个模型的参数(全参数微调),为每个下游任务保存独立的模型副本,成本高昂。
  • ​提示调优​​:
    • ​冻结模型参数​​,仅通过设计或学习​​提示词​​来调整模型行为。
    • 提示词是插入输入文本中的​​额外标记(tokens)​​,用于“唤醒”模型对特定任务的推理能力。
    • ​参数高效​​:仅需优化少量提示词参数(或无需优化,手工设计)。
(2)​​提示词的工作方式​
  • ​手工设计提示(Hard Prompt)​​:
    例如,在情感分类任务中,输入句子后添加提示词:
    "这部电影很棒。总体情感是[MASK]。"
    模型根据上下文预测[MASK]位置应为“正面”或“负面”。
  • ​可学习提示(Soft Prompt)​​:
    将提示词视为​​连续向量​​(而非具体单词),让模型去优化。
    • 例如:在输入前添加若干可学习的“虚拟token”嵌入,模型通过这些隐式提示调整输出。
维度​​NLP提示词​​视觉提示(VPT)​
​输入形式​文本序列(单词或虚拟token)图像块序列(可学习的提示嵌入)
​参数类型​词嵌入或连续向量视觉Transformer输入空间的连续向量
​插入位置​文本开头/中间(如[MASK]每层Transformer的输入序列头部(预置)
​优化方式​手工设计或端到端学习端到端学习(随机初始化+梯度下降)
​核心目标​激活模型已有的知识引导冻结的视觉主干适应下游任务
  • NLP提示词​​:通过文本形式的提示激活语言模型的知识,实现任务适配。
  • ​VPT提示微调:将NLP中提示词思想泛化到视觉领域,用​​连续视觉提示​​替代文本提示,解决了图像缺乏离散语义的问题,同时保留了参数高效的优势。
  • NLP领域可以通过给出具体的“提示词”进行编码输入到模型中,并激活模型;但是在视觉领域,“提示词”不能是具体的某个词或者token进行编码输入到模型中,而是一个可学习的参数。
  • ​注意力机制的交互引导​

    • ​注意力权重分配​​:提示token会与图像块token共同参与注意力计算。由于提示是可学习的,它们能逐渐​​“吸引”模型关注与任务相关的图像区域​​。
      • 例如,在细粒度分类任务中,提示可能引导模型聚焦于鸟类的头部或羽毛纹理。
    • ​特征调制​​:提示通过注意力权重对图像块特征进行加权组合,间接调整特征的分布,使其更适合下游任务。

三 综合实验

预训练主干网络。实验采用两种视觉Transformer架构:视觉TransformerViT)和Swin Transformer所有主干网络均在ImageNet-21k数据集上预训练,严格遵循原始配置(如图像分块数量、[CLS]标记设置等。

基准方法。将VPT的两种变体与以下常用微调协议进行对比:
     (a) 全参数微调(FULL):更新主干网络和分类头的全部参数
     (b) 分类头调优方法(固定主干网络作为特征提取器):

线性头 (LINEAR) :仅使用单层线性分类头
部分微调 (PARTIAL-K) :仅微调主干网络最后 k 层, 重定义主干与分类头的边界
多层感知机 (MLP-k) :采用 k MLP 替代线性分类

  (c) 参数子集调优方法:

侧边网络 (SIDETUNE ) 训练辅助网络,将预训练特征与调优特征线性融合后输入分类头
偏置调优 ( BIAS ) 仅微调主干网络的偏置项参数
适配器插入 ( ADAPTER ) Transformer 层内插入带残差连接的 MLP 模块

包含 5 个经典细粒度分类任务数据集:
CUB-200-2011 (鸟类细分类)
NABirds (北美鸟类分类)
Oxford Flowers (花卉分类)
Stanford Dogs (犬种分类)
Stanford Cars (车型分类)
数据划分规范:对仅公开训练 / 测试集的数据,按 9:1 比例随机切分训练验证集
超参数选择:通过验证集进行调优

多样化视觉分类基准(VTAB-1k)

包含 19 个跨领域分类任务,分为三大类别:
自然图像类:标准相机拍摄的自然场景
专业图像类:医疗影像、卫星图像等专业设备采集数据
结构化任务类:需要几何理解的目标计数等任务

综合结果对比

1展示了在4个不同下游任务组上对预训练的ViT-B/16进行微调的结果,将VPT与其他7种微调协议进行比较。主要发现如下

1. VPT-Deep 4 类问题中的 3 类( 24 项任务中的 20 项)上优于全参数微调 (Full) ,且使用的总模型参数显著更少( 1.18 倍对比 24.02 倍),即使不考虑存储问题, VPT 也是调整大型视觉 Transformer 的有前途方法,这与 NLP 中提示微调不超过完全微调的研究 结果形成 对比
2. VPT-Deep 在所有任务组上优于其他参数高效微调协议(表 1(b,c) ),表明在 存储受限环境 VPT-DEEP 是最佳微调策略
3. 尽管 不如 VPT-Deep ,但 VPT-SHALLOW 在表 1(b) 中对头部导向微调方法仍有显著性能提升,若存储约束严重,它是部署多任务微调模型的值得选择的方法。

不同下游数据集性能对比

不同模型规模对比

Swin-B骨干网络实验效果 

        在层次化Transformer(以Swin为例)上的VPT应用表明:Swin在局部偏移窗口内采用多头注意力机制(MSA),并在深层进行补丁嵌入合并。为保持通用性,VPT采用最直接实现方式——提示在局部窗口内参与注意力计算,但在补丁合并阶段被忽略。实验使用ImageNet-21k监督预训练的Swin-Base模型,结果显示VPTVTAB2所有三个子类别中持续优于其他参数高效微调方法(bc),尽管全参数微调(FULL)整体准确率最高(但需付出极高的参数总量代价)。

Prompt放置位置

Prompt长度对比 

Prompt放置不同深度对比 

不同输出层对比

可视化对比

语义分割效果

附录部分

附录部分分别从图像分类,语义分割进行了进一步的实验证明,感兴趣的同学可以去看一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值