小鲁是个勤奋的备考生,目标是赢得一场“防蒙骗”大赛——他是 AI 模型,对手是专门出怪题的杠精学长。学长的工作很简单:拿任何一道题,改上几笔,加一点人类几乎察觉不到的变形,让小鲁给出完全错误的答案。小鲁决定以毒攻毒:每天跟学长对练,专刷这种被改过的怪题。第一周,他在练习卷上的怪题得分从四成涨到九成;第二周,奇怪的事情发生了。老师做了个对照测试:用全新的改题方式现编一批怪题,小鲁的得分竟先升后降——他已经把练习卷上的怪题背下来了,而普通题目(原题)得分还在稳步上涨。这个“会背旧怪题、怕见新怪题”的现象,就是对抗训练中的鲁棒过拟合。本文就用小鲁的备考故事,讲清它的表现、成因,以及破解它的四招。
理解鲁棒过拟合,是训练出真正能在攻防实战中“抗打”模型的分水岭——它能帮你识别训练曲线的陷阱、选择正确的调度与正则策略,是 AI 安全工程师与算法研究员的基本功。
目录
可视化演示
动态演示对抗训练鲁棒过拟合的核心机制,通过开始/执行/监控/完成四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
对抗训练鲁棒过拟合:鲁棒过拟 鲁棒过拟合的定义与识别方法 鲁棒过拟合与传统干净过拟合的本 核心机制可视化 对抗训练鲁棒过拟合整体架构与关键组件
现象定义:模型变强还是开始背题
开学第三周,老师发现小鲁的成绩单出现了“分裂”:每天跟杠精学长对练之后,练习卷上那些旧怪题的正确率一路飙升,从四成涨到九成;可老师随手用新套路现编的怪题,小鲁的得分却在一周前就开始回落,而普通题目的得分反而还在稳步爬升。老师嘀咕:“这孩子到底是变强了,还是把题背下来了?”
在对抗训练里,这段剧情每天都在上演。训练时,算法会用攻击手段(比如 PGD 多步攻击)在当前模型上“现场出题”——生成对抗样本,也就是杠精学长的怪题;模型在这些样本上反复迭代,相当于小鲁刷题。所谓鲁棒过拟合,指的就是:训练集上的对抗损失一路走低、对抗准确率持续走高,但验证集或测试集上重新生成的对抗样本准确率却先升后降。
对抗训练的目标函数通常写成 min-max 形式。内层 max 是“学长按当前模型最痛处出题”,外层 min 是“小鲁把这些最难题练到最好”。当训练推进到后期,模型已经能“背”住训练时见过的扰动模式;此时再换新生成的对抗样本来考,分数就开始下滑。
小鲁恍然大悟:自己练的不是功夫,是“默写”。练习卷的题是学长按固定套路改的,刷多了自然背熟;可真正的攻防赛场没有原题。鲁棒过拟合的本质,就是模型把“训练期的怪题套路”当成了通用规律来记忆。
- 外层 min 符号 $\min_\theta$训练目标是找一组模型参数 θ,让所有样本的损失之和尽量小,对应小鲁不断调整解题方法。
- 数据平均 $\frac{1}{n}\sum_{i=1}^{n}$对 n 个训练样本逐一计算损失后取平均,代表“整体水平”而非单个题目。
- 内层 max $\max_{\|\delta_i\|_p \le \epsilon}$在允许的扰动范围(半径 ε 的球)内,找到让当前模型损失最大的扰动 δ,相当于生成“最刁钻的怪题”。
- 损失函数 $\ell\left(f_\theta(x_i+\delta_i), y_i\right)$把加了扰动的样本送入模型,计算预测与真实标签的差距,差距越大说明被这道怪题难住了。
成因剖析:背题是怎么发生的
老师开始追踪小鲁背题的根源。杠精学长的改题套路并非随机:他沿着让小鲁“最丢分”的方向改,也就是沿着损失函数的梯度方向加扰动。这类怪题往往落在小鲁知识边界的“犄角旮旯”,集中分布在决策边界附近的高曲率区域——那里的样本长得像噪声,共享规律很少,只有个体特征可记。
模型(小鲁)容量越大,越有能力把这些犄角旮旯里的个体特征挨个记住,而不是提炼出共享规律。于是训练越往后,模型对训练集怪题的记忆越精细;同时损失面的“微结构”也越来越尖锐、非均匀——少数样本主导梯度,模型开始钻牛角尖。
研究者用“鲁棒泛化差距”刻画这种现象:训练集上的对抗风险(练习卷怪题平均丢分)与真实分布上的期望对抗风险(考场新怪题平均丢分)之差。训练后期,两者的差距被越拉越大,正如小鲁的练习分与考场分渐行渐远。
三个原因像三根支柱撑起“背题大厦”:出题套路固定(对抗样本分布偏移)、题目太怪难有共性(决策边界高曲率)、记性太好(模型容量大)。要拆这座大厦,得从这三根支柱下手。
- 鲁棒泛化差距 $\operatorname{Gap}_{rob}$衡量背题程度的总体指标,差距越大说明练习与考场表现分离越严重。
- 训练对抗风险 $\frac{1}{n}\sum_{i=1}^{n} \max_{\|\delta_i\|_p\le \epsilon} \ell(\cdot)$对训练集每个样本求最坏扰动下的损失再取平均,即练习卷怪题的平均丢分。
- 期望对抗风险 $\mathbb{E}_{(x,y)\sim\mathcal{D}}\left[\max_{\|\delta\|_p\le \epsilon} \ell(\cdot)\right]$与整个真实数据分布上的最坏损失求期望,即考场新怪题的平均丢分。
- 两项相减练习分与考场分之差。差距越大,背题越严重,鲁棒过拟合越明显。
度量与观测:三张成绩单看清真相
怎么及时发现自己背题了?老师定下规矩:每次模拟考发三张成绩单——普通题得分(标准准确率)、练习卷旧怪题得分(训练对抗准确率)、新怪题得分(测试对抗准确率)。只盯一张,必然被骗。
训练过程中每轮记录这三张成绩单并画成曲线。健康的状态是三条线一起向上;一旦出现“训练对抗精度还在涨、测试对抗精度掉头向下”,就是鲁棒过拟合的信号弹。此时标准精度往往还在上涨,所以光看干净测试集根本发现不了问题。
测算对抗精度的要点是“现场出题”:每一轮(或每隔几轮)用当前模型、固定扰动预算 ε 与步数 K,在验证集上重新生成 PGD 对抗样本再评测。绝不能用训练时缓存的老怪题——模型已经背过答案,测出来会虚高。这也是很多团队“训练时指标漂亮、上线后一戳就破”的原因。
有了这三张成绩单,老师就能在模拟考新怪题得分见顶那天果断送考,而不是等正式比赛成绩公布才发现问题。这自然引出了破解鲁棒过拟合的四招。
- 指示函数 $\mathbb{1}[\cdot]$预测对了记 1,错了记 0,最后平均就是对抗正确率。
- 预测 $\hat{y}(x_j')$模型对攻击后样本的预测结果,对应小鲁面对怪题给出的答案。
- 现场出题 $x_j' \leftarrow \operatorname{PGD}(x_j, \epsilon, \alpha, K)$用 PGD 攻击 K 步、每步步长 α、总预算 ε,在验证集上现场生成新怪题,保证考题的“新鲜感”。
- 平均 $\frac{1}{m}\sum_{j=1}^{m}$m 个验证样本的对抗正确率,即整体考场得分。
学习率与早停:调整复习节奏
第一招:调整复习节奏。小鲁原本匀速刷题,越刷越死;老师改成“冲刺—回炉—重启”循环:每学一阵子就把强度(学习率)降下来,重新扫一遍错题,然后恢复高强度再来一轮。这套节奏在对抗训练里叫余弦退火带热重启。
学习率决定模型在参数空间里“迈多大步”。步子太大,模型跳来跳去记不牢;步子太小,又容易一头扎进背题的局部陷阱。余弦退火让学习率在一个周期内从高位平滑降到低位,周期结束瞬间跳回高位,相当于强制模型周期性跳出死记硬背的状态——每一次重启,都是一次“格式化重来”的机会。
配合第二张成绩单做早停:验证集对抗精度连续几个 epoch 不再创新高,就保存当前权重收工。这就像老师看到模拟考成绩见顶立刻喊停,不让学生在练习卷上磨到走火入魔。
- 当前学习率 $\eta_t$第 t 轮训练时的复习强度。
- 学习率上下限 $\eta_{\max}$ 与 $\eta_{\min}$分别对应冲刺时的最大强度和最低谷底强度。
- 余弦项 $\cos\left(\frac{\pi \cdot (t \bmod T)}{T}\right)$在一个周期内从 1 平滑降到 -1,使学习率先缓降再触底。
- 周期取模 $t \bmod T$每 T 轮完成一个周期,周期结束瞬间从谷底跳回高位,这就是“热重启”。
- 区间映射 $\frac{1}{2}(\eta_{\max}-\eta_{\min})(1+\cos)$把余弦值映射到 $[\eta_{\min}, \eta_{\max}]$ 区间,保证学习率始终落在合法范围。
数据增广缓解:让题库更丰富
第二招:扩大题库。小鲁只跟杠精学长一个风格练,很容易摸清对方的出题脾气;如果换成多个不同风格的学长轮流出题,或者补充校外公开课、往年真题,背题的空间就被大幅压缩。这在对抗训练里叫增加样本多样性。
工程上常见的做法有三类:一是图像增广,比如 Mixup 把两个样本按比例混合、Cutout 随机遮挡区域,让模型看到的“变形”更丰富;二是利用无标签数据做自训练,先用当前模型对无标签数据打伪标签,再连同对抗样本一起训练,相当于请一位见多识广的“校外导师”帮忙补充题型;三是把干净样本分类损失与“对抗下预测一致性”拆开加权,即 TRADES 风格的目标函数。
TRADES 损失的精髓在于:第一项要求模型在干净样本上分类正确,第二项要求模型在干净样本和对抗样本上的输出分布尽量一致——“普通题要做对,怪题面前也不能慌”。
这相当于给备考加了“多样化模拟卷”:题量大了、题型杂了,背诵的性价比就低了,逼着小鲁去总结真正的解题规律,而不是记住某道具体题目。
- 干净样本损失 $\ell\left(f_\theta(x_i), y_i\right)$普通题上的分类损失,要求不因增加对抗训练而丢掉基本功。
- 内层 max $\max_{\|\delta_i\|\le\epsilon}$找使模型输出扰动最大的对抗样本,即最让模型慌神的怪题。
- KL 散度 $\operatorname{KL}\left(f_\theta(x_i) \,\|\, f_\theta(x_i+\delta_i)\right)$衡量模型在干净样本与对抗样本上输出分布的差异,差异越大说明被怪题带得越偏。
- 权重系数 $\beta$权衡“做对普通题”与“面对怪题保持稳定”,β 越大越重视鲁棒性。
- 累加平均 $\frac{1}{n}\sum_{i=1}^{n}$对全部样本求和再取平均,得到整体训练目标。
正则化技巧:让记忆更平滑
第三招:从记忆深处做文章。小鲁背题快,是因为答案被原封不动刻进了肌肉记忆;如果要求他刷完题把思路提炼成通用口诀,再把几次模拟考的最佳状态做平均,他就不会只依赖最后一次冲刺的死记硬背。对应到模型,就是权重正则化与权重平均。
对抗权重扰动(AWP)的想法很直接:在模型权重上叠加一个受控的小扰动,朝着“让训练对抗损失变大”的方向施压,迫使模型收敛到更平坦的区域——那些区域对权重的微小变化不敏感,自然更不容易背题。随机权重平均(SWA)则把训练后期若干轮 checkpoint 的权重取平均,相当于把几次模拟考状态融合,得到的解通常更平滑、泛化更好。
AWP 的 min-max 式子写出来是:内层先对输入做对抗攻击,再对权重做最优扰动;外层训练的目标是让模型在“权重也被打歪”的最坏情况下依然稳健。
第四招也顺带登场:标签平滑与梯度惩罚。标签平滑把“满分答案”改成“99 分答案”,降低模型对训练标签的过度自信;梯度惩罚惩罚损失面的剧烈震荡。四招齐下,小鲁终于从“背题机器”变回了“解题选手”。
- 后期权重 $\theta_k$训练末尾 K 个时刻保存的模型权重,像 K 次模拟考的状态快照。
- 平均 $\frac{1}{K}\sum_{k=1}^{K}$把 K 份权重取平均,抹平单次冲刺的偶然偏差,得到更平滑的解。
工程实践要点:科学的备考体检
最后一公里是把四招装进工程流水线,配上“体检制度”。老师的做法是每周模拟考:用固定攻击强度在验证集上生成新怪题给小鲁打分,分数连续两周下滑就触发干预——要么切换余弦退火节奏,要么直接早停。
工程上还强调对照实验:固定数据与模型,分别比较“有无余弦退火”“有无 AWP”“有无增广”的鲁棒精度曲线,才能定位是哪一招起了作用。攻击强度也要权衡:训练时 PGD 步数太多,单轮代价高、更容易把模型逼进背题;步数太少(如只用单步 FGSM)又会出现“梯度遮蔽”——模型看似鲁棒,换更强的攻击立刻崩溃。
无论训练还是评测,都绕不开那张攻击公式——PGD 迭代更新。它像杠精学长的“出题手册”,规定了怪题该怎么逐步修改。
有了体检制度与攻击标尺,小鲁的备考终于科学化:平时练习用中等强度怪题,大考用全新怪题,分数见顶就收手。拿到的模型既能应付练习卷,也能在真实攻防中站稳脚跟——这,就是对抗训练的及格线。
- 当前对抗样本 $x^t$第 t 步的对抗样本,即怪题的当前版本。
- 梯度 $\nabla_x \ell\left(f_\theta(x^t), y\right)$损失对输入的梯度,告诉攻击者“往哪个方向改最能难倒模型”。
- 符号函数 $\operatorname{sign}(\cdot)$只取梯度方向,使每次修改都是一个“莽撞但有效”的固定步长。
- 步长 $\alpha$每次改题的幅度,控制怪题变化的剧烈程度。
- clip 投影 $\operatorname{clip}_{x, \epsilon}$把样本拉回原样本 ε-邻域内,确保怪题不超纲、不越界。
AI 应用场景
场景一:自动驾驶感知模型的对抗鲁棒评测
阶段:模型训练与鲁棒性评测
解决的问题:路牌识别模型在物理世界会被对抗贴片攻击干扰。传统流程只用干净测试集评估,无法发现鲁棒过拟合导致的“训练指标漂亮、上路掉链子”。需要在训练流水线中加入验证集 PGD 体检 + 余弦退火调度,防止模型背下训练攻击样本。
具体案例:某团队训练交通标志分类模型,用 PGD 对抗训练 30 轮后发现第 18 轮后验证集鲁棒精度下滑 7 个百分点,而干净精度仍在上升。改为余弦退火热重启 + 验证集早停后,最终鲁棒精度提升 11%,干净精度不降。
场景二:金融风控反欺诈的对抗防御
阶段:数据处理与模型防御
解决的问题:欺诈者会刻意构造“看起来像正常交易”的对抗样本逃过模型;若不处理鲁棒过拟合,风控模型会在训练几轮后对新的欺诈变形迅速失效。需要用自训练 + 无标签行为数据扩充题型,并用 AWP 正则压住背题倾向。
具体案例:某支付风控团队发现模型上线后首月拦截率高、次月骤降——原因是对抗训练后期过拟合训练集伪造样本。引入 AWP 与无标签数据自训练后,新欺诈家族的拦截率回升约 15%。
场景三:大模型红队测试与内容安全对齐
阶段:安全评测与对齐微调
解决的问题:红队用对抗性 prompt(越狱词)攻击大模型,模型对训练时见过的越狱模式过拟合,换个措辞就失守。需要在对抗微调过程中监控验证集攻击成功率曲线,及时早停,避免模型在越狱样本上“背答案”。
具体案例:内容安全团队对开源对话模型做对抗微调,逐轮记录越狱成功率,发现第 12 轮见底后开始回升;采用早停 + SWA 权重平均后,越狱成功率稳定在低位,且正常对话质量不受损。
Python 演示
import numpy as np rng = np.random.default_rng(42)H = 48 def load_data(): t = rng.uniform(0, 2 * np.pi, 1600) r = rng.uniform(0.5, 2.2, 1600) X = np.stack([r * np.cos(t), r * np.sin(t)], 1) y = (np.sin(3 * t) > 0).astype(int) i = rng.permutation(1600) return X[i[:1000]], y[i[:1000]], X[i[1000:]], y[i[1000:]] Xtr, ytr, Xte, yte = load_data()EPS, ALPHA, STEPS = 0.3, 0.06, 6 def init_model(): return (rng.normal(0, 0.6, (H, 2)), np.zeros(H), rng.normal(0, 0.6, (2, H)), np.zeros(2)) def forward(w, X): W1, b1, W2, b2 = w h = np.maximum(0, W1 @ X.T + b1[:, None]) return h, W2 @ h + b2[:, None] def probs(w, X): _, z = forward(w, X) z -= z.max(0, keepdims=True) e = np.exp(z) return e / e.sum(0, keepdims=True) def grads(w, X, y, wrt_input=False): W1, b1, W2, b2 = w h, z = forward(w, X) p = probs(w, X) d = p.copy() d[y, np.arange(len(y))] -= 1 d /= len(y) dh = W2.T @ d dh[h <= 0] = 0 if wrt_input: return dh.T @ W1 return dh @ X, dh.sum(1), d @ h.T, d.sum(1) def pgd(w, X, y): adv = X.copy() for _ in range(STEPS): g = grads(w, adv, y, wrt_input=True) adv = np.clip(adv + ALPHA * np.sign(g), X - EPS, X + EPS) return adv def acc(w, X, y): return (forward(w, X)[1].argmax(0) == y).mean() w = init_model()for epoch in range(24): Xadv = pgd(w, Xtr, ytr) # 学长按当前模型现场出题 g = grads(w, Xadv, ytr) # 用对抗样本更新模型 lr = 0.12 * 0.5 ** (epoch // 8) w = (w[0] - lr * g[0], w[1] - lr * g[1], w[2] - lr * g[2], w[3] - lr * g[3]) teas = pgd(w, Xte, yte) # 考场上另出全新怪题 print('epoch %2d 训练鲁棒 %.3f 测试鲁棒 %.3f' % (epoch + 1, acc(w, Xadv, ytr), acc(w, teas, yte)))
Xadv = pgd(w, Xtr, ytr)每个 epoch 用当前模型对训练集现场生成对抗样本,对应杠精学长按小鲁当前弱点出题。g = grads(w, Xadv, ytr)校准后的对抗样本上计算梯度,推动模型学会“防怪题”。lr = 0.12 * 0.5 ** (epoch // 8)分段衰减学习率,训练后期放慢脚步,避免一头扎进背题状态。teas = pgd(w, Xte, yte)对测试集独立生成全新对抗样本,保证考题“新鲜感”,这是发现过拟合拐点的关键。print(... acc(w, Xadv, ytr), acc(w, teas, yte))逐轮打印两条鲁棒精度曲线,拐点出现处就是早停时机。
常见误区
误区我一直以为过拟合就是准确率掉落,鲁棒过拟合只是训练数据里加了对抗样本后的普通过拟合,用 dropout 或减小模型容量就能解决。
正解两者机制和表现都不同。普通过拟合时标准测试精度会下降;鲁棒过拟合的典型特征恰恰是标准精度仍在上升或持平,只有对抗精度下滑。盲目减小模型容量或加 dropout,可能损伤干净精度而对鲁棒过拟合收效甚微。正确的武器是学习率调度、早停、SWA 与 AWP 这类“抗背题”手段。
为何常见:名字里都有“过拟合”,又都发生在训练后期,很容易让人误以为是同一件事的两个说法。
误区对抗训练既然是让模型变强,那就多训几轮——练得越久,对付对抗攻击应该越稳。
正解对抗训练存在鲁棒过拟合拐点:训练集对抗精度继续上升,测试对抗精度反而下降。正确做法是在验证集上用 PGD 重新生成攻击样本持续监控,拐点出现即早停或切换余弦退火调度,而不是盲目加训轮数。
为何常见:标准训练中更久训练通常带来更好拟合,这种直觉被错误迁移到了对抗训练场景。
误区我用 FGSM 单步快速生成对抗样本,既省时间又够用,训练出来的模型应该没问题。
正解单步 FGSM 训练容易产生“梯度遮蔽”——模型在单步攻击面前表现得鲁棒,换用 PGD 多步攻击立刻崩溃。反过来,训练时 PGD 步数过多、扰动预算过大也会加剧鲁棒过拟合。合适做法是:训练用中等强度 PGD(5-10 步),评测用更充分的多步攻击。
为何常见:单步攻击计算快,人们容易为省时间而忽略攻击强度与鲁棒性之间的匹配关系。
误区过拟合嘛,多喂点数据就自然好了,鲁棒过拟合同样可以用无限扩增数据解决。
正解增加数据多样性(增广、Mixup、无标签数据自训练)能显著缓解鲁棒过拟合,但无法根除。因为鲁棒过拟合还来自损失面非均匀与权重记忆效应,需要配合学习率调度、AWP、SWA、标签平滑等多管齐下才能压住。
为何常见:数据是解决普通过拟合的第一直觉,人们习惯把同样的解法直接套到鲁棒过拟合上。
误区每次训练结束用同一批对抗样本测一下鲁棒精度,数字稳定就行,没必要每轮都重新测。
正解对抗样本是依赖当前模型生成的,训练末期模型变化后,旧攻击样本已经“失真”,评测结果会虚高。需要在验证集上每轮(或每隔几轮)用 PGD 重新生成攻击,才能发现鲁棒过拟合拐点;评测用攻击参数还应与部署场景的威胁模型一致。
为何常见:标准训练中测试集是固定的,人们忽略了对抗攻击样本会随模型漂移这一特性。
面试题
Q1. 对抗训练中“鲁棒过拟合”最典型的观测现象是?
- A.训练与测试的标准精度同时快速下降
- B.训练对抗精度上升而测试对抗精度先升后降← 正确答案
- C.训练损失随轮次增大而不断上升
- D.全部模型参数的更新方向完全一致
答案:B。鲁棒过拟合的关键特征是训练集对抗精度还在涨,但测试(验证)对抗精度在某个拐点后回落,同时标准精度往往仍保持上升——这正是“背题”与“真会”分离的证据。
Q2. 对抗训练中,用于在训练时生成对抗样本的最常用多步攻击算法是?
- A.快速梯度符号法 FGSM
- B.投影梯度下降法 PGD← 正确答案
- C.随机梯度下降法 SGD
- D.布谷鸟搜索勘探法 Cuckoo
答案:B。PGD 在扰动域内做多步小步投影迭代,是对抗训练的标准内部最大化器;FGSM 是单步近似,SGD 是优化器而非攻击,布谷鸟搜索与机器学习防护无关。
Q3. 鲁棒过拟合与普通过拟合最重要的区别是什么?
- A.两者都会让标准测试精度明显下降
- B.鲁棒过拟合时标准精度往往仍保持上升或平稳← 正确答案
- C.鲁棒过拟合只发生在无标签的数据集上
- D.普通过拟合只影响生成模型不影响判别模型
答案:B。普通过拟合的标志是标准测试精度下滑;鲁棒过拟合的标志恰恰是标准差不变或上升而对抗精度下滑,因此仅看干净测试集无法察觉,必须跟踪对抗精度曲线。
Q4. 缓解鲁棒过拟合最常用的学习率调度策略是?
- A.全程使用恒定的大学习率
- B.余弦退火并周期性热重启← 正确答案
- C.学习率指数级无限增大
- D.训练中途随机重置全部参数
答案:B。余弦退火让学习率平缓下降后热重启回到高位,能周期性帮模型跳出“死记硬背”的局部解;恒定大学习率会震荡,指数增大不可能收敛,随机重置不可复现。
Q5. 下列哪些方法已被证明能有效缓解对抗训练中的鲁棒过拟合?
- A.在验证集上监控对抗精度并早停← 正确答案
- B.对训练后期权重做随机权重平均← 正确答案
- C.引入对抗权重扰动 AWP 正则← 正确答案
- D.在训练中不断增大 PGD 攻击步长
答案:ABC。早停截断背题阶段,SWA 平均多轮状态得到平坦解,AWP 逼模型在权重方向上也稳;单纯增大攻击步长会加剧损失面抖动与过拟合,不是缓解手段。
Q6. 对抗权重扰动 AWP 的扰动对象是什么?
- A.训练样本的输入像素值
- B.模型的参数权重向量← 正确答案
- C.训练数据集的标签分布
- D.优化器动量项的一阶矩
答案:B。AWP 在权重空间中对参数做受控扰动,让模型在“权重也被打歪”的最坏情况下依然稳健;输入像素扰动属于普通对抗攻击,标签与动量都不是 AWP 的对象。
Q7. 对抗训练的 min-max 目标中,内层 max 的确切含义是?
- A.让模型对所有样本的置信度都达到最大
- B.在允许的扰动域内寻找使损失最大的对抗样本← 正确答案
- C.让整个训练数据集的方差最大化
- D.让模型参数的 L2 范数趋于无穷大
答案:B。内层 max 是“学长出最刁钻的怪题”,在 ε 扰动域内搜索使当前模型损失最大的样本,与置信度、方差、参数范数无关;外层 min 才是最小化最坏损失。
Q8. 数据层面缓解鲁棒过拟合的常见做法包括?
- A.利用无标签数据做伪标签自训练← 正确答案
- B.在批内做 Mixup 混合增广← 正确答案
- C.删除全部难以学习的困难样本
- D.固定使用训练初期的旧对抗样本
答案:AB。自训练把无标签数据变成新题型,Mixup 平滑样本空间,都能压缩背题空间;删除困难样本会使模型更脆,旧对抗样本随模型漂移而失真,均不能缓解过拟合。
Q9. 在验证集上评测模型鲁棒性时,攻击强度的合理设定是?
- A.攻击强度越大越好,越大越能证明鲁棒
- B.与训练扰动预算一致或略保守且匹配威胁模型← 正确答案
- C.完全不加攻击,只看干净精度即可
- D.攻击步长取零,等价于随机噪声
答案:B。评测攻击应与部署时的威胁模型保持一致,过强攻击脱离实际威胁场景,导致误判;不加攻击无法测对抗精度,零步长不是攻击。标准做法是固定 ε 的多步 PGD 评测。
Q10. 关于“鲁棒泛化差距”的描述,正确的有?
- A.定义为训练集对抗精度与测试集对抗精度之差← 正确答案
- B.差距越大通常说明模型背题越严重← 正确答案
- C.等于训练标准精度与测试误差之和
- D.该指标与对抗样本的生成方式无关
答案:AB。鲁棒泛化差距即训练对抗风险与测试对抗风险之差,差距大表明练习卷怪题与考场新题表现分离,即背题严重;C 是胡乱拼凑的式子,D 错误——对抗样本的生成方式直接影响该指标。