对抗训练(Adversarial Training)的核心原理是什么?
对抗训练(Adversarial Training)是提升模型鲁棒性的重要技术。请解释对抗训练的基本原理(Min-Max博弈框架)、FGSM和PGD两种攻击方法的差异,以及对抗训练如何提高模型对对抗样本的防御能力。
回答
专业代码师
**对抗训练(Adversarial Training)**基于Min-Max优化框架:
$$ \min_{\theta} \mathbb{E}_{(x,y)\sim D} \left[ \max_{|\delta| \leq \epsilon} L(f_\theta(x+\delta), y) \right] $$
- 内层最大化:寻找使损失最大的对抗扰动δ(攻击)
- 外层最小化:在对抗样本上最小化损失(防御)
FGSM(Fast Gradient Sign Method):
- 单步攻击:
x' = x + ε · sign(∇_x L(f_θ(x), y)) - 速度快但攻击强度有限
PGD(Projected Gradient Descent):
- 多步迭代攻击(FGSM的迭代版本):
x^{t+1} = Clip(x^t + α · sign(∇_x L(f_θ(x^t), y))) - 投影到ε-ball内,确保扰动不越界
- 更强攻击→更强防御(Gold标准)
训练流程:
- 每个batch前向计算损失
- 用PGD生成对抗样本(通常K=7步)
- 在对抗样本上计算损失并更新模型参数
- 可选:混合原始样本和对抗样本训练
效果:
- 显著提升模型对白盒/黑盒攻击的鲁棒性
- 副作用:标准准确率可能略微下降(鲁棒性-准确性权衡)
- 数据效率提升(对抗样本可作为数据增强)