凌晨四点的国际机场,海关安检员小陈盯着屏幕——他手里有一份“重点人员名单”,任务是从每天数万名旅客中,把名单上的人找出来。真正的难点在于:名单上的人不会主动承认,小陈只能靠核验仪给出的“相似度分数”判断。分数高,拦下;分数低,放行。可阈值定松了,会放走危险分子;定严了,又会拦下一大批无辜旅客。 这个场景,和 AI 领域的“成员推断攻击”(MIA)几乎一模一样:攻击者就像小陈,手里的模型就是核验仪,任务是判断一条数据到底有没有“进过”模型的训练集。而 AUC、TPR@FPR、准确率、召回率这些评估指标,就是用来回答“这台核验仪到底好不好用、能不能放心上岗”的一把把尺子。这篇文章,我们就跟着小陈一起,把这些尺子读懂、用对,学会像海关考核仪器那样,科学地评估一次攻击的杀伤力,以及一道防御的真实效果。

岗位关联

掌握这套评估指标体系,你就能像海关核验仪器一样,用标准化尺子量化任何 MIA 攻防方案,写出让监管和同行都信服的安全评估报告。

目录
  1. 可视化演示
  2. 指标体系总览
  3. AUC与ROC曲线
  4. TPR@FPR指标
  5. 分类精度指标
  6. 基准数据集选择
  7. 评估协议实践
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

动态演示MIA评估指标AUC与TPR的核心机制,通过全局/局部/动态/静态四种模式展示关键概念与交互流程。

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

MIA评估指标AUC与TPR:MIA评 MIA评估指标体系概述与设计目 AUC指标定义、计算方法与适用 核心机制可视化 MIA评估指标AUC与TPR整体架构与关键组件

指标体系总览

小陈的核验仪好不好用,不能只看“一天抓了多少人”——因为名单上的人本来就不多,抓得再多也可能全是误拦。评价一把尺子之前,得先想明白:你是在考核攻击方,还是在保护防御方?这两边的关注点完全不同。

攻击方(小陈)关心的是命中率:所有真正的黑名单成员里,我抓对了多少?对应到评估体系里,就是 TPR(真正例率)和召回率。防御方(机场管理方)关心的是误伤率:所有普通旅客里,我被冤枉拦下多少?对应 FPR(假正例率)。一场 MIA 评估,本质上就是在这两个方向之间寻找平衡——攻击灵敏度一提上去,误伤必然跟着涨。

再往下拆,评估一个攻击模型要回答三个层次的问题:第一,“整体判别水平”如何?用 AUC——它不挑阈值,衡量排序能力。第二,“在可接受的误伤预算下”表现如何?用 TPR@FPR——这是实战中最有意义的数字。第三,“在某个具体拦截线上”表现如何?用准确率、精确率、召回率和 F1。这三层就像海关考核仪器的三份报告:年检报告看整体性能,晨会报告看预算内绩效,值班日志看具体操作。

所以小陈的考核表上,永远同时写着“抓到了多少黑名单”和“冤枉了多少旅客”——缺了任何一边,这张表都会骗人。

AUC与ROC曲线

小陈想招一台新核验仪,可每家厂商都吹自己“灵敏度高、误报率低”。怎么不吵架?办法是:把仪器从“最严格”到“最宽松”的所有档位都测一遍。拦截线最高时,几乎没人被拦,误伤率为零,命中率也为零;拦截线逐渐放低,越来越多旅客被拦,命中率和误伤率一起爬升。把“误伤率”画在横轴、“命中率”画在纵轴,随着阈值从高到低,就描出一条曲线——这就是 ROC 曲线。

ROC 曲线下方的面积,就是 AUC。它回答一个极其直观的问题:随机抽一名黑名单成员和一名普通旅客,核验仪给黑名单成员打的分更高的概率有多大?如果仪器纯靠瞎猜,这个概率是 50%,AUC=0.5,曲线贴着对角线;如果仪器完美,黑名单成员的分永远高于普通旅客,AUC=1.0。AUC 的好处是与拦截线无关——它综合了所有档位的表现,一把尺子量到底。

对小陈来说,AUC 是“选型”时的第一道关:它会淘汰那些连基本排序能力都没有的劣质仪器,但它不会告诉他“上岗后每天会冤枉多少人”——那是下一把尺子的事。

AUC=∫01TPR(FPR−1(α)) dα=P(smember>snon-member)\displaystyle \mathrm{AUC} = \int_{0}^{1} \mathrm{TPR}\left(\mathrm{FPR}^{-1}(\alpha)\right)\, d\alpha = P\left(s_{\text{member}} > s_{\text{non-member}}\right)
这个公式告诉我们:AUC 就是把“从零误伤到全误伤”的每一种预算下能抓到的比例汇总起来;等价地,也可以看作“随机一对成员和非成员,成员得分更高”的概率。
  1. FPR^{-1}(\alpha) 反解阈值给定一个允许的误拦比例 α,把它反着换算成对应的拦截线位置 τ——也就是“在这个误伤预算下,仪器最多能调到多松”。
    τ=FPR−1(α)\tau = \mathrm{FPR}^{-1}(\alpha)
  2. TPR(FPR^{-1}(α)) 预算内命中率在这条拦截线下,黑名单成员被抓到的比例 TPR。
    TPR(τ)=P(s>τ∣member)\mathrm{TPR}(\tau) = P\left(s > \tau \mid \text{member}\right)
  3. ∫₀¹ dα 全预算求和让 α 从 0 走到 1,把每个预算下的命中率都加起来,得到一个与具体拦截线无关的整体分数。
    ∫01TPR(FPR−1(α)) dα\int_{0}^{1} \mathrm{TPR}\left(\mathrm{FPR}^{-1}(\alpha)\right)\, d\alpha
  4. P(s_member > s_nonmember) 排序概率AUC 的另一种等价定义——随机抽一对“黑名单+普通旅客”,仪器给前者打更高分的概率。
    P(smember>snon-member)P\left(s_{\text{member}} > s_{\text{non-member}}\right)

TPR@FPR指标

AUC 再漂亮,小陈也不敢直接上岗。为什么?因为机场一天五万旅客,就算只误拦 1%,那也是五百个被拦下、搜身、耽误航班的普通人。真实业务给了一个硬性预算:“冤枉无辜者的比例,绝不能超过某个上限。”在这个前提下,小陈真正关心的问题变成了:只允许误拦 1% 的普通旅客时,到底能抓到几成黑名单?这个数字,就是 TPR@FPR=1%。

它的计算方法是:先找到一条拦截线,使误拦率恰好不超过 1%,再看这条拦截线下命中率有多高。在 MIA 场景里,这个指标比 AUC 更贴近真实的攻击风险——攻击者往往不需要把所有成员都捞出来,只要在误伤极小的前提下“实锤”出几个高置信度的成员,就足以证明训练数据泄漏了。所以安全研究者在报告攻击强度时,习惯同时报 TPR@FPR=1%、0.1% 甚至 0.01% 三个档位,档位越严,数字越能说明“攻击是不是真的危险”。

记住一个反直觉的点:TPR@FPR 是一个固定点,它不随你随便挑的阈值变化——阈值由“1% 误伤预算”这个约束反推出来。小陈要是擅自把拦截线调高,误伤率虽降了,但那是“超预算保安全”,不是这个指标要回答的问题。

TPR@FPR=α≜TPR(τα),其中 τα=min⁡{τ:FPR(τ)≤α}\displaystyle \mathrm{TPR@FPR{=}\alpha} \triangleq \mathrm{TPR}\left(\tau_\alpha\right), \quad \text{其中 } \tau_\alpha = \min\left\{\tau : \mathrm{FPR}(\tau) \le \alpha\right\}
意思是:在“误拦率不超过 α”的所有拦截线中,挑一条最宽松的(也就是抓人最多的),然后报告这条线下的命中率。
  1. FPR(τ) 误伤函数给定拦截线 τ,普通旅客被误拦的比例——这是防御方的“伤痛”计量器。
    FPR(τ)=P(s>τ∣non-member)\mathrm{FPR}(\tau) = P\left(s > \tau \mid \text{non-member}\right)
  2. τ_α 最优工作点在所有满足“误拦率 ≤ α”的拦截线里,选势最松的那一条,保证在预算内抓到最多的人。
    τα=min⁡{τ:FPR(τ)≤α}\tau_\alpha = \min\left\{\tau : \mathrm{FPR}(\tau) \le \alpha\right\}
  3. TPR(τ_α) 预算内命中率把选好的拦截线代入命中率函数,得到本指标的最终取值。
    TPR(τα)=P(s>τα∣member)\mathrm{TPR}\left(\tau_\alpha\right) = P\left(s > \tau_\alpha \mid \text{member}\right)

分类精度指标

小陈每天下班要填一张值班报表,表上有四格:真的黑名单被拦下(TP)、普通旅客被放行(TN)、普通旅客被误拦(FP)、黑名单被放走(FN)。这四格,就是混淆矩阵。围着四格,诞生了四个家常指标。

准确率是最直观的:四格里两格对的加起来,除以总数。但这个小陈很快发现,它有个大坑——机场旅客 99% 都是普通人,就算他把拦截线拉到最高、一个人都不拦,准确率也有 99%,可这仪器跟废铁没区别。所以在成员远少于非成员的数据集上(MIA 的常态),准确率几乎会骗人。真正要看的,是下面两个:

精确率:被拦下的人里,真有问题的占多少?这是对小陈每次“出手”的问责。召回率:真有问题的黑名单里,被拦下的占多少?这和 TPR 是同一个概念,是对“漏网”的问责。这两者天然打架——拦截线一旦调严,召回率掉了,精确率反而升了;调松则相反。于是有了 F1 分数,用调和平均把两个数字拧成一股绳:任何一个拖后腿,F1 都会很难看,防止“偏科生”冒充优等生。

对小陈来说,精确率和召回率各有各的“问责意义”;但对 MIA 报告来说,它们都依赖一个具体阈值,所以在不同工作点之间跳跃。最稳的报表策略是:AUC 和 TPR@FPR 用来横向比攻击强度,F1 用来描述某个既定工作点的运行状态。

Accuracy=TP+TNTP+TN+FP+FN,Precision=TPTP+FP,Recall=TPTP+FN,F1=2×Precision×RecallPrecision+Recall\displaystyle \mathrm{Accuracy} = \frac{\mathrm{TP} + \mathrm{TN}}{\mathrm{TP} + \mathrm{TN} + \mathrm{FP} + \mathrm{FN}},\qquad \mathrm{Precision} = \frac{\mathrm{TP}}{\mathrm{TP} + \mathrm{FP}},\qquad \mathrm{Recall} = \frac{\mathrm{TP}}{\mathrm{TP} + \mathrm{FN}},\qquad F_1 = \frac{2 \times \mathrm{Precision} \times \mathrm{Recall}}{\mathrm{Precision} + \mathrm{Recall}}
四个公式共用同一套分母思路:每个指标都是“对的格子”除以“和它相关的格子”。
  1. 混淆矩阵四格TP 是成员被判成成员,TN 是非成员被判成非成员,FP 是普通旅客被误拦,FN 是黑名单被放走——四格是全部指标的地基。
    TP, TN, FP, FN\mathrm{TP,\ TN,\ FP,\ FN}
  2. Accuracy(准确率)判断正确的两格之和占总人数的比例,直观但会被类别不平衡欺骗。
    Accuracy=TP+TNTP+TN+FP+FN\mathrm{Accuracy} = \frac{\mathrm{TP} + \mathrm{TN}}{\mathrm{TP} + \mathrm{TN} + \mathrm{FP} + \mathrm{FN}}
  3. Precision(精确率)在被拦下的人里,真正是成员的比例——每一次拦截是否冤枉了好人。
    Precision=TPTP+FP\mathrm{Precision} = \frac{\mathrm{TP}}{\mathrm{TP} + \mathrm{FP}}
  4. Recall(召回率)在真正的成员里,被成功拦下的比例——和 TPR 是同一个概念。
    Recall=TPTP+FN\mathrm{Recall} = \frac{\mathrm{TP}}{\mathrm{TP} + \mathrm{FN}}
  5. F1 分数精确率和召回率的调和平均,任何一个偏低都会被狠狠拉低,防止“偏科”。
    F1=2×Precision×RecallPrecision+RecallF_1 = \frac{2 \times \mathrm{Precision} \times \mathrm{Recall}}{\mathrm{Precision} + \mathrm{Recall}}

基准数据集选择

核验仪在小机场测得好用,换到大机场就翻车——因为旅客构成完全不一样:国际航班多、旅客肤色分布广、重点名单密度高。同理,一个 MIA 攻击在某个数据集上 AUC=0.9,换个数据集可能只有 0.6。评估攻击,必须选对“测试机场”,也就是基准数据集。

MIA 研究圈有几座“公认机场”:CIFAR-10(图像分类,数据量大、隐私属性弱,适合验证通用攻击);Purchase100(商场购物记录转化而来,100 类购买行为,天然带强隐私语义);Texas100(德州医院公开的医疗诊断数据,属于高度敏感数据的代表);此外还有 MNIST、位置轨迹数据和电影评分数据等。选哪座,取决于你研究的攻击到底要部署在什么场景。

选数据集时要过三关:第一,隐私敏感度——购物记录、医疗诊断这类含个人属性的表格数据,泄漏后果远重于普通图片,攻击“实锤”的说服力也更强;第二,现实代表性——数据规模、类别数量、样本分布是否接近真实部署环境;第三,与目标模型的匹配——你的被攻击模型是图像分类器、语言模型还是推荐系统,就要在对应的模态数据上评估。小陈的教训是:别在一座没有黑名单的机场测试拦截能力,那只会测出虚假的自信。

评估协议实践

小陈终于选好了仪器和测试机场。但要给上级写正式报告,他还得定一套“测法”:测几天?每天测几次?用什么统计口径?如果只挑状态最好的那天汇报,那叫造假。MIA 评估同理,必须有一套标准协议。

第一步是影子模型划分——这是 MIA 特有的关键步骤。攻击者不可能真的知道目标模型的训练集,于是他训练一批“影子模型”当替身:拿数据集的一半训练影子模型(视为“成员”),另一半不训练(视为“非成员”),攻击模型就在这批影子数据上学习“成员和非成员评分差异”。第二步是重复实验——换多个随机种子重新划分数据、重新训练影子模型,攻击的每个指标都要测多次。第三步才是报告:报告均值、标准差和置信区间,避免单次实验的偶然波动被当成普遍结论。

一份合格的安全评估报告,至少包含:数据集与划分协议、攻击模型设置、AUC 值、TPR@FPR 在 1%/0.1%/0.01% 三档的取值、以及多次实验的均值和置信区间。小陈的报告写得越规范,上级就越敢信他——在 AI 安全圈子里,这同样是赢得同行信任的唯一途径。

p^±z1−α/2×p^(1−p^)n\displaystyle \hat{p} \pm z_{1-\alpha/2} \times \sqrt{\frac{\hat{p}(1-\hat{p})}{n}}
这是比例指标的置信区间公式:多次重复实验得到一个平均估计 p̂,再给出它上下波动的合理范围。
  1. p̂ 平均估计值多次重复实验中观测到的平均指标(如平均 AUC 或平均 TPR@FPR)。
    p^\hat{p}
  2. z_{1-α/2} 置信分位数对应置信水平的常数,95% 置信度时取 1.96。
    z1−0.05/2=1.96z_{1-0.05/2} = 1.96
  3. √(p̂(1-p̂)/n) 标准误差比例估计的波动幅度,n 是重复实验次数——实验越多,误差棒越窄。
    p^(1−p^)n\sqrt{\frac{\hat{p}(1-\hat{p})}{n}}
  4. ± 置信区间把点估计和波动范围拼在一起,报告为“均值 ± 误差”,呈现结论的可靠程度。
    p^±z1−α/2×p^(1−p^)n\hat{p} \pm z_{1-\alpha/2} \times \sqrt{\frac{\hat{p}(1-\hat{p})}{n}}

AI 应用场景

企业模型的隐私合规体检

阶段:模型发布前安全评估

解决的问题:传统安全审计只看数据有没有匿名化,无法回答“模型本身是否在泄漏训练记忆”这个深层问题。用 MIA 评估协议对目标模型发起模拟攻击,用 AUC 和 TPR@FPR 量化泄漏程度,把模糊的担忧变成可审计的数字。

具体案例:某医疗科技公司训练了病人诊断模型,发布前安全团队按标准协议构造影子模型评估:报告 AUC=0.87、TPR@FPR=1%=0.31,判定存在可证明的成员泄漏风险,于是回炉加入差分隐私训练,重新评估直到 AUC 降到 0.6 以下才放行。

防御方案效果的横向对比

阶段:防御机制调优

解决的问题:只看模型训练准确率,根本看不出防御好坏。通过对比“防御前后 AUC 下降幅度 + TPR@FPR 变化”,把 DP-SGD(差分隐私随机梯度下降)、正则化、数据净化等方案放在同一把尺子下比较。

具体案例:机器学习工程师在差分隐私参数 ε 取 2、5、8 三档下分别训练模型,测得攻击 AUC 分别为 0.52、0.61、0.72;结合任务效用指标(精度下降不超过 2%),最终选定 ε=5 作为隐私-效用平衡点。

攻防论文的标准化实验报告

阶段:学术实验与复现

解决的问题:不同论文各用各的指标和协议,导致结果无法横向比较。统一使用 AUC + TPR@FPR 多档位 + 置信区间的报告模板,让新方法可复现、可对比。

具体案例:安全会议投稿时,作者在 CIFAR-10 和 Purchase100 两套基准上运行同一评估脚本,附上 AUC、TPR@FPR=1%/0.1% 及 95% 置信区间,评审人可以一键复现全部数字。

Python 演示

python38 行
import numpy as npfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import roc_auc_score, roc_curve, accuracy_scorefrom sklearn.metrics import precision_score, recall_score, f1_score np.random.seed(0)n = 400X = np.random.randn(n, 4)y = (X[:, 0] + 0.3 * X[:, 1] - 0.2 * X[:, 2] > 0).astype(int) member_idx = np.random.choice(n, n // 2, replace=False)is_member = np.zeros(n, dtype=int)is_member[member_idx] = 1 model = LogisticRegression()model.fit(X[is_member == 1], y[is_member == 1]) proba = model.predict_proba(X)[:, 1]score = np.where(y == 1, proba, 1 - proba) auc = roc_auc_score(is_member, score)fpr, tpr, _ = roc_curve(is_member, score)tpr_at_fpr = {}for fp in [0.01, 0.05, 0.10]:    cand = [tp for tp, f in zip(tpr, fpr) if f <= fp]    tpr_at_fpr[fp] = max(cand) if cand else 0.0 pred = (score > 0.5).astype(int)acc = accuracy_score(is_member, pred)precision = precision_score(is_member, pred)recall = recall_score(is_member, pred)f1 = f1_score(is_member, pred) print("AUC       = %.3f" % auc)for fp, tp in tpr_at_fpr.items():    print("TPR@FPR=%.2f = %.3f" % (fp, tp))print("Accuracy  = %.3f | Precision = %.3f | Recall = %.3f | F1 = %.3f"      % (acc, precision, recall, f1))
目的:用逻辑回归模拟“目标模型 + 影子划分”,对每条数据计算攻击评分,然后一次性输出 AUC、TPR@FPR 三档、准确率、精确率、召回率和 F1——完整复刻本文的核心指标体系。
  1. member_idx = np.random.choice(n, n // 2, replace=False)随机挑一半样本作为“训练集成员”,模拟真实的数据划分。
  2. score = np.where(y == 1, proba, 1 - proba)攻击评分取模型对真实类别的置信度:成员数据往往让模型更“自信”,这就是攻击信号。
  3. auc = roc_auc_score(is_member, score)sklearn 一行算出 AUC,内部就是“成员得分高于非成员”的排序概率。
  4. cand = [tp for tp, f in zip(tpr, fpr) if f <= fp]在误伤预算内筛选所有候选命中率,取最大值即 TPR@FPR。
  5. max(cand) if cand else 0.0预算过严时列表可能为空,用 0.0 兜底避免程序崩溃。
  6. pred = (score > 0.5).astype(int)以 0.5 为拦截线做二分判断,属于“固定工作点”的指标计算方式。

常见误区

误区“攻击模型把所有样本分类的准确率有 90%,说明攻击很强,可以实锤隐私泄漏了。”

正解在 MIA 场景里,非成员数量通常远多于成员。假如 95% 的样本都不是成员,攻击模型只要全部回答“非成员”,准确率就有 95%——但它一个成员都找不出来。准确率像安检口只统计“有多少人没被拦”,却不管名单上的人是不是全溜了。衡量攻击强度,应该用不受类分布影响的 AUC 和 TPR@FPR。

为何常见:准确率是大多数人心中的“第一指标”,直观好算,但它的分母被多数类把持,在 MIA 这种天然不平衡的问题里最容易误导人。

误区“报告说攻击 AUC=0.95,那它在 TPR@FPR=1% 下表现肯定也很棒,估计能抓到九成。”

正解AUC 是 ROC 曲线下的总面积,它反映的是“整体排序质量”,但可能由高分段的优秀表现撑起来。有些攻击在 FPR 很低时 TPR 也极低——它们只擅长在高误伤区间刷分。好比一台仪器在宽松档位抓人很猛,一到严格档位就失灵。所以论文必须单独报告 TPR@FPR,不能拿 AUC 一笔带过。

为何常见:人脑天生喜欢用一个数字概括全局,AUC 恰恰是那个“貌似全能”的数字,掩盖了它在不同工作点上的剧烈波动。

误区“TPR@FPR=1% 的意思,就是 TPR 除以 FPR 等于 1%,TPR 是 FPR 的一百倍?”

正解这里的 @ 读作“在……条件下”,不是除号。TPR@FPR=1% 的含义是“把误拦率固定在 1% 时,测得的命中率”,它是一个整体短语,不能拆开相除。写成数学语言:先解出使 FPR=1% 的阈值 τ,再报告这个 τ 下的 TPR。小陈的翻译是:“在只允许冤枉 1% 旅客的规矩下,能抓到几成黑名单。”

为何常见:@ 符号在邮箱地址、社交媒体里都表示“位于”,容易让人联想到数学运算符,加上指标名字挤在一起,确实容易读岔。

误区“评估 MIA 攻击时,直接把目标模型的全部训练集和测试集拿来打标签,算出来的指标最准。”

正解这等于把考卷答案提前给了考生。MIA 的对抗设定是:攻击者只能接触目标模型的“输入-输出”行为,不知道真实训练集。评估必须模拟这种视角——用影子模型的“半训练、半留出”划分来生成成员/非成员标签,再迁移到目标模型上。否则信息泄漏会让 AUC 虚高到脱离实际。

为何常见:习惯了普通机器学习“训练集-测试集”的评估范式,容易忽略 MIA 特有的“攻击者知识边界”,把评估当成了上帝视角的统计游戏。

误区“我跑了一次实验,AUC=0.83,这就是最终结果,直接写进报告。”

正解数据划分、影子模型训练、攻击模型初始化都带随机性,单次实验的 AUC 可能上下浮动 0.05 甚至更多。规范做法是至少跑 5~10 个随机种子,报告均值、标准差和 95% 置信区间。只报一次结果,和海关只挑天气最好的那天测仪器,性质一样。

为何常见:追求“一个漂亮数字”的汇报习惯,加上对重复实验的成本畏惧——但标准协议恰恰是安全报告可信度的根基。

面试题

Q1. 当攻击模型的 AUC=0.5 时,说明什么?

单选题 · easy

  • A.攻击可以全部识别出训练成员
  • B.攻击效果与随机猜测没有差别← 正确答案
  • C.攻击可以全部识别出非成员
  • D.攻击评分与真实标签完全反向

答案:B。AUC=0.5 对应 ROC 曲线贴着对角线,意味着成员和非成员的评分分布完全重叠,攻击相当于抛硬币瞎猜,效果与随机猜测无异。A 和 C 对应 AUC=1,D 对应 AUC=0,均不符合。就像海关核验仪的打分和黑名单毫无关系,拦人全靠运气。

Q2. 把海关比喻中的拦截线(阈值)调高、定得更严格,会发生什么?

单选题 · mid

  • A.命中率与误拦率会同时上升
  • B.命中率与误拦率会同时下降← 正确答案
  • C.命中率会上升而误拦率会下降
  • D.命中率会下降而误拦率会上升

答案:B。拦截线调高意味着只有“相似度分数”极高的旅客才会被拦下,被拦的总人数变少,黑名单命中和普通旅客误伤都会减少,所以 TPR 和 FPR 同时下降。C 和 D 描述的是此消彼长的关系,但那通常出现在“换一台仪器”而非“移动阈值”时。注意:阈值移动时 TPR 和 FPR 是同向变化的。

Q3. 下列哪些指标不依赖人为挑选的具体阈值(拦截线)?

多选题 · mid

  • A.AUC 曲线下面积指标← 正确答案
  • B.固定阈值下的分类准确率
  • C.固定阈值下的成员召回率
  • D.TPR@FPR=1% 条件指标← 正确答案

答案:AD。AUC 对所有阈值下的表现做了积分,天然与具体阈值无关;TPR@FPR=1% 的阈值由“误拦率不超过 1%”这个预算约束反推出来,不是人为挑的。而准确率和召回率,一旦阈值移动就会变化,属于依赖工作点的指标。这好比问“哪些考核不看当天拦截线定在哪”——整体的 ROC 面积和固定预算下的绩效都不看。

Q4. 在非成员远多于成员的数据集上,攻击模型把所有样本都判为“非成员”,会得到什么结果?

单选题 · mid

  • A.准确率偏高而成员召回率为零← 正确答案
  • B.准确率偏高且成员召回率饱和
  • C.精确率偏高而成员召回率为零
  • D.精确率与召回率同时都归零

答案:A。全部判“非成员”时,大量真非成员被正确放行,所以准确率虚高;但一个成员都没被识别出来,TP=0,召回率=0。精确率的分母是“被判定为成员的数量”,此时为 0,精确率通常记为 0 而非偏高。这正说明 MIA 里准确率会骗人,必须用召回率、AUC 等指标。

Q5. 某攻击报告 AUC=0.9,但 TPR@FPR=0.1%=0.02,最合理的解释是什么?

单选题 · extreme

  • A.攻击在极低误伤预算下几乎完全失效← 正确答案
  • B.数据划分中存在严重的成员信息泄漏
  • C.防御机制已经做到完全无法被攻击
  • D.攻击模型计算 AUC 时出现了数值错误

答案:A。AUC=0.9 说明整体排序能力不错,但 TPR@FPR=0.1% 只有 0.02,说明在极低的误拦预算下几乎抓不到成员。两者可以并存:ROC 曲线的高分区间很陡、低误伤区间却贴着横轴。这说明该攻击只能在误伤较高时生效,无法支撑“可证明泄漏”的实锤结论,并非计算错误,也不能归因于防御完美(那 AUC 也会同时下降)。

Q6. 下面哪些做法属于规范的 MIA 评估协议?

多选题 · mid

  • A.使用多个随机种子重复进行实验← 正确答案
  • B.报告中给出均值与置信区间← 正确答案
  • C.只报告表现最好的一次实验结果
  • D.固定攻击者可观察到的数据划分方式← 正确答案

答案:ABD。规范协议要求模拟攻击者视角、固定可见数据划分,并通过多随机种子重复实验消除偶然性,最终以均值、标准差和置信区间形式报告。C 是典型的“挑最好看数字”行为,属于结果挑选(cherry-picking),会让报告失去可信度。就像海关不能只在状态最好的那天测试仪器就写验收报告。

Q7. F1 分数的定义是哪一种?

单选题 · easy

  • A.精确率与召回率的几何平均
  • B.精确率与召回率的调和平均← 正确答案
  • C.精确率与召回率的算术平均
  • D.准确率与召回率的调和平均

答案:B。F1 是精确率(Precision)和召回率(Recall)的调和平均,几何平均是根号下乘积,算术平均是直接相加除二,都不对;D 把精确率偷换成了准确率。调和平均对“偏科”最敏感:精确率 1.0、召回率 0.0 时,F1 直接为 0,避免了某个指标假装优秀。

Q8. ROC 曲线上某点的坐标是 (FPR, TPR)=(0.2, 0.8),它表示什么?

单选题 · hard

  • A.误拦 20% 普通旅客时能抓到 80% 的黑名单← 正确答案
  • B.误拦 80% 旅客时能抓到 20% 的黑名单
  • C.有 20% 黑名单被漏掉且 80% 旅客被误拦
  • D.该点位于随机猜测对角线的正下方位置

答案:A。ROC 曲线的横轴是 FPR(普通旅客被误拦比例),纵轴是 TPR(黑名单被抓比例),所以 (0.2, 0.8) 表示“误拦两成、抓到八成”。B 把坐标读反了,C 把条件对象搞混,D 中该点在对角线上方(0.8 > 0.2)而非下方。工作点越高越靠左上,说明攻击在同等误伤下更强。

Q9. 关于基准数据集的选择,下列说法正确的有哪些?

多选题 · hard

  • A.应优先选择含隐私语义强的数据← 正确答案
  • B.只要数据规模足够大就一定有代表性
  • C.数据集应匹配目标模型的类型← 正确答案
  • D.类别不平衡会影响指标的解释← 正确答案

答案:ACD。医疗、购物记录等隐私语义强的数据更能体现泄漏危害,图像分类任务应配图像数据集,类别不平衡会显著扭曲准确率等指标,这些都要考虑。但“数据量大”不等于“有代表性”:规模大但分布与真实部署完全不同的数据,测出的攻击强度没有迁移价值。选基准像选测试机场,不能只看跑道多不多。

Q10. 在影子模型训练中,“成员”标签指的是什么?

单选题 · easy

  • A.曾经训练过目标模型的数据
  • B.全部参与训练攻击模型的数据
  • C.曾经训练过影子模型的数据← 正确答案
  • D.机场黑名单上被证实的人员

答案:C。影子模型是目标模型的“替身”,它用自己的训练集(影子训练集)打上“成员”标签,留出部分打“非成员”标签,攻击模型在这些数据上学习“成员 vs 非成员”的评分差异。A 描述的是目标模型视角的成员(评估目标而非训练标签),B 范围过大,D 是比喻中的戏谑干扰项。C 准确描述了影子成员标签的来源。