【提示学习论文】BlackVIP: Black-Box Visual Prompting for Robust Transfer Learning论文原理

news/2024/5/5 10:36:05

BlackVIP: Black-Box Visual Prompting for Robust Transfer Learning

BlackVIP:稳健迁移学习的黑盒视觉提示

问题

  • 黑盒白盒?
    黑盒和白盒的概念与对预训练模型内部参数的了解程度相关。黑盒指的是对预训练模型的参数和结构缺乏详细了解,通常只能通过使用其API或者专有软件进行模型调用,而无法直接访问模型内部的参数。相反,白盒则指的是对模型的参数和结构有充分的了解,可以直接访问和修改模型的参数。

在这里插入图片描述

  • FT和VP?
    FT(Fine-Tuning)和VP(Visual Prompting)的区别是预训练模型参数的更新方式和参数数量不同
    FT(Fine-Tuning):通过反向传播算法直接更新整个预训练模型的参数,以适应特定的下游任务(涉及整个预训练模型的参数)
    VP(Visual Prompting):在输入像素空间中添加少量的参数作为视觉提示,来引导预训练模型的适应(涉及添加的少量提示参数)

0 Abstract

在 BlackVIP 中,VP 是由协调器(Coordinator)设计的,并且通过黑盒优化算法(SPSA-GC)来进行优化。

1 Introduction

现实世界中的许多AI应用程序都是作为API和专有软件服务的,由于商业侵犯模型所有权问题,不透露实现级别的信息或完整的参数。BlackVIP设计了与原始给定图像相同形状的提示,以覆盖整个图像视图。

  • 我们提出了coordinator协调器,这是一种非对称的自编码器风格的网络,它接收原始图像并为每个单独的图像产生相应的视觉提示

  • 优化重新参数化的模型而不是提示本身:不优化提示,优化产生提示的coordinator

  • 采用SPSA-GC,基于扰动参数的输出差异估计目标黑盒模型的梯度,然后以基于动量的前瞻方式校正初始估计值。

  • 通过对参数进行随机扰动,观察模型输出的变化来估计目标模型的梯度,不需要直接访问目标模型的内部结构或参数,只通过观察输出的变化来推断梯度信息。

2 Related work

ZOO是一种无导数优化算法,主要通过对输入进行随机扰动,并观察输出的变化来推断目标函数的梯度信息,从而实现优化。

3 Preliminary

4 Methodology

在这里插入图片描述

4.1 Coordinator

  • 一个冻结的编码器 f ( ⋅ ) f(⋅) f(),在ImageNet 上进行了预训练
  • 一个轻量级的可学习解码器 g ϕ d ( ⋅ ) g_{ϕd}(⋅) gϕd()组成
    在这里插入图片描述
  • 构造带提示的图像
    在这里插入图片描述
  • 视觉提示 h ϕ ( x ) = g ϕ d hϕ(x)=gϕd hϕ(x)=gϕd(图像 x x x的特征向量,提示触发向量)
  • 带有提示的图像 x h e a d = c l i p x_{head}=clip xhead=clip( x x x原始输入图像+ ϵ ϵ ϵ超参数*视觉提示 h ϕ ( x ) hϕ(x) hϕ(x))

4.2 端到端的黑盒视觉提示

4.2.1 SPSA

在这里插入图片描述

  • L ( ⋅ ) L(⋅) L() 是待优化的损失函数
  • ϕ i ϕi ϕi表示第 i i i 步的参数向量
  • Δ i Δi Δi是一个随机扰动向量
  • a i ai ai是正衰减序列,可以类比学习率,是一个正数序列,控制着每次参数更新的步长大小,并且随着迭代次数增加而逐渐减小。
    SPSA 使用两个相反方向的扰动来估计梯度的差异,并根据该估计进行参数更新。这种方法在高维空间中能够高效地估计梯度,因此在黑盒优化等问题中得到了广泛应用。

4.2.2 带梯度矫正的SPSA

在这里插入图片描述

在这里插入图片描述

5 Results

实验设置

在这里插入图片描述
为了研究提示设计的重要性,我们考虑了两个合成数据集:Biased MNIST和Loc-MNIST。

优化算法的比较

在这里插入图片描述
SGD-NAG:使用真梯度
SPSA-GC:比Random Gradient- free (RGF)更快更稳定

分布移位的鲁棒性

在这里插入图片描述

合成数据集的即时可视化,与VP不同,我们的BlackVIP设计了输入依赖的条件提示,有助于在分布/对象位置转移下的鲁棒性。

6 Conclusion

我们开创了黑盒视觉提示,用于预训练模型的现实和稳健适应。我们提出了BlackVIP,它将输入空间提示重新参数化为条件生成网络协调器,并配备了我们的新ZOO算法SPSA-GC,而不是反向传播。BlackVIP不需要模型架构或参数的任何可访问性,并有效地将预训练的模型适应目标下游任务。大量的实证结果表明,BlackVIP在最小参数、最小内存容量、最小API查询和最小成本的情况下,持续提高了少量射击适应、分布移动和对象位置移动的性能。


http://www.mrgr.cn/p/04124242

相关文章

python爬虫小案例——汽车之家

本篇文章是使用bs4中的BeautifulSoup和requests解析网页和获取数据👑🌟 文章目录 🌟前言一、🍉bs4中的BeautifulSoup二、🍉bs4的语法三、🍉内容实践1. 确定想要爬取的内容2. 分析网页3. 获取数据分析 &…

三、CPU基础-缓存

计算机中缓存一般分为两个部分 1.内存 2.CPU Cache 一、CPU Cache分级 CPU Cache 通常分为大小不等的三级缓存,分别是 L1 Cache、L2 Cache 和 L3 Cache。 L1 Cache 和 L2 Cache 都是每个 CPU 核心独有的(通常会分为「数据缓存」和「指令缓存」&#…

QA测试开发工程师面试题满分问答20: 软件的安全性应从哪几个方面去测试?

软件的安全性测试应从多个方面进行,并确保覆盖以下关键方面: 当回答问题时,可以根据自己的经验和知识,从上述要点中选择适合的方面进行详细说明。强调测试的综合性、全面性和持续性,并强调测试的重要性以及如何与开发团…

政安晨:【Keras机器学习示例演绎】(七)—— 利用 NeRF 进行 3D 体积渲染

目录 简介 设置 下载并加载数据 NeRF 模型 训练 可视化训练步骤 推理 渲染三维场景 可视化视频 结论 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益&#xff0…

01-服务与服务间的通信

这里是极简版,仅用作记录 概述 前端和后端可以使用axios等进行http请求 服务和服务之间也是可以进行http请求的spring封装的RestTemplate可以进行请求 用法 使用bean注解进行依赖注入 在需要的地方,自动注入RestTemplate进行服务和服务之间的通信 注…

制造数字化“管理套路”

在当今竞争激烈的市场环境中,制造企业始终关心三个核心问题:生产效率、产品质量、成本控制,所以许多企业渴望加强对生产过程的管理控制。 生产过程是一个相对复杂的过程,涉及到多个环节和因素。从原材料的采购到产品的设计、生产…

Nginx莫名奇妙返回了404

描述 nginx作为反向代理,代理python的服务,但是通过代理访问服务的时候,报了404的错误。 难受的是客户现场没有查看日志的权限,只有查看配置文件的权限,我们检测了几遍配置文件也没有找到问题,哎~ 问题引…

idea中打印日志不会乱码,但是部署到外部tomcat中乱码了。

问题:如图Tomcat乱码,而且启动时的系统日志不会乱码,webapp中的打印日志才乱码。 idea中的情况如下:正常中文展示。 问题分析:网上分析的原因是Tomcat配置的字符集和web应用的字符集不匹配,网上集中的解决…

233 基于matlab的多通道非负矩阵分解(MNMF)算法

基于matlab的多通道非负矩阵分解(MNMF)算法。其能够寻找到一个非负矩阵W和一个非负矩阵H,满足条件VW*H,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。使用EM准则对混合信号进行分解。程序已调通,可直接运行。 233 多通道非…

SpringBoot+Vue开发记录(四)

说明: 本篇文章的主要内容是软件架构以及项目的前端Vue创建 一、软件架构 我道听途说的,听说这个东西很关键很重要什么的。 软件架构(software architecture)是一个系统的草图,是一系列相关的抽象模式,用于指导大型软…

汇智知了堂晨会聚焦:NAS应用如何赋能网络安全实战

在近期汇智知了堂网络安全75班的晨会上,一场关于NAS应用的深入分享完美展开。学员们以饱满的热情投入到这场安全讨论中,共同探索网络安全的新天地。 此次分享会聚焦于NAS的应用,旨在帮助学员们更好地了解NAS的定义与功能,掌握其在…

05节-51单片机-模块化编程

1.两种编程方式的对比 传统方式编程: 所有的函数均放在main.c里,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码的组织和管理,而且很影响编程者的思路 模块化编程: 把各个模块的代码放在不同的…

【微服务】spring读取配置文件多种方式深入详解

目录 一、前言 二、java配置文件介绍 2.1 java配置文件产生原因 2.2 项目使用配置文件好处 2.3 springboot项目配置文件的必要性 2.4 微服务架构下配置文件使用场景 三、java读取配置文件常用方法 3.1 使用Properties类读取配置文件 3.1.1 使用getResourceAsStream读取…

STM32 USB虚拟串口

电路原理图 usb部分 晶振部分 usb与单片机连接 配置信息 sys配置信息 rcc配置信息 usb配置信息 虚拟串口配置信息 时钟配置信息 项目配置信息 代码 包含文件 主函数代码 实验效果 修改接收波特率依然可以正常接收,也就是说单片机可以自动适应上位机的波特率设置。…

Linux 深入理解Linux文件系统与日志分析

在Linux系统中,文件名和文件数据是分开存储的 文件数据包含 元信息(即不包含文件名的文件属性) 和 实际数据 文件元信息存储在 inode(索引节点)里, 文件实际数据存储在 block(块)里; 文件名存储在目录块里 查看文件的元信息 stat 文件名 [ro…

HDFS详解(Hadoop)

Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)是 Apache Hadoop 生态系统的核心组件之一,它是设计用于存储大规模数据集并运行在廉价硬件上的分布式文件系统。 1. 分布式存储: HDFS 将文件分割成若干块…

【AI开发:音频】二、GPT-SoVITS使用方法和过程中出现的问题(GPU版)

1.FileNotFoundError: [Errno 2] No such file or directory: logs/guanshenxxx/2-name2text-0.txt 这个问题中包含了两个: 第一个:No module named pyopenjtalk 我的电脑出现的就是这个 解决:pip install pyopenjtalk 第二个&#xff1a…

Elasticsearch进阶篇(三):ik分词器的使用与项目应用

ik分词器的使用 一、下载并安装1.1 已有作者编译后的包文件1.2 只有源代码的版本1.3 安装ik分词插件 二、ik分词器的模式2.1 ik_smart演示2.2 ik_max_word演示2.3 standard演示 三、ik分词器在项目中的使用四、ik配置文件4.1 配置文件的说明4.2 自定义词库 五、参考链接 一、下…

MIMO-UNet复现,DeepRFT复现及总结

最近复现了去模糊网络MIMO-UNet及变体DeepRFT,并以此文做一个总结: 复现MIMO-UNet部分: 1.通过上一篇博文,我们已经知道了MIMO-UNet网络的大致组成结构 2.通过源网络的main.py文件,我们可以知道该网络间隔100轮保存一…

AI助力科研创新与效率双提升:ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写

2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在…