3、对抗样本基础:定义、分类(白盒/黑盒/灰盒)、常见攻击类型(FGSM、PGD、C&W、DeepFool)

在TinyML的部署场景中,模型往往运行在资源受限的MCU或边缘处理器上,其输入直接来源于物理世界的传感器数据——摄像头帧、麦克风采样、IMU序列或雷达点云。与云端大模型不同,端侧模型缺乏隔离沙箱,攻击者可以物理接触设备,甚至直接操纵输入信号。对抗样本(Adversarial Examples)正是在这一背景下成为端侧AI安全的首要威胁:攻击者通过在原始输入上添加人眼难以察觉的微小扰动,使模型以高置信度输出错误结果。本章将系统梳理对抗样本的定义、攻击者知识分级(白盒/黑盒/灰盒),并深入剖析四种经典攻击算法(FGSM、PGD、C&W、DeepFool)的数学原理、实现路径与在TinyML场景下的适用性。

对抗样本攻击知识体系总览 对抗样本 (Adversarial Examples) 白盒攻击 (White-box) · 完全掌握模型结构 · 可获得梯度信息 · 可访问训练数据/权重 · 代表:FGSM, PGD, C&W 灰盒攻击 (Grey-box) · 部分信息泄露 · 知道模型类型/蒸馏版本 · 或通过侧信道获取信息 · 代表:迁移攻击、查询受限 黑盒攻击 (Black-box) · 仅能查询输入/输出 · 无梯度/结构信息 · 依赖决策或分数反馈 · 代表:ZOO, 边界攻击 FGSM (快速梯度符号法) 单步、基于符号梯度 ε=0.1~0.3,速度快 PGD (投影梯度下降) 迭代多步、投影约束 最强一阶攻击 C&W (Carlini-Wagner) 优化距离度量 L0/L2/L∞范数 DeepFool 最小扰动逼近 几何视角 TinyML 端侧特性:量化误差放大攻击效果 · 物理世界可触达 · 计算资源限制防御手段 → 对抗样本在端侧更具现实威胁性

上图展示了对抗样本攻击的知识体系全貌。从攻击者掌握模型信息的程度来看,白盒、灰盒、黑盒构成了一个信息量递减的谱系;而从攻击算法来看,FGSM、PGD、C&W、DeepFool分别代表了从单步到迭代、从快速粗糙到精细优化的不同攻击策略。在TinyML场景中,由于模型经过量化压缩、剪枝等操作,其决策边界与原始模型存在偏移,这既可能削弱某些白盒攻击的迁移性,也可能因量化误差引入新的脆弱点。理解这些基础概念,是后续设计鲁棒性测试方案的前提。

3.1 对抗样本的定义与数学本质

对抗样本的严格定义可以表述为:给定一个分类模型 f: ℝn → {1,...,K},对于原始样本 x(真实标签为 ytrue),存在一个扰动向量 δ,使得构造的对抗样本 x' = x + δ 满足以下两个条件:

  1. 误分类条件:f(x') ≠ ytrue,即模型输出错误标签;
  2. 不可感知条件:‖δ‖p ≤ ε,其中 ε 是一个很小的阈值,通常使用 L∞、L2 或 L0 范数度量扰动大小。

从几何视角看,对抗样本的存在揭示了深度模型决策边界的高度非线性——在人类感知空间中相距甚远的两个点,在模型的特征空间中可能仅隔一条极窄的决策边界。Szegedy等人(2013)最早发现,通过有目的的优化,可以在原始样本附近找到大量对抗样本,且这些样本在不同模型间具有迁移性。这一发现颠覆了此前“模型泛化能力越强越鲁棒”的直觉认知。

核心原理提炼:对抗样本的本质是模型在输入空间中的局部线性假设失效。对于高维输入(如图像的像素、音频的采样点),即使每个维度只添加微小的扰动,累加后也可能将样本推过决策边界。TinyML模型由于参数量少、特征提取能力有限,其决策边界往往更加“粗糙”,更容易被定向扰动突破。

3.2 攻击者知识分级:白盒、黑盒与灰盒

攻击者掌握的信息量直接决定了攻击策略的选择与攻击成功率。下表对比了三种攻击场景的核心差异:

维度 白盒攻击 灰盒攻击 黑盒攻击
模型结构 完全已知(网络层数、激活函数、权重) 部分已知(如模型类型、量化位宽) 完全未知
梯度信息 可精确计算 不可直接获得,但可近似估计 不可获得
训练数据 可访问或可推断 可能有部分样本 仅能通过查询获取输出
典型攻击方法 FGSM、PGD、C&W、DeepFool 迁移攻击、蒸馏攻击 ZOO(零阶优化)、边界攻击、HopSkipJump
TinyML场景适用性 适用于开发者自测、模型审计 适用于第三方安全评估 适用于物理世界攻击模拟
攻击成本 低(计算梯度即可) 中(需训练替代模型) 高(大量查询)

在TinyML实践中,白盒攻击通常用于开发阶段的鲁棒性验证——开发者拥有模型权重,可以快速评估模型对特定扰动的敏感度。黑盒攻击则更贴近真实威胁场景:攻击者可能仅通过设备的物理接口(如摄像头、麦克风)输入数据,观察设备输出(如分类标签、置信度分数),从而逐步构造对抗样本。灰盒攻击介于两者之间,例如攻击者知道目标设备使用的是MobileNetV2量化模型,但不知道具体权重,此时可以训练一个结构相似的替代模型来生成对抗样本,再迁移到目标设备上。

风险提示:在TinyML场景中,黑盒攻击的查询成本可能被低估。端侧设备通常没有日志系统,攻击者每次查询只能通过观察设备行为(如LED指示灯、屏幕显示)来获取结果,这大大降低了攻击效率。然而,如果攻击者能够物理接触设备并提取固件(通过JTAG或UART接口),则可能直接获得模型权重,将黑盒攻击升级为白盒攻击。

3.3 常见攻击类型详解

3.3.1 FGSM(Fast Gradient Sign Method)

FGSM由Goodfellow等人于2014年提出,是最早的对抗攻击算法之一。其核心思想是利用模型损失函数对输入的梯度方向,沿梯度上升方向添加扰动,使损失增大。数学表达式为:

x' = x + ε · sign(∇_x J(θ, x, y_true))

其中,J 是损失函数(如交叉熵),θ 是模型参数,ε 是扰动幅度。FGSM的关键在于“符号”操作——只取梯度的方向,忽略幅值,这使得扰动在L∞范数约束下达到最大效果。FGSM是单步攻击,计算效率极高,在TinyML的MCU上甚至可以在毫秒级完成一次攻击样本生成。

TinyML适用性分析:FGSM适合快速评估模型的基线鲁棒性。例如,在部署关键词唤醒(KWS)模型时,开发者可以用FGSM生成一批扰动样本,测试模型在ε=0.05、0.1、0.2下的准确率下降曲线。但FGSM的攻击成功率相对有限,容易被对抗训练防御。

3.3.2 PGD(Projected Gradient Descent)

PGD是FGSM的迭代增强版,由Madry等人(2017)提出。它通过多步小步长更新,并在每步后将扰动投影回允许的ε-ball内,从而在约束空间内寻找更优的对抗扰动。算法流程如下:

初始化: x_0 = x + U(-ε, ε)  # 随机起始点
循环 t = 0 to T-1:
    x_{t+1} = Π_{B_ε(x)} (x_t + α · sign(∇_x J(θ, x_t, y_true)))
其中 α 为步长,通常 α = ε/4 或 ε/10,T 为迭代次数(通常10~40)

PGD被称为“最强一阶攻击”,因为它在L∞或L2约束下能够稳定地找到比FGSM更强的对抗样本。在TinyML场景中,PGD常用于评估模型在持续攻击下的鲁棒性上限。但需要注意,PGD的计算开销是FGSM的T倍,在资源受限的端侧设备上,实时生成PGD对抗样本可能不现实,更适合在离线阶段进行模型鲁棒性验证。

3.3.3 C&W(Carlini-Wagner)攻击

C&W攻击由Carlini和Wagner于2017年提出,是一种基于优化的攻击方法。与FGSM/PGD直接最大化损失不同,C&W将对抗样本构造转化为一个约束优化问题:

最小化 ‖δ‖_p + c · f(x + δ)
使得 x + δ ∈ [0,1]^n(输入有效范围)
其中 f(x') = max(max_{i≠y_true} Z(x')_i - Z(x')_{y_true}, -κ)
Z(x') 是模型softmax前的logits输出,κ 是置信度参数

C&W攻击的核心优势在于:它显式地优化扰动范数,能够生成扰动极小且攻击成功率极高的对抗样本。在L2范数下,C&W生成的扰动往往比FGSM小一个数量级。然而,C&W的优化过程需要数百次迭代,计算成本极高,在TinyML的MCU上几乎不可能实时运行。但在离线安全评估中,C&W可以作为“金标准”来衡量模型的理论鲁棒性下限。

3.3.4 DeepFool

DeepFool由Moosavi-Dezfooli等人(2016)提出,其思想是从几何角度逼近决策边界。对于二分类问题,DeepFool通过迭代线性化决策边界,计算当前样本到边界的最小距离,并沿垂直方向移动。对于多分类问题,则找到最近的其他类别边界。DeepFool的独特价值在于它能够估计模型的“鲁棒性度量”——即平均最小扰动距离,这一指标比单纯的成功率更能反映模型的稳健程度。

在TinyML场景中,DeepFool可用于比较不同量化位宽(如INT8 vs INT16)对模型鲁棒性的影响。实验表明,量化后的模型其DeepFool最小扰动距离通常小于浮点模型,说明量化过程本身可能引入额外的脆弱性。

3.4 攻击算法对比与选择策略

算法 扰动范数 迭代次数 攻击强度 计算开销 TinyML典型用途
FGSM L∞ 1 中 极低 快速基线测试、在线监控
PGD L∞/L2 10~40 高 中 离线鲁棒性评估、对抗训练
C&W L0/L2/L∞ 100~1000 极高 高 安全审计、最小扰动测量
DeepFool L2 取决于边界复杂度 高 中高 鲁棒性度量、模型对比

3.5 实战场景:TinyML语音命令识别模型的对抗鲁棒性测试

我们以一个实际的TinyML项目为例,说明如何综合运用上述攻击算法进行鲁棒性评估。假设我们部署了一个基于MobileNetV1的20类语音命令识别模型(关键词:yes/no/up/down/left/right/on/off/stop/go等),模型已量化为INT8,运行在Cortex-M7内核的MCU上,主频400MHz,RAM 512KB。

初始现象:在实验室环境下,模型准确率达到94.2%。但在实际使用中,用户反馈在嘈杂环境下经常误触发。初步排查发现,背景噪声中的某些频率成分可能被模型误识别为关键词。

测试目标:量化模型对微小扰动的敏感度,找出最脆弱的类别,并验证防御策略的有效性。

测试步骤:

  1. 白盒FGSM基线测试:使用开发板上的模型权重,对1000个测试样本分别施加ε=0.05、0.1、0.2的FGSM扰动。结果显示,ε=0.1时准确率降至71.3%,ε=0.2时降至43.8%。其中“yes”和“no”两个类别最容易受到攻击。
  2. PGD迭代攻击:对同一批样本执行PGD攻击(T=20, α=0.01, ε=0.1),准确率进一步降至52.6%。这表明FGSM低估了模型的脆弱性。
  3. DeepFool最小扰动测量:计算每个样本的最小扰动距离,发现“stop”类别的平均最小扰动距离仅为0.032,远低于其他类别(平均0.087)。这说明模型对“stop”的决策边界特别狭窄。
  4. 黑盒模拟:假设攻击者不知道模型结构,仅通过设备麦克风输入音频并观察LED指示灯(表示识别结果)。使用零阶优化方法(如NES)进行查询攻击,经过约5000次查询后,成功构造出使模型误识别为“yes”的对抗音频。

结果对比与防御决策:

攻击方式 攻击前准确率 攻击后准确率 平均扰动幅度
FGSM (ε=0.1) 94.2% 71.3% 0.1
PGD (ε=0.1, T=20) 94.2% 52.6% 0.1
C&W (L2, 迭代500) 94.2% 38.4% 0.043
DeepFool (最小扰动) 94.2% — 0.032~0.087

复盘经验:该测试揭示了三个关键问题:第一,模型对特定类别(如“stop”)的鲁棒性显著低于平均水平,需要在数据增强中增加该类别的噪声样本;第二,INT8量化使模型对扰动的敏感度比浮点模型高约15%(对比测试得出),因此在量化时需要引入量化感知训练;第三,黑盒攻击虽然查询次数多,但在物理世界中完全可行,不能因为“攻击成本高”而忽视。

实践建议:在TinyML开发流程中,建议将对抗样本测试纳入CI/CD流水线。每次模型更新后,自动运行FGSM(快速)和PGD(慢速但全面)测试,设定准确率下降阈值(如不超过5%)。对于安全关键应用(如医疗设备、工业控制),还需额外执行C&W攻击以评估最坏情况。

3.6 常见误区与总结

误区一:认为对抗样本只影响图像识别。实际上,音频、振动、雷达、温度传感器等所有端侧输入都可能被对抗扰动。TinyML中常见的误触发问题,很多本质上就是自然发生的“对抗样本”。

误区二:认为量化模型更鲁棒。量化虽然引入噪声,但这种噪声是确定性的,攻击者可以通过模拟量化过程来生成有效的对抗样本。实验表明,量化模型的决策边界更不规则,反而可能更容易被定向攻击。

误区三:混淆“准确率”与“鲁棒性”。一个在干净测试集上准确率99%的模型,可能在微小扰动下准确率骤降至30%。鲁棒性必须通过对抗样本测试来单独评估。

误区四:忽视物理世界约束。数字域生成的对抗样本在通过麦克风、摄像头等传感器转换后,扰动可能被削弱或变形。TinyML攻击测试应尽可能在真实物理环境中验证,而非仅停留在仿真阶段。