论文阅读 (100):Simple Black-box Adversarial Attacks (2019ICML)

文章目录

  • 1 概述
    • 1.1 要点
    • 1.2 代码
    • 1.3 引用
  • 2 背景
    • 2.1 目标与非目标攻击
    • 2.2 最小化损失
    • 2.3 白盒威胁模型
    • 2.4 黑盒威胁模型
  • 3 简单黑盒攻击

1 概述

1.1 要点

题目:简单黑盒对抗攻击 (Simple black-box adversarial attacks)

策略:提出了一个在黑盒设置下构建对抗图像的简单方法:

  1. 从预定义的正交基中随机采样一个向量,并将其添加或减去到目标图像;
  2. 在多个现实任务下展示了算法的性能和效率;
  3. 算法非常快,且实现仅需不要20Pytorch代码;

1.2 代码

https://github.com/cg563/simple-blackbox-attack

1.3 引用

@inproceedings{Guo:2019:24842493,
author		=	{Guo, Chuan and Gardner, Jacob and You, Yurong and Wilson, Andrew Gordon and Weinberger, Kilian},
title		=	{Simple black-box adversarial attacks},
booktitle	=	{{ICML}},
pages		=	{2484--2493},
year		=	{2019},
url			=	{https://proceedings.mlr.press/v97/guo19a.html}
}

2 背景

对抗样本的研究关注于机器学习模型对细微改变的健壮性。图像分类的任务是成功预测人类所认知的图像。自然地,这样的微小改变不会影响人类的判断。基于此,可以将健壮性形式化表述为:给定一个模型 h h h和一些输入-标签对 ( x , y ) (x,y) (x,y),如果模型能正确分类 h ( x ) = y h(x)=y h(x)=y,则称 h h h是关于概率度量 d ( ⋅ , ⋅ ) d(\cdot,\cdot) d(,) ρ \rho ρ健壮的:
h ( x ′ ) = y ∀ x ′ ∈ { x ′ ∣ d ( x ′ , x ) ≤ ρ } . h(x')=y\ \forall x'\in\{ x' | d(x',x) \leq \rho \}. h(x)=y x{xd(x,x)ρ}.度量 d d d通常被近似为 L 0 , L 2 , L ∞ L_0,L_2,L_\infty L0,L2,L,以度量输入 x x x和扰动 x ′ x' x之间视觉不相似性的程度。除非特别说明,本文均采用 d ( x , x ′ ) = ∥ x − x ′ ∥ 2 d(x,x')=\| x-x' \|_2 d(x,x)=xx2作为感知度量。在几何上,难以察觉的变化区域被定义为一个半径 ρ \rho ρ、以 x x x为中心的超球。对抗攻击的目标便是找到一个对抗方向 δ \delta δ,使得模型对 x ′ = x + δ x'=x+\delta x=x+δ的决策发生改变。

2.1 目标与非目标攻击

最简单的成功攻击的条件是将原始预测改变为其它任意类别 h ( x ′ ) ≠ y h(x')\neq y h(x)=y。这便是非目标攻击。与此相应地,目标攻击的目标是对于选择的目标类 y ′ y' y,有 h ( x ′ ) = y ′ h(x')=y' h(x)=y。为了简便,余下的讨论均在目标攻击下进行。

2.2 最小化损失

由于模型输出离散决策,因此寻找对抗性扰动来改变模型首先是一个离散优化问题。然而,其经常定义一个代理损失 ℓ y ( ⋅ ) \ell_y(\cdot) y()来度量模型 h h h将输入归类为 y y y的确信度。因此,对抗扰动问题可以被制定为最小化模型分类确信度的连续优化问题:
min ⁡ δ ℓ y ( x + δ ) subject to  ∥ δ ∥ 2 < ρ \min_\delta\ell_y(x+\delta) \text{ subject to }\| \delta \|_2<\rho δminy(x+δ) subject to δ2<ρ当模型 h h h输出对应于每个类别的概率 p h ( ⋅ ∣ x ) p_h(\cdot|x) ph(x)时,一个常用的对抗损失是类别 y y y的概率: ℓ y ( x ′ ) = p h ( y ∣ x ′ ) \ell_y(x')=p_h(y|x') y(x)=ph(yx),其需要最小化正确分类的概率。对于目标攻击,一个选择是 ℓ y ′ ( x ′ ) = − p h ( y ′ ∣ x ′ ) \ell_{y'}(x')=-p_h(y'|x') y(x)=ph(yx),本质上是最大化误分类为 y ′ y' y的概率。

2.3 白盒威胁模型

依赖于所在的应用领域,攻击者对于目标模型 h h h的知识有不同程度的了解。在白盒威胁模型下,分类器 h h h将提供给攻击者。在该设置下,一个有力的攻击策略是在对抗损失 ℓ y ( ⋅ ) \ell_y(\cdot) y()下执行梯度下降或者近似理论。为了确保不易察觉的改变,一种方式是控制扰动的范数 ∥ δ ∥ 2 \|\delta\|_2 δ2、早停,或者直接在损失优化过程中引入正则或者约束。

2.4 黑盒威胁模型

对于很多实际应用而言,白盒假设是不切实际的。例如,模型 h h h的展示形式是API,仅能够基于输入获取查询结果。对于攻击者而言,黑盒模型将更具有挑战性,这是因为梯度信息将不能引导对抗方向 δ \delta δ,且每次查询将消耗时间和金钱。因此,黑盒威胁设置下,附加了最小化查询次数 h h h的优化目标。修改后的优化目标为:
min ⁡ δ ℓ y ( x + δ ) subject to:  ∥ δ ∥ < ρ , queries ≤ B \min_\delta\ell_y(x+\delta)\text{ subject to: }\|\delta\|<\rho,\text{ queries}\leq B δminy(x+δ) subject to: δ<ρ, queriesB其中 B B B是固定代价。对于迭代优化算法而言,攻击算法需要快速收敛到可行解。

3 简单黑盒攻击

假设已有一张图像 x x x、黑盒神经网络 h h h,分类器 h ( x ) = y h(x)=y h(x)=y。我们的目标是找到一个小的扰动 δ \delta δ,其满足 h ( x + δ ) ≠ y h(x+\delta)\neq y h(x+δ)=y。尽管在黑盒设置下,梯度信息是缺失的,输出概率依然可以用于引导对抗图像的生成。

3.1 算法

算法1展示了本文输入的伪代码:对于任意方向 q \mathbf{q} q和步长大小 ϵ \epsilon ϵ x + ϵ q x+\epsilon\mathbf{q} x+ϵq或者 x − ϵ q x-\epsilon\mathbf{q} xϵq可能会降低 p h ( y ∣ x ) p_h(y|x) ph(yx)。因此我们重复地随机选择方向 q \mathbf{q} q并添加或者减去它。为了最小化查询 h ( ⋅ ) h(\cdot) h()的次数,总是首先尝试添加 ϵ q \epsilon\mathbf{q} ϵq。如果概率 p h ( y ∣ x ) p_h(y|x) ph(yx)降低则采取该步骤,否则将减去 ϵ q \epsilon\mathbf{q} ϵq

所提出的简单黑盒攻击 (SimBA) ,使用目标图像标签对 ( x , y ) (x,y) (x,y)作为输入,以及正交候选向量 Q Q Q和步长 ϵ > 0 \epsilon>0 ϵ>0。为了简化,我们均匀随机采样 q ∈ Q \mathbf{q}\in Q qQ。为了保证最大的查询效率,确保了没有两个方向将会取消或者削减对方,或者不合适地放大或者增加 δ \delta δ的范数。在 T T T次更新后,扰动的范数为 ∥ δ ∥ 2 = T ϵ \|\delta\|_2=\sqrt{T}\epsilon δ2=T ϵ

3.2 Cartesian基

正交搜索方向 Q Q Q的一个很自然的选择是标准基 Q = I Q=I Q=I,其对应算法在像素空间的更新方向。本质上,算法在每次更新随机选择一个像素增加或者减少,这样的攻击被称为 L 0 L_0 L0攻击,其将尽可能少的改变像素。

3.3 离散余弦基

最近的工作发现低频空间中的随机噪声更有可能是对抗性的。对此,我们将探索离散余弦变换 (DCT)。DCT是一个正交变换,其用于将2D图像空间 R d × d \mathbb{R}^{d\times d} Rd×d中的信号映射到与余弦波函数的幅度相对于的频率系数。接下来,我们将DCT提取的正交频率集合称为 Q DCT Q_\text{DCT} QDCT。完整的 Q DCT Q_\text{DCT} QDCT包含 d × d d\times d d×d个频段,我们仅保留比例 r r r的低频段,以在低频空间中生成对抗扰动。

3.4 一般基

理论上,在基向量可以被高效采集的前提下,任意的正交基都能用于本文方法。这对于高分辨率数据集,例如ImageNet来说无疑是一个大的挑战,因为每一个正交基的维度是 d × d d\times d d×d。迭代采样方法,例如Gram-Schmidt不能使用,因为内存代价随采样向量的数量线性增长。因此,本文仅选用标准基向量和DCT基向量

3.5 学习率 ϵ \epsilon ϵ

给定任意的搜索方向 Q Q Q,一些方法能够更多的降低 p h ( y ∣ x ) p_h(y|x) ph(yx)。此外,输出概率 p h ( y ∣ x + ϵ q ) p_h(y|x+\epsilon\mathbf{q}) ph(yx+ϵq)可能是非单调的。图1展示了在像素空间和DCT空间随机采样搜索方向时,输出概率随 ϵ \epsilon ϵ变化的相对情况 (ReaNet-50预测ImageNet验证集)。结果表明,概率 p h ( y ∣ x + ϵ q ) p_h(y|x+\epsilon\mathbf{q}) ph(yx+ϵq)的下降与 ϵ \epsilon ϵ的增长相匹配。尽管一些方向增加了正确类别的概率,该概率的预期变化为负且斜率相对较陡。这说明算法对 ϵ \epsilon ϵ的选择不敏感,其将快速降低正类别的概率。

3.6 预算

通过探索 Q Q Q的正交性,我们能够约束 δ \delta δ的范数。在每次迭代过程中,基向量将被用于加或者减,当无法改变输出概率时,则抛弃。令 α i ∈ { − ϵ , 0 , ϵ } \alpha_i\in\{-\epsilon,0,\epsilon\} αi{ϵ,0,ϵ}表示在第 t t t步时的搜索方向,因此:
δ t + 1 = δ t + α t q t \delta_{t+1}=\delta_t+\alpha_t\mathbf{q}_t δt+1=δt+αtqt最终的扰动可以记作:
δ T = ∑ t = 1 T α t q t \delta_T=\sum_{t=1}^T\alpha_t\mathbf{q}_t δT=t=1Tαtqt因为方向 q t \mathbf{q}_t qt是正交的,对于任意的 t ≠ t ′ t\neq t' t=t q t ⊤ q t ′ = 0 \mathbf{q}_t^\top\mathbf{q}_{t'}=0 qtqt=0。因此,对抗扰动的 L 2 L_2 L2范数计算为:
∥ δ T ∥ 2 2 = ∥ ∑ t = 1 T α t q t ∥ 2 2 = ∑ t = 1 T ∥ α t q t ∥ 2 2 = ∑ t = 1 T α t 2 ∥ q t ∥ 2 2 ≤ T ϵ 2 \left\| \delta_T \right\|_2^2 = \left\| \sum_{t=1}^T\alpha_t\mathbf{q}_t \right\|_2^2 = \sum_{t=1}^T\left\| \alpha_t\mathbf{q}_t \right\|_2^2 = \sum_{t=1}^T\alpha_t^2\left\| \mathbf{q}_t \right\|_2^2\leq T\epsilon^2 δT22= t=1Tαtqt 22=t=1Tαtqt22=t=1Tαt2qt22Tϵ2因此,在 T T T轮迭代之后,对抗扰动的最大 L 2 L_2 L2范数为 T ϵ \sqrt{T}\epsilon T ϵ,这对于任意正交基均成立。

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

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

相关文章

力扣刷题-移除指定值的链表元素

力扣203移除元素 题目来源&#xff1a; 力扣203 题目描述&#xff1a; 非常简单的一道题&#xff0c;主要强调两点 链表删除要记录删除位置的前驱节点 头节点没有前驱 因此直接headhead.next为了保持与后两种一致&#xff0c;加上虚拟节点&#xff0c;下一节点指向头节点 /***…

【Linux-Day10-信号量,共享内存,消息队列】

信号量 信号量描述 信号量是一个特殊的变量&#xff0c;一般取正数值。它的值代表允许访问的资源数目&#xff0c;获取资源 时&#xff0c;需要对信号量的值进行原子减一&#xff0c;该操作被称为 P 操作。 当信号量值为 0 时&#xff0c;代表没有资源可用&#xff0c;P 操作…

企业架构LNMP学习笔记27

Keepalived的配置补充&#xff1a; 脑裂&#xff08;裂脑&#xff09;&#xff1a;vip出现在了多台机器上。网络不通畅&#xff0c;禁用了数据包&#xff0c;主备服务器没法通讯&#xff0c;造成备服务器认为主服务器不可用&#xff0c;绑定VIP&#xff0c;主服务器VIP不会释放…

【设计模式】三、概述分类+单例模式

文章目录 概述设计模式类型 单例模式饿汉式&#xff08;静态常量&#xff09;饿汉式&#xff08;静态代码块&#xff09;懒汉式(线程不安全)懒汉式(线程安全&#xff0c;同步方法)懒汉式(线程安全&#xff0c;同步代码块)双重检查静态内部类枚举单例模式在 JDK 应用的源码分析 …

[N0wayback 2023春节红包题] happyGame python反编译

这个反编译的比较深 一&#xff0c;从附件的图标看是python打包的exe文件&#xff0c;先用pyinstxtractor.py 解包 生成的文件在main.exe_extracted目录下&#xff0c;在这里边找到main 二&#xff0c;把main改名为pyc然后加上头 这个头从包里找一个带头的pyc文件&#xff…

做题(1)

1.fileinclude 打开 发现提示flag在flag.php里边 查看页面源代码 $lan $_COOKIE[language]; 这句话是关键 变量lan是用cookie传参的 include("english.php"); 这句话表明了文件包含 include函数用php伪协议 filer绕过 include($lan.".php"); 这句话…

深入实现 MyBatis 底层机制的任务阶段4 - 开发 Mapper 接口和 Mapper.xml

&#x1f600;前言 在我们的自定义 MyBatis 底层机制实现过程中&#xff0c;我们已经深入研究了多个任务阶段&#xff0c;包括配置文件的读取、数据库连接的建立、执行器的编写&#xff0c;以及 SqlSession 的封装。每个任务阶段都为我们揭示了 MyBatis 内部工作原理的一部分&a…

【算法基础】时间复杂度和空间复杂度

目录 1 算法的评价 2 算法复杂度 2.1 时间复杂度&#xff08;Time Complexity&#xff09; 2.1.1 如何计算时间复杂度&#xff1a; 2.1.2 常见的时间复杂度类别与示例 2.2 空间复杂度 2.2.1 如何计算空间复杂度 2.2.2 常见的空间复杂度与示例 3 时间复杂度和空间复杂度…

Linux——环境变量

✅<1>主页&#xff1a;&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;Linux——环境变量 ☂️<3>开发环境&#xff1a;Centos7 &#x1f4ac;<4>前言&#xff1a;环境变量(environment variables)一般是指在操作系统中用来指定操作…

linux下检测CPU性能的mpstat命令安装与用法

1、安装命令 $ sudo apt-get install sysstat sysstat安装包还包括了检测设备其它状态的命令&#xff0c;查看命令如下&#xff1a; 2、检测CPU命令语法 $ mpstat --h //查看mpstat的语法 Usage: mpstat [ options ] [ <interval> [ <count> ] ] Options are: …

期货基础知识

一、期货是什么&#xff1f;  期货是与现货相对应&#xff0c;并由现货衍生而来。期货通常指期货合约&#xff0c;期货与现货完全不同&#xff0c;现货是实实在在可以交易的货&#xff08;商品&#xff09;&#xff0c;期货主要不是货&#xff0c;而是以某种大众产品如棉花、大…

UG\NX二次开发 获取曲面上指定点位置的uv参数 UF_MODL_ask_face_parm

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG\NX二次开发 获取曲面上指定点位置的uv参数 UF_MODL_ask_face_parm。 效果: 代码: #include "me.hpp"//parm[2] static void AskFaceUVP…

【插件分享】免费获取ArcGIS国土插件,可一键加载最新亚米级卫星图源

免费获取ArcGIS国土插件&#xff0c;可一键加载最新亚米级卫星图源 国土工具 实用功能国土工具持续更新插件项目实操01 项目占地分析02 shp转txt土地报备坐标03 txt转shp04 在线加载0.5米遥感影像、电子地图服务05 实用工具 如何获取国土工具免费授权第1步第2步第3步 插件下载&…

vscode开发油猴插件环境配置指南

文章目录 一、环境配置1.1油猴插件开始编写代码1.2油猴插件配置1.2.1浏览器插件权限1.2.2插件自身权限 2. 油猴脚本API学习2.1 头文件2.2 油猴API 一、环境配置 1.1油猴插件开始编写代码 在vscode 中写入如下代码‘ // UserScript // name cds_test // namespace …

Java基于SpringBoot+Vue的 4S店车辆管理系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1 简介2 技术栈3 功能总览4 系统设计4.1 系统设计主要功能4.2 数据库设计4.2.1 数据库设计规范4.2…

论文复现--lightweight-human-pose-estimation-3d-demo.pytorch(单视角多人3D实时动作捕捉DEMO)

分类&#xff1a;动作捕捉 github地址&#xff1a;https://github.com/Daniil-Osokin/lightweight-human-pose-estimation-3d-demo.pytorch 所需环境&#xff1a; Windows10&#xff0c;conda 4.13.0&#xff1b; 目录 conda环境配置安装Pytorch全家桶安装TensorRT&#xff08;…

嘉泰实业:真实低门槛,安全有保障

在互联网金融大行其道的当下&#xff0c;无论用户是多么的青睐、喜爱这种便捷的理财方式&#xff0c;也一定得把资金安全放在心上。要投就投那些实力背景雄厚&#xff0c;诚信经营的平台&#xff0c;可以选择投资用户基数庞大的理财老品牌&#xff0c;也可以选择发展势头迅猛的…

在 Arweave 中轻松管理文件:借助 4EVERLAND 完成 Web3 前端Path Manifests的终极指南

为什么使用Path Manifests&#xff1f; 当在 IPFS 上发布 NFT 时&#xff0c;图片和元数据会被上传到 IPFS 网络以获得一个根 CID&#xff0c;其形式如下&#xff1a; ipfs://bafybeic36ik6cngu37xbzmpytuvyo7z3lyeen44clkkxq5d263zj4nkzr4 通过使用这个根 CID&#xff0c;每…

【性能测试】Jmeter插件之ServerAgent服务器性能监控工具的安装和使用

文章目录 安装插件安装ServerAgent 安装插件 1、在Jmeter官网&#xff1a;https://jmeter-plugins.org/wiki/PluginsManager/ 下载插件管理器Plugins-manager.jar 2、将JAR包放入到lib\ext目录下 3、重启Jmeter&#xff0c;可以在选项下看到Plugins Manager选项 4、安装…

大功率光伏应用不同多电平变换器拓扑的比较研究(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…