彩虹班的同学们接到一个任务:合力用几千块彩色瓷砖,拼出一幅巨大的校园壁画《我们的操场》。每个孩子都从家里带来一块属于自己的瓷砖——有的是天空蓝,有的是草地绿,有的是跑道红。大家约定轮流上前,把瓷砖按老师说的位置贴上去,时不时还要根据整幅画的效果,微调某几块砖的颜色深浅。可问题来了:某位同学的瓷砖颜色特别鲜艳、用力特别猛,画一完成,大家一眼就能认出“这块砖准是小明贴的”。更麻烦的是,如果这幅画被外人拿去做分析,甚至能反推出小明当天带了什么颜色的砖——这就是隐私泄露。 怎样才能让大家合力完成一幅漂亮的画,却又谁也认不出某块砖是谁贴的呢?差分隐私随机梯度下降(DP-SGD)就是一套聪明的“拼画安全流程”:第一,规定每位同学的调色力度不能超过某个上限(梯度裁剪);第二,在每次调色后,往整幅画上喷一层细雾,让单块砖的痕迹被掩盖(高斯噪声注入);第三,给每一次喷细雾记一笔账,算清楚总共暴露了多少隐私(隐私预算)。雾喷得越浓,单块砖的痕迹越难辨认,但画面也会越模糊——这就是隐私与精度之间的权衡。读完这篇文章,你会像班长一样,不仅会拼画,还能自信地向别人解释“我们是怎么既合作又保密的”。
对 AI 从业者来说,DP-SGD 是隐私计算方向的核心技能:掌握它,你就能在医疗、金融等敏感数据场景中合规地训练模型,成为团队里不可替代的“隐私安全官”。
可视化演示
动态演示DP-SGD的核心机制,通过概览/流程/对比/趋势四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
DP-SGD:DPSG DP-SGD的核心动机与标准S 逐样本梯度裁剪与敏感度限制机制 核心机制可视化 DP-SGD整体架构与关键组件
隐私威胁背景
过去几周,彩虹班都在拼《我们的操场》。大家慢慢发现一个诡异的现象:随着壁画不断被调整,某些同学带来的“宝石蓝”会悄悄渗透进整片天空。如果有人拿着成品画去化验,居然能根据蓝色分布的细微偏差,推断出“这块区域的瓷砖八成是小明带的”——在机器学习里,这对应一个真实的攻击:成员推理攻击。攻击者拿到了训练好的模型,就能反推某一条数据是否参加过训练。这就好比外人从壁画的纹理中,判断出哪个孩子带过哪块砖。
为了对抗这种泄露,密码学家提出了差分隐私的定义。想象两个数据集 D 和 D',它们只差一个人的数据(只有一位同学换了一块砖)。一个随机算法 M 如果在这两个数据集上输出的结果分布几乎一样,那么攻击者就很难从输出中分辨“到底用的是 D 还是 D'”。更精确地说:
把这句话印在教室里,彩虹班就明白:所谓隐私保护,不是把壁画锁进柜子,而是让成品“说不出某块砖的主人”。DP-SGD 正是为了实现这个目标而设计的一套拼画规则。
- 算法输出分布
\mathcal{M}(D)表示在数据集 D 上运行算法 M(比如拼画流水线),它得到的所有可能结果的概率分布。 - 相邻数据集D' 与 D 只差一个样本,写为 D ~ D',意思是“换掉一位同学的瓷砖后的数据集”。
- 输出范围 SS 是算法输出结果的一个范围,比如“模型参数落在某个区间”,即“壁画成品属于某种风格”。
- 隐私预算指数
e^{\varepsilon}是两个分布相差的最大倍数。ε 越小,倍数越接近 1,隐私保护越强。 - 松弛项 δ允许以极小概率 δ 破例(比如高斯机制的尾部事件),让噪声方案有更灵活的设计空间。
标准SGD原理
先看没有隐私保护时,彩虹班是怎么拼画的。老师制定了标准作业流程:每次随机请一组同学到壁画前,每人仔细观察自己负责的区域,然后给出一个“调整建议”——往哪个方向、变多少色差。老师把这些建议平均起来,按一小步去修改壁画。反复执行,画就越来越接近设计稿。这就是机器学习中最常用的随机梯度下降(SGD)。
用数学语言写出来,第 t 轮参数更新是:
标准 SGD 的问题在于:每个同学的建议都是“实名”的。最终模型里,谁的瓷砖颜色跳跃大,谁的方向被采纳得多,全都写在画面上。攻击者只要对比输出差异,就能认出某个样本的存在。拼画需要保护个体隐私,必须在这套流程上加三道锁——裁剪、加噪、记账。
- 当前参数θ_t 是第 t 轮壁画的状态,也就是模型的“半成品参数”。
- 单样本损失ℓ(θ_t, x_i) 表示第 i 位同学看来,当前画和理想画的差距有多大。
- 梯度方向
\nabla \ell(\theta_t, x_i)是这位同学建议的“修改方向”,指向让差距变小的路径。 - 批量平均
\frac{1}{B} \sum_{i \in \mathcal{B}_t}把这一组同学的意见平均起来,得到集体调整方向。 - 学习率η 是每次迈步的步长。步长太大容易在画布上来回震荡,太小则进度缓慢。
梯度裁剪机制
第一道锁是梯度裁剪。拼画时总有几个“大力士型”同学,给出的色差建议一下子能蹦出八格。他们的意见会盖过全班平均,但同时也会把自己的痕迹深深印在画上。班长的办法是:每个人提建议的“力度上限”统一设为 C 个色阶。超过 C,就按比例压缩回 C;没超过,就原样保留。
数学上,对每个样本的梯度向量做 L2 范数裁剪:
有了这道锁,任何一块瓷砖对壁画整体色调的影响都被限制在半径 C 的范围内。对差分隐私来说,这把整条流水线的敏感度上界定死了:不管换掉哪块砖,梯度总和的变化最多就是 C。裁剪不是为了让画面更好看,而是为了让“加噪声”这道后手有了可靠的标尺。
- 原始梯度
\mathbf{g}_i是第 i 位同学的真实建议向量,既有方向也有力度。 - L2 范数
\|\mathbf{g}_i\|_2是这条建议向量的长度,表示“用了多大力气”。 - 裁剪阈值C 是全班统一的最大允许力度,由老师设定(在代码里是一个超参数)。
- 缩比因子
\min\left(1, \frac{C}{\|\mathbf{g}_i\|_2}\right)计算压缩比例:力度超标就缩小,不超标就是 1,即不改变。 - 裁剪后梯度
\bar{\mathbf{g}}_i是压缩后的新建议,它的长度永远不超过 C。
高斯噪声注入
第二道锁是高斯噪声注入。光限制单个建议的力度还不够,因为把所有建议加起来后,总和依然携带了每个人的分布痕迹——就像把几十块砖的颜色混在一起,聪明的分析师仍能通过统计差异猜出某人的偏好。老师的办法是:每次收集完大家的裁剪后建议,总量再加一层“随机细雾”。
这层雾在数学上就是高斯噪声:
注意噪声的方差写成 σ²C²:C 是裁剪阈值,σ 是用户调的噪声尺度。为什么噪声要和 C 挂钩?因为敏感度由 C 决定,噪声只有跟着 C 走,才能保证无论 C 设多大,隐私保护强度都只由 σ 说了算。雾的浓度由 σ 独揽,画面细节能否保留,也看 σ 的脸色。
- 裁剪梯度求和
\sum_{i \in \mathcal{B}} \bar{\mathbf{g}}_i把这一批同学裁剪后的建议向量加起来。 - 高斯噪声项
\mathcal{N}(0, \sigma^2 C^2 I)是服从均值为 0、协方差为 σ²C²I 的多维高斯噪声向量。 - 加噪聚合把噪声加到裁剪后的总和上,这是与标准 SGD 最本质的区别。
- 批量平均除以批次大小 B,得到最终用于更新模型的“私有梯度” g̃。
隐私会计与预算
第三道锁是隐私会计。喷细雾不是免费的:每喷一次,画面就朦胧一点,隐私保护就消耗一点“曝光刻度”。彩虹班的老师必须记账,否则喷着喷着,预算超支了还在继续训练,隐私保证就悄悄失效了。
高斯机制告诉我们:要满足 (ε, δ)-差分隐私,噪声尺度需要达到:
单步说完,还要算总账。训练要走成千上万步,每一步都在消耗预算。最朴素的想法是把每一步的 ε 直接相加(组合定理):ε_total ≤ Σ ε_t,但这样太保守,实际训练几轮预算就爆表了。更聪明的矩会计(Moments Accountant)在每一轮记录噪声分布的矩,再把所有矩组合起来,给出紧得多的上界。这就是为什么 DP-SGD 能在一整轮完整训练后,仍然报出一个不算离谱的总预算。
- 敏感度Δf 是相邻数据集上函数输出差的最大值,在 DP-SGD 中它约等于裁剪阈值 C。
- 隐私预算 ε用户期望的隐私强度,ε 越小 = 雾越浓 = 保护越强。
- 松弛项与对数δ 是允许的例外概率,
\ln(1.25/\delta)是保护强度所需的“安全余量”计算。 - 所需噪声尺度σ 必须不小于右边这个数,隐私保证才成立。
DP-SGD算法流程
把三道锁串起来,就得到 DP-SGD 的完整流水线。彩虹班的《壁画安全操作手册》这样写:每次取一小批同学(子采样),请他们各自给出建议(算梯度),每条建议按力度上限 C 压缩(裁剪),把大家的压缩建议加总后喷一层高斯细雾(加噪),最后按小步长更新壁画(更新),并在账本上记下这次操作消耗的隐私。
用公式表示每一步的最终效果:
整个流程里还有一个隐藏的增益叫做子采样放大(Privacy Amplification by Sampling):因为是随机抽一小批人而不是全班一起参与,攻击者连“某个同学这次有没有参加调色”都不确定,隐私成本会大幅下降。相当于每轮只让一小部分同学去碰壁画,外人更难统计每个人的笔迹。采样 -> 裁剪 -> 加噪 -> 更新 -> 记账,五步循环,就是 DP-SGD 的全部秘密。
- 上轮参数θ_{t-1} 是上一轮壁画的状态。
- 私有梯度
\tilde{\mathbf{g}}_t是这一轮裁剪并加噪后的聚合梯度。 - 学习步长−η 表示沿着噪声化梯度的反方向迈一小步。
- 更新完成把旧参数减去 η 乘以私有梯度,得到新参数 θ_t。
精度隐私权衡
雾越浓,隐私越安全,但画也越模糊。彩虹班很快发现,隐私和精度是天生的一对冤家。把 σ 调大,模型精度肉眼可见地掉;把 σ 调小,隐私又不够。训练轮数越多,模型学得越好,但预算消耗也越多。
在矩会计的框架下,总隐私预算有一个常用的近似关系:
调参就像调雾:批量大小 B 影响 q,增大 B 会让单步隐私成本上升,但总步数减少,净效果需要仔细算;噪声 σ 直接决定隐私强度;学习率和动量则影响模型能否在噪声中稳住方向。优秀的隐私计算工程师,就是在“画清楚”和“守秘密”之间找到那个甜点。
- 子采样率q = B/N,即每步采样的比例。q 越小,每步的隐私成本越低。
- 总迭代步数T 是训练全程的更新次数,步数越多,累积的隐私消耗越大。
- 噪声尺度σ 在分母上,σ 越大,ε 越小,隐私越好。
- 整体近似
\sqrt{T \ln(1/\delta)}表示隐私损失随训练轮数平方根增长,而不是线性激增,这正是矩会计比朴素组合更强的根源。
应用场景与工具
彩虹班最终把这套方法写进了《壁画安全手册》,还配了一个“一键式工具箱”。在实际的机器学习世界里,这个工具箱就是 Opacus(PyTorch 官方的差分隐私库)和 TensorFlow Privacy。它们把梯度裁剪、噪声注入、隐私会计全部封装好,工程师只需要像平常一样写模型,再套一层 PrivacyEngine,训练结束后直接打印出 ε,告诉合规部门:“我们花掉了这么多隐私预算。”
DP-SGD 最典型的应用场景是联邦学习:每家机构各自在自己的数据上做 DP-SGD,把加过噪的模型更新发到中心服务器,既完成了协作训练,又保证任何人的原始数据都不会离开本地。另一个典型场景是医疗和金融风控:医院要用病历影像训练诊断模型,银行要用交易流水训练欺诈检测模型,这些数据都极度敏感。用 DP-SGD 训练出的模型可以放心发布,即使被攻击者拿到,也无法反推任何病人的信息或任何客户的消费习惯。彩虹班的经验告诉我们:相同的画,可以大家一起欣赏,但谁也别想从画上认出任何一个人的笔迹。
AI 应用场景
医疗影像诊断模型训练
阶段:模型训练与发布阶段
解决的问题:医院积累了大量胸部 CT 和病理切片影像,传统方式是把影像集中到一台服务器训练模型。但医疗影像属于高度敏感的个人数据,直接集中训练既违反 HIPAA/GDPR 等法规,也让患者担心的隐私风险成为现实。AI 解决方式:在数据预处理后,用 Opacus 库套上 DP-SGD 训练诊断模型,梯度裁剪限制单张影像的影响,高斯噪声掩盖个体影像痕迹,最后输出可公开发布的诊断模型。
具体案例:某三甲医院与 AI 公司合作开发肺结节检测模型。数据方不出院区,训练脚本在院内 GPU 集群上执行,所有更新都经过 DP-SGD 处理,训练结束后向监管方报告 ε≈2.1 的隐私预算消耗,模型上线的同时通过合规审查。
手机输入法联邦个性化
阶段:端侧训练与聚合阶段
解决的问题:输入法想要根据用户的打字习惯做联想推荐,但键盘输入数据极其私密,用户绝不愿意把原始打字记录上传到云端。AI 解决方式:在每台手机本地用 DP-SGD 训练一个小模型,只在端侧计算梯度,裁剪、加噪后再把噪声化的梯度更新上传服务器做联邦平均,任何单台设备的贡献都无法被识别。
具体案例:某输入法厂商在千万台手机上部署联邦学习框架,每台设备每周本地跑 3 轮 DP-SGD,服务器聚合时只见被高斯噪声掩盖的更新。内部测试显示,在 ε≈4 的隐私保证下,联想准确率仅下降 2.7%,但彻底不收集用户原文。
金融风控欺诈检测
阶段:合规训练与模型审计阶段
解决的问题:银行训练信用卡欺诈检测模型需要大量交易流水,传统方式把数据集中到数据仓库,一旦泄露后果严重,且监管要求模型可解释、训练可审计。AI 解决方式:在特征工程后使用 DP-SGD 训练分类模型,隐私会计模块记录每一轮训练消耗的 ε,训练日志连同隐私报告一起提交给审计部门。
具体案例:某股份制银行使用 DP-SGD 重新训练反欺诈模型,将客户历史交易按周切割成样本,设定 δ=1e-5、ε=3 的目标预算训练 20 轮,模型 AUC 相比非隐私版本仅下降 0.8%,却成功通过了内部数据安全审计。
Python 演示
import numpy as np class DPSGD: def __init__(self, C, sigma, lr, batch_size, epochs): self.C = C self.sigma = sigma self.lr = lr self.batch_size = batch_size self.epochs = epochs def clip_and_noise(self, grads): n_batch = len(grads) clipped = [] for g in grads: norm = np.linalg.norm(g, 2) scale = min(1.0, self.C / norm) if norm > 0 else 0.0 clipped.append(g * scale) agg = np.sum(clipped, axis=0) noise = np.random.normal(0.0, self.sigma * self.C, size=agg.shape) return (agg + noise) / n_batch def fit(self, X, y): n_samples, n_features = X.shape theta = np.zeros(n_features) for _ in range(self.epochs): perm = np.random.permutation(n_samples) for i in range(0, n_samples, self.batch_size): idx = perm[i:i + self.batch_size] X_b = X[idx] y_b = y[idx] grads = [] for j in range(len(X_b)): x = X_b[j] label = y_b[j] pred = 1.0 / (1.0 + np.exp(-np.dot(theta, x))) grads.append((pred - label) * x) g_tilde = self.clip_and_noise(grads) theta -= self.lr * g_tilde return theta def predict(self, X, theta): probs = 1.0 / (1.0 + np.exp(-np.dot(X, theta))) return (probs >= 0.5).astype(int) def accuracy(y_true, y_pred): return float(np.mean(y_true == y_pred)) def compute_epsilon(sigma, q, T, delta): # Moments accountant 的常用近似: # eps ~ 2 * q * sqrt(T * ln(1/delta)) / sigma return 2.0 * q * np.sqrt(T * np.log(1.0 / delta)) / sigma if __name__ == "__main__": np.random.seed(42) n, d = 1000, 8 X = np.random.randn(n, d) true_w = np.random.randn(d) y = (np.dot(X, true_w) + np.random.randn(n) * 0.3 > 0).astype(int) C = 1.0 sigma = 1.0 lr = 0.05 batch_size = 64 epochs = 5 model = DPSGD(C, sigma, lr, batch_size, epochs) total_steps = int(np.ceil(n / batch_size)) * epochs q = batch_size / n theta_dp = model.fit(X, y) y_pred = model.predict(X, theta_dp) eps = compute_epsilon(sigma, q, total_steps, 1e-5) print("DP-SGD accuracy: %.3f" % accuracy(y, y_pred)) print("privacy budget eps: %.3f" % eps) print("delta: 1e-5")
scale = min(1.0, self.C / norm) if norm > 0 else 0.0这就是梯度裁剪核心:如果范数超过 C,就按比例缩小到 C;范数为 0 则完全置零。noise = np.random.normal(0.0, self.sigma * self.C, size=agg.shape)生成均值为 0、标准差为 σC 的高斯噪声,与裁剪阈值 C 匹配。return (agg + noise) / n_batch裁剪后的梯度总和加噪声,再除以批量大小,得到私有梯度 g̃。perm = np.random.permutation(n_samples)随机打乱样本顺序,实现子采样,为隐私放大提供随机性。theta -= self.lr * g_tilde参数更新:用加噪后的梯度代替原始梯度,这是 DP-SGD 与标准 SGD 的唯一区别。def compute_epsilon(sigma, q, T, delta):用矩会计近似公式快速估算总隐私预算,方便训练前预判参数是否合规。eps = compute_epsilon(sigma, q, total_steps, 1e-5)训练完整轮后,算出这次训练总共消耗的隐私预算。
常见误区
误区“既然加噪声能保护隐私,那我直接把 σ 设成 100,隐私绝对万无一失。反正模型差一点也没关系。”
正解噪声过大时,梯度信号完全被淹没,模型可能根本不收敛,精度直接崩盘。隐私与精度是跷跷板,正确做法是根据目标 ε 反推所需的最小 σ,在满足合规的前提下尽量保住精度。就像喷细雾,只要浓到认不出人脸就够了,喷到伸手不见五指,整幅壁画也废了。
为何常见:初学者容易把“隐私保护”理解为“越强越好”,忽略了模型本身还要好用这一基本目标。
误区“C 越大,梯度越少被修改,数据越'真实',隐私应该没被破坏,甚至更安全吧?”
正解裁剪的大 C 意味着敏感度上界更高,相邻数据集造成的梯度差异最大可达 C。为了守住同样的 ε,就必须注入 σC 更大的噪声,最终模型反而可能更差。C 不是隐私旋钮,它只是让敏感度变得有界;真正的隐私旋钮是 σ 和预算会计。就像允许每个人扯着嗓子喊,想盖住个人声音只能把背景音乐放得更大。
为何常见:把“裁剪越少越接近原始数据”和“越接近原始越安全”两个直觉错误地绑定在一起。
误区“加了一点高斯噪声,大不了多跑几个 epoch 就能把精度追回来,最后效果一样好。”
正解多跑 epoch 会消耗更多隐私预算,而噪声误差不会因为训练轮数增加而收敛到零。梯度噪声引入的方差是结构性的,DP-SGD 的精度上限通常低于非隐私训练。这是隐私的“必要代价”,不是用算力就能抹平的。
为何常见:人们习惯性地认为“训练不充分”都可以用更多迭代弥补,而忽略了这里的瓶颈是噪声而非收敛不足。
误区“既然梯度是损失函数求导得到的,那我在 loss 上加噪声,反传出去的梯度不也带噪声了吗?”
正解对 loss 加噪声经过反向传播会被参数和海量运算放大、扭曲,敏感度无法控制。差分隐私要求输出函数的敏感度有界,因此噪声必须在裁剪之后、聚合之时注入梯度,才能保证全局敏感度正好是 C。加错位置的噪声,既破坏效用,也给不出隐私保证。
为何常见:把“加法交换律”直觉错误地推广到非线性神经网络中,忽略了敏感度分析对噪声位置有严格要求。
误区“ε 越小说明隐私越强,那我设 ε=0,不就绝对安全了?”
正解ε=0 意味着算法输出与输入数据完全独立,模型退化为随机猜测——隐私保护到极致,可用性为零。实际工程中,ε 一般落在 0.1 到 10 之间,根据监管要求和业务容忍度权衡。就像壁画喷了太厚的漆,谁也看不清画了什么,那这壁画还有什么意义?
为何常见:把隐私预算理解成“越低越赚”,没有意识到低预算背后是精度的大幅牺牲。
面试题
Q1. DP-SGD 中梯度裁剪的主要目的是什么?
- A.防止模型过拟合训练数据
- B.限制每个样本对梯度的最大影响← 正确答案
- C.加快模型收敛速度和稳定性
- D.降低数据集本身的噪声
答案:B。裁剪是为了让每个样本的梯度范数不超过 C,从而锁定敏感度上界,这是后续高斯噪声能精确控制隐私强度的前提。虽然裁剪客观上也有防梯度爆炸的作用,但 DP-SGD 引入它的核心动机是隐私保证,而不是优化速度。
Q2. 隐私预算 ε 越小表示什么?
- A.隐私保护能力更强← 正确答案
- B.模型训练速度更快
- C.模型精度一定更高
- D.噪声尺度一定更小
答案:A。ε 衡量相邻数据集输出分布的差异上限。ε 越小,两个分布越接近,攻击者越难判断某个样本是否在训练集中,隐私越强。但 ε 越小通常需要更大噪声,精度往往更低,因此不是越小越好。
Q3. DP-SGD 中高斯噪声的标准差通常如何设置?
- A.与裁剪阈值 C 和噪声尺度 σ 成正比← 正确答案
- B.与学习率 η 成正比
- C.与批大小 B 成正比
- D.与数据集大小 N 成正比
答案:A。噪声的标准差写成 σC。C 是裁剪阈值,决定敏感度上界;σ 是用户调节的噪声尺度,决定隐私强度。噪声必须跟着 C 走,才能保证不管裁剪阈值怎么变,隐私只由 σ 控制。
Q4. 关于子采样对隐私的影响,下列说法正确的是?
- A.子采样会让算法失去隐私保证
- B.子采样能带来隐私放大效应← 正确答案
- C.子采样只影响计算效率
- D.子采样会增加隐私预算消耗
答案:B。随机子采样让攻击者不确定某个样本是否参与了这一步,隐私成本因此被放大降低,这叫做 Privacy Amplification by Sampling。它不是简单的计算优化,而是 DP-SGD 预算估计中非常重要的一环。
Q5. DP-SGD 精度下降的主要来源有哪些?
- A.梯度裁剪带来的偏置← 正确答案
- B.高斯噪声注入的方差← 正确答案
- C.训练数据采样顺序
- D.权重初始化的随机性
答案:AB。裁剪把过大的梯度强行压缩,引入了偏置;高斯噪声直接扰动更新方向,引入了方差。采样顺序和初始化随机性在标准 SGD 中同样存在,不是 DP-SGD 特有误差来源。
Q6. 与标准 SGD 相比,DP-SGD 在参数更新中多出了哪一步?
- A.学习率衰减策略
- B.梯度裁剪与噪声加噪← 正确答案
- C.验证集早停机制
- D.特征缩放归一化
答案:B。DP-SGD = 标准 SGD + 梯度裁剪 + 高斯噪声。学习率衰减、早停、特征归一化都是普通训练技巧,并非 DP-SGD 独有的核心操作。
Q7. 高斯机制中,噪声尺度与敏感度是什么关系?
- A.噪声尺度与敏感度成正比← 正确答案
- B.噪声尺度与敏感度成反比
- C.噪声尺度与敏感度无关
- D.噪声尺度随敏感度平方增长
答案:A。高斯机制规定 σ ≥ Δf·√(2ln(1.25/δ))/ε,敏感度越高,需要越大噪声。这就是为什么裁剪阈值 C 不能无限放大——C 越大敏感度越大,守不住隐私就得加更多噪声。
Q8. 相比简单组合定理,矩会计/RDP 的优势有哪些?
- A.能给出更紧的隐私预算上界← 正确答案
- B.可支持更大的训练轮数← 正确答案
- C.完全消除所有隐私误差
- D.自动调节学习率大小
答案:AB。矩会计利用每一步噪声分布的矩信息,组合后给出比逐项相加更紧的界,因此在同样预算下支持更多训练轮数。它不会消除隐私误差,也不负责调节学习率。
Q9. 为什么 DP-SGD 通常提供 (ε,δ)-DP 而不是纯 ε-DP?
- A.高斯噪声需要 δ 来容忍尾部事件← 正确答案
- B.梯度裁剪会导致偏差增大
- C.δ 用于表示学习率衰减
- D.δ 是高斯分布的方差参数
答案:A。高斯分布具有无限长尾,严格保证纯 ε-DP 需要无穷大噪声。引入 δ 作为极小概率的松弛项,允许在可忽略的例外情况下不满足 ε 界,这样高斯机制才能实用。δ 与学习率、方差参数都无关。
Q10. 以下哪些场景适合使用 DP-SGD?
- A.医疗影像数据训练诊断模型← 正确答案
- B.银行客户交易数据做风控← 正确答案
- C.已公开的天气预报数据集
- D.无需隐私保护的小型玩具项目
答案:AB。DP-SGD 的价值在于隐私风险和合规成本高的敏感数据。医疗影像、金融交易都是典型场景。公开数据集和玩具项目本来就没有隐私压力,使用 DP-SGD 只会无谓地牺牲精度。