当前位置: 首页 > news >正文

论文阅读——Adversarial Eigen Attack on Black-Box Models

Adversarial Eigen Attack on Black-Box Models

作者:Linjun Zhou, Linjun Zhou

攻击类别:黑盒(基于梯度信息),白盒模型的预训练模型可获得,但训练数据和微调预训练模型的数据不可得(这意味着模型的网络结构和参数信息可以获得)、目标攻击+非目标攻击
白盒+黑盒组合使用,白盒利用了中间表示,黑盒利用了输出得分。

  • 疑问
    Q1: 基于梯度信息生成对抗样本,如何保证迁移能力
    A1: 似乎没有像常规方法一样考虑迁移性
    Q2: 预训练模型选的啥?
    A2: 用不到预训练模型

解决的问题:

替代模型的训练需要已知训练数据+降低查询量+保证扰动小

  • 替代模型的训练需要已知训练数据:白盒模型的特征表示和黑盒模型的输出概率得分;
  • 降低查询量:根据方向当属估计梯度减少梯度估计采样的样本,使用截断奇异值确定进一步降低查询量;
  • 保证扰动小:每次扰动的寻优都约束到 L 2 L_2 L2范数球上。

黑盒攻击现状

黑盒攻击分为两类:
基于梯度估计的对抗攻击: 描述了一个纯黑盒攻击设置,其中可用的信息只是黑盒模型的输入和输出。在此设置中使用的常用技术是零阶优化[8]。与白盒攻击不同的是,黑盒攻击中不存在与网络参数相关的梯度信息。梯度需要通过采样不同方向的扰动和汇总与输出相关的某个损失函数的相对变化来估计。
基于替代模型(substitute model)的对抗攻击:使用来自训练数据集的侧信息。通常,在给定的训练数据集上训练一个替代的白盒模型。

方案概述:

将白盒攻击和黑盒攻击相结合。通过将白盒模型的中间表示到黑盒模型输出的映射看作一个黑盒函数,在表示空间上形成一个替代的黑盒攻击设置,可以应用黑盒攻击的常见做法。另一方面,从原始输入到中间表示层的映射是预训练模型的一部分,可以看作是一个白盒设置。值得注意的是,该框架可以处理两个模型相同或不同的分类类别,增强了其实际应用场景。使用预训练白盒网络的表示空间有助于提高黑盒模型的攻击效率的主要原因是,深度神经网络的较低层,即表示学习层,在不同的数据集或数据分布之间是可转移的。

白盒模型:

G ( x ) = g ∘ h ( x ) G(x) = g \circ h(x) G(x)=gh(x) h ( x ) h(x) h(x)表示原始输入到低维表示空间的映射, g g g表示输出概率的表示空间映射, g : R m → [ 0 , 1 ] c w g:{\mathbb{R}^m} \to {[0,1]^{{c_w}}} g:Rm[0,1]cw c w {c_w} cw表示G输出类别的数量;

黑盒模型:

F : R n → [ 0 , 1 ] c b F:{\mathbb{R}^n} \to {[0,1]^{{c_b}}} F:Rn[0,1]cb, c b {c_b} cb表示F输出类别的数量, c b {c_b} cb c w {c_w} cw可能不相等。

  • 疑问
    Q1: 如何对齐白盒模型和黑盒模型的输出概率分布的?存在两种情况:黑盒模型和白盒模型的输出概率分布不一致或者输出概率类别的长度可能不同?
    A1: 为解决上述问题,作者并没有使用白盒模型的参数,而是使用白盒模型的中间表示 z = h ( x ) z = h(x) z=h(x)和新的映射函数 g ~ : R m → [ 0 , 1 ] c b \tilde g:{\mathbb{R}^m} \to {[0,1]^{{c_b}}} g~:Rm[0,1]cb(被攻击黑盒模型的输出的表示空间)。类比白盒模型的定义,若 g ~ \tilde g g~存在,则可获得黑盒模型 F = g ~ ∘ h ( x ) F = \tilde g \circ h(x) F=g~h(x)

基于上述定义,黑盒攻击的优化目标函数为:

min ⁡ δ p F ( y ∣ x + δ ) ⇒ min ⁡ δ p g ∘ h ( y ∣ x + δ ) s . t . , ∣ ∣ δ ∣ ∣ 2 < ρ \mathop {\min }\limits_\delta {p_F}(y|x + \delta ) \Rightarrow \mathop {\min }\limits_\delta {p_{g \circ h}}(y|x + \delta ){\text{ }}s.t.,{\text{ }}||\delta |{|_2} < \rho δminpF(yx+δ)δminpgh(yx+δ) s.t., ∣∣δ2<ρ
x t + 1 = x t − ε ∇ x [ F ( x ; θ ) ] {x_{t + 1}} = {x_t} - \varepsilon {\nabla _x}[F(x;\theta )] xt+1=xtεx[F(x;θ)] (1)

∇ x [ F ( x ; θ ) ] {\nabla _x}[F(x;\theta )] x[F(x;θ)]通过采样一些扰动和汇总输出的相对变化来估计,但是在每次迭代时估计梯度,会消耗的大量的样本,这不利于提升攻击效率。为解决这一问题作者将梯度 ∇ x [ F ( x ; θ ) ] {\nabla _x}[F(x;\theta )] x[F(x;θ)]拆分如下:

∇ x [ F ( x ; θ ) ] = J h ( x ) T ∇ z [ g ~ ( z ; θ ~ ) y ] {\nabla _x}[F(x;\theta )] = {J_h}{(x)^T}{\nabla _z}[\tilde g{(z;\tilde \theta )_y}] x[F(x;θ)]=Jh(x)Tz[g~(z;θ~)y] (2)

J h ( x ) {J_h}{(x)} Jh(x)是关于 h h h m ∗ n m*n mn雅克比矩阵 ∂ ( z 1 , z 2 , ⋯ , z m ) ∂ ( x 1 , x 2 , ⋯ , x n ) \frac{{\partial ({z_1},{z_2}, \cdots ,{z_m})}}{{\partial ({x_1},{x_2}, \cdots ,{x_n})}} (x1,x2,,xn)(z1,z2,,zm), z z z是特征空间表示,也就是 h h h的输出。但 ∇ z [ g ~ ( z ; θ ~ ) y ] {\nabla _z}[\tilde g{(z;\tilde \theta )_y}] z[g~(z;θ~)y] g ~ \tilde g g~是黑盒模型,因此需要采样估计 ∇ z [ g ~ ( z ; θ ~ ) y ] {\nabla _z}[\tilde g{(z;\tilde \theta )_y}] z[g~(z;θ~)y] y y y表示 g ~ \tilde g g~输出的第 y y y个成分。

根据方向倒数的定义可知,
∇ z [ g ~ ( z ; θ ~ ) y ] = ∑ i = 1 m ( ∂ g ~ ( z ; θ ~ ) y ∂ l ⃗ i ∣ z ⋅ l ⃗ ) , l ⃗ 1 , l ⃗ 2 , ⋯ , l ⃗ m are orthogonal {\nabla _z}[\tilde g{(z;\tilde \theta )_y}] = \sum\limits_{i = 1}^m {(\frac{{\partial \tilde g{{(z;\tilde \theta )}_y}}} {{\partial {{\vec l}_i}}}{|_z} \cdot \vec l)} ,{{\vec l}_1},{{\vec l}_2}, \cdots ,{{\vec l}_m}{\text{ are orthogonal}} z[g~(z;θ~)y]=i=1m(l ig~(z;θ~)yzl ),l 1,l 2,,l m are orthogonal (3)

我们可以通过每次迭代使用m个样本,从一组正交基中迭代地设置 z z z的扰动方向,来估计 ∇ z [ g ~ ( z ; θ ~ ) y ] {\nabla _z}[\tilde g{(z;\tilde \theta )_y}] z[g~(z;θ~)y]。但是使用上述方法估计 ∇ z [ g ~ ( z ; θ ~ ) y ] {\nabla _z}[\tilde g{(z;\tilde \theta )_y}] z[g~(z;θ~)y]会消耗巨大的查询预算。为解决这一问题,作者通过牺牲估计精度来降低查询量。具体而言,首先设计EigenBA算法来寻找表示空间的标准基,

l ⃗ i = J h ( x ) δ i {{\vec l}_i} = {J_h}(x){\delta _i} l i=Jh(x)δi (4)

δ i {\delta _i} δi是原始输入空间上的扰动,会导致表示空间变成 l ⃗ i {{\vec l}_i} l i。最优的扰动可求解为:
在这里插入图片描述
作者对上述等式求解获得最优的 δ 1 , δ 2 , ⋯ , δ m {\delta _1},{\delta _2}, \cdots ,{\delta _m} δ1,δ2,,δm

因此,如果我们将扰动依次迭代采样到 δ 1 , δ 2 , ⋯ , δ m {\delta _1},{\delta _2}, \cdots ,{\delta _m} δ1,δ2,,δm,则一步实际扰动 ∇ x [ F ( x ; θ ) ] {\nabla _x}[F(x;\theta )] x[F(x;θ)]可以用公式2和式3来近似,并且,由于特征值的迹可能很小,即表征空间的扰动范数可能对具有相应特征向量方向的原始输入空间上的扰动不敏感。为了在不牺牲太多攻击效率的情况下减少查询数,作者只保留探测的top-K扰动 δ 1 , δ 2 , ⋯ , δ K {\delta _1},{\delta _2}, \cdots ,{\delta _K} δ1,δ2,,δK。通过对雅可比矩阵J进行截断奇异值分解(SVD),只保留前K个分量,可以快速计算出 J T J {J^T}J JTJ的特征向量。

上述过程的伪代码如下:
在这里插入图片描述
迭代扰动寻优过程中的参数定义似乎不全!

实验

1、数据集:ImageNet、Cifar-10
2、对比方法:SimBA-DCT、Trans-FGM
3、评估指标:攻击一张样本的平均查询量、攻击成功率、对抗扰动的 L 2 {L_2} L2 L ∞ {L_\infty } L范数
4、实验模块:不同查询量下非目标攻击和目标攻击的攻击性能测试+消融研究

相关文章:

论文阅读——Adversarial Eigen Attack on Black-Box Models

Adversarial Eigen Attack on Black-Box Models 作者&#xff1a;Linjun Zhou&#xff0c; Linjun Zhou 攻击类别&#xff1a;黑盒&#xff08;基于梯度信息&#xff09;&#xff0c;白盒模型的预训练模型可获得&#xff0c;但训练数据和微调预训练模型的数据不可得&#xff…...

自然语言处理从入门到应用——LangChain:记忆(Memory)-[自定义对话记忆与自定义记忆类]

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 自定义对话记忆 本节介绍了几种自定义对话记忆的方法&#xff1a; from langchain.llms import OpenAI from langchain.chains import ConversationChain from langchain.memory import ConversationBufferMemoryllm…...

【C/C++】STL queue 非线程安全接口,危险!

STL 中的 queue 是非线程安全的&#xff0c;一个组合操作&#xff1a;front(); pop() 先读取队首元素然后删除队首元素&#xff0c;若是有多个线程执行这个组合操作的话&#xff0c;可能会发生执行序列交替执行&#xff0c;导致一些意想不到的行为。因此需要重新设计线程安全的…...

执行Lua脚本后一直查询不到Redis中的数据(附带问题详细排查过程,一波三折)

文章目录 执行Lua脚本后一直查询不到Redis中的数据&#xff08;附带详细问题排查过程&#xff0c;一波三折&#xff09;问题背景问题1&#xff1a;Lua脚本无法切库问题2&#xff1a;RedisTemlate切库报错问题3&#xff1a;序列化导致数据不一致问题4&#xff1a;Lua脚本中单引号…...

[高光谱]PyTorch使用CNN对高光谱图像进行分类

项目原地址&#xff1a; Hyperspectral-Classificationhttps://github.com/eecn/Hyperspectral-ClassificationDataLoader讲解&#xff1a; [高光谱]使用PyTorch的dataloader加载高光谱数据https://blog.csdn.net/weixin_37878740/article/details/130929358 一、模型加载 在…...

jmeter获取mysql数据

JDBC Connection Configuration Database URL: jdbc:mysql:// 数据库地址 /库名 JDBC Driver class&#xff1a;com.mysql.jdbc.Driver Username&#xff1a;账号 Password&#xff1a;密码 JDBC Request 字段含义 字段含义 Variable Name Bound to Pool 数据库连接池配置…...

Dedecms V110最新版RCE---Tricks

前言 刚发现Dedecms更新了发布版本&#xff0c;顺便测试一下之前的day有没有修复&#xff0c;突然想到了新的tricks去实现RCE。 文章发布的时候估计比较晚了&#xff0c;一直没时间写了。 利用 /uploads/dede/article_string_mix.php /uploads/dede/article_template_rand.…...

CTFshow 限时活动 红包挑战7、红包挑战8

CTFshow红包挑战7 写不出来一点&#xff0c;还是等了官方wp之后才复现。 直接给了源码 <?php highlight_file(__FILE__); error_reporting(2);extract($_GET); ini_set($name,$value);system("ls ".filter($_GET[1])."" );function filter($cmd){$cmd…...

Redis使用Lua脚本和Redisson来保证库存扣减中的原子性和一致性

文章目录 前言1.使用SpringBoot Redis 原生实现方式2.使用redisson方式实现3. 使用RedisLua脚本实现3.1 lua脚本代码逻辑 3.2 与SpringBoot集成 4. Lua脚本方式和Redisson的方式对比5. 源码地址6. Redis从入门到精通系列文章7. 参考文档 前言 背景&#xff1a;最近有社群技术交…...

【从零开始学Kaggle竞赛】泰坦尼克之灾

目录 0.准备1.问题分析挑战流程数据集介绍结果提交 2.代码实现2.1 加载数据2.1.1 加载训练数据2.1.2 加载测试数据 2.2 数据分析2.3 模型建立与预测 3.结果提交 0.准备 注册kaggle账号后&#xff0c;进入titanic竞赛界面 https://www.kaggle.com/competitions/titanic 进入后界…...

输出无重复的3位数和计算无人机飞行坐标

编程题总结 题目一&#xff1a;输出无重复的3位数 题目描述 从{1,2,3,4,5,6,7,8,9}中随机挑选不重复的5个数字作为输入数组‘selectedDigits’&#xff0c;能组成多少个互不相同且无重复数字的3位数?请编写程》序&#xff0c;从小到大顺序&#xff0c;以数组形式输出这些3位…...

muduo 29 异步日志

目录 Muduo双缓冲异步日志模型: 异步日志实现: 为什么要实现非阻塞的日志...

Qt 对象序列化/反序列化

阅读本文大概需要 3 分钟 背景 日常开发过程中&#xff0c;避免不了对象序列化和反序列化&#xff0c;如果你使用 Qt 进行开发&#xff0c;那么有一种方法实现起来非常简单和容易。 实现 我们知道 Qt 的元对象系统非常强大&#xff0c;基于此属性我们可以实现对象的序列化和…...

从零学算法(非官方题库)

输入两棵二叉树A和B&#xff0c;判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构&#xff0c; 即 A中有出现和B相同的结构和节点值。 例如: 给定的树 A:3/ \4 5/ \1 2给定的树 B&#xff1a;4 / 1返回 true&#xff0c;因为 B 与 A 的一个子树拥有相…...

Java # JVM内存管理

一、运行时数据区域 程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、运行时常量池、直接内存 二、HotSpot虚拟机对象 对象创建&#xff1a; 引用检查类加载检查分配内存空间&#xff1a;指针碰撞、空闲列表分配空间初始化对象信息设置&#xff08;对象头内&#xff0…...

大疆第二批笔试复盘

大疆笔试复盘(8-14) 笔试时候的状态和下来复盘的感觉完全不一样,笔试时脑子是懵的。 (1)输出无重复三位数 题目描述 从 { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } \left \{ 1,2,3,4,5,6,7,8,9 \right \...

【Linux】磁盘或内存 占用比较高要怎么排

当 Linux 磁盘空间满了时 请注意&#xff0c;在进行任何删除操作之前&#xff0c;请确保你知道哪些文件可以安全删除&#xff0c;并备份重要文件&#xff0c;以免意外丢失数据。当 Linux 磁盘空间满了时&#xff0c;可以按照以下步骤进行排查&#xff1a; 检查磁盘使用情况&…...

解决xss转义导致转码的问题

一、xss简介 人们经常将跨站脚本攻击&#xff08;Cross Site Scripting&#xff09;缩写为CSS&#xff0c;但这会与层叠样式表&#xff08;Cascading Style Sheets&#xff0c;CSS&#xff09;的缩写混淆。因此&#xff0c;有人将跨站脚本攻击缩写为XSS。跨站脚本攻击&#xff…...

numba 入门示例

一维向量求和&#xff1a; C A B 在有nv 近几年gpu的ubuntu 机器上&#xff0c; 环境预备&#xff1a; conda create -name numba_cuda_python3.10 python3.10 conda activate numba_cuda_python3.10conda install numba conda install cudatoolkit conda install -c nvi…...

BUUCTF 还原大师 1

题目描述&#xff1a; 我们得到了一串神秘字符串&#xff1a;TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母&#xff0c;为了确定这个神秘字符串&#xff0c;我们通过了其他途径获得了这个字串的32位MD5码。但是我们获得它的32位MD5码也是残缺不全&#xff0c;E903???4D…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

可视化预警系统:如何实现生产风险的实时监控?

在生产环境中&#xff0c;风险无处不在&#xff0c;而传统的监控方式往往只能事后补救&#xff0c;难以做到提前预警。但如今&#xff0c;可视化预警系统正在改变这一切&#xff01;它能够实时收集和分析生产数据&#xff0c;通过直观的图表和警报&#xff0c;让管理者第一时间…...