(CVPR,2024)Adversarial Prompt Tuning:只需一个提示词就足以提升预训练视觉-语言模型的对抗性鲁棒性

文章目录

    • 相关资料
    • 摘要
    • 引言
    • 对抗性鲁棒性的文本提示
      • CLIP回顾
    • 方法
      • 提示参数化
      • 提示优化
    • 实验

相关资料

论文:2403.01849] One Prompt Word is Enough to Boost Adversarial Robustness for Pre-trained Vision-Language Models (arxiv.org)

代码:TreeLLi/APT: One Prompt Word is Enough to Boost Adversarial Robustness for Pre-trained Vision-Language Models (github.com)

摘要

大型预训练视觉-语言模型(VLMs),如CLIP,尽管具有显著的泛化能力,但极易受到对抗性样本的攻击。本研究从文本提示这一新颖角度出发,而不是广泛研究的模型权重(在本研究中固定不变),来研究VLMs的对抗性鲁棒性。我们首先展示了对抗性攻击和防御的有效性都对所使用的文本提示非常敏感。受此启发,我们提出了一种通过为VLMs学习鲁棒文本提示来提高对对抗性攻击的抵抗力的方法。我们提出的方法,名为对抗性提示微调(APT),在计算和数据效率方面都非常有效。我们进行了广泛的实验,涵盖了15个数据集和4种数据稀疏性方案(从1-shot到完整训练数据设置),以展示APT相较于手工设计的提示和其他最先进的适应方法的优越性。APT在分布内性能以及在输入分布偏移和跨数据集下的泛化能力方面表现出色。令人惊讶的是,通过简单地向提示中添加一个学习到的词,APT可以显著提高准确性和鲁棒性(ϵ = 4/255),与手工设计的提示相比分别平均提高了+13%和+8.5%。在我们的最有效设置中,改进进一步提高,分别达到了+26.4%的准确性和+16.7%的鲁棒性。

引言

请添加图片描述

当前对抗性鲁棒性的适应方法集中在模型权重上,即对抗性微调或图像像素上,即对抗性视觉提示。尽管文本输入对VLMs的准确性有显著影响,并且具有如VLMs简单支持(因此不需要修改架构)、参数效率高等优点,但以前很少研究文本提示在对抗性鲁棒性方面的应用。本工作旨在通过研究文本提示在对抗性鲁棒性中的作用,提出一种新的方法来调整文本提示以提高对抗性鲁棒性(见图2)。

请添加图片描述

文本提示如何影响CLIP的对抗性攻击和防御。我们的主要发现包括:

  1. 对抗性攻击的强度对生成对抗性示例时使用的提示很敏感
  2. 当用于攻击的提示与受害者模型在推理中使用的提示相同时,几乎所有最强的对抗性示例都是生成的
  3. CLIP的对抗性鲁棒性对用于推理的提示很敏感

前两个发现为如何提示强大的对抗性攻击提供了启示。最后一个发现促使我们提出对抗性提示微调(APT)来学习基于对抗性示例的鲁棒文本提示,以提高其对抗性鲁棒性。APT以软提示的形式参数化提示,即将类别嵌入与一系列可学习的向量连接起来(如图3所示)。这些向量构成了数据和类别的上下文描述。它们可以统一为所有类别共享,或者特定于每个类别。然后提出了三种不同的提示策略,以生成训练对抗性示例,可学习的向量被优化以最小化预测损失,如交叉熵。

对抗性鲁棒性的文本提示

CLIP回顾

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

算法1是一个伪代码,描述了对CLIP模型进行ℓ∞范数下的对抗性攻击的过程。这个过程包括了对图像和文本的扰动,以生成对抗性样本。

算法1 伪代码 for ℓ∞ adversarial attack on CLIP. 如果 perturb t 为真,则扰动文本。K 是步数。α (α′) 是图像 (文本) 扰动的步长。
1: function ATTACK(x, y, t, perturb t)
   2: δ = uniform(−ϵ, ϵ)  // 在图像像素上初始化扰动,范围在 -ϵ 到 ϵ 之间
   3: δ′ = 0  // 文本扰动初始化为 0
   4: for 1 → K do
   5: x′ = min(0, max(x + δ, 1))  // 将扰动后的像素值限制在 [0, 1] 范围内
   6: L = L(x′, t + δ′, y; θv, θt)  // 计算损失函数,包括图像、文本和真实标签
   7: δ = min(−ϵ, max(δ + α · SIGN(∇xL), ϵ))  // 更新图像扰动 δ 以最大化损失函数
   8: if perturb t then  // 如果需要扰动文本
   9: δ′ = δ′ + α′ · ∇tL  // 更新文本扰动 δ′ 以最大化损失函数
  10: end if
  11: end for
  12: return min(0, max(x + δ, 1))  // 返回最终扰动后的图像,确保像素值在 [0, 1] 范围内
  13: end function

这个算法的目的是通过逐步增加图像和文本的扰动来找到能够让模型做出错误预测的对抗性样本,同时确保这些扰动足够小,以至于对人类观察者来说几乎是不可察觉的。

方法

在这里插入图片描述

提示参数化

我们首先将文本提示中的上下文参数化为可学习的。类别 C j C_j Cj可以放置在上下文向量序列内的任意位置。为了简单起见,我们仅测试了三个位置:前、中、后。实证结果显示,这三个位置的结果没有区别,因此默认使用后端

我们采用了两种上下文参数化的变体:统一上下文(UC)和类别特定上下文(CSC)。在UC中,所有类别共享相同的上下文向量序列,因此无论使用多少类别,都只有一个上下文向量序列。相比之下,CSC为每个类别分配单独的上下文向量,允许不同类别拥有不同的、定制的上下文。总的来说,当训练数据有限时(如1-shot和4-shot),UC更有效;当训练数据相对丰富时(如16-shot和使用全部数据),CSC变体更有效。

提示优化

为了提高对抗性鲁棒性,我们使用对抗性训练来训练提示上下文:

在这里插入图片描述

其中,扰动 δ i δ_i δi是由训练中的对抗方实时生成的,如算法2所示。在提示 t t t内部,只有上下文向量具有可学习参数,而类别嵌入是恒定的,因此优化提示本质上是优化上下文向量。

在这里插入图片描述

算法2是一个伪代码,用于描述Adversarial Prompt Tuning (APT) 方法中的训练过程。APT方法旨在通过对抗性训练来优化文本提示,以提高模型的对抗性鲁棒性。

算法2 伪代码 of APT
1: 函数 TRAIN_ONE_ITERATION(x, y)
   2: t = G("[CLASS]")  // 将类别名转换为词嵌入
   3: t = [v, t]  // 将上下文向量和类别嵌入连接起来
   4: 如果 constant 为真
     5: t' = G("a photo of a [CLASS]")
     6: x = ATTACK(x, y, t', false)  // 使用固定的提示进行对抗性攻击,不扰动文本
   7: 否则如果 on-the-fly 为真
     8: x = ATTACK(x, y, t, false)  // 使用最新更新的提示进行对抗性攻击,不扰动文本
   9: 否则如果 perturbed 为真
    10: x = ATTACK(x, y, t, true)  // 使用最新更新的提示进行对抗性攻击,并扰动文本
    11: 结束如果
    12: L = L(x, t, y; θv, θt)  // 计算损失函数
    13: v = v - λ · ∇vL  // 更新上下文向量 v,λ 是学习率
    14: 结束函数

这个算法的目的是通过对抗性训练来调整文本提示,使其能够在对抗性攻击下提高模型的鲁棒性。通过在每次迭代中更新文本提示的上下文向量,模型学习如何更好地抵抗对抗性扰动。

关键设计选择是生成 δ i δ_i δi的算法。 δ i δ_i δi依赖于用于攻击的文本提示 t ′ t′ t,它可以与公式中的 t t t不同。我们提出了三种可能的提示策略,用于生成训练对抗性示例,分别如下:

在这里插入图片描述

策略constant将攻击的提示固定为预定义的一个,“a photo of a [CLASS]”。此策略为每张图片生成的扰动在训练期间是恒定的,无论推理提示如何,因为模型权重和攻击提示都是固定的。这使得对抗性图像特征可以重用,从而加速了提示调整过程。然而,它可能不会带来好处,甚至可能损害性能,因为扰动现在不再是动态对抗性的。

相比之下,策略on-the-fly基于最新更新的文本提示t从公式生成对抗性示例

最后,策略perturbed,也称为多模态对抗性攻击,在策略on-the-fly的基础上,同时扰动图像和文本提示,以进一步扩大对抗性损失,并希望生成更强的对抗性示例。

实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【干货】SaaS出海业务必看的五个海外流量渠道

一、Product Hunt 月访客约500万 Product Hunt拥有巨大的用户流量和影响力,其全球Alexa排名在前四千以内。许多知名的产品,如ChatGPT、Notion等,都在这里成功上线并获得广泛关注。在美国有什么新产品(不论网站、APP还是插件&…

AI口语练习软件的技术难点

实现AI口语练习软件是一项复杂的任务,需要攻克多项技术难点。随着人工智能技术的不断发展,AI口语练习软件将变得更加智能和人性化,为用户提供更加有效的口语练习体验。北京木奇移动技术有限公司,专业的软件外包开发公司&#xff0…

商家转账到零钱申请内幕最详细解说

商家转账到零钱开通过程中,微信支付官方提供了多达十一种不同的转账场景,这些繁杂的选项经常让商家感到迷茫,难以选择最适合的场景。尤其是申请被拒后,一些商家会试图通过更换场景来碰运气。 不过根据我们上万例的开通经验来看&a…

FPGA设计从初级迈向高级的必备书籍:《FPGA设计实战演练(高级技巧篇)》(可下载)

在FPGA设计的广阔天地中,每一位工程师都是探索者,他们用代码编织逻辑,用创意构建系统。然而,随着技术的发展和系统需求的提升,传统的设计方法已难以满足现代FPGA设计的需求。《FEGA设计实战演练(高级技巧篇…

设置ingress的会话保持

设置ingress通过cookie的会话保持 1.创建ingress,正常填写转发规则 2.添加3个注释 nginx.ingress.kubernetes.io/affinity: cookie nginx.ingress.kubernetes.io/affinity-mode: persistent nginx.ingress.kubernetes.io/session-cookie-name: SESSION #切记&…

细节决定成败!2024年谷歌SEO实战指南

2024年,谷歌搜索引擎算法再次迎来更新,对网站的综合质量和细节优化更加重视。这引发了SEO圈的热议,有人认为细节优化至关重要,也有人对此嗤之以鼻。 误区:很多人做独立站优化以为通过SEO优化,有一个高招能…

为什么要学习Flink系统管理及优化课程?

Flink系统是一种流式处理框架,能够高效地处理大规模数据流。然而,要确保Flink系统的正常运行,就需要进行系统管理和优化。系统管理是指对Flink集群的监控、调度和维护,而系统优化则是指通过调整参数和优化算法,提高Fli…

Python-random模块

一、random模块的用法 import randomprint(random.random()) # 不需要传参,random 返回0-1随机小数print(random.uniform(1, 10)) # 需要传参,返回参数区间的随机小数print(random.randint(-100, 100)) # 需要传参,返回参数区间的随机整数…

腾讯云SSL证书获取及Nginx配置教程

前言 很多人应该都有属于自己网站,刚开始基本是只能用http进行访问,无法使用https安全访问,但是随着网络安全意识的不断提高,越来越多的网站开始使用HTTPS协议来保护用户的数据安全,SSL证书是实现HTTPS协议的关键组件,本文将讲解如何在腾讯云上获取SSL证书,并配置到Ngi…

k8s中的pod域名解析失败定位案例

问题描述 我在k8s中启动了一个Host网络模式的pod,这个pod的域名解析失败了。 定位步骤 敲kubectl exec -it [pod_name] -- bash进入pod后台,查看/etc/resolv.conf,发现nameserver配的有问题。这里我预期的nameserver应该使用宿主机的&…

橡胶:神奇的天然材料

你是否知道,橡胶其实是一个充满神秘与奇妙的世界? 从原始的乳胶,到现代工业中的合成橡胶,它的变化与运用令人叹为观止。橡胶,不仅是轮胎、胶鞋的原材料,更是众多工业产品不可或缺的组成部分。它的弹性、耐磨…

M41T00串行实时时钟-国产兼容RS4C400

RS4C400是一种低功耗串行实时时钟(RTC)。内置32.768 kHz振荡器(外部晶体控制)和RAM的前8个字节用于时钟/日历功能,并以二进制编码十进制(BCD)格式配置。地址和数据通过双线双向总线串行传输。内…

机票追位功能大揭秘

亲爱的民航代理人朋友们,你们是否在为客户寻找合适机票而费尽心思?是否曾为客户买不到心仪的机票而烦恼?是否曾因机票舱位紧张而焦虑?别担心,我们ASMS系统的机票追位功能经过重构优化后再次登场,将为你排忧…

python urllib2中文乱码怎么解决

很多乱码问题是编码造成的,一般对于中文网站基本是UTF-8,GB2312,可以GB18030通吃。 另一个造成乱码的原因是压缩格式,很多规模较大的网站都是以gzip的压缩格式输出页面的,所以在用BS解析之前需要先判断该网页是否经过…

42.vue-element-admin界面上的search字段配置

目录 一、配置方法 1.如果这个字段要放到search区域,则: 2.如果这个字段不要放到search区域,则: 二、配置示例 1.先找到下面的vue文件 2.找到字段的配置区域 3.找到你要配置的字段,例如index 4.修改search.hid…

分贝通到餐解决方案全新升级

消费小票总是神出鬼没;申请、报销驴唇不对马嘴;虚报陷阱难逐一排查 部门餐标视而不见;单笔超支屡见不鲜;规则复杂总被吐槽记不住 发票、单据多如牛毛;发票合规层出不穷;审核对账气血两亏; ...... 针对上述问题,分贝通全面升级了到餐解决方案。 从一线CBD商务区到地方县城,优…

栈及其相关应用

栈是一种线性数据结构,栈的特征是数据的插入和删除只能通过一端来实现,这一端称为“栈顶”,相应的另一端称为“栈底”。 栈及其特点 用一个简单的例子来说,栈就像一个放乒乓球的圆筒,底部是封住的,如果你想…

如何在 Windows 上安装 MySQL(保姆级教程2024版)

MySQL 是最流行的数据库管理系统 (DBMS) 之一。它轻量、开源且易于安装和使用,因此对于那些刚开始学习和使用关系数据库的人来说是一个不错的选择。 本文主要系统介绍Windows的环境下MySQL的安装过程和验证过程。 目录 1 安装过程 1.1 前置要求 1.2 下载并安装 …

C语言,struct 结构体、union共用体的使用

//状态字节,根据数据定义几个标志,标志位依据联合体内部结构体进行变量定义 //目的,节省内存空间,省去特定字节 struct STATDATA {union{unsigned char stat;struct {unsigned stat0:1;unsigned stat1:1;unsigned stat2:1;unsign…

知识付费平台功能模块详解

知识付费平台作为一种新兴的在线教育模式,以其用户需求导向的设计理念和便捷高效的学习方式,受到了广泛欢迎。这类平台汇集了职业技能、生活兴趣和人文社科等多领域的专业知识,并通过视频播放、在线问答、作业批改等工具和服务,助…