想象你是一家国际机场的安检主管,手下有位王牌证件核验员“小蓝”。正常客流下,他能认出 99% 的乘客,这份“平时分”堪称完美。但真正的风险藏在另一种场景里——有乘客戴上假发、贴上胡子、压低帽檐来“化装”过关。于是你安排了一场压力测试:给定一个化装预算 ε(假发多厚、胡子多大、浓妆多艳都算进预算),小蓝在此预算内依然保证认对人。能通过这场测试的乘客比例,就是他的“压力分”。 AI 安全圈把这两份分数分别叫“标准精度”(Standard Accuracy)和“认证精度”(Certified Accuracy)。前者衡量模型在干净数据上到底多准,后者衡量模型在扰动预算 ε 之内能保证多准。它们像跷跷板的两端:想让模型抗化装,就得让它训练得更谨慎,结果正常输入也被误伤,标准精度悄悄下滑。本文就用小蓝的故事,带你把这对“老冤家”拆开揉碎:它们如何定义、为何此消彼长、有哪些认证防御手段、怎样评估和优化,以及工程上如何用认证精度守住 AI 系统的安全底线。

岗位关联

理解认证精度与标准精度的关系,是 AI 安全工程师的必修课——它能帮你科学评估模型在对抗攻击下的真实可靠性,为自动驾驶、金融风控等高风险场景做出正确的安全选型决策。

目录
  1. 可视化演示
  2. 基础概念辨析
  3. 精度权衡原理
  4. 认证防御技术
  5. 性能评估方法
  6. 优化策略
  7. 工程实践应用
  8. 实战权衡之道
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

基础概念辨析

在国际机场的证件核验台前,王牌安检员小蓝每天要过手上百本护照。考核他业务水平,最简单的方式是拿一叠毫无伪装的正常旅客证件让他辨认——认对的比例,就是他的“平时分”。可机场主管心里清楚,真正的高危乘客会戴假发、贴胡子、压帽檐。于是他们增设了一场“化装压力测试”:所有乘客的化装程度都控制在预算 ε 内,看小蓝还能认出多少。

这套考核思路原封不动搬进了 AI 对抗防御领域。平时分在学术上叫“标准精度”,指模型在干净测试集上的分类正确率;压力分叫“认证精度”,指输入被施加不超过预算 ε 的对抗扰动时,模型仍能保证正确分类的样本比例。那个“化装预算 ε”就是扰动半径。标准精度的定义最早也最朴素,直接用干净样本上的命中率来算:

所以,标准精度和认证精度是同一名安检员的两份独立成绩单。平时分再漂亮,只说明他在毫无伪装的环境下业务熟练;只有压力分能回答“机场敢不敢把安全赌在他身上”。两份分数各管一摊,谁也不能替谁打包票。

ACCstd=1N∑i=1N1[f^(xi)=yi]ACC_{std}=\frac{1}{N}\sum_{i=1}^{N}\mathbf{1}\big[\hat{f}(x_i)=y_i\big]
这个公式的含义:把 N 个干净测试样本逐一交给模型,预测对一题得 1 分,错了得 0 分,最后求平均就是标准精度。
  1. 预测函数$\hat{f}(x_i)$ 表示模型对第 $i$ 个样本给出的预测标签,相当于“小蓝对这本护照的判断”。
    f^(xi)∈{1,2,…,K}\hat{f}(x_i)\in\{1,2,\dots,K\}
  2. 正确性指示$\mathbf{1}[\hat{f}(x_i)=y_i]$ 是指示函数,判断对了记 1,错了记 0,记的是“小蓝认没认对”。
    1[f^(xi)=yi]=1当且仅当f^(xi)=yi\mathbf{1}[\hat{f}(x_i)=y_i]=1 \quad\text{当且仅当}\quad \hat{f}(x_i)=y_i
  3. 平均化$\frac{1}{N}\sum_{i=1}^{N}$ 把 N 个样本的得分累加再除以 N,得到平均正确率。
    1N∑i=1Nai=a1+a2+⋯+aNN\frac{1}{N}\sum_{i=1}^{N}a_i=\frac{a_1+a_2+\cdots+a_N}{N}

精度权衡原理

为了让小蓝扛得住化装,主管给他开了“伪装识别特训”。结果很快发现问题:小蓝现在看谁都先怀疑三分,正常旅客也被要求摘帽、卸镜、多问几句,通关速度肉眼可见地变慢了。这就是“鲁棒性代价”——你越想让模型不怕攻击,它就越容易误伤好人。

在数学上,这种代价被刻画成认证精度与标准精度之间的落差。认证精度的定义在标准精度之上叠加了一个“抗扰动”的硬条件:

为什么必须付出代价?因为要让认证半径变大,模型的决策边界必须“钝化”——在样本邻域内保持一致的预测,这会牺牲掉边界附近那些原本可以精细区分的样本。这构成一个典型的帕累托前沿:标准精度与认证精度不可能同时最优,只能沿曲线取舍。更麻烦的是维度诅咒:高维空间中扰动球体积随维度指数膨胀,每个数据点周围都有大片“可攻击空间”,想覆盖这些空间,精度代价只会更惨烈。

所以小蓝的特训不是免费的——他变得更警觉的同时,笑容变少了,误盘问也变多了。理解这份取舍,是读懂后面所有认证防御技术的前提。

ACCcert(ε)=1N∑i=1N1[f^(xi)=yi  ∧  R(xi)≥ε]ACC_{cert}(\varepsilon)=\frac{1}{N}\sum_{i=1}^{N}\mathbf{1}\big[\hat{f}(x_i)=y_i \;\wedge\; R(x_i)\ge \varepsilon\big]
中括号里有两个条件:一是预测正确,二是该样本的认证半径不小于攻击预算 ε。只有同时满足才计入认证精度,因此它天然小于等于标准精度,两者之差就是鲁棒性代价。
  1. 认证半径$R(x_i)$ 是防御方法给每个样本算出的“化装预算上限”,即保证预测不变的最大扰动距离。
    R(xi)=σ⋅Φ−1(pA(xi))R(x_i)=\sigma\cdot\Phi^{-1}\big(p_{A}(x_i)\big)
  2. 双条件与$\wedge$ 表示“且”,既要预测正确,又要半径达标,二者缺一不可。
    1[A∧B]=1[A]⋅1[B]\mathbf{1}[A\wedge B]=\mathbf{1}[A]\cdot\mathbf{1}[B]
  3. 取平均$\frac{1}{N}\sum_{i=1}^{N}$ 对全体样本求和平均,得到给定 ε 下的认证精度。
    ACCcert(ε)=1N∑i=1Nci,ci=1[f^(xi)=yi∧R(xi)≥ε]ACC_{cert}(\varepsilon)=\frac{1}{N}\sum_{i=1}^{N}c_i,\quad c_i=\mathbf{1}[\hat{f}(x_i)=y_i\wedge R(x_i)\ge\varepsilon]

认证防御技术

为了让“压力分”不是拍脑袋估出来的,机场引入了一套“多角度会审制”:不再让一个小蓝独自盯人。每次核验时,往乘客照片上加一点随机的视觉噪声——相当于让几十位检查员在不同的光影、角度下轮流看——反复看几百次,最后按多数意见下结论。这套机制在 AI 里叫随机平滑(Randomized Smoothing)。

随机平滑的做法是:给输入 $x$ 加上高斯噪声 $\delta$,把加噪后的样本交给基础分类器 $f$ 反复预测,统计各类别得票,票数最高者成为平滑分类器 $\bar{g}$ 的最终输出:

得票率 $p_A$ 还能直接换算成保证范围——认证半径。对二分类情况,有干净利落的闭式解:

除了随机平滑,还有“区间边界传播”(IBP)这类基于区间算术的认证方法:不靠投票,而是把每一层网络的输出上下界一层层传下去,直接算出一个最坏情况范围。无论哪种方法,它们共同的原则是“可靠”——给出的保证宁可保守,绝不撒谎。正是这份“绝不撒谎”,让认证精度成为可签字的承诺书,而不是事后的测试报告。

gˉ(x)=arg⁡max⁡c  Pr⁡δ∼N(0,σ2I)[f(x+δ)=c]\bar{g}(x)=\arg\max_{c}\;\Pr_{\delta\sim\mathcal{N}(0,\sigma^{2}I)}\big[f(x+\delta)=c\big]
公式表明:冠军票率越高、噪声 σ 越大,能证明的 L2 半径就越大。注意 $p_A$ 必须取下界估计(通常是二项分布的置信下界),才能保证结论“保守但真实”。
  1. 概率下界$p_{A}$ 是冠军类别得票率的保守下界,用几百次投票的观察值再打折,防止“观测过好”导致证书虚高。
    pA≤pˉA,pˉA=Pr⁡δ[f(x+δ)=cA]p_{A}\le\bar{p}_{A},\quad \bar{p}_{A}=\Pr_{\delta}[f(x+\delta)=c_A]
  2. 分位数映射$\Phi^{-1}$ 是标准正态分布的逆累积分布函数,把概率“翻译”成标准化距离。
    Φ−1(p)=2  erf−1(2p−1)\Phi^{-1}(p)=\sqrt{2}\;\mathrm{erf}^{-1}(2p-1)
  3. 尺度放大$\sigma\cdot$ 把标准化距离乘上噪声强度,变成真实世界可比的 L2 扰动半径。
    R(x)=σ⋅zA,zA=Φ−1(pA)R(x)=\sigma\cdot z_{A},\quad z_{A}=\Phi^{-1}(p_A)

性能评估方法

拿到了小蓝的压力分,主管发现单一数字不够用——今天测的是 ε=0.1 的轻化装,明天对手可能把胡子贴到 ε=0.3。于是他们画了一张图:横轴是化装预算 ε,纵轴是认证精度。ε 很小时分数还挺高,ε 一拉大就断崖式跳水。这条“认证精度曲线”才是小蓝抗化装能力的完整画像。

曲线上的每个点其实都在回答同一个问题:当对手把扰动预算定在 ε 时,模型能保证有多大比例的样本仍然预测正确。这可以由每个样本的“最坏情况得票率”聚合而来:

有了曲线,评估就讲方法论了。其一,比较不同防御方案时,不要只盯一个 ε,要比整条曲线的面积或若干关键点;其二,半径阈值的选择必须结合业务威胁模型——支付场景关心 ε=0.5,自动驾驶可能更关心 ε=0.25;其三,要看基准数据集——学术界默认在 CIFAR-10、ImageNet 等标准考场上报认证精度,否则数字没有可比性;最后务必同时报告标准精度,因为一条又高又陡的曲线可能是靠牺牲平时分换来的。

读体检报告不能只看一个指标。小蓝的“抗化装曲线”配合“正常识别率”,才能让主管判断:他到底适不适合站在高风险航班的安检口。

p‾A(ε)=Φ(Φ−1(pA)−ε/σ)\underline{p}_{A}(\varepsilon)=\Phi\big(\Phi^{-1}(p_{A})-\varepsilon/\sigma\big)
它表示:在扰动半径 ε 之内,冠军类别的得票率最低也不会跌破 $\underline{p}_A$。如果 $\underline{p}_A > 0.5$,冠军地位在这个 ε 下就焊死了。
  1. 票率转距离$\Phi^{-1}(p_{A})$ 把冠军得票率换算成“安全距离”,得票率越高,安全距离越远。
    zA=Φ−1(pA)z_A=\Phi^{-1}(p_A)
  2. 扣除攻击预算$- \varepsilon/\sigma$ 在距离尺度上减去对手的攻击半径(除以 σ 归一化),对手越强,剩余安全距离越短。
    zA−ε/σz_A-\varepsilon/\sigma
  3. 距离转回概率$\Phi(\cdot)$ 再把压缩后的距离映射回“最坏情况得票率”,用于判断是否仍大于 0.5。
    p‾A(ε)=Φ(zA−ε/σ)\underline{p}_A(\varepsilon)=\Phi(z_A-\varepsilon/\sigma)

优化策略

想让小蓝在压力测试里拿高分,主管手上有三板斧:换更强的考官、调观察角度范围、平时专练“看糊照”。这三招对应着提升认证精度的三类核心手段,原理全都围绕一个目标——把每个样本邻域内的预测焊得稳稳的。

第一板斧是“平滑噪声调节”。σ 是一把双刃剑:从半径公式 $R=\sigma\Phi^{-1}(p_A)$ 看,σ 大,放大倍数大;但 σ 太大又会让照片糊成一团,基础分类器认不出人,$p_A$ 暴跌。所以对每个目标 ε,都存在一个最优 σ,需要像调收音机频率一样去匹配。第二板斧是“基分类器增强”:换一个更强的骨干网络、更准的基础模型,直接推高每个样本的得票率 $p_A$,认证半径和认证精度水涨船高。

第三板斧是“数据增强与训练目标改进”。最朴素也最有效的是高斯数据增强——训练时就让模型看大量加噪样本,等价于最小化下面的损失:

更进阶的训练目标还有一致性正则、平滑对抗训练(SmoothAdv)等,本质都是给“看糊照”加上更聪明的评分规则。三招组合拳打下来,小蓝的认证精度曲线整体上移——但别指望免费,平时分依然会付出一部分代价。

Lsm=E(x,y)Eδ∼N(0,σ2I)[ℓ(f(x+δ),y)]\mathcal{L}_{sm}=\mathbb{E}_{(x,y)}\mathbb{E}_{\delta\sim\mathcal{N}(0,\sigma^{2}I)}\big[\ell\big(f(x+\delta),y\big)\big]
这个损失逼迫模型在“加了噪的照片”上也给出正确答案,相当于让安检员平时就对着各种糊照片、花照片做辨认练习,考试时才不会慌。
  1. 外层期望$\mathbb{E}_{(x,y)}$ 表示遍历训练数据分布,每个真实样本都要参与。
    E(x,y)[⋅]=1∣D∣∑(x,y)∈D⋅\mathbb{E}_{(x,y)}[\cdot]=\frac{1}{|\mathcal{D}|}\sum_{(x,y)\in\mathcal{D}}\cdot
  2. 内层噪声期望$\mathbb{E}_{\delta\sim\mathcal{N}(0,\sigma^2 I)}$ 表示对同一张样本加多种噪声,模拟无数种“化装视角”。
    Eδ[⋅]≈1m∑k=1m⋅(δk)\mathbb{E}_{\delta}[\cdot]\approx\frac{1}{m}\sum_{k=1}^{m}\cdot(\delta_k)
  3. 带噪损失$\ell(f(x+\delta),y)$ 计算加噪样本上的分类损失,梯度回传会让模型在噪声邻域内都趋向于预测正确。
    ℓ(f(x+δ),y)=−log⁡py(x+δ)\ell(f(x+\delta),y)=-\log p_{y}(x+\delta)

工程实践应用

机场决定把会审制推向三个关键岗位:人脸闸机(对标金融支付)、登机口核验(对标自动驾驶)、货运安检(对标内容审核)。每个岗位对化装预算 ε 的要求不一样,能接受的认证精度门槛 θ 也不一样——部署前必须做一道明确的选择题。

这道选择题的数学形式很干净:设业务要求的扰动预算为 $\varepsilon$,可接受的最低认证精度为 $\theta$,则部署决策为:

实际案例中,人脸支付公司常把“ε=0.5 时认证精度 ≥95%”写进算法备案材料,取代过去依赖红队实弹攻击的测试报告;自动驾驶团队对比两个候选感知模型的认证精度曲线,宁可接受略低的标准精度,也要在 ε=0.25 的关键半径上拿到更高保证;内容审核平台把随机平滑作为“最后一道闸”,高价值放行必须走认证通过的路径。它们共同的关键词是:选型要对着曲线选、对着阈值定,而不是拍脑袋。

认证精度不是实验室的花瓶指标,而是能写进合同和监管文件的“签字保单”。把保证量化,安全就从口号变成了工程。

Deploy(f,ε)=1[ACCcert(ε)≥θ]\text{Deploy}(f,\varepsilon)=\mathbf{1}\big[ACC_{cert}(\varepsilon)\ge \theta\big]
认证精度达标才上线,不达标就回到上一节的三板斧继续打磨,或者降低部署场景的风险等级。这个决策规则把“感觉安全”变成了“可审计的安全”。
  1. 目标扰动$\varepsilon$ 由威胁模型决定,比如人脸支付面对的是“照片级微调”,自动驾驶面对的可能是“贴纸”。
    ε∈[0,εmax]\varepsilon\in[0,\varepsilon_{max}]
  2. 安全阈值$\theta$ 是业务方拍板的最低认证精度,通常 90% 以上,写进 SLA 里。
    θ∈[0,1],θ≥0.9 常见\theta\in[0,1],\quad \theta\ge 0.9\ \text{常见}
  3. 决策指示$\mathbf{1}[\cdot]$ 输出 1 则部署,输出 0 则否决或返工,决策可复现、可审计。
    Deploy=1  ⟺  ACCcert(ε)≥θ\text{Deploy}=1 \iff ACC_{cert}(\varepsilon)\ge\theta

实战权衡之道

最终,主管要把方案汇报给航司董事会。他摆出两张账本:一本记小蓝的平时分(标准精度),一本记他的压力分(认证精度曲线)。董事会不关心技术细节,只问一句:风险敞口和成本,到底怎么平衡?这正是每一个 AI 安全负责人在实战中必须回答的问题。

平衡的第一条准则是“分层组合”。认证防御计算贵、精度代价大,适合放在最关键的最后一道闸上;对抗训练这类经验防御便宜、效果好,适合做第一道筛。两条防线叠加,既控制成本又守住底线。第二条准则是“成本收益评估”:随机平滑每次预测要做几十到几百次采样,推理成本成倍上涨——只有当误判代价(如支付欺诈、交通事故)远高于推理成本时,这笔账才划算。

第三条准则是“场景切换”。威胁模型是动态的:今天对手只有 ε=0.3 的 L2 扰动能力,明天可能换成物理世界的对抗贴纸,甚至 L∞ 扰动。每次威胁模型升级,都要重新画认证精度曲线、重新定 ε 和 θ。落地路线图因此固定为四步:先评估基线标准精度,再按目标 ε 选 σ 训练,接着画认证精度曲线,最后对照业务阈值决定上线或迭代。

航司最终把“化装压力分”写进了安检员年度 KPI。认证精度给整个行业的启示正是如此:与其赌对手不够强,不如用可证明的下限管理风险——这是从“感觉安全”走向“可度量的安全”的关键一跃。

AI 应用场景

刷脸支付算法备案的“保证书”

阶段:模型上线评估与安全合规审计

解决的问题:传统备案材料只报告标准精度和少量攻击测试结果,监管无法判断模型在“换脸级扰动”下的最坏表现。引入认证精度曲线后,把“ε=0.5 内认证精度 ≥95%”作为可审计的硬指标写进材料。

具体案例:某支付公司在人脸识别登录模块上用随机平滑做认证防御,用 300 次采样估计每个样本的冠军票率并计算认证半径,最终产出一张认证精度曲线。监管评审时直接对照曲线上 ε=0.5 的认证精度是否达标,比过去反复拉扯攻击测试报告高效得多。

自动驾驶感知模型的鲁棒性选型

阶段:感知算法选型与安全关键路径验收

解决的问题:对抗训练后的模型实测鲁棒精度随攻击算法选取波动大,“这次测试通过了”不能证明“下次敌人打不动”。用认证精度曲线做选型,能拿到最坏情况下的数学保证。

具体案例:某自动驾驶团队对比两个感知模型的认证精度曲线。模型 A 标准精度低 1.8%,但在 ε=0.25 时认证精度高出 6 个百分点,团队最终将模型 A 部署在安全关键路径上,并在文档中注明“在 L2 半径 0.25 内预测保证不变”。

内容审核平台的最后一道闸

阶段:在线推理防护与对抗鲁棒性监控

解决的问题:攻击者用肉眼不可见的微小扰动绕过内容审核,普通对抗训练防不胜防。把认证平滑器作为高价值判定的前置闸门,让“放行”必须有认证保证。

具体案例:某内容平台在审核 API 中增加一个“认证通道”:对用户上传图片先做随机平滑预测,只有认证半径达标且类别判定为安全的图片才走快速放行,否则进入人工队列。上线后针对逃逸类攻击的投诉量明显下降。

Python 演示

python96 行
import mathimport random  def normal_cdf(x):    # 标准正态分布累积分布函数    return 0.5 * (1.0 + math.erf(x / math.sqrt(2.0)))  def normal_ppf(p):    # 标准正态分布分位数的二分搜索实现    lo, hi = -8.0, 8.0    for _ in range(80):        mid = (lo + hi) / 2.0        if normal_cdf(mid) < p:            lo = mid        else:            hi = mid    return (lo + hi) / 2.0  def make_dataset(n, seed):    # 生成两类高斯混合分布数据, 返回 [((x1,x2), label), ...]    rng = random.Random(seed)    points = []    for _ in range(n // 2):        points.append(((rng.gauss(-2.0, 1.0), rng.gauss(0.0, 1.0)), 0))    for _ in range(n // 2):        points.append(((rng.gauss(2.0, 1.0), rng.gauss(0.0, 1.0)), 1))    return points  class SmoothedClassifier:    # 基于最近质心的随机平滑分类器    def __init__(self, train, sigma, n_samples):        self.sigma = sigma        self.n_samples = n_samples        sums = {0: [0.0, 0.0], 1: [0.0, 0.0]}        counts = {0: 0, 1: 0}        for (x1, x2), y in train:            sums[y][0] += x1            sums[y][1] += x2            counts[y] += 1        self.centroids = {            c: (sums[c][0] / counts[c], sums[c][1] / counts[c]) for c in sums        }     def nearest(self, x):        # 基础分类器: 返回距离最近的质心类别        best_c, best_d = 0, float("inf")        for c, mu in self.centroids.items():            d = (x[0] - mu[0]) ** 2 + (x[1] - mu[1]) ** 2            if d < best_d:                best_d, best_c = d, c        return best_c     def smoothed_predict(self, x):        # 加噪采样 + 多数投票, 返回 (预测类别, 冠军票率)        votes = {0: 0, 1: 0}        for _ in range(self.n_samples):            nx = (x[0] + random.gauss(0.0, self.sigma),                  x[1] + random.gauss(0.0, self.sigma))            votes[self.nearest(nx)] += 1        top = 0 if votes[0] >= votes[1] else 1        return top, votes[top] / self.n_samples     def certified_radius(self, x):        # 用冠军票率换算认证半径 R = sigma * Phi^-1(p_A)        top, p = self.smoothed_predict(x)        if p <= 0.5:            return top, 0.0        return top, self.sigma * normal_ppf(p)  def main():    train = make_dataset(400, 7)    test = make_dataset(200, 99)    model = SmoothedClassifier(train, sigma=0.8, n_samples=300)     std_correct = 0    cert_table = []    for x, y in test:        if model.nearest(x) == y:            std_correct += 1        top, r = model.certified_radius(x)        cert_table.append((top == y, r))     std_acc = std_correct / len(test)    print("标准精度(干净数据): %.1f%%" % (std_acc * 100))    for eps in [0.0, 0.4, 0.8, 1.2, 1.6]:        cert_acc = sum(1 for ok, r in cert_table if ok and r >= eps) / len(test)        print("认证精度(epsilon=%.1f): %.1f%%" % (eps, cert_acc * 100))  if __name__ == "__main__":    main()
目的:用随机平滑在二维高斯混合数据上,同时计算标准精度与不同扰动半径下的认证精度,直观复现“认证精度随 ε 增大而衰减”的现象。
  1. for (x1, x2), y in train:拆包训练样本,x 是二维坐标,y 是类别标签,为算质心做准备。
  2. self.centroids = {c: (sums[c][0] / counts[c], sums[c][1] / counts[c]) for c in sums}每个类别坐标求和后除以个数,得到类中心质心,作为基础分类器。
  3. votes[self.nearest(nx)] += 1对加噪样本做一次预测并累加票数,这是随机平滑的核心循环。
  4. top = 0 if votes[0] >= votes[1] else 1比较两类票数,多数票得胜,得到平滑分类器的最终预测。
  5. return top, self.sigma * normal_ppf(p)将冠军票率经正态分位数函数换算成认证半径。
  6. if model.nearest(x) == y:统计干净数据上的分类正确数,用于计算标准精度。
  7. cert_acc = sum(1 for ok, r in cert_table if ok and r >= eps) / len(test)同时满足“预测正确”与“半径达标”的样本占比,才是认证精度。

常见误区

误区一个模型认证精度有 90%+,那它一定是最安全的,任何攻击都打不穿它。

正解认证精度只是在声明的扰动预算 ε(通常是 L2 球)之内、对模型数学下限的保证。它回答“ε 内保证”,不回答“ε 之外”或“其他攻击类型”。对手把化装预算翻倍,或者干脆换一种伪装方式(如 L∞ 扰动、物理对抗贴纸),认证承诺就不覆盖了。认证精度是一张保单,而保单都有保障范围。

为何常见:人们容易把“有保证”误当成“保证一切”,忽略了保证的前提条件。

误区只要训练得当,既能保持 98% 的标准精度,又能拿到 95% 的认证精度。

正解二者存在根本权衡(鲁棒性代价)。要让分类边界对扰动不敏感,必须放弃对边界附近样本的精细区分,标准精度必然下降。经验上,认证防御通常要付出 5% 到 20% 的标准精度代价。就像安检变严必然拖慢人流。

为何常见:某些论文展示了“精度下降不明显”的少数结果,让人误以为可以两全其美。

误区认证精度曲线就是“把各种攻击挨个打一遍”测出来的实际鲁棒精度。

正解认证精度是数学证明的“最坏情况保证”,是 sound 的下限,比任何已知攻击都更保守;经验鲁棒精度才是用具体攻击方法(PGD、AutoAttack 等)实测出来的“已知攻击打不穿”的成绩。实测可能高估安全(因为没测到更强的攻击),认证下限只会过于保守。两张图名字相似,性质截然不同,不可混用。

为何常见:名字里都有“精度”,曲线形态也相似,初学者容易混淆“证明的下限”与“实测的成绩”。

误区既然 $R=\sigma\Phi^{-1}(p_A)$,σ 变大 R 就变大,那就无脑加大 σ。

正解σ 变大虽然放大系数变大,但噪声过大会把基础分类器“糊”掉——投票中正确类的 $p_A$ 急剧下降,$\Phi^{-1}(p_A)$ 变小甚至跌破 0.5。对某个固定 ε,存在最优 σ;σ 必须与威胁模型匹配。安检员看谁都模糊(σ 大),但他也认不出正常人了。

为何常见:只盯着公式前半段的线性放大,忽略了 $p_A$ 对 σ 的依赖。

误区既然认证防御有数学保证,公司所有模型都应该用随机平滑。

正解认证防御只覆盖特定 Lp 球,标准精度损失大,推理成本高(每次预测要几十上百次采样)。对低风险场景,经验防御(对抗训练)更划算;认证防御适合安全攸关的高风险场景。选型要看威胁模型和成本收益,而不是一句“有保证”就全盘替换。

为何常见:线性思维“有保证 = 更高级 = 全用”,忽略了部署成本与适用边界。

面试题

Q1. 模型的标准精度衡量的是它在什么数据上的表现?

单选题 · easy

  • A.带有对抗扰动的高危测试数据
  • B.干净无扰动的正常测试数据← 正确答案
  • C.仅使用训练集数据样本进行测试
  • D.任意随机生成的无标签数据样本

答案:B。标准精度就是“平时分”,只在干净测试集上统计,不施加任何扰动,衡量模型在正常数据上的基础识别能力。A 是鲁棒性测试的场景,C 混入训练集是数据泄漏,D 无标签数据根本没法计算正确率。

Q2. 认证精度的核心承诺是什么?

单选题 · easy

  • A.在任何攻击手段下都能达到该精度
  • B.在训练数据上做到零误差的完美拟合
  • C.在预算内的扰动下能保证精度的下限← 正确答案
  • D.在干净数据上追求最高的识别精度

答案:C。认证精度的核心是“在预算内保证”,类似安检员在化装预算内依然认出乘客的承诺。它给出的是最坏情况下的下限保证,而不是“所有攻击都打不过”的万能保险。A 夸大了保证范围,B 是训练拟合描述,D 是标准精度的目标。

Q3. 随机平滑得到最终预测结果的核心机制是?

单选题 · mid

  • A.对输入加噪声并进行多数投票← 正确答案
  • B.直接输出置信度最高的那个类别
  • C.对多个不同模型做加权平均预测
  • D.用注意力机制融合所有输入特征

答案:A。随机平滑通过加噪、投票获得统计稳定的预测,像多位检查员在不同角度分别辨认再举手表决。A 正确。B 是普通分类器的输出方式,C 是模型集成,D 与认证防御无关。

Q4. 随机平滑中认证半径的计算依赖哪个关键量?

单选题 · mid

  • A.模型在干净数据上的整体准确率
  • B.得票最高类别概率的保守下界← 正确答案
  • C.参与投票的噪声样本总数大小
  • D.扰动半径上限的人工设定数值

答案:B。认证半径依赖冠军类别的得票概率下界 $p_A$,用二项置信下界估计它才能保证证书保守可靠。A 是整体指标与单样本无关,C 采样次数不是概率,D 是输入设定而非推导结果。

Q5. 增大平滑噪声强度 σ 对模型的主要影响是?

单选题 · mid

  • A.标准精度上升且认证精度也随之上升
  • B.认证半径缩小但认证精度也会上升
  • C.基础分类器精度下降但认证半径放大← 正确答案
  • D.基础分类器精度上升且认证半径缩小

答案:C。σ 是一把双刃剑:它放大半径公式中的尺度因子,但噪声过大会让基础分类器“糊掉”,冠军票率 $p_A$ 下降,认证精度反而可能崩。C 正确描述了“半径放大”与“基分类器精度下降”这对矛盾,A、B、D 都只描述了单侧影响。

Q6. 为什么认证精度通常显著低于标准精度?

单选题 · hard

  • A.因为在测试阶段给模型注入了随机噪声
  • B.因为认证防御牺牲了决策边界的精细度← 正确答案
  • C.因为两次评估使用的样本数量不一致
  • D.因为评估阶段额外添加了随机采样误差

答案:B。认证精度既要求预测正确又要求半径达标,而且鲁棒训练钝化了决策边界,边界附近的样本更难区分,精度自然下降。A 混淆了评估机制,C、D 都不在认证评估的正规流程中。

Q7. 关于认证精度曲线,下列描述正确的是?

单选题 · hard

  • A.认证精度曲线越高说明模型抗攻击能力越差
  • B.认证精度曲线下方面积越大代表模型鲁棒精度越高
  • C.认证精度曲线必须保持水平状态才能通过认证审核
  • D.认证精度随扰动半径增大呈现单调下降的变化趋势← 正确答案

答案:D。认证精度曲线刻画“保证精度随扰动预算增加而衰减”,单调下降是典型形态。A 说法颠倒,B 面积越大代表鲁棒精度越高而非越低,C 认为曲线必须水平毫无依据。

Q8. 下列哪些技术属于认证防御的范畴?

多选题 · mid

  • A.随机平滑的多角度投票认证机制← 正确答案
  • B.区间边界传播的逐层边界计算方法← 正确答案
  • C.对输入图片做简单的灰度化预处理
  • D.对训练数据进行随机采样重新加权

答案:AB。随机平滑与区间边界传播都是主流的“可证明”认证防御手段。A、B 正确。C 灰度化只是预处理,不提供任何最坏情况保证;D 是数据处理手段,与认证无关。

Q9. 以下哪些措施有助于提升模型的认证精度?

多选题 · hard

  • A.使用分类能力更强的基础骨干网络← 正确答案
  • B.训练时加入高斯噪声数据增强手段← 正确答案
  • C.把测试样本全部混入训练集重新训练
  • D.针对目标扰动半径调节最优噪声强度← 正确答案

答案:ABD。更强的基础分类器直接抬高 $p_A$,高斯数据增强让模型适应噪声,调节 σ 让证书匹配目标半径,三者都能提升认证精度。A、B、D 正确。C 把测试集混入训练是数据泄漏,属于作弊而非提升。

Q10. 关于标准精度与认证精度的关系,正确的叙述是?

多选题 · mid

  • A.两者之间存在此消彼长的鲁棒性权衡← 正确答案
  • B.认证精度是标准精度的一个上界指标
  • C.引入认证防御通常会付出精度代价← 正确答案
  • D.两者都必须在干净数据上评估打分

答案:AC。认证防御必然带来精度代价,因为决策边界必须“钝化”,所以标准精度与认证精度存在此消彼长的权衡。A、C 正确。B 说反了——认证精度通常低于标准精度;D 也不对,认证精度要在“扰动预算 + 半径达标”的标准下评估,不是干净数据上的普通打分。