【提示学习论文】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.mzph.cn/web/2860.shtml

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

相关文章

OpenCV 如何实现边缘检测器

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV如何实现拉普拉斯算子的离散模拟 下一篇 :OpenCV系列文章目录(持续更新中......) 目标 在本教程中,您将学习如何: 使用 OpenCV 函数…

测试用例设计方法-异常测试

飞的最高的海鸥,能看到最远的奇景。大家好,继续给大家分享如何进行异常测试,首先要做好异常测试,需要我们对被测系统进行全面的了解,熟悉被测系统的功能、架构和运行机制,然后在这个基础上尽可能覆盖各种的…

MATLAB命令

MATLAB是一个用于数值计算和数据可视化的交互式程序。您可以通过在命令窗口的MATLAB提示符 ‘>>’ 处键入命令来输入命令。 在本节中,我们将提供常用的通用MATLAB命令列表。 用于管理会话的命令 MATLAB提供了用于管理会话的各种命令。下表提供了所有此类命令…

递归神经网络(RNN)在AI去衣技术中的深度应用

在人工智能(AI)技术飞速发展的今天,图像处理和计算机视觉领域不断取得新的突破。其中,AI去衣技术作为一个具有挑战性的研究方向,引起了广大研究者和公众的关注。递归神经网络(RNN)作为深度学习的…

《Python源码剖析》之PyTypeObject

前言 这一篇博客原本应该是写在上一篇关于pyObject对象的博客中的,但是为了不把内容写的又臭又长,给读者减轻痛苦,给我也减少压力,于是就专门用一篇介绍一下今天的主角—pyTypeObject。 开始 还记得在上一篇我们有聊到&#xf…

vscode 使用文件模板功能来添加版权信息

vscode 新建文件的时候,自动填充作者及版权信息 无需使用插件,操作如下: 选择 “首选项(Preferences)”。在搜索框中输入 “file template” 或者 “文件模板”,然后选择相关的设置项。 {"C_Cpp.clang_format_fallbackSt…

嵌入式虽然入门容易,但精通难度很大。

在开始前我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!此外,嵌入式系统的…

蓝桥杯——分巧克力

思路非常简单,就是一个二分法。 注意一下l和r的取值,就可以了。 // 如何进行切分巧克力:横纵除法。例如:一块6*5的,欲切为3*3的小块,横:6/2 3;纵:5/31.所以可以切成3*…

职业技能鉴定服务中心(新闻系统+证书查询系统)

后端采用ThinkPHP8,最新tp框架 前端采用divcss布局 数据库采用MySQL 采用三种技术实现新闻系统和证书查询系统 源码:git clone https://gitee.com/3539949703/certificate-website.git 效果图如下:

[Linux_IMX6ULL驱动开发]-设备树简述

目录 设备树的引入 设备树具体框架 设备树的属性 label address-cells和size-cells compatible model status reg 设备树的编译 内核对设备树的处理 plateform_device如何对应plateform_driver 设备树的引入 之前已经学习了解过了总线驱动模型的概念,也…

webots学习记录8:R2023b如何在某个零件上添加一个恒定的力(矩)

在webots安装路径下,从include\controller\c\webots\supervisor.h中可以看到如下定义: void wb_supervisor_node_add_force(WbNodeRef node, const double force[3], bool relative); void wb_supervisor_node_add_force_with_offset(WbNodeRef node, c…

37-5 基于时间的盲注 SQL 注入 PoC 的 Python 编写

攻击目标就用sql靶场的第9关,手注与靶场搭建:22-5 SQL注入攻击 - 基于时间的盲注-CSDN博客 poc import concurrent.futures # 导入并发模块 import requests # 导入发送HTTP请求的库 import string # 导入处理字符串的库url = "http://127.0.0.1/sqli-labs-master…

AndroidStudio中虚拟机(AVD)无法启动,出现unable to locate adb错误

1.检查Android SDK Platform-Tools是否安装(个人是通过这个方法解决的) 首先通过File-Project Structure-Project SDK检查SDK有没有被选中 步骤:打开file -> settings ,搜索SDK 之后点击"-",在点击Apply进行安装 2.可能是驱动的问题 电脑…

深入解析YOLOv2

深入解析YOLOv2 引言 目标检测是计算机视觉中的一个核心问题,它旨在识别图像中所有感兴趣的目标,并给出它们的类别和位置。近年来,随着深度学习技术的发展,目标检测领域取得了巨大的进步。YOLO(You Only Look Once&a…

基于OSAL 实现UART、LED、ADC等基础示例 4

1 UART 实验目的 串口在我们开发单片机项目是很重要的,可以观察我们的代码运行情况,本节的目的就 是实现串口双工收发。 虽然说 osal 相关的代码已经跟硬件关系不大了,但是我们还是来贴出相关的硬件原理图贴出来。 1.1 初始化 osal_init_s…

交换式网络捕获网络流量的方法

交换式网络捕获网络流量的方法 参考资料: https://blog.csdn.net/weixin_44143678/article/details/107559329 # 一.端口镜像 端口镜像,又称为“端口监视”或“端口抄送”,是一种网络管理技术,旨在将网络设备上的特定端口的流…

PyTorch Conv2d 前向传递中发生了什么?

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Springboot的日常操作技巧

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

spring的bean创建流程源码解析

文章目录 IOC 和 DIBeanFactoryApplicationContext实现的接口1、BeanFactory接口2、MessageSource 国际化接口3、ResourcePatternResolver,资源解析接口4、EnvironmentCapable接口,用于获取环境变量,配置信息5、ApplicationEventPublisher 事…

使用扩展卡尔曼滤波器进行包裹测量的状态估计

此示例说明如何使用扩展卡尔曼滤波器算法对涉及圆形包裹角度测量的 3D 跟踪进行非线性状态估计。对于目标跟踪,传感器通常采用球形框架来报告物体的方位角、距离和仰角位置。该组的角度测量值在一定范围内报告。例如,报告的方位角范围为- 180∘ 到180∘或…