活动介绍

基于随机模式噪声的查询高效黑盒对抗攻击

立即解锁
发布时间: 2025-08-31 01:04:55 阅读量: 9 订阅数: 21 AIGC
### 基于随机模式噪声的查询高效黑盒对抗攻击 #### 1. 优化框架 在对抗攻击领域,形式上定义一个分类器 $f: X \to R^K$,其中 $x \in X$ 是输入图像,$y \in Y = \{1, 2, \ldots, K\}$ 是输出空间,$f(x)$ 表示 $Y$ 中每个类别的预测分数。 - **无目标攻击**:攻击者的目标是找到一个扰动 $\delta$,使得对抗样本 $(x + \delta)$ 被错误分类到真实类别 $y$ 以外的类别,即 $\arg \max_{k \in Y} f_k(x + \delta) \neq y$。同时,攻击者还希望最小化 $\ell_p$ 距离,即: \[ \begin{cases} \arg \max_{k \in Y} f_k(x + \delta) \neq y \\ s.t. \ \|\delta\|_p \leq \epsilon \text{ 且 } (x + \delta) \in X \end{cases} \] 其中 $\|\cdot\|_p$ 是 $\ell_p$ 距离范数函数,$\epsilon$ 是 $\ell_p$ 球的半径。寻找扰动 $\delta$ 的任务可以作为一个约束优化问题来处理,因此,$\ell_p$ 有界的无目标攻击旨在优化以下目标: \[ \min_{\delta: \|\delta\|_p \leq \epsilon} L(f(x + \delta), y) \] 这里 $L$ 是损失函数(通常是交叉熵损失),$y$ 是 $x$ 的真实标签。该式主要用于最小化标签 $y$ 的分数。 - **有目标攻击**:攻击者的目标是对于从 $Y$ 中选择的目标标签 $t(\neq y)$,使得 $\arg \max_{k \in Y} f_k(x + \delta) = t$,并通过最小化损失 $L(f(x + \delta), t)$ 来优化扰动。对具有许多输出类别的网络(大 $K$)进行黑盒有目标攻击是一项相当困难的任务。 #### 2. 算法 介绍的是黑盒 $\ell_{\infty}$ 攻击方法。假设攻击者有一个图像 $x \in X$ 和一个黑盒分类器 $f$,$f(x)$ 是输入图像 $x$ 相对于 $K$ 类的预测概率。 - **无目标攻击目标**:在 $\ell_{\infty}$ 扰动约束下,找到一个扰动 $\delta \in \{- \epsilon, \epsilon\}^d$,使得 $\arg \max f(x + \delta) \neq y$,其中 $\epsilon \in R^+$ 是 $\ell_{\infty}$ 球的半径。 - **核心方法**:基于随机搜索,这是优化问题中一种著名的迭代技术。如果将此技术应用于对抗攻击,它将作为扰动的顺序更新。如果使用更新后的扰动 $\delta^*$ 的扰动图像 $(x + \delta^*)$ 的损失值 $L(f(x + \delta^*), y)$ 低于先前的损失值 $L(f(x + \delta), y)$,则将此更新应用于当前扰动,否则丢弃。 - **核心技术**:扰动由具有区域同质性的噪声组成。有研究表明卷积神经网络(CNNs)对局部均匀噪声很脆弱。特别是,有研究发现针对防御模型制作的对抗扰动比针对自然训练模型制作的扰动表现出更多的同质模式。因此,研究是否可以应用局部均匀噪声来生成对抗样本。 以下是具体的算法流程: - **算法 1:随机搜索方法** ```plaintext Input: 分类器 f, 原始图像 x ∈ X, 真实类别 y, 图像大小 w, 图像通道数 c, ℓ∞ - 半径 ϵ, 最大迭代次数 N Output: 对抗扰动 δ ∈ {−ϵ, ϵ}d 1: δ ← 初始扰动(垂直方向) 2: xadv ← (x + δ).Clip(0, 1) 3: l ← L(f(xadv), y), i ← 1 4: if 攻击已经成功 then 5: break 6: end if 7: B ← SplitBlock(w) 8: while i < N 且攻击未成功 do 9: b ← B(i%len(B)) 10: δ∗ ← RPNSampling(δ, b, w, c, ϵ) 11: xadv ← (x + δ∗).Clip(0, 1) 12: l∗ ← L(f(xadv), y) 13: if l∗ < l then 14: δ ← δ∗, l ← l∗ 15: end if 16: i ← i + 1 17: end while ``` - **算法 2:RPNSampling** ```plaintext Input: 扰动 δ, 要修改的块区域 b, 图像大小 w, 图像通道数 c, ℓ∞ - 半径 ϵ Output: 新的更新后的 δ∗ ∈ {−ϵ, ϵ}d 1: δ∗ ← δ 2: 均匀采样 RPN γ ∈ {δvert, δhoriz, δuni, δdiag} 3: for i = 1, ..., c do 4: δ∗b,i ← γb,i 5: end for ``` - **算法 3:SplitBlock** ```plaintext Input: 图像大小 w Output: 一系列要修改的块区域 B 1: B = ∅ 2: for i = 1, ..., w do 3: 将图像的整个区域划分为 i2 个大小为 w/i 的方形块 {b1, b2, ..., bi2} 4: B ← B ∪ 打乱顺序后的 {b1, b2, ..., bi2} 5: end for ``` #### 3. 实验 通过与其他 $\ell_{\infty}$ 攻击方法(Parsimonious、SignHunter 和 Square Attack)进行比较来评估该方法。考虑 $\ell_{\infty}$ 威胁模型,在无目标和有目标攻击设置下执行攻击,然后根据攻击成功率、平均查询次数和中位数查询次数来量化性能。 - **自然训练模型的实验** - **数据集和目标模型**:在 CIFAR - 10 和 ImageNet 数据集上评估该方法。对于 CIFAR - 10,使用 Madry 等人的自然训练模型;对于 ImageNet,使用 Keras 中提供的 Inception - v3 预训练模型。 - **方法设置**:为每张图像提供 10k 次查询预算来寻找对抗扰动,将对抗图像的最大 $\ell_{\infty}$ 扰动设置为 $\epsilon = 0.031$。在有目标攻击中,将目标类别设置为 $y_{target} = (y_{true} + 1) \mod K$。 - **实验结果**: | 攻击方法 | 成功率(无目标) | 成功率(有目标) | 平均查询次数(无目标) | 平均查询次数(有目标) | 中位数查询次数(无目标) | 中位数查询次数(有目标) | | --- | --- | --- | --- | --- | --- | --- | | Parsimonious | 9
corwn 最低0.47元/天 解锁专栏
赠100次下载
继续阅读 点击查看下一篇
profit 400次 会员资源下载次数
profit 300万+ 优质博客文章
profit 1000万+ 优质下载资源
profit 1000万+ 优质文库回答
复制全文

相关推荐

物联网_赵伟杰

物联网专家
12年毕业于人民大学计算机专业,有超过7年工作经验的物联网及硬件开发专家,曾就职于多家知名科技公司,并在其中担任重要技术职位。有丰富的物联网及硬件开发经验,擅长于嵌入式系统设计、传感器技术、无线通信以及智能硬件开发等领域。
最低0.47元/天 解锁专栏
赠100次下载
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
千万级 优质文库回答免费看
立即解锁

专栏目录

最新推荐

使用WidgetKit构建天气小部件

### 使用 WidgetKit 构建天气小部件 #### 1. 应用扩展概述 在 iOS 8 中,苹果引入了应用扩展功能,它能让你将应用的功能扩展到应用之外,用户可以从系统的其他部分(如其他应用或通知中心)使用这些扩展功能。例如,你可以为用户提供一个小部件,让其放置在通知中心,该小部件可显示应用的最新信息,像天气、体育比分、股票报价等。 随着 iOS 14 的发布,苹果对这一功能进行了全面改进,并引入了名为 WidgetKit 的新框架。在最新版本的 iOS 中,你可以直接将小部件添加到主屏幕,这一特性方便用户自定义屏幕外观。 应用扩展并非独立的应用,它通过 App Store 作为应

React、TypeScript与Node:GraphQL架构完善之旅

### React、TypeScript与Node:GraphQL架构完善之旅 #### 1. 组件与类型更新 在项目开发中,我们需要对组件和类型进行一系列更新,以确保应用的功能完整性和数据的一致性。以下是具体的操作步骤: 1. **类型定义修改**:打开类型定义文件(typedefs.ts),修改`Thread`和`ThreadItem`类型,在`views`字段下方添加`points: Int!`,代码如下: ```typescript // 在typedefs.ts中 // 在Thread和ThreadItem类型定义中,views字段下方添加 points: Int! ``` 2.

Rust模块系统与JSON解析:深入探索与实践

### Rust模块系统与JSON解析:深入探索与实践 #### 1. Rust模块系统基础 在Rust编程中,模块系统是组织代码的重要方式。使用`mod`关键字可以将代码分离成具有特定用途的逻辑模块。例如,我们可以有如下几种方式来定义模块: - `mod your_mod_name { contents; }`:将模块内容写在同一个文件中。 - `mod your_mod_name;`:将模块内容写在`your_mod_name.rs`文件中。 若要在模块之间使用某些项,必须使用`pub`关键字将其设为公共的。模块可以进行深度嵌套,并且可以使用相对和绝对路径来访问模块内的项。相对路径是相

递归的应用与实现

### 递归的应用与实现 递归是一种在编程中非常强大的技术,尤其适用于那些没有直接算法,需要通过试错来寻找解决方案的问题。本文将介绍递归在搜索和回溯问题中的应用,并通过具体的例子展示如何使用递归解决问题。 #### 搜索与回溯 在解决问题时,当没有直接的算法可用,需要通过试错来寻找解决方案时,递归是一种非常合适的方法。许多这类算法遵循以下模式: 1. 从多个可用选择中选择一个。如果没有可用选项,则表示失败。 2. 如果可以选择一个选项,则应用相同的算法,但尝试解决剩余的问题。 3. 如果成功,则完成任务;否则,尝试另一个选择。 这种逻辑可以应用于许多问题,例如: - **迷宫寻路**:选

构建安全的libgit2Rust接口

### 构建安全的 libgit2 Rust 接口 #### 1. 引言 在使用 libgit2 的原始接口时,它属于不安全特性,Rust 无法强制我们遵循使用它所需的规则。但我们可以构建一个 Rust 接口,通过 Rust 的类型系统或内部管理细节来强制执行这些规则。 #### 2. libgit2 使用规则 在使用 libgit2 时,需要遵循以下规则: - 必须在使用其他库函数之前调用 `git_libgit2_init`,在调用 `git_libgit2_shutdown` 之后不得使用任何库函数。 - 传递给 libgit2 函数的所有值必须完全初始化,但输出参数除外。 - 当调

使用异步Rust构建P2P节点与Docker部署Web服务

### 使用异步Rust构建P2P节点与Docker部署Web服务 #### 1. P2P节点与libp2p 在客户端/服务器计算模型中,客户端和服务器是两种不同的软件。服务器负责数据和相关计算,客户端请求服务器发送数据或对其管理的资源进行计算。而在P2P网络中,通信发生在对等节点之间,每个节点都可以同时扮演客户端和服务器的角色。客户端/服务器网络与P2P网络的一个关键区别在于,P2P网络没有具有独特权限的专用服务器。 libp2p是一个模块化的协议、规范和库系统,可用于开发点对点应用程序,许多著名的P2P项目都在使用它。其关键架构组件包括传输、身份验证、安全、对等发现、对等路由、内容路由

Rust编程语言:特性、应用与技术细节

### Rust编程语言:特性、应用与技术细节 #### 1. Rust概述 Rust并非一门简单的语言,它旨在跨越两个截然不同的领域。它是一种现代编程语言,设计上保证安全,具备闭包和迭代器等便利特性,同时力求让开发者掌控运行机器的原始能力,且运行时开销极小。 Rust语言的特性由其目标决定。它通过安全代码弥合了大部分差距,借用检查器和零成本抽象让开发者尽可能接近底层硬件,同时避免未定义行为。当安全代码无法满足需求,或者需要利用现有的C代码时,Rust提供了不安全代码和外部函数接口。不过,Rust的目标始终是利用不安全特性构建安全的API,标准库中充满了这样的安全抽象,背后可能使用了一些不