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

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.mfbz.cn/a/559605.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NAT基本配置

配置IP完成及缺省的路由如下; 此时R1pingISP是ping不通的,因为缺省是可以将数据传给R3,但是R3传不回去,知道目标IP地址但因其是私有内部IP,而自己的是公有IP,所以传不过去,此时就需要R2这个边界…

2024 发布Maven项目到中央仓库

注册sonatype账号 Maven中央仓库并不支持直接发布jar包,sonatype是其指定的第三方仓库之一,发布到此的项目会被定时同步到中央仓库 官方教程地址:https://central.sonatype.org/register/central-portal/ 访问网址:https://centra…

文件操作和IO

1.认识文件 我们先来认识狭义上的⽂件(file)。针对硬盘这种持久化存储的I/O设备,当我们想要进⾏数据保存时,往往不是保存成⼀个整体,⽽是独⽴成⼀个个的单位进⾏保存,这个独⽴的单位就被抽象成⽂件的概念,就类似办公桌…

# 从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(2)

从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(2) 段子手168 1、搭建 EurekaServer 注册中心,使用 Eureka 的步骤: 1)搭建 EurekaServer 创建工程,导入依赖坐标&…

Python-VBA函数之旅-globals函数

目录 一、globals函数的常见应用场景: 二、globals函数与locals函数对比分析: 1、globals函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:https://blog.csdn.net/ygb_1024?spm101…

基于springboot+vue+Mysql的广场舞团管理系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

牛客小白月赛91

A.Bingbong的化学世界 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 🌙“上…

AndroidStudio右下角显示内存使用情况

目录 一.具体效果 二.4.0以下版本 三.4.0以上版本 四.增加内存配置 一.具体效果 二.4.0以下版本 1.打开 Android Studio. 2.进入设置界面。点击 Android Studio 左上角的“File”,然后选择“Settings” 3.在设置界面中,选择“Appearance & Beha…

关于图像YUV格式分类和排布方式的全学习

【学习笔记】关于图像YUV格式分类和排布方式的全学习_yuv图像-CSDN博客 下图是将多个yuv420p图像(A和B),拼接成一个画面的思路 A大小:416*64 B大小:416*208 将A和B合并到一个416*416的尺寸上,代码如下 //整合char * ptd;ptd (char * ) malloc (416*41…

手把手教你实现 C 语言的函数多参默认值 「下」

以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/ifnDcV7AKrh6eVihVK9l5A 本文上接《手把手教你实现 C 语言的函数多参默认值 上》,下文提及的一些概念来源于上文,为方便阅…

使用LLM-API开发应用-DataWhale笔记

调用API 先使用一个例子 from openai import OpenAI ​ client OpenAI(# This is the default and can be omittedapi_keyos.environ.get("OPENAI_API_KEY"), //这个在环境env中 ) ​ completion client.chat.completions.create(# 调用模型:ChatGPT-…

【目标检测】YOLO系列-YOLOv1 理论基础 通俗易懂

为方便大家理解YOLO的原理,这里将YOLOv1的部分内容基础内容进行用比较直白的话和例子进行阐述,为后续大家学习YOLO作为铺垫。 1、模型所干的活 工作中,大家经常将 Word 文档 上传到某转换器,然后转换输出为PDF文档。目标检测中我…

单点登录实现:一次登录,到处运行

单点登录:一次登录,到处运行 举个场景,假设我们的系统被切割为N个部分:商城、论坛、直播、社交…… 如果用户每访问一个模块都要登录一次,那么用户将会疯掉, 为了优化用户体验,我们急需一套机制…

组件安全(Solr、Shiro、Log4j、Jackson、FastJson、XStream)

Solr 主要基于HTTP和 Apache Lucene 实现的全文搜索服务器。 特征&#xff1a;图标识别 端口&#xff1a;8393 CVE-2019-0193&#xff08;远程命令执行漏洞&#xff09; 漏洞版本&#xff1a;Apache Solr < 8.2.0 利用条件&#xff1a; Apache Solr 的 DataImportHandler 启…

23-代码随想录第202题快乐数

202. 快乐数 简单 相关标签 相关企业 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到…

【C语言】指针详解(五)

目录 1.字符指针 1.1常量字符串 2.指针数组 3.数组指针 1.字符指针 字符指针就是指向字符的指针&#xff0c;字符指针可以存储字符变量的地址。 举例如下&#xff1a; 定义指针变量pa存a的地址&#xff0c;改变*pa的值&#xff0c;a也会随之改变 。 1.1常量字符串 &#x1f…

电机控制专题(一)——最大转矩电流比MTPA控制

文章目录 电机控制专题(一)——最大转矩电流比MTPA控制前言理论推导仿真验证轻载1Nm重载30Nm 总结 电机控制专题(一)——最大转矩电流比MTPA控制 前言 MTPA全称为Max Torque Per Ampere&#xff0c;从字面意思就可以知道MTPA算法的目的是一个寻优最值问题&#xff0c;可以从以…

PTA L2-047 锦标赛

题目 解析 把每一场比赛看作满二叉树的一个节点&#xff0c;父节点递归遍历子节点的结果&#xff0c;进行试填。 代码 #include <bits/stdc.h>using i64 long long;struct Node {int win, lose; };void solve() {int k;std::cin >> k;int siz (1 << k);…

Llama 3王者归来,可与GPT-4分庭抗礼,开源模型即将追上闭源模型了?

“有史以来最强大的开源大模型”Llama 3引爆AI圈&#xff0c;马斯克点赞&#xff0c;英伟达高级科学家Jim Fan直言&#xff0c;Llama 3将成为AI大模型发展历程的“分水岭”&#xff0c;AI顶尖专家吴恩达称Llama3是他收到的最好的礼物。 4月18日&#xff0c;AI圈再迎重磅消息&a…

一例Mozi僵尸网络的挖矿蠕虫分析(workminer)

概述 这是一个Linux平台的挖矿蠕虫&#xff0c;使用了go和C混合编译而成&#xff0c;主要通过爆破SSH口令进行传播&#xff0c;属于Mozi僵尸网络。其中GO代码负责SSH相关的爆破传播&#xff0c;以及对Config的处理&#xff0c;C代码则负责处理加入Mozi P2P网络&#xff0c;拉取…
最新文章