【提示学习论文七】Visual Prompt Tuning论文原理

文章目录

  • Visual Prompt Tuning(VPT)
  • 文章介绍
  • Abstract
  • 1 Introduction
  • 2 Related Work
  • 3 Approach
    • 3.1 准备工作
    • 3.2 Visual-Prompt Tuning(VPT)
      • 3.2.1 VPT-Shallow
      • 3.2.2 VPT-Deep
      • 3.2.3 Storing Visual Prompts 存储视觉提示
  • 4 实验
    • 主要结果
    • 模型设计变体的消融
  • 5 分析和讨论
  • 6 结论

Visual Prompt Tuning(VPT)

文章介绍

  • 这篇文章于2022年发表在ECCV(European Conference on Computer Vision),作者是Menglin Jia, Luming Tang,Bor-Chun Chen, Claire Cardie, Serge Belongie,Bharath Hariharan, Ser-Nam Lim。
  • VPT是一种有效的用于大规模Transformer的视觉微调,只需要在输入空间引入少量可训练参数,同时冻结backbone。

Abstract

目前适应预训练模型的操作方法涉及更新所有骨干参数,即全面微调。本文介绍了视觉提示调谐(Visual Prompt Tuning, VPT)作为一种有效的替代方案,在视觉上对大型变压器模型进行全微调。从高效调优大型语言模型的最新进展中获得灵感,VPT在保持模型主干冻结的同时,仅在输入空间中引入少量(不到模型参数的1%)可训练参数。通过对各种下游识别任务的广泛实验,我们表明,与其他参数高效调优协议相比,VPT实现了显着的性能提升。最重要的是,在跨模型容量和训练数据规模的许多情况下,VPT甚至优于完全微调,同时降低了每个任务的存储成本。代码可从github.com/kmnp/vpt获得。

1 Introduction

对于大模型适应下游任务时,通常的策略是进行端到端的全面微调,然而这种策略需要为每个人物存储部署单独的主干参数,代价比较高。在这里插入图片描述

  1. 目前的迁移学习:
  • 全精调(Full fine-tuning)
  • 头部导向(Head-oriented)
  • 骨干导向(Backbone-oriented)
  1. VPT相反,在输入空间中添加了额外的参数
  2. 在一系列基于预训练的ViT-B骨干适应的下游分类任务中,展示了不同方法的性能,包括均值和标准差。VPT在24个案例中的20个表现优于全精调,同时使用不到总模型参数的1%。

2 Related Work

3 Approach

我们提出了视觉提示调优(VPT)来适应大型预训练的视觉transformer模型,VPT在Transformer的输入空间中注入少量的可学习参数,并在下游训练阶段保持骨干的冻结。总体框架如图2所示。我们首先在第3.1节定义符号,然后在第3.2节正式描述VPT。
在这里插入图片描述

3.1 准备工作

3.2 Visual-Prompt Tuning(VPT)

给定一个预训练的Transformer模型,在Embed层之后的输入空间中引入了一组p个连续的维度为d的嵌入,即prompts。VPT有两个变体,即VPT-shallowVPT-deep,取决于涉及的Transformer层数。

  • 红色:更新参数
  • 蓝色:冻结参数

3.2.1 VPT-Shallow

Prompts仅插入到第一个Transformer层L1中:
在这里插入图片描述

  • Z i Z_i Zi:第 i i i个Transformer层计算出的特征
  • x i x_i xi:class token
  • E i E_i Ei:图片的第 i i i个patch
  • [ x ⃗ i , Z ⃗ i , E ⃗ i ] ∈ R ( 1 + p + m ) × d [\vec{x}_i, \vec{Z}_i, \vec{E}_i] \in \mathbb{R}^{(1+p+m) \times d} [x i,Z i,E i]R(1+p+m)×d:ViT的输出

3.2.2 VPT-Deep

Prompts引入到每个Transformer层的输入空间中:

在这里插入图片描述
第( i i i+1)层的输入prompt集合: P i = p k i ∈ R d ∣ k ∈ N , 1 ≤ k ≤ m P_i = {p_{k_i} \in \mathbb{R}^d | k \in \mathbb{N}, 1 \leq k \leq m} Pi=pkiRdkN,1km

3.2.3 Storing Visual Prompts 存储视觉提示

VPT在存在多个下游任务时非常有益,只需存储每个任务学到的prompts和分类头(Head),并重复使用预训练Transformer模型的原始副本,从而大大减少了存储成本。

4 实验

主要结果

给出了在4个不同的下游任务组中平均微调预训练的VPT-b/16的结果

模型设计变体的消融

  • Prompt Location(提示位置):VPT和其他方法之间的一个重要区别是作为Transformer层的输入引入了额外的学习参数
    在这里插入图片描述
  • Prompt Length(提示长度):与完全微调相比,这是VPT调优所需的唯一额外超参数。
    在这里插入图片描述
  • Prompt Depth(提示深度):VPT的表现总体上与提示深度呈正相关,如果我们从上到下插入提示,准确的就会下降,这表明Transformer早期层的提示比后期层的提示更重要
    在这里插入图片描述

5 分析和讨论

6 结论

我们提出了可视化提示调优,这是一种新的参数高效方法,可以利用大型视觉Transformer模型进行广泛的下游任务。VPT在输入空间中引入了特定任务的可学习提示,保持预先训练的主干固定。我们证明VPT可以超越其他微调协议(通常包括完全微调),同时极大地降低存储成本。我们的实验也提出了关于不同预训练目标的视觉transformer的微调动力学,以及如何有效地转移到更广泛的视觉识别任务的有趣问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/627426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抠图换背景的工具有吗?分享4款好用的!

在数字时代,设计已经成为了我们生活中不可或缺的一部分。无论是为了工作还是个人爱好,我们都需要掌握一些设计技能。其中,抠图换背景是一项非常重要的技能。那么,有哪些工具可以帮助我们快速、准确地完成这项任务呢?今…

公司运营数据分析大屏:引领企业决策,驱动业务增长

在数字化时代,数据已经成为企业决策的关键。为了更好地洞察市场趋势、优化业务流程、提升运营效率,越来越多的企业开始引入数据分析大屏以分析公司运营状况。这一创新举措不仅改变了传统的管理模式,更引领企业迈向智能化决策的新篇章。 公司运…

MySQL进阶45讲【2】日志系统:一条SQL更新语句是如何执行的?

1 前言 上篇文章我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信大家还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句…

最新使用宝塔反代openai官方API接口搭建详细教程及502 Bad Gateway错误问题解决

一、前言 宝塔反代openai官方API接口详细教程,实现国内使用ChatGPT502 Bad Gateway问题解决, 此方法最简单快捷,没有复杂步骤,不容易出错,即最简单,零代码、零部署的方法。 二、实现前提 一台海外VPS服务…

vite打包相关+本地http-server运行打包dist文件进行检测

目录 一.去到vite.config.ts文件 1.添加内容 2.解释 3.打包 二.本地开启http-server服务 1.全局安装http-server 1.1可以通过如下命令查看是否安装http-server 1.2使用如下命令安装 2.进入项目启动服务 3.查看效果 一.去到vite.config.ts文件 1.添加内容 build: {o…

浪之潮科技:动力恢复清积碳,尾气治理三元催化修复

针对汽车出现油耗增加、动力减弱以及尾气检测不合格等情况,深圳市浪之潮科技有限公司(以下简称:浪之潮科技)求真务实、勇于创新,独创两大系统六大部位——动力恢复清积碳、尾气治理三元催化修复,为广大车主…

【iOS】数据持久化(四)之FMDB基本使用

正如我们前面所看到的,原生SQLite API在使用时还是比较麻烦的,于是,开源社区就出现了一系列将SQLite API进行封装的库,其中FMDB的被大多数人所使用 FMDB和SQLite相比较,SQLite比较原始,操作比较复杂&#…

进程切换和是Linux2.6内核中进程调度的算法

正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 进程切换 进程并发就需要做到进程切换,一个CPU一套寄存器但是需要运行的进程有很多…

基于cy7c68013的逻辑分析仪nanoDLA全套软件linux下编译测试

0. 环境 - win10 - ubuntu22 - nanoDLA 提前获取到源码:-> 浏览器打开 https://github.com/wuxx/nanoDLA -> Download as zip. 硬件就直接用taobao买到的,原理图是 1. win10出厂测试 1.1 安装pulseview nanoDLA-master\software\pulseview-0.4.…

014集:python访问互联网:网络爬虫实例—python基础入门实例

以pycharm环境为例: 首先需要安装各种库(urllib:requests:Openssl-python等) python爬虫中需要用到的库,大致可分为:1、实现 HTTP 请求操作的请求库;2、从网页中提取信息的解析库;3、Python与…

外贸货源怎么找?9大优质货源渠道分享!

近几年跨境电商无货源模式大火了一把,让不少人都跃跃欲试。毕竟这种模式投资少,门槛低,回本快,想增加额外收入或创业的人们都争相涌入。但是要想做得好,选好货源渠道就是关键了。如果不小心选错了供应商,可…

MybatisPlus框架入门级理解

MybatisPlus 快速入门入门案例常见注解常用配置 核心功能条件构造器自定义SQLService接口 快速入门 入门案例 使用MybatisPlus的基本步骤: 1.引入MybatisPlus的起步依赖 MybatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能&#…

如果你正在学自动化测试,那么请你仔细看完这篇文章

接触了不少同行,由于他们之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作5年以上的人。 本人从事软件自动化测试已经近5年,从server端到web端,从API到mobile,切身体会到自动化带来的好处与痛楚…

python面试题

python装饰器 装饰器的本质就是一个函数能为其它函数增加额外功能 装饰器不加参数 #coding:utf-8 from time import time#装饰器函数 def elapsed(target):"统计目标函数执行的耗时"def decorated(*args,**kwargs):start time()r target(*args,**kwargs)end tim…

NXP-RT1176开发(一)——环境搭建(MCUXpressoIDE/VSCode)

目录 1. 安装IDE 1.1 官方开发的IDE软件 1.2 Config工具下载 1.3 说明(需先有SDK) 2. 下载SDK 3. VScode环境下编译 3.1 安装插件 3.2 确保本地有交叉编译工具链和CMAKE 3.3 加载本地SDK 3.4 导入例程编译 1. 安装IDE 该处理器编译规则可以MDK…

FlinkAPI开发之水位线(Watermark)

案例用到的测试数据请参考文章: Flink自定义Source模拟数据流 原文链接:https://blog.csdn.net/m0_52606060/article/details/135436048 Flink中的时间语义 哪种时间语义更重要 从《星球大战》说起 数据处理系统中的时间语义 在实际应用中&#xff0c…

vue cli 配置了productionSourceMap: true 开启source-map 没有生成map文件

因为UglifyJsPlugin导致生成map失败,可以将其注释即可 也可以加上 new UglifyJsPlugin({sourceMap:true })

基于Java+SSM运动会管理系统详细设计和实现【附源码】

基于JavaSSM运动会管理系统详细设计和实现【附源码】 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 …

C++写二进制文件

源文件 #include <iostream> #include <fstream> #include <sstream> #include <cmath>void convert2() {// 打开输入文本文件std::ifstream inputFile("mask.txt");// 打开输出二进制文件std::ofstream outputFile("mask.dat", …

现在00后开发人员不晓得加班为何事嘛?

我招了两个做HTML5开端开发的人员&#xff0c;是从培训机构招来的&#xff0c;按理说他们应该很努学很用样才对的。他们上班第一天我就跟他们讲&#xff0c;我们不需要上、下班打卡&#xff1b;你们也不必太过担心迟到或早退。因为我们搞开发的人员首先是按自己的工作任务完成情…