差分隐私——高斯机制(The Gaussian Mechanism)

本文解析了Dwork女士著作中关于高斯机制的(ε, δ)-差分隐私定义,探讨了隐私损失函数的计算与(ε, δ)-DP的证明过程,并解释了σ=cΔf/ε的形式及c的上限。涉及关键概念如查询函数、邻域数据集和高斯噪声的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近实验室的师弟汇报高斯机制,自己也经常遇到,所以学习一下。本文来自Dwork女士的《The Algorithmic Foundations of Differential Privacy》的附录A,其中有一些细节没有看懂,期盼有明白的同学能够给予解答,同时也希望能指出本文存在的错误。

高斯机制

( ϵ , δ ) − D P (\epsilon, \delta)-DP (ϵ,δ)DP

定义一(隐私损失 privacy loss)对于两个相邻的数据集 D , D ′ D,D' D,D(即 ∣ ∣ D − D ′ ∣ ∣ 1 = 1 ||D-D'||_1=1 DD1=1),输出 o o o 和随机函数 M M M ,该随机函数造成的隐私损失 c M ( o , D , D ′ ) c_M(o,D,D') cM(o,D,D)定义为 c M ( o , D , D ′ ) : = l n P r [ M ( D ) = o ] P r [ M ( D ′ ) = o ] c_M(o,D,D'):=ln\frac{Pr[M(D)=o]}{Pr[M(D')=o]} cM(o,D,D):=lnPr[M(D)=o]Pr[M(D)=o]
定理一随机函数 M M M ( ϵ , δ ) (\epsilon, \delta) (ϵ,δ)-DP 的充分条件是其隐私损失 c M ( o , D , D ′ ) c_M(o,D,D') cM(o,D,D)满足 P r [ c M ( o , D , D ′ ) > ϵ ] ≤ δ Pr[c_M(o,D,D')>\epsilon]\leq\delta Pr[cM(o,D,D)>ϵ]δ

证明:定义 B = { o : c M ( o , D , D ′ ) > ϵ } B=\{o:c_M(o,D,D')>\epsilon\} B={o:cM(o,D,D)>ϵ}
P r [ M ( D ) ∈ S ] = P r [ M ( D ) ∈ S ∩ B ] + P r [ M ( D ) ∈ ( S − B ) ] ≤ P r [ M ( D ) ∈ B ] + P r [ M ( D ) ∈ ( S − B ) ] ≤ P r [ M ( D ) ∈ B ] + e ϵ P r [ M ( D ′ ) ∈ ( S − B ) ] ≤ P r [ M ( D ) ∈ B ] + e ϵ P r [ M ( D ′ ) ∈ S ] \begin{aligned} Pr[M(D) \in S]&=Pr[M(D)\in S\cap B] + Pr[M(D)\in (S-B)] \\ &\leq Pr[M(D)\in B]+Pr[M(D)\in(S-B)] \\ &\leq Pr[M(D)\in B]+e^\epsilon Pr[M(D')\in(S-B)]\\ &\leq Pr[M(D)\in B]+e^\epsilon Pr[M(D')\in S] \\ \end{aligned} Pr[M(D)S]=Pr[M(D)SB]+Pr[M(D)(SB)]Pr[M(D)B]+Pr[M(D)(SB)]Pr[M(D)B]+eϵPr[M(D)(SB)]Pr[M(D)B]+eϵPr[M(D)S]
如果 P r [ c M ( o , D , D ′ ) > ϵ ] < δ Pr[c_M(o,D,D')>\epsilon]<\delta Pr[cM(o,D,D)>ϵ]<δ ,
则Pr[M(D) ∈ \in S] ≤ \leq Pr[M(D) ∈ \in B] + e ϵ ^\epsilon ϵPr[M(D’) ∈ \in S].
即算法M满足 ( ϵ , δ ) − D P (\epsilon,\delta)-DP (ϵ,δ)DP.
说明: ( ϵ , δ ) − D P (\epsilon, \delta)-DP (ϵ,δ)DP的充分条件是隐私损失被限制在 ϵ \epsilon ϵ之内,同时也允许很小的概率 δ \delta δ打破这个限制。
在这里插入图片描述其中 △ 2 f = m a x a d j a c e n t D , D ′ ∣ ∣ f ( D ) − f ( D ′ ) ∣ ∣ 2 \triangle_2f=max_{{adjacent}_{D,D'}}||f(D)-f(D')||_2 2f=maxadjacentD,Df(D)f(D)2,f为查询函数。
P r [ M ( D ) = o ] P r [ M ( D ′ ) = o ] = P r [ f ( D ) + N = o ] P r [ f ( D ′ ) + N = o ] = P r [ N = o − f ( D ) ] P r [ N = o − f ( D ′ ) ] = e − [ o − f ( D ) ] 2 2 σ 2 e − [ o − f ( D ′ ) ] 2 2 σ 2 = e − [ o − f ( D ) ] 2 2 σ 2 e − [ o − f ( D ) + Δ f ] 2 2 σ 2 = e − x 2 2 σ 2 e − ( x + Δ f ) 2 2 σ 2 \begin{aligned} \frac{Pr[M(D)=o]}{Pr[M(D')=o]}&=\frac{Pr[f(D)+N=o]}{Pr[f(D')+N=o]}\\&=\frac{Pr[N=o-f(D)]}{Pr[N=o-f(D')]}\\&=\frac{e^{-{\frac{[o-f(D)]^2}{2\sigma^2}}}}{e^{-{\frac{[o-f(D')]^2}{2\sigma^2}}}}\\&=\frac{e^{-{\frac{[o-f(D)]^2}{2\sigma^2}}}}{e^{-\frac{[o-f(D)+\Delta f]^2}{2\sigma^2}}}\\&=\frac{e^{-{\frac{x^2}{2\sigma^2}}}}{e^{-\frac{(x+\Delta f)^2}{2\sigma^2}}} \end{aligned} Pr[M(D)=o]Pr[M(D)=o]=Pr[f(D)+N=o]Pr[f(D)+N=o]=Pr[N=of(D)]Pr[N=of(D)]=e2σ2[of(D)]2e2σ2[of(D)]2=e2σ2[of(D)+Δf]2e2σ2[of(D)]2=e2σ2(x+Δf)2e2σ2x2
由于概率恒正
∣ l n e − x 2 2 σ 2 e − ( x + Δ f ) 2 2 σ 2 ∣ = ∣ l n e − 1 2 σ 2 [ x 2 − ( x + Δ f ) 2 ] ∣ = ∣ − 1 2 σ 2 [ x 2 − ( x 2 + 2 x Δ f + Δ f 2 ) ] ∣ = ∣ 1 2 σ 2 ( 2 x Δ f + ( Δ f ) 2 ) ∣ < ϵ \begin{aligned} |ln\frac{e^{-{\frac{x^2}{2\sigma^2}}}}{e^{-\frac{(x+\Delta f)^2}{2\sigma^2}}}|&=|lne^{\frac{-1}{2\sigma^2}[x^2-(x+\Delta f)^2]}|\\&=|-\frac{1}{2\sigma^2}[x^2-(x^2+2x\Delta f +\Delta f^2)]|\\&=|\frac{1}{2\sigma^2}(2x\Delta f+(\Delta f)^2)|\\&<\epsilon \end{aligned} lne2σ2(x+Δf)2e2σ2x2=lne2σ21[x2(x+Δf)2]=2σ21[x2(x2+2xΔf+Δf2)]=2σ21(2xΔf+(Δf)2)<ϵ
在这里插入图片描述
说明:书上少写了一个t
P r [ x > t ] = ∫ t ∞ 1 2 π σ e − x 2 2 σ 2 d x ≤ − σ 2 π ∫ t ∞ 1 t e − x 2 2 σ 2 d − x 2 2 σ 2 ≤ σ 2 π t e − t 2 2 σ 2 \begin{aligned} Pr[x>t]&=\int_{t}^{\infty}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{x^2}{2\sigma^2}}dx\\&\le-\frac{\sigma}{\sqrt{2\pi}}\int_{t}^{\infty}\frac{1}{t}e^{-\frac{x^2}{2\sigma^2}}d-\frac{x^2}{2\sigma^2}\\&\le\frac{\sigma}{\sqrt{2\pi}t}e^{-\frac{t^2}{2\sigma^2}} \end{aligned} Pr[x>t]=t2π σ1e2σ2x2dx2π σtt1e2σ2x2d2σ2x22π tσe2σ2t2
在这里插入图片描述
在这里插入图片描述
1 2 σ 2 ( σ 2 ϵ Δ f − Δ f 2 ) 2 = 1 2 σ 2 [ Δ f ( c 2 ϵ − 1 2 ) ] 2 = [ Δ f ( c 2 ϵ − 1 2 ) ] 2 [ ϵ 2 c 2 ( Δ f ) 2 ] 1 2 = 1 2 ( c 2 ϵ − 1 2 ) 2 ϵ 2 c 2 = 1 2 ( c 2 − ϵ + ϵ 2 / 4 c 2 ) \begin{aligned} \frac{1}{2\sigma^2}(\frac{\sigma^2\epsilon}{\Delta f}-\frac{\Delta f}{2})^2&=\frac{1}{2\sigma^2}[\Delta f(\frac{c^2}{\epsilon}-\frac{1}{2})]^2\\&=[\Delta f(\frac{c^2}{\epsilon}-\frac{1}{2})]^2[\frac{\epsilon ^2}{c^2(\Delta f)^2}]\frac{1}{2}\\&=\frac{1}{2}(\frac{c^2}{\epsilon}-\frac{1}{2})^2\frac{\epsilon^2}{c^2}\\&=\frac{1}{2}(c^2-\epsilon+\epsilon^2/4c^2) \end{aligned} 2σ21(Δfσ2ϵ2Δf)2=2σ21[Δf(ϵc221)]2=[Δf(ϵc221)]2[c2(Δf)2ϵ2]21=21(ϵc221)2c2ϵ2=21(c2ϵ+ϵ2/4c2)
先讨论第一项 l n ( ( σ 2 ϵ / Δ f − Δ f / 2 ) / σ ) ln((\sigma^2\epsilon/\Delta f-\Delta f/2)/\sigma) ln((σ2ϵ/ΔfΔf/2)/σ),得出c的一个不太紧的界,由第二项 ( σ 2 ϵ / Δ f − Δ f / 2 ) 2 / 2 σ 2 (\sigma^2\epsilon/\Delta f-\Delta f/2)^2/2\sigma^2 (σ2ϵ/ΔfΔf/2)2/2σ2得出一个关于c更紧的界(tighter)。不清楚 c ≥ 1 c\ge1 c1这一条件怎么来的,由对数函数的性质可推出 c ≥ 3 / 2 c\ge3/2 c3/2.
在这里插入图片描述
这里能去掉第一项的原因是当 c = 3 / 2 c=3/2 c=3/2时,第一项为0;当 c > 3 / 2 c>3/2 c>3/2时,第一项大于0.故只留第二项这个不等式也是成立的.
在这里插入图片描述
证明结束.

总结

1、为什么 σ = c Δ f / ϵ \sigma=c\Delta f/\epsilon σ=cΔf/ϵ要写成这种形式;
2、不清楚 c ≥ 1 c\ge1 c1怎么来的;
3、再看看高斯在DP- SGD中的应用.

references:

The Algorithmic Foundations of Differential Privacy
Composition Theorem

### 差分隐私与迁移学习的结合 差分隐私是一种保护个人数据隐私的技术,通过向计算结果中加入噪声来防止敏感信息泄露。而迁移学习则旨在利用源域的知识提升目标域的学习效果。两者的结合可以实现在保护隐私的同时完成有效的模型迁移。 一种常见的实现方式是在迁移过程中引入差分隐私机制。例如,在基于特征表示的迁移学习方法中,可以通过在提取到的特征上添加拉普拉斯噪声或高斯噪声来满足差分隐私的要求[^1]。这种方法能够有效减少因共享中间层特征而导致的信息泄漏风险。 另一种方法涉及模型参数级别的隐私保护。具体而言,可以在梯度更新阶段采用差分隐私技术。例如,《Differentially Private Hypothesis Transfer Learning》一文中提出了如何在假设转移学习的过程中融入差分隐私的概念[^2]。该研究展示了如何通过对梯度施加约束并注入随机扰动来保障隐私安全,同时维持较高的模型性能。 以下是伪代码示例展示如何在迁移学习框架下实施差分隐私: ```python import torch from opacus import PrivacyEngine def apply_differential_privacy(model, data_loader, max_grad_norm=1.0, noise_multiplier=0.5): privacy_engine = PrivacyEngine() # Wrap the model with Opacus' differential privacy engine model, optimizer, data_loader = privacy_engine.make_private( module=model, optimizer=torch.optim.SGD(model.parameters(), lr=0.01), data_loader=data_loader, noise_multiplier=noise_multiplier, max_grad_norm=max_grad_norm, ) return model, optimizer, data_loader class FeatureExtractor(torch.nn.Module): def __init__(self): super(FeatureExtractor, self).__init__() self.layers = torch.nn.Sequential( torch.nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1), torch.nn.ReLU(), torch.nn.MaxPool2d(kernel_size=2) ) def forward(self, x): features = self.layers(x) noisy_features = add_noise(features) # Add Laplace or Gaussian noise here to ensure DP. return noisy_features def transfer_learning_with_dp(source_model, target_data_loader): feature_extractor = source_model.feature_extractor private_feature_extractor, _, _ = apply_differential_privacy(feature_extractor, target_data_loader) classifier = torch.nn.Linear(private_feature_extractor.output_dim, num_classes) combined_model = torch.nn.Sequential(private_feature_extractor, classifier) return combined_model ``` 上述代码片段演示了如何将差分隐私应用于迁移学习中的特征提取器部分。它使用 `Opacus` 库简化了 PyTorch 模型上的差分隐私配置过程。 ####
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值