差分隐私DP-SGD训练流程
详细解释DP-SGD(差分隐私随机梯度下降)的步骤及其对模型训练的影响。
回答
孤独的心
DP-SGD (Abadi et al., 2016) 将差分隐私保护引入深度学习训练。
DP-SGD流程(与传统SGD的差异标*):
- 从批次中采样m个样本
- 对每个样本计算梯度
g_i ← ∇_θ L(θ, x_i, y_i) - (*) 梯度裁剪:
g_i ← g_i / max(1, ||g_i||₂ / C)- 将每个样本梯度的L2范数限制在C以内
- 限制单个样本对模型的最大影响
- (*) 加噪声:
g̃ ← 1/m·(Σ g_i + N(0, σ²C²I))- 高斯噪声掩码真实梯度
- σ控制隐私预算ε
- 更新参数:
θ ← θ - η·g̃
隐私分析:
- 使用Moment Accountant计算累积隐私预算ε
- 比简单的组合定理更紧的界
ε = O(q·T·log(1/δ)/σ),其中q=采样率,T=迭代数
对训练的影响:
- 精度下降:梯度噪声+裁剪引入偏差。C过小偏差大,C过大噪声大
- 批次大小:大batch降低噪声方差(大batch是DP-SGD的核心技巧)
- 学习率调整:需要更小的学习率和更长的warmup
实践:OPACUS (Facebook) 库实现了高效DP-SGD,支持Ghost Clipping等技术减少内存开销。
典型配置:ε=8, δ=1e-5, C=1.0, lot_size=4096(虚拟批次)。