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

news/2024/5/27 6:55:12/ 标签: 学习, 深度学习, 人工智能

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.ppmy.cn/news/1434652.html

相关文章

eCharts 折线图 一段是实线,一段是虚线的实现效果

在lineStyle里写了不生效的话,可以尝试数据拼接 option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [150, 230, 224,218 ,,,],type: line},{data: [,,, 218, 135, 147, 260],type: line,lineStyl…

[VIM] MiniBufExplorer插件

我们在开发环境或者debug环境的时候,经常需要在不同的路径下的不同file中切换,一种可行的方法是开多个vim窗口,并排放着,需要开哪个的时候点哪个,但是打开的file很多的时候就不太方便了,这里推荐一个vim 插…

蝴蝶书--ChatGPT基础科普

temperature的参数调整输出的概率分布,这个参数值越大,分布就看起来越平滑,也就是高概率和低概率的差距拉小了(对输出不那么确定) Top-P在累计概率超过P的词里进行选择,对于概率分布比较均匀的情况&#x…

设计模式——状态模式19

状态模式是一种行为设计模式, 允许一个对象在其内部状态改变时改变它的行为,对象看起来好像修改了它的类。状态模式的核心是状态与行为绑定,不同的状态对应不同的行为。 设计模式,一定要敲代码理解 状态行为抽象 //在某种状态下&…

创新与乐趣的融合 —— 探索我们独家录音变音芯片在学舌玩具领域的应用

一:概述 学舌玩具,又称作复读玩具或模仿玩具,是一类设计用来录制人声并重复播放的互动式玩具。这类玩具以其能够模仿人类语音的特性而受到小朋友和宠物主人的喜爱。这些玩具通常具有以下特点和功能: 1. 录音和播放功能&#xff…

Kafka 3.x.x 入门到精通(02)——对标尚硅谷Kafka教程

Kafka 3.x.x 入门到精通(02)——对标尚硅谷Kafka教程 2. Kafka基础2.1 集群部署2.1.1 解压文件2.1.2 安装ZooKeeper2.1.3 安装Kafka2.1.4 封装启动脚本 2.2 集群启动2.2.1 相关概念2.2.1.1 代理:Broker2.2.1.2 控制器:Controller …

【归并】Leetcode 排序数组

题目讲解 912. 排序数组 算法讲解 使用归并算法排序数组,我们先在数组中寻找一个mid点,然后把数组分成了两部分,我们先排左部分,排左边部分的时候有需要将当前的子数组分成两部分,继续循环,直到当前子数组…

【智能算法】吉萨金子塔建造算法(GPC)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年,S Harifi等人受到观古代遗迹构造启发,提出了吉萨金子塔建造算法(Giza Pyramids Construction, GPC)。 2.算法原理 2.1算法思想 GPC模拟了古埃…

Modbus转Profinet网关接电表与工控机通讯

Modbus转Profinet网关(XD-MDPN100/300)的主要功能是实现Modbus协议和Profinet协议之间的转换和通信。Modbus转Profinet网关集成了Modbus和Profinet两种协议,支持Modbus RTU主站/从站,并可以与RS485接口的设备,如变频器…

C++从入门到出门

C 概述 c 融合了3中不同的编程方式: C语言代表的过程性语言C 在C语言基础上添加的类代表的面向对象语言C 模板支持的泛型编程 1、在c语言中头文件使用扩展名.h,将其作为一种通过名称标识文件类型的简单方式。但是c得用法改变了,c头文件没有扩展名。但是…

【k8s】(四)kubernetes1.29.4离线部署之-组件安装

(一)kubernetes1.29.4离线部署之-安装文件准备 (二)kubernetes1.29.4离线部署之-镜像文件准备 (三)kubernetes1.29.4离线部署之-环境初始化 (四)kubernetes1.29.4离线部署之-组件安装…

Ubuntu Pycharm安装

下载PyCharm,https://www.jetbrains.com/pycharm/download/?sectionlinux 然后按照下图执行安装: 安装的时候可能出现的问题: 问题1:No JDK found. Please validate either PYCHARM_JDK, JDK_HOME or JAVA_HOME environment var…

Day3: 5道C++ 面向对象高频题整理

1、虚函数表是针对类的还是针对对象的?同一个类的两个对象的虚函数表是怎么维护的? 答:虚函数表,或者称为vtable,是针对类的。虚函数表是一个存储类中所有虚函数地址的数组。当我们定义一个类,并在其中声明…

软件游戏缺失d3dcompiler_43.dll怎么修复?分享多种靠谱的解决方法

在我们日常频繁地操作和使用电脑的过程中,时常会遇到一些突发的技术问题。其中一种常见的情况是,在尝试启动或运行某个应用程序时,系统会弹出一个错误提示窗口,明确指出当前电脑环境中缺少了一个至关重要的动态链接库文件——d3dc…

【2024官方文档版学习笔记】React-脱围机制

系列文章 一、 React快速入门 二、React描述IU 三、React添加交互 四、React状态管理 五、React脱围机制 五、脱围机制 “脱围机制”(Fallback Mechanism)通常指的是在组件加载过程中,当遇到加载失败或者加载时间过长的情况时,能…

Springboot的日常操作技巧

文章目录 1、自定义横幅2、容器刷新后触发方法自定义3、容器启动后触发方法自定义**CommandLineRunner**ApplicationRunner 不定时增加 参考文章 1、自定义横幅 简单就一点你需要把banner.text放到classpath 路径下 ,默认它会找叫做banner的文件,各种格式…

vue封装请求、合并js、合并多个js

vue封装请求、合并js、合并多个js 作为一个后端开发,写前端时发现,每次导入api接口都会有一堆代码,像下面这样: import {footprintList, footprintDelete} from /api/userApi.js import {addressList} from /api/userApi.js impor…

【软件工程与实践】(第四版)第6章习题答案详解

第6章 一、填空题二、选择题三、简答题四、实践题 一、填空题 (1) 编程语言是人与计算机交流的 工具。 (2) 从语言层次上,编程语言可以分为 低级语言 和 高级语言 两种类型。 (3) 1960年代出现…

设计模式-创建型-抽象工厂模式-Abstract Factory

UML类图 工厂接口类 public interface ProductFactory {Phone phoneProduct();//生产手机Router routerProduct();//生产路由器 } 小米工厂实现类 public class XiaomiFactoryImpl implements ProductFactory {Overridepublic Phone phoneProduct() {return new XiaomiPhone…

聊聊linux的文件缓存

序 本文主要研究一下linux的文件缓存 文件缓存 linux使用page cache来缓存最近读取的文件,也有目录结构(dcache: Directory Entry Cache)缓存及inode缓存,它们都使用了LRU算法来管理这些page及dentries cache vmstat ## vmstat procs -----------me…