想象你经营一家只接待会员的高端餐厅——“王老板私房菜馆”。每位会员的口味、忌口、生日喜好都记在一本厚厚的名册里。你请了一位 AI 助手,它读完名册后能为会员推荐菜品。这时,一个狗仔队记者盯上了某位明星,他想知道“这位明星是否在你家办过会员”。他看不到名册,于是想了个歪招:他反复用各种虚构的客人身份向 AI 助手点菜,通过观察 AI 对某些口味的“推荐置信度”来判断——如果 AI 对某个人的口味表现出惊人的熟悉,那这个人八成就是会员。 这就是成员推断攻击(Membership Inference Attack,MIA):攻击者不碰数据,仅靠反复查询模型,就能判断某条数据是否在训练集里。好消息是,AI 助手并不只能束手就擒。差分隐私相当于在推荐里加随机扰动,知识蒸馏让新助手只学师傅的“经验谈”而不直接读名册,置信度正则化让助手说话不再笃定……本文就用“会员餐厅防狗仔”这个故事,带你把主流防御策略挨个看明白,并学会在真实部署中权衡隐私与服务质量。
对机器学习工程师与安全工程师来说,掌握成员推断防御是部署隐私敏感模型的必备技能——它能从源头堵住数据泄露漏洞,让你的模型在合规审查面前站得住脚。
目录
可视化演示
动态演示成员推断防御策略全览的核心机制,通过输入/处理/存储/输出四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
成员推断防御策略全览:成员推断 成员推断防御的整体框架与分类 差分隐私训练的防御原理与代价 核心机制可视化 成员推断防御策略全览整体架构与关键组件
威胁认知:把握攻击脉搏
餐厅老板王先生第一次听说狗仔队能通过 AI 推荐试探会员身份时,满脸不信:“他连名册都看不到,怎么可能?”直到技术人员演示:AI 对老会员张太太的口味匹配分高达 0.97,对陌生客人却只有 0.62。这就像服务员见到熟客会脱口而出“张太太您还是老位置?”,而对生客只问“您想坐哪?”——这份“过分熟悉”,就是成员身份泄露的血压计。
在机器学习里,成员推断攻击的原理正是如此。攻击者反复查询目标模型,收集某个样本 $x$ 的置信度输出 $f(x)$,再与“非成员样本”的置信度分布进行比对。如果某样本的置信度显著偏高,它就大概率来自训练集。攻击者的判定规则可以写成一条简单的决策式。
当阈值 $\tau$ 定得合理时,攻击者就能在大量查询中精准捞出“训练集成员”。现实中攻击者往往训练影子模型(shadow model)来模拟目标模型的行为,从而构造出足够的“成员/非成员”样本对,再训练一个攻击分类器。这就是经典的“影子模型攻击”套路。
所以,防御的第一步是认清敌人。狗仔队并非无所不能,他依赖的是 AI 助手那份“藏不住的熟悉感”。接下来的所有防御策略,本质上都是在想方设法让这份熟悉感变得不可靠、不可读、不可信。
- $\hat{m}$ 表示攻击判断结果取值为 1 代表判定为“训练集成员”,0 代表“非成员”。
- $f(x)_{y}$ 是模型置信度模型对样本 $x$ 属于真实标签 $y$ 的信心分数,来自 softmax 输出层的概率值。
- $\tau$ 是判定阈值攻击者根据影子模型的经验设定的临界值,置信度超过它才贴“成员”标签。
- $\mathbf{1}\{\cdot\}$ 是指示函数括号内条件成立输出 1,否则输出 0,这是判定规则的总开关。
差分隐私:给答案撒一把盐
王老板想公开一份“最受欢迎前十道菜”的统计榜单,又怕狗仔队从统计数字里反推出某位明星的口味。他灵机一动:让助手在每次统计时悄悄掷骰子,给答案加上一点随机“噪音”——实际销量 87 份,对外报一个 85 到 90 之间的随机数。单个顾客对整体统计的影响,就这样被噪音淹没了。
这就是差分隐私(Differential Privacy,DP)的核心思想:向训练过程或查询结果注入随机噪声,使“包含某条数据”与“不包含某条数据”两种情况下,模型输出的分布在数学上几乎无法区分。差分隐私的定义要求:对于只差一个样本的两个数据集 $D$ 和 $D'$,算法 $M$ 在任意输出集合 $S$ 上的概率比不超过 $e^{\varepsilon}$。这里的隐私预算 $\varepsilon$ 越小,噪声越大,隐私保护越强。
在深度学习场景中,最常用的实现是 DP-SGD(差分隐私随机梯度下降)。它做两件事:先把每个样本的梯度裁剪到最大 L2 范数 $C$,再在聚合后的梯度上添加高斯噪声。裁剪限制了单个样本的“发言权”,噪声掩盖了剩余痕迹,二者合力保证模型不会记住任何一个具体样本。
这就像餐厅对外公布的每道热门菜销量都经过“掷骰子调整”,狗仔队就算拿到统计表,也推不出任何一位客人的点菜记录。不过盐撒多了菜也会咸——隐私越强,模型准确率通常越低,这是后面“可用性评估”要解决的问题。
- $g_i$ 是第 $i$ 个样本的梯度它描述了该样本希望模型参数如何调整,是样本影响力的直接体现。
- $\mathrm{clip}(g_i, C)$ 是梯度裁剪当梯度范数超过 $C$ 时按比例缩放回 $C$,确保任何单个样本对更新的影响不超过预设上限。
- $\mathcal{N}(0, \sigma^2 C^2 I)$ 是高斯噪声以 0 为均值、$\sigma^2 C^2$ 为方差的高斯分布,掩盖裁剪后残余的样本痕迹。
- $\mathcal{B}$ 是当前批次、$L$ 是批次大小把裁剪加噪后的梯度求平均,再用于更新模型参数,保证噪声随批次增大而稀释。
知识蒸馏:师徒传承的边界
老主厨准备退休,客人们还想吃到他的味道。王老板决定让新人跟着老主厨学艺,但有个规矩:老主厨不把会员名册交给新人,而是每天亲手做菜,让新人从菜品的火候、咸淡、搭配中揣摩老主厨的推荐逻辑。新人学会了“如何给客人推荐菜”,却从未直接看过名册。
这正是知识蒸馏(Knowledge Distillation)的智慧。一个在完整数据上训练的“教师模型”不直接向学生传授原始数据,而是输出“软标签”——对每个类别的概率分布。学生模型只学习教师对每个样本的“评语”,而非数据本身和硬标签。攻击者即使拿下学生模型,也无法回溯任何单个训练样本,因为学生压根没见过原始数据。
温度参数 $\tau$ 是关键。$\tau$ 越大,教师输出的软标签越平缓,学生能学到更多“类间相似性”;但 $\tau$ 过大会丢失信息。蒸馏后的学生模型,置信度天然比教师平缓,成员与非成员的置信度差异被显著压缩。
狗仔队即使买通新厨师,从他嘴里也只能得到“老主厨一般会从容应对这类口味”的风格化经验,而得不到“那位明星当时点了什么”的证据——因为新人真的没见过名册。
- $H(\cdot, \cdot)$ 是交叉熵衡量两个概率分布的差异,分布越接近,交叉熵越小。
- $p_t^{\tau}$ 是温度软化后的教师输出把教师 logits $z_t$ 除以温度 $\tau$ 再做 softmax,温度越高分布越平滑,暴露出“教师为什么会犹豫”。
- $p_s$ 是学生模型的普通输出用于直接对齐真实标签,确保学生不偏离正确答案。
- $\alpha$ 是平衡系数在“硬标签”与“教师经验”之间取权衡,通常取 0.5 附近。
置信度抑制:让模型学会谦虚
王老板给服务员立了新规矩:推荐菜品时不许拍胸脯打包票,只能说“根据以往经验,张太太大概率会喜欢这道菜”。狗仔队再来试探时,听到的全是模糊措辞,很难从语气中判断谁是熟客。
模型过度自信,恰恰是 MIA 的燃料。成员样本往往获得接近 1 的置信度,与非成员形成鲜明对比——这种“一高一低”的落差就是攻击者最依赖的信号。置信度正则化的目标就是“给模型泼冷水”:让它输出更均匀、更谨慎的概率分布。最常用的手段是标签平滑(Label Smoothing)。
标签平滑把 one-hot 硬标签按比例 $\alpha$ 均分给所有类别,模型不再追求“100% 确信某个类”,从而抑制过拟合式的尖锐预测。同理还有熵正则化:在损失函数中减去 $\lambda$ 倍的预测熵,鼓励模型在类别间“保持犹豫”。两者都缩小成员与非成员之间的置信度差距。
当 AI 助手对所有客人都用“可能、也许、大概”的语气,狗仔队那份“过分熟悉”的线索就彻底消失了。当然,谦虚过头也会让客人觉得“这推荐说了等于没说”——所以平滑强度同样要精打细算。
- $y_i$ 是原始 one-hot 标签正确类别为 1,其余为 0,是“非黑即白”的绝对答案。
- $\alpha$ 是平滑系数控制 1 的能量被“分走”多少,常用值在 0.05 到 0.2 之间,越大模型越保守。
- $K$ 是类别总数平滑的能量平均分配到 $K$ 个类别,每个类别分到 $\alpha / K$。
- $y'_i$ 是软化后的目标标签模型不再为某个类输出极端概率,预测分布更平缓,成员与非成员的置信度曲线逐渐贴合。
模型平滑:不走极端的智慧
老主厨做菜有个特点:不会为了讨好某位贵客把菜做得出奇地辣或出奇地咸,他的调味永远“中庸而稳定”。这种克制让每道菜都好吃,却也让人尝不出“这是为某位客人专门定制的味道”。
模型对训练样本的“记忆”,在数学上表现为损失曲面上的尖峰——在训练样本附近损失极低,离开一点就剧烈上升。这样的尖峰正是 MIA 的藏身之所。模型平滑技术通过参数或权重的平均化,抹平这些尖峰,让模型不再精确贴合个别样本。
一种经典做法是 EMA(指数移动平均):训练过程中实时维护权重的滑动平均,用平滑后的权重做推理。它相当于对多个训练阶段的模型求加权平均,保留了“共性知识”而稀释了“个别记忆”。类似的还有随机权重平均(SWA)与梯度裁剪,它们都让参数轨迹落在更平坦的区域。
平滑后的模型,就像一个“没有极端口味”的厨师。狗仔队无论怎么试探,都找不到任何只为某位会员而存在的特殊痕迹——每道菜都好吃,但没有一道菜“熟得可疑”。
- $\theta_t$ 是当前训练得到的模型权重梯度下降每一步都在更新它,可能带着对个别样本的“偏激记忆”。
- $\beta$ 是动量系数通常取 0.99,表示历史平均占 99%、新权重只占 1%,平滑程度很高。
- $\theta_t^{EMA}$ 是滑动平均后的稳健权重它不直接参与梯度计算,只在推理或评估时替代原始权重。
- 平滑后的权重对噪声不敏感即使个别样本引发剧烈梯度,EMA 也会把影响摊薄到整个训练过程。
对抗训练:以攻为守的博弈
王老板干脆反其道而行:专门请了几个狗仔队出身的安全专家,天天故意试探 AI 助手,看它会在什么情况下暴露会员信息。AI 每被“钓”一次,就多一次教训,慢慢学会了在被人套话时滴水不漏。
这就是对抗训练(Adversarial Training)的思路:把攻击者变成陪练。训练时主动生成对抗样本(对输入施加微小扰动使模型犯错),并要求模型对扰动后的样本依然预测正确。经过这种“攻防博弈”,模型不再依赖某些脆弱的记忆线索,成员与非成员的行为差异被自然削弱。
对抗训练可以写成 min-max(最小-最大)博弈:内层“攻击者”寻找让损失最大的扰动 $\delta$,外层“防守者”训练模型在最坏扰动下依然表现良好。用于 MIA 防御时,扰动往往针对“成员记忆”的梯度方向构造,模型被迫放弃依靠训练样本细节来做决策的捷径。
经历长期“陪练”的 AI 助手,即使面对最刁钻的试探也滴水不漏。狗仔队慢慢会觉得:这家餐厅对谁都一样礼貌,根本分不出谁是会员。
- $\delta$ 是对抗扰动加到输入 $x$ 上的微小改动,人眼几乎看不出差异,却能让模型判断出错。
- $\epsilon$ 是扰动幅度上限约束 $\delta$ 的 L∞ 范数不超过 $\epsilon$,防止扰动变成肉眼可辨的篡改。
- 内层 $\max_{\delta}$ 代表攻击者在允许范围内挑选最让模型难受的扰动,相当于最刁钻的狗仔。
- 外层 $\min_{\theta}$ 代表防守方训练模型让最坏情况下的损失仍然可控,相当于 AI 在一次次套话中学会自保。
可用性评估:隐私与效用的天平
防御手段越来越多,王老板却开始头疼:噪声加太大,推荐完全不准;徒弟学得不到家,招牌菜变难吃。他需要一把尺子,量一量“防住了多少狗仔”和“损失了多少生意”。
隐私保护不是免费的,几乎所有防御都会降低模型在常规指标(准确率、AUC)上的表现。业界用两个维度评估一项防御:防御强度和效用损失。防御强度用攻击 AUC 的下降幅度衡量——攻击 AUC 从 0.5(无法区分)到 1.0(完全可区分),防御收益就是“无防御攻击 AUC 减去有防御攻击 AUC”,差值越大说明防得越死。效用损失则是防御前后模型准确率的差值,差值越大说明“菜变难吃”的程度越高。
王老板最终定下铁律:任何防御策略上线前,必须同时报出“狗仔突破率”和“招牌菜评分”,两项都不达标就不上马。只有把隐私和效用放在同一杆天平上称,才能选出真正可落地的方案。
- $AUC_{no\ def}$ 是无防御时的攻击成功率出自影子模型攻击测试,值越接近 1,说明成员与非成员越好区分。
- $AUC_{def}$ 是加上防御后的攻击成功率防御生效时它向 0.5 回落,说明攻击者逐渐退化为“瞎猜”。
- $\Delta_{AUC}$ 是防御收益越大越好,代表攻击者损失的判断力。
- $\Delta_{acc}$ 是效用损失越小越好,代表客人依然吃得到好菜。
组合防御:层层设防的纵深
王老板明白,餐厅不可能靠一把锁防住所有坏人——门禁、监控、会员卡、员工培训、后厨上锁,每一层防的东西都不一样。AI 防御也一样,单一手段总有漏洞,分层设防才是常态。
组合防御把不同机制的防御串成纵深防线:对抗训练让模型更鲁棒,知识蒸馏减小攻击面,差分隐私在梯度更新中兜底,置信度正则化压缩成员差异。它们作用于不同环节——有的防训练阶段、有的防推理阶段、有的防查询阶段——相互补充,让攻击者找不到突破口。
在理论层面,差分隐私的组合定理给出了总隐私损失的简单上界:串行执行多个 DP 机制时,总隐私预算不超过各个阶段 $\varepsilon_i$ 之和。实践中,常见的策略是先用蒸馏与正则化做“软防御”,再按需引入小预算的差分隐私做“硬兜底”,最后用可用性评估指标验收。
当所有防线协同工作时,狗仔队会发现:即使突破了门禁,还有监控;即使买通了员工,还有后厨锁;即使拿到了推荐记录,里面也全是加了噪声的假象——层层设防让攻击成本远大于收益,这才是成员推断防御的完整图景。
- $\varepsilon_i$ 是第 $i$ 个阶段的隐私损失每个差分隐私步骤都会消耗一部分预算。
- $k$ 是阶段总数比如“预处理 + 训练 + 微调”就是三个阶段。
- $\varepsilon_{comp}$ 是组合后的总隐私损失定理保证它不会超过各阶段预算的简单加和,让工程师能提前预算隐私成本。
- 实践中配合软防御先做知识蒸馏与标签平滑,再加小 $\varepsilon$ 差分隐私,总预算可控、可用性损失可接受。
AI 应用场景
场景一:医疗影像模型的部署前“安检”
阶段:模型部署与推理阶段
解决的问题:医院训练肺炎影像识别模型后,若直接上线,攻击者可通过 API 反复查询,判断某位患者影像是否在训练集中,从而泄露就诊隐私。传统做法只看模型准确率,完全没有评估成员推断风险。用本文方法,在部署前运行一次“攻击自测”,就能量化风险并选择防御手段。
具体案例:某三甲医院在 COPD 预测模型上线前做 MIA 评估,发现攻击 AUC 高达 0.79。加入标签平滑和梯度裁剪后,攻击 AUC 降至 0.58,而模型准确率仅下降 1.8%,顺利通过隐私合规审查。
场景二:金融风控模型的“名单防泄漏”
阶段:模型训练与内部共享阶段
解决的问题:银行的反欺诈评分卡基于海量客户交易记录训练,客户名单高度敏感。内部人员或外包团队即使看不到原始数据,也可能通过白盒访问(拿到置信度输出)反推某客户是否在训练集。传统靠“权限管理”防不住模型自身的记忆泄露。
具体案例:某银行风控团队使用知识蒸馏把大模型压缩为学生模型,再叠加 EMA 平滑后部署到分行查询入口。渗透测试显示,攻击者通过学生模型的成员推断成功率接近随机猜测,而反欺诈 KS 值仅损失 0.02。
场景三:云端 MaaS 平台的自动防御编排
阶段:推理服务提供阶段
解决的问题:云厂商提供“模型即服务”(MaaS),用户只能通过 API 调用模型。平台方需要防止恶意用户通过大量查询探测训练数据。传统方案靠监控限流,治标不治本。组合防御框架可以把差分隐私、蒸馏、正则化按场景自动编排,让每个上架模型都自带隐私防护。
具体案例:某 AI 开放平台把“成员推断防御评估”加入上线 Checklist,对每个模型自动推荐防御组合:低风险场景用标签平滑,高风险场景用 DP-SGD + 蒸馏,并输出攻击 AUC 与准确率双指标报告。
Python 演示
import numpy as npfrom sklearn.datasets import make_classificationfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.metrics import roc_auc_score def softmax(z): # 数值稳定的 softmax e = np.exp(z - np.max(z, axis=1, keepdims=True)) return e / e.sum(axis=1, keepdims=True) def forward(W1, b1, W2, b2, X): # 两层神经网络前向传播 h = np.tanh(X @ W1 + b1) return softmax(h @ W2 + b2), h def train(X, Y, alpha=0.0, seed=0): # alpha>0 表示标签平滑防御 rng = np.random.default_rng(seed) n, d = X.shape W1 = rng.normal(0, 0.1, (d, 16)) b1 = np.zeros(16) W2 = rng.normal(0, 0.1, (16, 2)) b2 = np.zeros(2) target = (1 - alpha) * Y + alpha / 2.0 for _ in range(300): p, h = forward(W1, b1, W2, b2, X) dz = p - target W2 -= 0.5 * (h.T @ dz / n + 0.01 * W2) b2 -= 0.5 * dz.mean(axis=0) dh = dz @ W2.T * (1 - h ** 2) W1 -= 0.5 * (X.T @ dh / n + 0.01 * W1) b1 -= 0.5 * dh.mean(axis=0) return W1, b1, W2, b2 def predict(W1, b1, W2, b2, X): p, _ = forward(W1, b1, W2, b2, X) return p def attack_auc(member_conf, nonmember_conf): # 成员与非成员置信度的区分度, 0.5 表示无法区分 y = np.r_[np.ones(len(member_conf)), np.zeros(len(nonmember_conf))] return roc_auc_score(y, np.r_[member_conf, nonmember_conf]) def main(): X, y = make_classification(n_samples=1600, n_features=12, n_informative=8, n_redundant=2, n_classes=2, flip_y=0.02, random_state=42) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.5, random_state=42) scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) Y = np.eye(2)[y_train] W1, b1, W2, b2 = train(X_train, Y, alpha=0.0) auc_plain = attack_auc(predict(W1, b1, W2, b2, X_train).max(1), predict(W1, b1, W2, b2, X_test).max(1)) print("no defense: attack AUC = %.3f" % auc_plain) W1, b1, W2, b2 = train(X_train, Y, alpha=0.2) auc_def = attack_auc(predict(W1, b1, W2, b2, X_train).max(1), predict(W1, b1, W2, b2, X_test).max(1)) print("label smoothing defense: attack AUC = %.3f" % auc_def) print("AUC drop: %.3f" % (auc_plain - auc_def)) if __name__ == "__main__": main()
target = (1 - alpha) * Y + alpha / 2.0标签平滑的核心:把 one-hot 标签按比例摊薄,让模型不再追求极端自信p, h = forward(W1, b1, W2, b2, X)前向传播拿到预测概率与隐藏层输出dz = p - target交叉熵损失对 logits 的梯度恰好是“预测减目标”,这是反向传播的起点W2 -= 0.5 * (h.T @ dz / n + 0.01 * W2)反向传播更新输出层权重,同时加 L2 正则防止过拟合auc_plain = attack_auc(...)用训练集与测试集的置信度构造攻击场景,AUC 越高说明模型把“成员”卖得越彻底train(X_train, Y, alpha=0.2)以 0.2 的平滑强度重新训练,预期攻击 AUC 明显回落
常见误区
误区“我的模型只通过 API 对外服务,训练数据永远不出服务器,攻击者不可能知道某个样本是否在训练集里。”
正解成员推断攻击恰恰不需要看到训练数据,它只需要反复查询模型的置信度输出。模型对训练样本的“过分熟悉”会通过置信度、梯度甚至预测时间等通道泄露出去,就像服务员对熟客脱口而出的“老位置”。只要模型可被查询,攻击面就存在。
为何常见:人们容易把“数据不可见”等同于“信息不可达”,却忽略了模型本身就是数据的压缩投影,会携带可被逆向的信号。
误区“我的模型测试准确率 98%,训练得很充分,说明它学到了真正的规律,不会泄露隐私。”
正解恰恰相反,准确率越高往往意味着模型把训练样本的细节拟合得越彻底——这正是成员推断攻击赖以生存的土壤。模型对训练样本的置信度远高于非训练样本,攻击 AUC 可能高达 0.8 以上。“记得太牢”是隐私噩梦,而正则化、平滑等手段反而会牺牲一点准确率来换安全。
为何常见:追求准确率是建模的本能,人们容易把“性能好”与“泛化好”混为一谈,忽略了过拟合的记忆效应。
误区“差分隐私要往梯度里加噪声,模型肯定一塌糊涂,根本没法部署。”
正解差分隐私的噪声强度由隐私预算 $\varepsilon$ 控制,$\varepsilon$ 不是只能取极小值。实践中设置 $\varepsilon$ 在 3 到 10 之间,模型准确率损失通常可以控制在 1% 到 5% 以内。现代 DP-SGD 还配合批次放大、梯度裁剪等技巧,账本清晰、效果可控。它更像“撒盐提味”,而非“往锅里倒盐”。
为何常见:初学 DP 时看到的定义强调极端情形($\varepsilon$ 趋近 0),让人误以为 DP 一定摧毁模型,忽略了工程上的折中空间。
误区“学生模型只学了教师的软标签,没接触原始数据,所以任何隐私攻击都无效了。”
正解蒸馏能大幅降低成员推断风险,但并不能归零。教师模型的软标签本身携带训练数据的信息,学生模型仍可能继承部分判别线索。如果把教师换成过度自信的模型,或者蒸馏温度设置不当,学生模型依然可能被攻击。蒸馏是“大幅缩小攻击面”,不是“物理隔离数据”。
为何常见:学生模型确实没见过原始数据,这给人一种“数据被防火墙隔离”的错觉,忽略了信息可以从教师决策边界中渗透。
误区“把差分隐私、知识蒸馏、标签平滑、对抗训练全用上,防御最强,肯定没错。”
正解防御手段并非免费叠加。多层防御会带来严重的可用性损失——比如蒸馏降低信息量,标签平滑压缩置信度,差分隐私再加噪声,三者叠加可能让模型准确率暴跌 10% 以上,甚至趋于随机猜测。合理做法是先评估风险等级,选择“一主两辅”的组合:一个核心强防御 + 两个轻量辅助,再用指标验收。
为何常见:“多一层更安全”符合直觉的防御心理,但忽视了防御之间存在互损效应,以及隐私-效用天平的另一端。
面试题
Q1. 成员推断攻击的核心目标是?
- A.推测训练数据的完整内容
- B.判断样本是否在训练集中← 正确答案
- C.篡改模型的输出结果
- D.窃取模型全部参数
答案:B。成员推断攻击只回答一个二分类问题:“某条数据是否被用于训练?”它不追求还原数据全貌,也不篡改模型、窃取参数。就像狗仔只想确认“明星是不是会员”,没必要偷到整本名册。
Q2. 差分隐私中,隐私预算 ε 越小意味着什么?
- A.模型准确率越高
- B.加入噪声越大隐私越强← 正确答案
- C.训练速度立即加快
- D.模型攻击越容易成功
答案:B。ε 越小,说明“包含某样本”与“不包含某样本”的输出分布越接近,因此必须注入更大噪声来掩盖差异,隐私保护更强,但同时模型效用通常下降。ε 与训练速度和攻击难度没有直接因果关系。
Q3. DP-SGD 中梯度裁剪的作用是?
- A.加快梯度下降的收敛
- B.限制单样本最大梯度影响← 正确答案
- C.消除所有梯度噪声
- D.扩大模型表达能力
答案:B。梯度裁剪把每个样本的梯度范数限制在阈值 C 以内,确保“任何一个样本”对整体更新的影响有上限。这与收敛速度无关,也不会消除噪声(噪声是随后故意加的),更不能扩大模型能力。
Q4. 知识蒸馏防御 MIA 的核心机制是?
- A.学生模型直接学习原始标签
- B.学生经教师软标签间接学习← 正确答案
- C.教师模型必须暴露训练数据
- D.学生模型随机丢弃训练数据
答案:B。蒸馏的精髓是学生模型只看教师输出的软标签(概率分布),不接触原始数据与硬标签,从而切断“直接记忆”的路径。教师不暴露数据,学生也不丢弃数据——它压根没见过原始数据。
Q5. 标签平滑如何降低成员推断风险?
- A.让模型对别类更自信
- B.软化标签使预测分布更均匀← 正确答案
- C.增加训练样本的数量
- D.提升模型参数量
答案:B。标签平滑将 one-hot 标签按比例分给所有类别,模型不再追求极端置信度,预测分布更平缓。成员与非成员的置信度差距因此缩小,攻击者失去关键信号。它不改变样本量与模型结构。
Q6. EMA 平滑防御 MIA 的主要原因是?
- A.使模型参数量增多
- B.减少对样本的过拟合记忆← 正确答案
- C.提升训练集的准确率
- D.改变模型的结构设计
答案:B。EMA 对训练各阶段的权重做滑动平均,等效于融合多个中间模型,削弱了模型对个别训练样本的极端拟合。它不增加参数量、不改变结构,反而可能降低训练集准确率,但能提升泛化与隐私。
Q7. 对抗训练用于 MIA 防御时,其主要目标是什么?
- A.生成更多对抗攻击样本
- B.增强扰动鲁棒压缩成员差异← 正确答案
- C.让攻击者无法访问模型
- D.增大模型输出分布差异
答案:B。对抗训练通过 min-max 博弈让模型对微小扰动不敏感,被迫放弃依赖训练样本细节的“捷径”,从而压缩成员与非成员的行为差异。它不生成攻击样本本身,也不限制访问或增大输出差异。
Q8. 下列属于模型平滑或正则化防御的有?
- A.进行 EMA 权重平均← 正确答案
- B.使用标签平滑损失← 正确答案
- C.梯度裁剪并加噪声
- D.采用随机权重平均← 正确答案
答案:ABD。EMA 和随机权重平均(SWA)都属于参数平滑,标签平滑属于输出正则化;而“梯度裁剪并加噪声”是差分隐私 DP-SGD 的组成部分,机制上属于噪声注入而非平滑。注意区分防御的家族谱系。
Q9. 下列哪些是成员推断攻击的常用防御手段?
- A.加入差分隐私机制← 正确答案
- B.使用知识蒸馏训练← 正确答案
- C.实施置信度正则化← 正确答案
- D.增大小批次训练规模
答案:ABC。差分隐私、知识蒸馏、置信度正则化分别从噪声覆盖、信息隔离、置信度压缩三个角度防御 MIA。增大批量只是普通训练配置,不构成针对成员推断的防御策略。
Q10. 关于基于差分隐私的串行组合防御,说法正确的是?
- A.各阶段损失相加呈总预算上界← 正确答案
- B.组合后总损失不小于单运行← 正确答案
- C.串行组合可使损失相互抵消
- D.后加防御完全消除前段损失
答案:AB。差分隐私组合定理指出,串行执行多个 DP 机制时总预算不超过各阶段 ε 之和,因此 A 正确,B 也正确——因为每个阶段都在消耗预算,总损失只会增加或持平。损失不会相互抵消,也无法被后续阶段“清零”,所以 C、D 错误。