论文阅读——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、实验模块:不同查询量下非目标攻击和目标攻击的攻击性能测试+消融研究

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

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

相关文章

2023年国赛数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…

Thymeleaf快速入门及其注意事项

&#x1f600;前言 本篇博文是关于Thymeleaf的基本介绍&#xff0c;希望你能够喜欢&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的…

Dev-C++

文章目录 介绍使用教程常用快捷键文件部分格式部分行操作跳转部分显示部分运行部分调试部分 调试流程 扩展增加编译选项开启优化显示最多警告信息生成调试信息 编译小 trick开大栈定义宏代码格式化 美化字体主题 介绍 Dev-C 是一套用于开发 C/C 程序的自由的集成开发环境&…

面向云思考安全

Gartner最近的一项研究表明&#xff0c;到 2025 年&#xff0c;85% 的企业会采用云战略&#xff0c;虽然这一数字是面向全球的&#xff0c;但可以看到在中国的环境中&#xff0c;基于云所带来的优势&#xff0c;越来越多的企业也同样开始积极向云转型。 但同时&#xff0c;有报…

BBS项目day02、注册、登录(登录之随机验证码)、修改密码、退出登录、密码加密加盐

一、注册 1.注册之前端页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册页面</title><!--动态引入文件-->{% load static %}<script src"{% static js/jquery.min.js %…

【springmvc系】利用RequestBodyAdviceAdapter做接口鉴权

需求 有个简单的需求&#xff0c;对于第三方接口我们需要做个简单的鉴权机制&#xff0c;这边使用的是非对称性加密的机制。我们提供三方公钥&#xff0c;他们通过公钥对接口json报文使用加密后的报文请求&#xff0c;我们通过对接收过来的请求某一个加密报文字段来进行RSA解密…

婚恋交友h5多端小程序开源版开发

婚恋交友h5多端小程序开源版开发 以下是婚恋交友H5多端小程序的功能列表&#xff1a; 用户注册和登录&#xff1a;用户可以通过手机号码或第三方账号注册和登录。个人信息填写&#xff1a;用户可以填写个人基本信息&#xff0c;包括姓名、性别、年龄、身高、体重、学历、职业等…

Java课题笔记~ 数据提交的方式

前四种数据注入的方式&#xff0c;会自动进行类型转换。但无法自动转换日期类型。 &#xff08;1&#xff09;单个数据&#xff08;基本数据类型&#xff09;注入 在方法中声明一个和表单提交的参数名称相同的参数&#xff0c;由框架按照名称直接注入。 &#xff08;2&#x…

问题:【IntelliJ IDEA】解决idea自动声明变量加finall修饰符问题

问题:【IntelliJ IDEA】解决idea自动声明变量加finall修饰符问题 场景复现 1 new String() 2 快捷方式生成变量 final修饰的 final String s new String();步骤一&#xff1a;确保settings配置信息 settings-----》Editor------》Code Style--------》java下的这两个选项不…

echarts 柱状图-折线图-饼图的基础使用

上图示例图表展示相关配置&#xff1a; var myChart echarts.init(this.$refs.firstMain);myChart.setOption({legend: { // 图例设置top: "15%",type: "scroll",orient: "vertical",//图例列表的布局朝向。left: "right",pageIconCo…

安全加密框架图——Oracle安全开发者

Oracle安全开发者 ACLs 设计 ACLs&#xff08;访问控制列表&#xff09;时&#xff0c;可以根据以下思路进行设计&#xff1a; 所有者文件权限&#xff1a;确定文件的所有者能够对文件执行哪些操作&#xff0c;如读取、写入、执行等。这可以根据文件的性质和拥有者的职责来决…

k8s集群部署vmalert和prometheusalert实现钉钉告警

先决条件 安装以下软件包&#xff1a;git, kubectl, helm, helm-docs&#xff0c;请参阅本教程。 1、安装 helm wget https://xxx-xx.oss-cn-xxx.aliyuncs.com/helm-v3.8.1-linux-amd64.tar.gz tar xvzf helm-v3.8.1-linux-amd64.tar.gz mv linux-amd64/helm /usr/local/bin…

12 注册登录

12 注册登录 整体概述 使用数据库连接池实现服务器访问数据库的功能&#xff0c;使用POST请求完成注册和登录的校验工作。 本文内容 介绍同步实现注册登录功能&#xff0c;具体涉及到流程图、载入数据库表、提取用户名和密码、注册登录流程与页面跳转的代码实现。 流程图&a…

六、Linux系统下,文件操作命令都有哪些?

总括&#xff1a; 创建文件/文件夹&#xff1a;touch&#xff1b; 查看&#xff1a;cat/more&#xff1b; 复制&#xff1a;copy&#xff1b; 移动文件/文件夹&#xff1a;mv&#xff1b; 删除&#xff1a;rm&#xff1b; 1、创建文件 &#xff08;1&#xff09;语法&#x…

阿里云与中国中医科学院合作,推动中医药行业数字化和智能化发展

据相关媒体消息&#xff0c;阿里云与中国中医科学院的合作旨在推动中医药行业的数字化和智能化发展。随着互联网的进步和相关政策的支持&#xff0c;中医药产业受到了国家的高度关注。这次合作将以“互联网 中医药”为载体&#xff0c;致力于推进中医药文化的传承和创新发展。…

AIGC绘画:基于Stable Diffusion进行AI绘图

文章目录 AIGC深度学习模型绘画系统stable diffusion简介stable diffusion应用现状在线网站云端部署本地部署Stable Diffusion AIGC深度学习模型绘画系统 stable diffusion简介 Stable Diffusion是2022年发布的深度学习文本到图像生成模型&#xff0c;它主要用于根据文本的描述…

通俗讲解-动量梯度下降法原理与代码实例

本站原创文章&#xff0c;转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com 目录 一.动量梯度下降法介绍 1.1 动量梯度下降法简介与思想 1.2 动量梯度下降法的算法流程 二.动量梯度下降法代码实例 2.1 动量梯度下降法实例代码 一.动量梯度下降法介绍…

2023年上半年数学建模竞赛题目汇总与难度分析

2023年上半年数学建模竞赛题目汇总与难度分析 ​由于近年来国赛ABC题出题方式漂浮不定&#xff0c;没有太大的定性&#xff0c;目前总体的命题方向为&#xff0c;由之前的单一模型问题变为数据分析评价优化或者预测类题目是B、C题的主要命题方向。为了更好地把握今年命题的主方…

vue3-vuex

一、概念 &#xff08;1&#xff09;Vuex 是一个状态和数据管理的框架&#xff0c;负责管理项目中多个组件和多个页面共享的数据。 &#xff08;2&#xff09;在开发项目的时候&#xff0c;我们就会把数据分成两个部分&#xff0c;一种数据是在某个组件内部使用&#xff0c;我…

【C++】STL案例1-评委打分

0.前言 1.系统自动生成的评委评分代码&#xff1a; #include <iostream> using namespace std; #include <deque> #include <vector> #include <algorithm> #include <string>//选手类 class Player { public:Player(string name, float score)…