想象你高中毕业那年,全班60个同学一起拍了张毕业照。多年后有人拿着一叠单人照片问相册系统:“这个人当年是不是我们班的?”你脱口而出“是”或“不是”——因为你可能隐约记得某个同学的脸、名字在名单上出现过。现在把“全班同学”换成“训练数据”,把“毕业照”换成“AI模型”:模型不会逐字把数据打印出来,但它确实把训练样本的某种“熟悉感”内化进了参数里。成员推断攻击(Membership Inference Attack)就是攻击者只靠向模型提问,来判断某条数据是否参与过训练——相当于拿着单人照片,向“毕业照”打听这个人当年是否在册。而隐私测试,就是防御方主动扮演这个“侦探”,在模型发布前系统性地尝试这类侦查,量化模型到底泄露了多少“在不在册”的信号,再决定是否加上隐私防护措施。
对 AI 测试工程师与 MLOps 从业者而言,成员推断攻击与隐私测试是模型上线前的“隐私安检门”——掌握它,你就能在人脸识别、医疗诊断、金融风控等高敏场景中守住数据合规底线,并为团队交付可量化的隐私风险报告。
可视化演示
动态演示成员推断攻击与隐私测试的核心机制,通过源头/管道/节点/终端四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
成员推断攻击与隐私测试:成员推断 成员推断攻击的原理与威胁场景 影子模型攻击方法与实施流程 核心机制可视化 成员推断攻击与隐私测试整体架构与关键组件
威胁模型
拍毕业照之前,班主任会提前三天通知全班:“周四下午穿校服到操场集合。”这条通知本身就会泄露一些信息——比如拍照日期,比如大概哪些班级参加。在成员推断攻击里,“谁能来问、能问什么、手里有什么”就是威胁模型要回答的三个问题。攻击者想知道“某条数据在不在训练集”,但他能接触到的只是模型对外暴露的接口,而不是训练机房里的硬盘。
攻击者的能力可以分成两类。白盒攻击者像是混进了冲洗照片的暗房,能看到模型的梯度、中间层输出甚至完整参数;黑盒攻击者更像普通观众,只能对着橱窗里的照片提问,拿到模型的预测结果。此外,攻击者还会携带“先验知识”——他可能知道整个社区的大致人口统计信息,这相当于他了解班级的大致构成(年龄段、男女比例),只是不清楚具体名单;辅助数据集则是他手头的一摞“单人照片”,用来模拟目标人物的特征。
我们把攻击者的底牌整理成一个知识三元组:
回到毕业照的比喻:威胁模型决定了侦探的“装备”——他拿到的是一台能看清每个像素的高倍望远镜(白盒),还是只能隔街观察橱窗的肉眼(黑盒);他手里的单人照数量(辅助数据)和街道的居民统计(先验分布)越充足,这场侦查游戏就越容易玩。
- 知识三元组的结构把攻击者关于目标模型的所有信息归入三个格子,便于我们设计测试时逐项评估风险。
- 先验分布 D攻击者对“照片里可能出现什么人”的整体把握,比如公开统计年鉴、行业报告中的分布信息。
- 查询接口 Q攻击者向模型发起提问的通道,可能返回完整置信度向量,也可能只返回一个类别标签。
- 辅助数据 A攻击者预先收集的目标候选样本,相当于他手里的那摞单人照。
攻击原理
为什么模型会泄露“某人在不在训练集”?设想摄影师拍照时,如果某个学生坐在后排,他可能会把那个人拍得稍微模糊一点;而前排的学生衣着细节、发丝纹理都清晰可辨。模型在训练过程中会逐步“记住”训练样本的特征——不仅学会区分猫和狗,还会对每个训练样本的细节产生更高的置信度。这种对“见过的面孔”更自信的现象,就是成员推断得以成立的根基。
我们把“清晰度”翻译成技术术语:模型对输入样本 x 会输出一个置信度 f(x),表示“我很确定这个样本属于某个类别”的把握。由于在训练时反复优化过损失函数,模型对训练样本的置信度往往系统性偏高,而对从未见过的样本,置信度会相对保守。攻击者不需要知道训练集的任何一条数据,只需设计一个简单的判定规则:
回到毕业照:攻击者站在照片墙前,每看一张单人照,就拿它和心里的相册印象比对一番,“清晰得像刚见过”就是成员信号。模型过拟合越严重,这张照片上的“前排同学”就越多,攻击者的比对也就越容易命中——这就是为什么训练时的正则化手段会直接影响隐私风险。
- 置信度打分模型先给这个样本输出一个“我是如此自信”的数值,范围通常在 0 到 1 之间。
- 阈值比较设定一个门槛 τ(比如 0.6),置信度一旦跨过门槛就触发“成员”判定。
- 指示函数输出整个条件成立时输出 1(成员),否则输出 0(非成员)。
攻击方法
如果攻击者只有目标模型一个“证人”,他很难判断置信度多高才算“见过”。更聪明的做法是自己先办一个“模拟班级”:自己组织一批公开数据,训练一个影子模型,让它模仿目标模型的说话方式。影子模型的职责不是做出正确预测,而是让输出分布与目标模型尽量一致——就像找一个替身演员,模仿主角的腔调和走位。
训练好影子模型后,攻击者手里就有了两拨人:一拨是“模拟班级名单上的人”(影子模型训练过的样本),一拨是“模拟班级没见过的人”。把这两拨样本分别喂给影子模型,记录它的置信度输出,再用这些“置信度 + 是否在册”的标签训练一个攻击模型。攻击模型学会的规律是:当一个人的置信度处于什么水平时,他更可能是“在册”的。之后,攻击者把目标样本喂给真实的目标模型,把得到的置信度交给攻击模型,就能预测这个人是成员还是非成员。
影子模型的训练目标用公式表示如下:
影子模型是攻击工具箱里的“万能钥匙”:它让原本只有黑盒接口的攻击者,也能自己造出带标签的练习场。逐类攻击则更进一步——不同类别(比如“男性/女性”“确诊/未确诊”)的置信度分布可能不同,攻击者对每个类别单独校准阈值,就像替身演员为每个角色分别准备一套台词,命中率自然更高。
- argmin 优化目标我们要调整影子模型的参数,让某个损失值降到最低。
- 期望与采样从辅助数据集 A 中不断抽取样本,模拟“对着不同单人照练习模仿”。
- 损失函数衡量影子模型输出与目标模型输出之间的分歧程度,分歧越小,模仿越逼真。
评估体系
有了攻击者,我们还需要一把尺子来量出隐私风险。攻击成功率的含义直白:在所有成员样本中被正确判成成员、所有非成员样本中被正确判成非成员的比例。但“判断题”只有两个答案,瞎猜也能对一半,所以真正重要的是相对基线——攻击成功率高出 50% 多少,才说明模型确实泄露了成员信号。
我们把这把尺子定义为:
除了 ASR,精确率关心“被判为成员的样本中,有多少真是成员”,召回率关心“真正的成员中,有多少被抓出来了”。ROC 曲线则把不同阈值下的真阳率与假阳率画成一条曲线,曲线越远离对角线,说明攻击者越容易在不同“严格程度”下都取得好成绩。评估时务必和随机基线对比:如果 ASR 只有 0.51,跟掷硬币差不多,那就说明模型几乎没有成员信号;反之,若 ASR 冲到 0.8,就相当于侦探在毕业照里精准认出了八成同学,隐私防线已经告急。
- 真正例 TP成员样本被正确判成成员,相当于“名单上的人被认出来了”。
- 真负例 TN非成员样本被正确判成非成员,相当于“路人被正确放行”。
- 假正例 FP 与假负例 FN两种误判,分别对应“路人被误认进班级”和“同学被冤枉成路人”。
防御技术
既然照片会把某些面孔拍得太清晰,防御的思路就是“给照片打码”或者“让摄影师不要过度刻画细节”。差分隐私是最理论的打码方案:在训练过程中往梯度或损失里注入经过校准的噪声,让“某个人在不在数据集里”这件事对最终模型输出的影响被控制在数学上界之内。攻击者看到模型输出,就像隔着毛玻璃看毕业照——能看出整体轮廓(统计规律),却看不清任何一张单人的脸。
正则化与早停充当“摄影师的职业素养”:提醒模型不要死抠训练样本的衣领针脚,而要抓住全局共性。知识蒸馏则是另一条路线:先训练一个强教师模型,再让一个小学生模型学习教师输出的软化概率分布,学生学到的是一般规律而非逐条记忆,因此成员信号会被稀释。输出抑制更像给照片蒙上裁剪框——只返回 top-1 类别标签而隐藏完整置信度,或者把置信度量化成粗糙的几档,让侦探手里的“清晰度”信息大打折扣。
差分隐私的数学承诺长这样:
需要清醒认识:防御不是“彻底抹掉成员信号”,而是把信号压到攻击者无法可靠利用的程度。差分隐私把风险锁进数学笼子,正则化、蒸馏与输出抑制则从不同环节降低信号的可见性。真实项目里常是组合拳——既打码,又裁剪,还培训摄影师。
- 相邻数据集D 和 D' 只差一条记录,对应“毕业照里多一个人”与“少一个人”。
- 输出概率比在两种数据集上跑机制 M,产生同一输出的概率应该被一个指数界夹住。
- 隐私预算 e^εε 越小,两个概率越接近,隐私保护越强,但注入的噪声也越大。
- 松弛项 δ允许在极小概率下违背承诺,对应照片中完全看不清的极端模糊区域。
测试流程
纸上谈兵结束,现在把整套方法落成工程流程。隐私测试的本质是“内部红队演习”:测试工程师扮演攻击者,在模型发布前系统性地尝试成员推断。第一步是数据划分——从公开数据中切出一部分作为影子模型的训练集,再留一部分作为影子模型没见过的校验集;同时严格隔离目标模型的训练集与测试集,确保评估用的“非成员样本”是目标模型真正没见过、影子模型也碰不到的数据。
第二步是攻击实验。测试者用影子模型的输出训练攻击模型,再把目标模型的训练集样本(成员)与未见过样本(非成员)喂给目标模型,让攻击模型对它们做预测,得到攻击成功率。实验需要多次重复并尝试多个阈值,观察 ASR 随阈值变化的曲线。接着进入阈值校准与风险分级:计算风险分,把结果映射成绿、黄、红三档。我们常用一个简洁的风险度量:
测试报告里,绿色档(PrivRisk 接近 0)表示攻击者与瞎猜无异,可以放心发布;黄色档说明存在一定成员信号,建议叠加防御;红色档意味着攻击者能大概率区分成员与非成员,必须引入差分隐私或显著抑制输出后重新测试。整个过程就像消防演练:事先排好逃生路线、明确每个阀门的作用,真出险时才能快速处置。
- 攻击成功率先通过攻击实验得到 ASR,例如 0.62。
- 随机基线 0.5二选一的判定里,瞎猜的期望正确率是 50%。
- 尺度映射乘以 2 是为了让风险分数落在更有解释力的区间。
治理合规
隐私不仅是技术问题,更是法律责任。GDPR 和《个人信息保护法》都把“数据集是否可被推断出个体信息”纳入监管视野——哪怕模型没有直接吐出某条数据,只要成员推断的成功率显著高于随机猜测,监管机构也可以认定模型存在隐私合规风险。对医疗机构、银行、保险公司而言,一次违规可能带来数千万罚款和品牌信誉崩塌。
行业最佳实践正从“上线前跑一遍测试”走向“全生命周期管理”。模型卡(Model Card)是近年流行的一个载体,相当于模型的“说明书兼体检报告”,记录训练数据来源、隐私评估结果、成员推断 ASR 与风险分级结论,让使用者和监管者都能一目了然。发布评估则是一道门禁:风险分超过阈值、或者差分隐私预算 ε 超过允许上限的模型,不允许上线。上线之后还要持续监控——数据漂移可能让模型在真实流量下重新产生过拟合,原本合格的隐私表现会随时间恶化。
这道门禁可以形式化为:
回到毕业照的比喻:学校档案馆给毕业照制定了一份借阅规定——登记借阅人、打码敏感面孔、定期复查照片是否已经失真。治理合规就是这份规定:让技术的“能”与法律的“该”对齐,让每一张毕业照既发挥纪念价值,又不让任何一个人因为入册而被轻易认出来。
- 风险门限成员推断风险分必须低于内部政策阈值,相当于“体检报告上的关键指标不能飘红”。
- 隐私预算门限若采用了差分隐私,ε 必须小于法规设定的上限。
- 逻辑与合取两个条件同时满足才放行,缺一不可。
AI 应用场景
金融风控模型的“成员侦察演练”
阶段:模型发布前的安全测评
解决的问题:银行用客户交易数据训练信贷风控模型,这些数据本身就是敏感个人信息。传统测试只关注模型准确率、KS 值等业务指标,完全不评估模型是否泄露了“哪个客户在训练集里”的成员信号。一旦攻击者通过置信度发现某个客户在训练集中,就可能推断该客户有贷款记录,甚至结合额度推断其收入水平,引发隐私投诉与监管处罚。
具体案例:某消费金融公司在风控模型上线前,由 AI 测试团队实施影子模型攻击。测试者用脱敏的公开征信数据训练影子模型,再对真实训练集样本与未参与训练的样本分别提取置信度特征,攻击模型 AUC 达到 0.78,风险分显著超标。团队随后引入差分隐私训练并截断置信度输出,复测 AUC 回落到 0.54,模型才通过发布门禁。
医疗 AI 产品的上市前合规评估
阶段:合规审查与监管申报
解决的问题:医疗影像诊断模型训练自患者影像数据,一旦成员推断攻击可以识别“某患者的影像是否参与过训练”,患者几乎等于被变相暴露了就诊事实。传统合规流程只做数据脱敏和权限管控,却未验证模型本身的推断泄露。隐私测试为监管申报提供了一份可量化的“隐私体检报告”。
具体案例:某医疗 AI 创业公司在向欧洲市场提交产品时,按照 GDPR 要求完成成员推断攻击审计。测试者采用逐类攻击技巧,分别评估不同病灶类别的 ASR,发现其中一类罕见病的成员信号异常强烈(ASR 0.74),因为该类别样本量极少、模型记忆更稳。公司随后对少数类数据使用更强的数据增强并添加梯度噪声,将 ASR 压低至 0.55 后成功通过审查。
大语言模型对话服务的记忆泄漏排查
阶段:线上服务安全监控
解决的问题:大语言模型可能记住了训练语料中的私人对话、代码片段甚至邮箱地址。传统内容过滤器只能拦截显式复述,却无法发现“模型很熟悉某段文本”这类隐式信号。成员推断测试可以定期从训练语料中抽样,与未参与训练的文本对比,检测模型对训练文本是否过度自信。
具体案例:某 SaaS 企业上线客服大模型后,隐私团队从训练语料中随机抽取 5000 段对话作为成员样本,另收集 5000 段相似公开对话作为非成员样本,统计模型对两组文本的困惑度分布。结果显示成员样本的平均困惑度明显更低,二者可区分度较高。团队随即对价值低、敏感性高的语料做差分隐私微调并收紧 API 的 logprobs 输出,两周后复测可区分度显著下降。
Python 演示
# -*- coding: utf-8 -*-"""影子模型成员推断攻击的最小闭环演示"""import numpy as npfrom sklearn.datasets import make_classificationfrom sklearn.linear_model import LogisticRegressionfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import roc_auc_score def confidence_feature(model, xs): """提取模型对样本的置信度特征:取各类概率的最大值""" prob = model.predict_proba(xs) return np.max(prob, axis=1).reshape(-1, 1) def member_inference_audit(random_state=42): """模拟完整审计流程:数据划分->影子模型->攻击模型->AUC评估""" X, y = make_classification( n_samples=4000, n_features=20, n_informative=12, random_state=random_state ) # 1) 划分真实训练集(目标模型"见过的人")与公开数据 X_train, X_pub, y_train, y_pub = train_test_split( X, y, test_size=0.5, random_state=random_state ) target = LogisticRegression(max_iter=500) target.fit(X_train, y_train) # 2) 攻击者在公开数据上训练影子模型(模拟班级) X_shadow_tr, X_shadow_hold, y_shadow_tr, y_shadow_hold = train_test_split( X_pub, y_pub, test_size=0.4, random_state=random_state ) shadow = LogisticRegression(max_iter=500) shadow.fit(X_shadow_tr, y_shadow_tr) # 3) 攻击模型学习"置信度多高算见过" X_mem = X_shadow_tr[:300] X_non = X_shadow_hold[:300] F_feat = np.vstack([ confidence_feature(shadow, X_mem), confidence_feature(shadow, X_non), ]) y_attack = np.array([1] * 300 + [0] * 300) attack = RandomForestClassifier( n_estimators=100, random_state=random_state ) attack.fit(F_feat, y_attack) # 4) 用目标模型真实评估:成员=目标训练集, 非成员=影子未见过且目标也未见 X_eval_mem = X_train[:300] X_eval_non = X_shadow_hold[:300] F_eval = np.vstack([ confidence_feature(target, X_eval_mem), confidence_feature(target, X_eval_non), ]) y_eval = np.array([1] * 300 + [0] * 300) auc = roc_auc_score(y_eval, attack.predict_proba(F_eval)[:, 1]) return auc if __name__ == "__main__": auc = member_inference_audit() print("攻击模型 AUC = %.3f (0.5 表示几乎无成员信号)" % auc) if auc > 0.65: print("结论:模型存在明显成员信号,建议启动隐私防御措施") else: print("结论:成员信号较弱,隐私风险处于可控范围")
train_test_split(X, y, test_size=0.5...)先把数据集切成“目标模型训练集”与“攻击者可见的公开数据”,模拟毕业照名单与外界信息的隔离。shadow.fit(X_shadow_tr, y_shadow_tr)影子模型只在公开数据的一部分上训练,确保它手上有“见过/没见过”两组样本可以自造标签。confidence_feature(shadow, X_mem)提取“最大类概率”作为置信度特征,这是攻击者唯一能从模型嘴里套出来的信息。attack.fit(F_feat, y_attack)攻击模型学习“多高的置信度更像见过”,就像认人教练总结“清晰到这个程度就算老同学”。roc_auc_score(y_eval, attack.predict_proba(F_eval)[:, 1])在目标模型上做最终考核,AUC 越接近 1 说明成员信号越强,越接近 0.5 说明隐私越安全。
常见误区
误区我检查过模型的输出,它只会返回“猫/狗”标签,从不会吐出一段训练文本,所以攻击者不可能从我这里拿到任何训练数据的信息,模型是安全的。
正解成员推断攻击不是“数据窃取”,它只回答“在不在”这个二值问题。模型不需要复现任何原始数据,仅仅通过置信度或损失值的高低,攻击者就能以显著高于随机猜测的概率判断成员身份。这正是隐私测试要捕捉的信号——哪怕输出只有“猫/狗”两个词,模型内部的信心差异也会从概率分布中渗出来。
为何常见:人们习惯把“泄露”等同于“复制出可见内容”,而忽略了统计推断这种更隐蔽的信息通道。
误区ASR 已经到 0.9 了,那攻击者差不多已经把整个训练集都下载下来了吧?赶紧下架模型!
正解ASR 衡量的是“可区分性”,而不是“可提取性”。攻击者能准确判断“这条样本在训练集里”,但他依然不知道样本的内容是什么。打个比方:侦探能通过毕业照认出“张三当年是这班的”,但这不等于侦探能复述张三的完整档案。理解这一差别,才能避免把隐私风险量级夸大或误判。
为何常见:把“成员判定”和“数据还原”混为一谈,源于不了解推断攻击与提取攻击在技术路径上的本质差异。
误区我的模型验证集准确率已经和训练集非常接近了,说明没有过拟合,成员推断攻击对我无效。
正解正则化降低的是“泛化误差层面的过拟合”,但成员信号来自模型对训练样本的边际偏好,这种偏好即使在大体泛化的模型里仍然存在,只是信号强弱不同。实证研究中,许多在验证集上表现良好的模型,成员推断 AUC 依然高达 0.7 以上。隐私测试必须直接度量成员信号,而不是用“是否过拟合”来间接推断。
为何常见:人们把“过拟合”当作二元开关,却不知道它是一个连续谱,而且隐私风险只看成员样本置信度与非成员置信度的可分离度。
误区我们测试得到的攻击成功率是 0.48,低于 50%,说明攻击者连盲猜都不如,模型完全没泄露。
正解低于 50% 可能只是模型整体置信度偏低,导致攻击者的阈值校准失误,而不代表没有成员信号。科学的方法是调整阈值后观察最优 ASR,并与随机基线对比;同时结合 ROC 曲线和风险分 PrivRisk 综合判断。真实的评估体系中,只有“经过多种阈值扫描后仍然贴近 0.5”才是安全的信号。
为何常见:看到“数字低于 0.5”就默认是好事,忽略了评估设计中阈值选择对结果的影响。此外样本不平衡也会扭曲 ASR 的解读,必须结合精确率与召回率一起看。
面试题
Q1. 成员推断攻击的核心目标是什么?
- A.窃取模型的全部训练参数
- B.推断数据是否参加过训练← 正确答案
- C.篡改模型输出结果数据
- D.让模型遗忘全部训练数据
答案:B。成员推断攻击关心的是“某条数据在不在训练集”这个二值问题。A 属于模型窃取,C 属于对抗攻击,D 属于机器遗忘,均与本攻击的定义不符。就像侦探只想知道“这个人当年是否拍过毕业照”,而不需要偷走整个相册。
Q2. 关于“置信度”在成员推断中的作用,下面说法正确的是?
- A.置信度与成员身份完全无关
- B.模型对训练样本通常更自信← 正确答案
- C.置信度只影响模型的速度
- D.置信度是随机生成的数值
答案:B。模型在训练时反复拟合训练样本,因此对这些样本的输出置信度系统性偏高,这是成员信号的主要来源。B 正确。A、C、D 均不符合实际——置信度是由模型前向计算得到的确定性概率估计,与推理速度无关。
Q3. 影子模型攻击中,影子模型的主要作用是什么?
- A.直接替代目标模型提供服务
- B.模拟目标模型行为构造训练数据← 正确答案
- C.压缩模型的存储空间
- D.生成对抗样本来欺骗模型
答案:B。影子模型在公开数据上训练,目标是模仿目标模型的输出行为,从而让攻击者获得带“见过/没见过”标签的置信度样本。它不参与线上服务(排除 A),也不做压缩(排除 C)或对抗样本(排除 D)。
Q4. 某次攻击实验得到 ASR=0.62,随机猜测基线为 0.5,这最可能说明什么?
- A.模型完全不存在隐私风险
- B.存在可观测的成员信号← 正确答案
- C.攻击者已提取全部训练数据
- D.模型在测试集上严重过拟合了
答案:B。ASR 高于基线 12 个百分点,说明攻击者不是靠瞎猜,而是真的捕捉到了成员信号。但这既不等于数据被提取(排除 C),也不能单独推出“过拟合测试集”的结论(排除 D)。需结合风险分进一步判断风险级别。
Q5. 在差分隐私的 (ε, δ) 定义中,ε 越小意味着什么?
- A.隐私保护越弱、数据可用性越高
- B.隐私保护越强、注入噪声越大← 正确答案
- C.模型的准确率必然越高
- D.攻击成功率一定超过 0.5
答案:B。ε 是隐私预算,ε 越小,“包含某人的数据集”与“去掉某人的数据集”输出分布越接近,隐私保护越强,代价是训练过程中需要注入更多噪声,模型可用性通常下降。A 说反了,C 的“必然”过强,D 与 ε 的语义无关。
Q6. 知识蒸馏为什么可能缓解成员推断攻击?
- A.因为教师模型不再对外提供服务
- B.因为学生模型学习一般规律而非逐条记忆← 正确答案
- C.因为蒸馏让模型参数量变得更大
- D.因为蒸馏会直接删除训练记录
答案:B。学生模型学习的是教师模型输出的软化概率分布,这种“概括性知识”稀释了对单个样本的过度记忆,成员信号因此变弱。B 正确。A 描述的是部署方式而非蒸馏本身,C 与蒸馏常见效果相反,D 纯属误解。
Q7. 评估成员推断攻击时,最合理的随机对照基准是什么?
- A.完全随机的硬币猜测← 正确答案
- B.模型在测试集上的准确率
- C.训练集的平均梯度范数
- D.模型参数的总数量
答案:A。成员判定是二选一问题,随机猜测的期望成功率为 0.5,ASR 只有明显高于 0.5 才说明存在成员信号。B 度量的是泛化能力,C、D 与隐私信号无直接对应关系,都不能作为判断成员泄露的基线。
Q8. 下列哪些情况会放大成员推断攻击的风险?
- A.模型在训练样本上严重过拟合← 正确答案
- B.训练数据中包含少量唯一性极高的样本← 正确答案
- C.模型对外返回完整置信度向量← 正确答案
- D.训练数据与公开数据分布完全一致
答案:ABC。过拟合让模型对训练样本过度自信(A 正确);唯一性高的样本容易被模型牢牢记住,成员信号更强(B 正确);完整置信度向量提供了比单一标签丰富得多的信号(C 正确)。D 中若训练数据与公开分布一致,攻击者的先验知识难以转化为推断优势,通常不会放大风险。
Q9. 以下哪些属于针对成员推断攻击的有效防御手段?
- A.训练时施加差分隐私噪声← 正确答案
- B.对外只返回 top-1 类别标签← 正确答案
- C.用知识蒸馏训练学生模型← 正确答案
- D.无限增加模型的参数量
答案:ABC。差分隐私把成员信号锁进数学边界(A 正确);输出抑制砍掉置信度信息通道(B 正确);蒸馏稀释逐条记忆(C 正确)。D 适得其反——参数量增大会让模型更容易记住训练样本,放大成员信号。
Q10. 模型发布前的隐私测试通常包括哪些环节?
- A.划分公开数据与训练数据做对照实验← 正确答案
- B.记录成员与非成员两组置信度分布← 正确答案
- C.计算攻击成功率并与随机基线比较← 正确答案
- D.将模型权重在开源社区直接公开
答案:ABC。隐私测试的基本流程是数据划分(A)、提取置信度特征(B)、与基线和风险阈值对比(C)。D 将模型权重公开属于主动开源行为,与隐私测试无关,反而可能增加被攻击面,不会是流程的一环。