对抗样本:给模型看的微小扰动如何骗过它

深度学习模型在图像分类、语音识别和自然语言处理等任务上已经达到甚至超过人类的水平,但它们有一个令人不安的弱点:只要在输入上施加极其微小的、人类几乎无法察觉的改动,模型就可能给出完全错误的判断。这种被精心设计的输入被称为对抗样本(adversarial examples)。本文从概念入手,梳理其存在原因、经典攻击方法、主流防御思路,并探讨它与大模型安全(尤其是提示注入)之间的内在联系。

什么是对抗样本

对抗样本指的是在原样本上叠加一段刻意构造的扰动(perturbation),使得模型以高置信度输出错误结果,而这段扰动对人类观察者来说几乎不可见。最常被引用的例子来自 Szegedy 等人 2013 年的研究:一张被人类明确判定为熊猫的图像,在加上一层肉眼难以分辨的噪声后,模型却以极高置信度将其识别为长臂猿。

这里的关键在于「不可感知」与「稳定误导」同时成立。扰动通常约束在某个很小的范数范围内(例如 L-infinity 范数下的每个像素只改动几个灰度值),所以人眼看不出区别;但模型内部的激活分布被显著改变,最终落到错误的决策区域。换句话说,模型学到的决策边界在人类看来「合理」的区域里,其实充满了脆弱的缝隙。

为何会存在:线性是高维灵敏度的根源

早期一种直觉认为,对抗样本源于神经网络的高度非线性。但 Goodfellow 等人 2014 年的工作给出了更简明、也更具解释力的答案:问题的核心恰恰在于模型的线性。

考虑一个线性模型,其输出近似为权重向量 w 与输入 x 的内积。当我们给 x 加上扰动 η,输出变化约为 w 与 η 的内积。只要输入维度很高,即便每个维度上的扰动都极小,这些微小变化在成百上千个维度上累加起来,也能产生足以翻转分类结果的巨大效应。作者用一句话概括:模型在高维空间中「过于线性」,因而对特定方向上的微小扰动高度敏感。

这一解释还能说明对抗样本的「迁移性」:因为不同模型在相似数据上训练时,学到的线性权重往往在大方向上一致,所以针对一个模型构造的扰动,常常也能欺骗另一个模型。

下面用伪代码给出 FGSM(Fast Gradient Sign Method)的直觉公式,它正是上述线性解释的直观落地:

输入:原始图像 x,真实标签 y,扰动步长 epsilon
计算:损失函数对输入 x 的梯度 g = ∇_x L(θ, x, y)
取符号:s = sign(g)
构造对抗样本:x_adv = x + epsilon * s
约束:限制 x_adv 与 x 的逐像素差值不超过 epsilon

FGSM 只用一步梯度上升就找到使损失增大的方向,因此极其快速,也揭示了对抗样本「廉价且普遍」的本质。

经典攻击方法

围绕如何构造更强的对抗样本,研究者提出了多种方法,可按迭代次数与攻击者的知识分为以下几类。

FGSM:单步快速攻击

FGSM 只在梯度的符号方向上走一步,计算开销极低,适合做大规模鲁棒性评测和演示。缺点是单步扰动未必是最优方向,面对经过对抗训练的模型时成功率会下降。

PGD:迭代最强一阶攻击

Madry 等人 2017 年提出用 projected gradient descent(PGD)作为攻击手段,也被视作「最强的一阶攻击」。PGD 在每一步沿梯度方向更新后,会把结果投影回允许的扰动范围(例如 L-infinity 球)内,并多轮迭代。相比 FGSM,PGD 能找到更靠近决策边界、也更难防御的对抗样本,因此常被用作衡量模型鲁棒性的标准基准。

C&W 攻击

Carlini 与 Wagner 提出的 C&W 攻击通过精心设计的损失函数与优化目标,在许多设定下能构造出比 PGD 更难被检测、扰动更小的对抗样本,常被用来压力测试防御方法是否真的有效。

黑盒与迁移攻击

当攻击者拿不到模型的参数与梯度(即黑盒场景)时,仍可利用对抗样本的迁移性:先在一个替代模型(surrogate model)上构造对抗样本,再把它迁移到目标模型上。实践中,许多商业 API 级别的模型也能被这种方式间接攻击,这说明对抗脆弱性并非个别模型的偶然缺陷。

防御思路:对抗训练与它的代价

最直接的防御是把对抗样本「喂」回训练集,让模型在训练阶段就见过这类扰动。这种方法称为对抗训练(adversarial training)。

Madry 等人 2017 年把对抗训练形式化为一个鲁棒优化问题:在每一步,内部最大化是在当前模型下寻找最强的对抗扰动(通常用 PGD 求解),外部最小化则是用这些对抗样本更新参数,使模型在该最坏情况下仍保持正确。经过对抗训练的模型面对对应强度内的攻击时鲁棒性显著提升。

但鲁棒性并非免费。一个被反复观察到的现象是鲁棒性-准确率权衡(robustness-accuracy trade-off):在干净样本(无扰动的正常数据)上,对抗训练后的模型精度往往略低于普通训练模型;同时,对抗训练需要反复生成对抗样本,计算成本远高于普通训练数倍甚至更多。此外,对抗训练通常只对训练时见过的扰动类型(如特定范数约束)有效,面对分布外的新攻击仍可能失效。

更严格的路线是「认证鲁棒性」(certified robustness),即为模型提供数学上可证明的保证:在某个扰动半径内绝不会被误导。这类方法目前计算昂贵,且能覆盖的扰动范围通常很小,离实用仍有距离。

与大模型安全的联系:提示注入即文本对抗

对抗样本的思想并不局限于图像。在大语言模型(LLM)时代,提示注入(prompt injection)可以被看作「文本空间的对抗扰动」:攻击者在正常指令或上下文里嵌入精心构造的短语,使模型忽略原本的系统指令、转而执行攻击者的意图。

二者的相通之处在于,它们都是「在输入层面施加微小但定向的改动,从而劫持模型行为」。图像对抗样本利用像素级扰动的线性累积,提示注入则利用模型对上下文与指令优先级的脆弱处理。因此,研究对抗样本的攻击与防御,对理解并缓解大模型安全问题是很有价值的视角:例如用「对抗训练」的思路让模型在训练时见过更多注入样本,或者像认证鲁棒性那样为关键指令建立更可靠的隔离机制。

局限与现实挑战

尽管研究已十分丰富,对抗样本在现实中仍留下不少未解难题。第一,对抗训练成本高昂,且往往只针对特定威胁模型有效。第二,鲁棒性与干净样本准确率之间存在权衡,产品团队需要在二者间取舍。第三,认证鲁棒性虽理论上可靠,但适用范围与计算代价限制了落地。第四,攻击与防御长期处于「猫鼠博弈」状态,新的更强攻击不断出现,使既有防御需要持续更新。

理解对抗样本,本质上是理解模型「学到了什么」与「人类认为它学到了什么」之间的鸿沟。它提醒我们:模型的泛化能力不等于鲁棒性,部署于真实世界前,必须主动评估并尽可能缓解这类脆弱性。

小结

对抗样本是在输入上叠加人眼不可感知的扰动以误导模型的产物,其根源在于高维空间中线性模型的累积灵敏度。FGSM 揭示了它的廉价与普遍,PGD 提供了衡量鲁棒性的强基准,对抗训练则是当前最实用的一类防御,但需付出准确率与算力的代价。对抗样本与提示注入共享「输入层面劫持模型行为」的核心思路,是贯通视觉模型与大模型安全的重要主线。

参考与延伸阅读

  • Szegedy, C. et al. 2013. Intriguing properties of neural networks. arXiv:1312.6199(已核验,对抗样本开山之作,提出 imperceptible perturbation 导致误判并可在不同模型间迁移)
  • Goodfellow, I. J. et al. 2014. Explaining and Harnessing Adversarial Examples. arXiv:1412.6572(已核验,提出 FGSM,并以线性解释对抗样本成因)
  • Madry, A. et al. 2017. Towards Deep Learning Models Resistant to Adversarial Attacks. arXiv:1706.06083(已核验,将对抗训练形式化为鲁棒优化,提出 PGD 作为最强一阶攻击)
  • Carlini, N. and Wagner, D. 2017. Towards Evaluating the Robustness of Neural Networks. arXiv:1608.04644(C&W 攻击,常用于压力测试防御有效性)
  • Papernot, N. et al. 2016. Transferability in Machine Learning: from Phenomena to Black-Box Attacks using Adversarial Samples. arXiv:1605.07277(对抗样本迁移性与黑盒攻击)
本文累计阅读