想象一个安检员小安,它经过大量训练,能准确识别行李中的猫和狗玩偶。某天,攻击者在猫玩偶上贴了一张几乎看不见的“透明贴纸”,小安却一口咬定那是狗。贴纸没有改变人类眼中的猫,却精准踩中了小安判断的“敏感点”。这张透明贴纸,就是对抗样本里的“对抗扰动”;小安面对伪装仍能保持正确识别的能力,就是模型鲁棒性。本文以这个安检员的视角,拆解对抗样本如何生成(FGSM、PGD)、攻击如何分类、鲁棒性测试方案如何设计,以及怎样通过对抗训练等防御手段给保安“补课”。

岗位关联

对 AI 从业者来说,掌握对抗样本与鲁棒性测试,等于学会给模型做“安全体检”,能提前发现上线后被攻击的漏洞。

目录
  1. 可视化演示
  2. 1. 对抗样本入门
  3. 2. 模型鲁棒性
  4. 3. FGSM 攻击
  5. 4. PGD 攻击
  6. 5. 攻击类型分类
  7. 6. 鲁棒性测试方案
  8. 7. 对抗防御方法
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示对抗样本与模型鲁棒性测试的核心机制,通过源头/管道/节点/终端四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

对抗样本与模型鲁棒性测试:对抗样本 对抗样本的概念与威胁模型分类 FGSM快速梯度符号法攻击原理 核心机制可视化 对抗样本与模型鲁棒性测试整体架构与关键组件

1. 对抗样本入门

安检员小安平时看猫狗照片准确率 99%,直到有人拿着一张猫的照片,贴了一层几乎看不见的纹理后,小安在屏幕上果断打出“狗”。这层纹理没有让照片变模糊,也没有改变人类看到的轮廓,它只是把像素值往模型最敏感的方向推了一点点。这个被精心调整过的输入,就是对抗样本。

从数学上看,对抗样本不是“另一张图”,而是原图加一个很小的扰动向量 δ。扰动要足够小,通常限制在某个 ε 的球内,这样人眼看不出区别;但模型 f 在扰动后的输入 x+δ 上,输出却不再是原来的标签 y。也就是说,对抗样本要满足两个矛盾条件:人眼觉得没变,模型觉得变天。

生成对抗样本的一般思路是:在约束 ‖δ‖p≤ε 的条件下,让模型对 x+δ 的损失尽可能大。p 常用 1、2、∞,分别对应不同“贴纸规模”的度量。ε 越小,扰动越隐蔽,但攻击难度也越大;ε 越大,越容易被看出来,但更容易骗过模型。

所以,对抗样本不是把猫 P 成狗,而是在猫身上“擦一层观众看不见、安检机却高度敏感的气味”。理解这一点,就理解了整座大楼的地基。

δ∗=arg⁡max⁡∥δ∥p≤εL(f(x+δ),y)\displaystyle \delta^*=\arg\max_{\|\delta\|_p\le\varepsilon}\mathcal{L}\big(f(x+\delta),y\big)
通俗说明:在“不许把图片改得太明显”的规则下,找一种最能让模型犯错的像素改动。
  1. 扰动向量 δ待求的对抗扰动,也是要加到原始图片上的“透明贴纸”。
    δ=xadv−x\delta = x_{adv} - x
  2. 约束条件扰动的大小不能超过 ε,确保改动人眼难以察觉。
    ∥δ∥p≤ε\|\delta\|_p \le \varepsilon
  3. 最大化损失选择让模型在错误答案上损失最大的方向,相当于精准刺激小安的“误判点”。
    arg⁡max⁡δL(f(x+δ),y)\arg\max_{\delta}\mathcal{L}\big(f(x+\delta), y\big)

2. 模型鲁棒性

小安平时考试成绩优秀,但考试一换“贴纸题型”就崩。鲁棒性就是小安在被攻击者蓄意刁难时,仍能稳定识别的能力。一个鲁棒的模型,在输入附近的一个小邻域内,预测结果不会因为微小扰动而突然翻盘。

为了量化这种稳定性,我们给鲁棒性定义威胁模型:攻击者知道什么、能改什么、目标是什么。白盒攻击假设攻击者能看到模型结构和梯度,黑盒攻击只能查询输出。威胁模型不同,测试方案和攻击难度都不同。

工程上最常用的鲁棒性指标是鲁棒精度:对测试集的每个样本,先用攻击算法生成对抗样本,再统计模型在这些对抗样本上的正确率。它比普通准确率更贴近安全场景。

如果小安对透明贴纸毫无抵抗力,那它的“日常准确率”再高也不适合面对恶意环境。鲁棒性指标就是给模型出的安全考卷。

RobAcc=1N∑i=1N1[f(xi+δi)=yi]\displaystyle \text{RobAcc}=\frac{1}{N}\sum_{i=1}^{N}\mathbb{1}\big[f(x_i+\delta_i)=y_i\big]
通俗说明:把 N 张“被贴纸改造过的考卷”发给模型,看它还能答对多少道。
  1. 求和下标遍历测试集中的 N 个样本。
    i=1,2,…,Ni=1,2,\dots,N
  2. 指示函数括号内“模型预测等于真实标签”成立时记 1,否则记 0。
    1[f(xi+δi)=yi]\mathbb{1}[f(x_i+\delta_i)=y_i]
  3. 鲁棒精度所有对抗样本上的平均正确率,就是小安在“贴纸考试”中的得分。
    1N∑i=1N⋯\frac{1}{N}\sum_{i=1}^{N}\cdots

3. FGSM 攻击

FGSM(快速梯度符号法)的思路很直接:既然小安对某些纹理特别敏感,那就问模型“往哪个方向改最容易被带偏”。这个方向就是损失对输入 x 的梯度;FGSM 把梯度取符号,再乘上扰动强度 ε,一次性把图片往那个方向推。

它只走一步,所以计算极快,是安全测试团队用来快速摸底的工具。但正因为只走一步,它假设损失函数在局部近似线性;如果真实决策边界弯曲明显,单步攻击往往不如多步攻击强。

FGSM 公式中,∇xJ 是损失对输入像素的梯度,sign 负责把梯度变成 +1/-1 的方向,ε 控制整体扰动幅度。结果就是:所有像素都往让模型犯错的同方向移动相同大小的值。

FGSM 就像给猫快速涂一层“狗味香水”,可能一眼就能骗过小安,也可能骗不过。它跑得快,常被用来做鲁棒性测试的第一轮扫描。

xadv=x+ε⋅sign⁡(∇xJ(θ,x,y))\displaystyle x_{adv}=x+\varepsilon\cdot\operatorname{sign}\big(\nabla_x J(\theta,x,y)\big)
通俗说明:小安对“猫耳朵变狗耳朵”的模板最敏感,FGSM 就沿这个方向,一次性给所有像素涂上等量的误导色。
  1. 原始输入 x待攻击的干净图片。
    x∈[−1,1]dx \in [-1,1]^d
  2. 梯度方向计算损失对图片的梯度,找到让模型更糊涂的方向。
    ∇xJ(θ,x,y)\nabla_x J(\theta,x,y)
  3. 符号函数取每个分量的正负号,变成统一大小的方向信号。
    sign⁡(⋅)\operatorname{sign}(\cdot)
  4. 扰动强度乘以 ε,控制贴纸的明显程度。
    ε⋅\varepsilon\cdot

4. PGD 攻击

如果 FGSM 是“涂一次香水”,PGD 就是“反复试妆”:每次涂一点点,看看小安的反应,再根据新的梯度继续调整,最后把效果最好的那套妆容拿出来。它本质上是多步 FGSM。

多步迭代容易让扰动跑出允许范围,所以 PGD 每走一步都要“投影”回以原始样本为中心的 ε 球内。这就像给化妆师规定:怎么改都行,但总改动量不能超过这一小盒颜料。投影操作保证扰动始终满足约束。

PGD 通常从原始样本附近的随机点开始,按步长 α 沿梯度符号方向走,每步用 clip 把样本拉回 ε 邻域。多次迭代后,它往往能比 FGSM 找到更强的对抗样本,因此常被当作“标准攻击基准”。

对小安来说,FGSM 是急吼吼的骗子,PGD 则是耐心的伪装高手。安全测试如果想摸清模型的下限,PGD 是不可或缺的“压力测试”。

xadv(t+1)=Πx+S[xadv(t)+α⋅sign⁡(∇xJ(θ,xadv(t),y))]\displaystyle x_{adv}^{(t+1)}=\Pi_{x+\mathcal{S}}\Big[x_{adv}^{(t)}+\alpha\cdot\operatorname{sign}\big(\nabla_x J(\theta,x_{adv}^{(t)},y)\big)\Big]
通俗说明:PGD 是“小步快跑 + 不许出界”的攻击:每次只改一点,但每改完一步都检查自己有没有跳出允许的扰动范围。
  1. 迭代步数 t攻击过程中第 t 次修改,一共做多次。
    t=0,1,2,…t=0,1,2,\dots
  2. 步长 α每次在梯度方向上挪动的幅度。
    α\alpha
  3. 投影算子把越界的样本拉回以 x 为中心、半径为 ε 的可行域。
    Πx+S\Pi_{x+\mathcal{S}}
  4. 符号梯度和 FGSM 一样,用梯度的符号作为移动方向。
    sign⁡(∇xJ(θ,xadv(t),y))\operatorname{sign}\big(\nabla_x J(\theta,x_{adv}^{(t)},y)\big)

5. 攻击类型分类

同一个世界,不同的骗子。有人只想让小安出错:猫说成狗,狗说成猫,错得离谱就行,这叫无目标攻击。有人却有个明确剧本:非要把猫说成“拉布拉多”,这叫有目标攻击。后者通常更难,因为要同时避开正确的类别并逼近指定类别。

攻击者掌握的信息也不同。白盒攻击手里有模型结构和梯度,相当于能看到小安的训练手册;黑盒攻击只能拿样本去试,再根据输出猜测规律,类似于对着安检机疯狂递行李摸清规则。黑盒攻击可利用替代模型的对抗样本迁移到目标模型,所以不能因为没梯度就放松警惕。

攻击的物理形态也有区别:数字攻击直接在像素矩阵上加减,物理攻击要把对抗图案打印成贴纸、眼镜框,贴在真实世界物体上。物理攻击要考虑光照、角度和打印误差,但一旦成功,威胁更贴近现实。常见防御策略包括对抗训练、输入去噪、随机化等,它们分别从数据、输入、模型结构三个层面提高门槛。

测试时,安全团队通常按威胁模型分组:白盒/黑盒、有目标/无目标、数字/物理。每一种“骗子类型”都对应一张考卷,只有全部通过,小安才算得上可靠。

min⁡∥δ∥p≤εL(f(x+δ),ytarget),ytarget≠y\displaystyle \min_{\|\delta\|_p\le\varepsilon}\mathcal{L}\big(f(x+\delta),y_{target}\big),\quad y_{target}\neq y
通俗说明:有目标攻击就像给猫化妆成指定品种的狗,而不是随便变成什么狗都行。
  1. 目标标签攻击者指定要骗成的类别。
    ytargety_{target}
  2. 最小化目标损失让模型对指定类别的损失降到最低,从而提高该类别概率。
    min⁡δL(f(x+δ),ytarget)\min_{\delta}\mathcal{L}(f(x+\delta),y_{target})
  3. 约束条件仍然限制扰动大小,避免被人眼发现。
    ∥δ∥p≤ε\|\delta\|_p\le\varepsilon

6. 鲁棒性测试方案

评估鲁棒性不是让模型做一道题,而是出一套完整的“心理测试题”。测试方案要从威胁模型出发,明确攻击算法(FGSM 还是 PGD)、扰动强度 ε、迭代次数、攻击是否有目标,以及评估指标。这样不同团队之间才能横向比较。

测试集要混合干净样本和对抗样本,并覆盖不同难度。最简单的流程是:先在干净集上测出基准精度,再用 FGSM 做快速扫描,接着用 PGD 做深度攻击,最后统计攻击成功率和样本级鲁棒性。

攻击成功率(ASR)是安全测试的核心指标:生成多少对抗样本能让模型犯错。它和鲁棒精度互补,鲁棒精度看正确率,ASR 看被攻破的比例。报告里还要记录攻击参数、扰动大小和失败案例,方便研发团队定位问题。

给小安出考卷的目的不是让它考满分,而是提前发现它会被哪种“贴纸”骗。测出的 ASR 越高,越应该在模型上线前进行防御加固。

ASR=1N∑i=1N1[f(xi+δi)≠yi]\displaystyle \text{ASR}=\frac{1}{N}\sum_{i=1}^{N}\mathbb{1}\big[f(x_i+\delta_i)\neq y_i\big]
通俗说明:ASR 就是“小安在恶意贴纸考卷上的翻车率”,翻车率越高,说明越不安全。
  1. 样本总数 N测试的对抗样本总数。
    NN
  2. 指示函数只要预测错误就记 1。
    1[f(xi+δi)≠yi]\mathbb{1}[f(x_i+\delta_i)\neq y_i]
  3. 求和取平均把所有翻车样本加起来除以总数,得到攻击成功率。
    1N∑i=1N⋯\frac{1}{N}\sum_{i=1}^{N}\cdots

7. 对抗防御方法

知道了骗术,就能教小安反骗。最朴素也最常用的防御是“对抗训练”:在训练时把对抗样本也塞进题海,让小安见过这些贴着透明贴纸的猫狗,慢慢学会忽略贴纸。对抗训练相当于给保安上“骗子脸谱识别课”。

对抗训练的目标是让模型在干净样本和对抗样本上都表现好。训练的最小化目标由两部分组成:干净损失 + 对抗损失。λ 控制防御强度,太大的 λ 可能牺牲正常样本的精度,太小又防不住攻击,需要调参。

除了对抗训练,还有输入预处理(如降噪、压缩、随机化)、改进模型结构和使用更稳健的优化方法。输入预处理是把“贴纸”先擦掉一部分再给模型看;改进结构则是让模型对局部扰动天然迟钝。防御没有银弹,通常要组合使用,并且要用 PGD 等强攻击反复验证。

防御做完不能直接宣布胜利,还要用 PGD 等更强攻击重新测试。小安只有通过一轮轮“道高一尺、魔高一丈”的检验,才能真正站上安全岗。

min⁡θ[1N∑i=1NL(fθ(xi),yi)+λ1N∑i=1NL(fθ(xi+δi),yi)]\displaystyle \min_{\theta}\left[\frac{1}{N}\sum_{i=1}^{N}\mathcal{L}\big(f_\theta(x_i),y_i\big)+\lambda\frac{1}{N}\sum_{i=1}^{N}\mathcal{L}\big(f_\theta(x_i+\delta_i),y_i\big)\right]
通俗说明:既要让小安认得正常图片,也要让它认得被贴纸干扰的图片,两边都不能偏科。
  1. 模型参数 θ要训练优化的模型权重。
    θ\theta
  2. 干净样本损失第一项,衡量在正常输入上的表现。
    1N∑iL(fθ(xi),yi)\frac{1}{N}\sum_i \mathcal{L}(f_\theta(x_i),y_i)
  3. 对抗样本损失第二项,衡量在对抗样本上的表现。
    λ1N∑iL(fθ(xi+δi),yi)\lambda\frac{1}{N}\sum_i \mathcal{L}(f_\theta(x_i+\delta_i),y_i)
  4. 平衡系数 λ控制防御强度。
    λ\lambda

AI 应用场景

场景一:安全团队视觉模型红队测试

阶段:模型测试与安全评估

解决的问题:电商平台用图像审核模型检测违禁品,传统测试只看正常样本准确率,无法发现针对审核的漏网之鱼。用 FGSM/PGD 构造对抗样本,模拟攻击者给商品图片加不可察觉噪声,可以提前找出漏洞。

具体案例:某安全团队对图像分类系统做红队测试,用 PGD 对 1000 张测试图生成对抗样本,发现攻击成功率 68%,部分正常商品图被误判成违禁品。测试报告直接推动模型重新训练和上线前加固。

场景二:智能门禁鲁棒性验收

阶段:上线前鲁棒性验收

解决的问题:人脸识别闸机容易被“对抗眼镜”绕过,传统准确率指标无法反映这种攻击。通过白盒/黑盒对抗样本生成,评估系统在真实攻击下的表现。

具体案例:测试团队对人脸识别模型生成眼镜框图案的物理对抗样本,在闸机前实测发现系统把员工误判为陌生人。鲁棒性测试报告最终成为该闸机是否允许上线的关键依据。

场景三:自动驾驶感知模型防御效果验证

阶段:防御策略评估

解决的问题:自动驾驶感知模型在路牌上被贴小贴纸就可能误判,需要验证对抗训练等防御是否真的有效。

具体案例:算法团队先用 PGD 攻击评估,发现“STOP”标志识别准确率从 98% 掉到 35%;随后加入对抗训练重新评测,鲁棒精度提升到 82%,并输出前后对比报告。

Python 演示

python64 行
import numpy as np rng = np.random.default_rng(42)  def sigmoid(z):    return 1.0 / (1.0 + np.exp(-z))  def train(X, y, steps=300, lr=0.5):    w = np.zeros(X.shape[1])    b = 0.0    for _ in range(steps):        p = sigmoid(X @ w + b)        grad_w = (X.T @ (p - y)) / len(y)        grad_b = (p - y).mean()        w -= lr * grad_w        b -= lr * grad_b    return w, b  def predict(X, w, b):    return (sigmoid(X @ w + b) >= 0.5).astype(int)  def accuracy(X, y, w, b):    return (predict(X, w, b) == y).mean()  def fgsm(x, y, w, b, eps=0.2):    p = sigmoid(x @ w + b)    grad = (p - y) * w    return x + eps * np.sign(grad)  def pgd(x, y, w, b, eps=0.2, alpha=0.05, iters=10):    x_adv = x + rng.uniform(-eps, eps, size=x.shape)    for _ in range(iters):        p = sigmoid(x_adv @ w + b)        grad = (p - y) * w        x_adv = x_adv + alpha * np.sign(grad)        x_adv = np.clip(x_adv, x - eps, x + eps)        x_adv = np.clip(x_adv, -1.0, 1.0)    return x_adv  def attack_accuracy(X, y, w, b, attack, **kwargs):    adv = np.array([attack(x, y[i], w, b, **kwargs) for i, x in enumerate(X)])    return accuracy(adv, y, w, b)  def main():    cat = rng.normal([-0.6, 0.6], 0.3, size=(60, 2))    dog = rng.normal([0.6, -0.6], 0.3, size=(60, 2))    X = np.vstack([cat, dog])    y = np.concatenate([np.zeros(60), np.ones(60)]).astype(int)    w, b = train(X, y)    print("clean acc =", round(accuracy(X, y, w, b), 3))    print("FGSM acc =", round(attack_accuracy(X, y, w, b, fgsm, eps=0.2), 3))    print("PGD acc =", round(attack_accuracy(X, y, w, b, pgd, eps=0.2, alpha=0.05, iters=10), 3))  if __name__ == "__main__":    main()
目的:训练一个简单的猫狗二分类器,并用 FGSM/PGD 生成对抗样本,对比干净样本和攻击样本上的准确率,直观评估模型鲁棒性。
  1. grad = (p - y) * w对二分类逻辑回归,损失对输入的梯度正比于预测偏差乘权重,相当于找出小安最敏感的改动方向。
  2. return x + eps * np.sign(grad)把梯度变成方向,乘以 ε 后一次性加到原图,完成 FGSM 单步攻击。
  3. x_adv = x + rng.uniform(-eps, eps, size=x.shape)PGD 从随机起点开始,让迭代搜索不局限于单一路径。
  4. x_adv = np.clip(x_adv, x - eps, x + eps)每步把扰动拉回 ε 邻域,这是 PGD 区别于普通多步梯度下降的关键。
  5. return accuracy(adv, y, w, b)统计对抗样本上的正确率,得到模型鲁棒性得分。

常见误区

误区我以为对抗样本就是把图片涂花、加噪点,图片肯定看起来很奇怪,所以只要人看不出问题就不会被攻击。

正解对抗扰动的 ε 通常很小,人眼几乎无法察觉,但模型会在局部邻域内犯错。它更像一张透明贴纸,人不刻意看根本发现不了,安检机却因敏感纹理而误判。

为何常见:很多教程为了展示效果会把扰动放大,导致初学者误以为对抗样本必须可见。

误区FGSM 和 PGD 都用梯度符号,PGD 多迭代几次而已,实际攻击能力差别不大。

正解FGSM 是沿着梯度方向一步跨出去,依赖局部线性假设;PGD 是多步小步迭代并投影回扰动范围,能逼近更强的局部最优攻击。在弯曲的决策边界上,两者的攻击成功率可以相差很大。

为何常见:两者公式长得像,容易被忽略“投影”和“迭代”这两个核心差异。

误区模型在测试集上准确率 99%,说明它已经很稳定,应该不怕对抗样本。

正解准确率衡量自然数据上的平均表现,鲁棒性衡量最坏情况或局部扰动下的稳定性。高准确率模型的决策边界可能紧贴训练数据,加入微小扰动后仍然会翻车。

为何常见:日常评测几乎都用自然数据,人们容易把“平均表现”错当成“安全底线”。

误区只要用对抗样本训练过模型,以后所有攻击都伤不到它了。

正解对抗训练通常只对训练时用过的攻击方式有效,面对更强的 PGD、可迁移黑盒攻击或新攻击形态仍可能失败,甚至出现“梯度掩蔽”这种假防御。

为何常见:防御效果总在固定攻击下评估,换一种攻击就露馅,容易让人高估安全性。

误区黑盒攻击拿不到模型内部权重和梯度,因此黑盒模型是安全的,攻击者无从下手。

正解黑盒攻击可以利用替代模型生成可迁移对抗样本,也可以通过多次查询输出估算梯度。你看不到安检机内部参数,但通过不断试行李也能摸清它的盲区。

为何常见:很多人从 FGSM、PGD 的梯度公式出发,想当然认为没梯度就没法做攻击。

面试题

Q1. 什么是对抗样本?

单选题 · easy

  • A.人为注入程序的计算机病毒
  • B.添加微小扰动骗过模型的输入← 正确答案
  • C.像素被彻底毁坏的模糊图片
  • D.用来训练模型的标准数据集

答案:B。对抗样本在原始输入上加上人眼难以察觉的微小扰动,使模型预测出错。它并不是病毒,也不是正常数据集,更不是毁坏的图片。

Q2. FGSM 中 sign 函数的作用是什么?

单选题 · easy

  • A.将梯度压缩成方向信号← 正确答案
  • B.放大梯度数值信息
  • C.减小模型损失的数值
  • D.统计参数的梯度大小

答案:A。FGSM 只需要知道往哪个方向扰动,sign 把每个梯度分量的数值变成 +1 或 -1,从而生成统一幅度的扰动方向。

Q3. 鲁棒精度度量的是什么?

单选题 · easy

  • A.普通干净样本上的准确率
  • B.对抗攻击下的分类准确率← 正确答案
  • C.模型推理速度的快慢
  • D.模型参数规模的大小

答案:B。鲁棒精度先为样本生成对抗扰动,再统计模型在这些对抗样本上的正确率,反映模型面对攻击时的稳定性。

Q4. PGD 与 FGSM 的核心区别是什么?

单选题 · mid

  • A.PGD 使用多次小步迭代← 正确答案
  • B.PGD 无需计算任何梯度
  • C.PGD 直接修改训练标签
  • D.PGD 只能在白盒中使用

答案:A。PGD 迭代执行多次小步梯度攻击,并把结果投影回允许扰动范围,因此通常比单步 FGSM 更强,但它依然需要梯度,也可在黑盒迁移场景下使用。

Q5. 以下哪些属于对抗防御方法?

多选题 · mid

  • A.对抗训练← 正确答案
  • B.输入预处理← 正确答案
  • C.增大模型参数量
  • D.增加训练集标签

答案:AB。对抗训练在训练数据中加入对抗样本,输入预处理通过降噪、压缩等方式削弱扰动,二者都是常见防御。只是增加参数量或标签不能直接提升对抗鲁棒性。

Q6. 无目标和靶向攻击的区别是什么?

单选题 · mid

  • A.无目标只求分类出错← 正确答案
  • B.靶向攻击指定错误类别
  • C.无目标攻击无需扰动
  • D.两者在效果上无差别

答案:A。无目标攻击只要让模型预测错就行,靶向攻击还要进一步指定一个特定错误类别。两者都依赖扰动,区别在于攻击目标是否明确。

Q7. 黑盒攻击可用哪些手段?

多选题 · mid

  • A.用替代模型生成对抗样本← 正确答案
  • B.查询输出并估计梯度← 正确答案
  • C.直接读取模型内部权重
  • D.随机猜测全部模型参数

答案:AB。黑盒攻击可通过替代模型的对抗样本迁移到目标模型,也可通过查询输出近似估计梯度。直接读取权重属于白盒攻击,随机猜测参数不是有效方法。

Q8. 为什么高准确率模型也可能鲁棒性差?

单选题 · hard

  • A.决策边界紧贴数据流形← 正确答案
  • B.模型参数过多导致过拟合
  • C.训练数据总是含有噪声
  • D.鲁棒性与准确率必然反比

答案:A。高准确率模型的决策边界可能正好贴着训练数据,只要输入往边界外移动一点点,就会被误判。准确率看平均表现,鲁棒性看邻域稳定性,二者并不保证同步。

Q9. 评估鲁棒性时测试方案应包含哪些要素?

多选题 · hard

  • A.多种攻击强度和迭代次数← 正确答案
  • B.干净样本与对抗样本对照← 正确答案
  • C.只采用训练集样本评估
  • D.报告攻击成功率与迁移性← 正确答案

答案:ABD。鲁棒性测试需要覆盖不同攻击强度、迭代次数、干净与对抗对照,并报告 ASR 和迁移性。只用训练集评估会把安全测试变成记忆测试,无法反映泛化能力。

Q10. 梯度掩蔽的问题在于?

单选题 · extreme

  • A.防御依赖不可靠的梯度← 正确答案
  • B.模型训练时无法反向传播
  • C.可以完全消除对抗样本
  • D.模型正常精度显著下降

答案:A。梯度掩蔽是一种假防御,模型在攻击目标上的梯度不可靠,让白盒攻击失效,但攻击者改用替代模型或可迁移攻击就能绕过。它并不等于模型真正鲁棒。