对抗鲁棒性基础
概述
对抗鲁棒性(Adversarial Robustness)研究深度学习模型在有意设计的微小扰动下的行为。对抗样本(Adversarial Examples)是原始输入的微小修改,人类观察者难以察觉,却能导致神经网络模型产生完全错误的预测。这一现象由 Szegedy 等人在 2014 年首次系统揭示,挑战了深度学习”准确率高=泛化能力强”的假设。1
对抗样本的形式化定义
原始定义
给定一个分类器 和输入样本 ,对抗样本 满足:
其中 是扰动预算, 是 范数。
威胁模型(Threat Model)
对抗攻击的强度由威胁模型定义:
| 威胁模型 | 攻击者能力 | 实际场景 |
|---|---|---|
| 白盒攻击 | 完全访问模型权重、梯度、结构 | 模型窃取、内部威胁 |
| 黑盒攻击 | 只能查询模型输入输出 | 商业API、模型部署 |
| 迁移攻击 | 基于替代模型生成,攻击目标模型 | 最常见的实际攻击 |
| 物理攻击 | 攻击打印/拍摄后的物理样本 | 自动驾驶、安防系统 |
范数扰动家族
深度学习中最常用的扰动度量:
- 范数:,限制每个像素的最大变化
- 范数:,限制欧氏距离
- 范数:,限制修改的像素数量
import torch
def create_adversarial_example(x, y_true, model, epsilon=0.03, norm='linf'):
"""
创建对抗样本(基于FGSM)
Args:
x: 原始输入
y_true: 真实标签
model: 目标模型
epsilon: 扰动预算
norm: 扰动范数类型 ('linf' 或 'l2')
"""
x_adv = x.detach().clone().requires_grad_(True)
# 前向传播
output = model(x_adv)
loss = torch.nn.functional.cross_entropy(output, y_true)
# 反向传播获取梯度
model.zero_grad()
loss.backward()
gradient = x_adv.grad.data
if norm == 'linf':
# L_inf 扰动:沿梯度符号方向
delta = epsilon * torch.sign(gradient)
else:
# L2 扰动:归一化梯度方向
delta = epsilon * gradient / (gradient.norm() + 1e-10)
x_adv = (x_adv + delta).detach()
return x_adv对抗样本的成因分析
线性视角(Goodfellow 2015)
Goodfellow 提出了对抗样本的线性解释:在高维空间中,即使是微小的线性扰动,累积效应也足以改变分类决策。2
设输入扰动 和权重 ,则:
当 有 个维度, 每个维度扰动 时:
关键洞察:当 很大时(如 ImageNet 的 ),微小扰动的线性累积效应可以任意大。
非线性视角(Residual Networks)
最近的研究发现,ResNet 等现代架构通过skip connections部分缓解了线性问题:
Skip connection 允许梯度直接流动,但 部分的线性区域仍可能被攻击利用。
对抗鲁棒性的数学框架
鲁棒优化视角
对抗训练可以形式化为min-max优化问题:
其中:
- 内层最大化:寻找最有效的对抗扰动
- 外层最小化:调整模型参数以最小化最坏情况损失
局部Lipschitz与鲁棒性
模型对输入扰动的敏感度可以用 Lipschitz常数 刻画:
Lipschitz常数 越小,模型越鲁棒。然而,直接约束 会显著降低模型表达能力,这是鲁棒性-准确率权衡的数学根源。3
评估指标
鲁棒准确率(Robust Accuracy)
其中 是针对样本 的最优对抗扰动。
认证准确率(Certified Accuracy)
认证准确率提供了确定性保证,而非仅针对特定攻击的实验测量。
与相关主题的联系
- adversarial-attack-methods — 对抗攻击的具体方法
- adversarial-training-methods — 对抗训练的防御策略
- certified-robustness-theory — 认证鲁棒性的理论保证
- viability-adversarial-robustness-vit — Vision Transformer 的对抗鲁棒性
- information-bottleneck — 信息瓶颈视角下的对抗鲁棒性
参考文献
Footnotes
-
Szegedy, C., et al. (2014). Intriguing properties of neural networks. ICLR 2014. https://arxiv.org/abs/1312.6199 ↩
-
Goodfellow, I. J., et al. (2015). Explaining and Harnessing Adversarial Examples. ICLR 2015. https://arxiv.org/abs/1412.6572 ↩
-
Cissé, M., et al. (2017). Parseval Networks: Improving Robustness to Adversarial Examples. ICML 2017. https://arxiv.org/abs/1704.08847 ↩