糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 【Rényi差分隐私和零集中差分隐私(差分隐私变体)代码实现】差分隐私代码实现系列(

【Rényi差分隐私和零集中差分隐私(差分隐私变体)代码实现】差分隐私代码实现系列(

时间:2022-11-03 11:32:42

相关推荐

【Rényi差分隐私和零集中差分隐私(差分隐私变体)代码实现】差分隐私代码实现系列(

差分隐私代码实现系列(九)

写在前面的话回顾差分隐私的变体发明变体的动机最大散度和Rényi散度Rényi差分隐私零集中差分隐私差分隐私变体的组合情况总结

写在前面的话

书上学来终觉浅,绝知此事要躬行

回顾

1、全局敏感度具有局限性,一个是不好估计,另一个是不太贴近实际情况。就拿均值的敏感度举例,全局敏感度考虑最极端情况就是上限减去下限,同时这个上下限不好估计。并且实际情况肯定不是如此,要考虑具体数据集。

2、但是呢局部敏感度又不能像全局敏感度直接用拉普拉斯机制,因为当攻击者知道局部敏感度时(就算不知道多查几次也能推出来)会推测数据集信息,看均值的例子就行。为什么会这样?因为差分隐私只保护查询结果,不保护敏感度。这么说来我们不能直接用局部敏感度,但不代表它没用~

3、局部敏感度的全局敏感度~欸,我们可以从这个点考虑。那这就是一个估计全局敏感度的工作了。前文提到的框架就是设置一个局部敏感度的界限,看这个界限是否大于实际情况的局部敏感度,能成就释放结果。这是一个预知未来的事情哈哈哈哈哈。

4、怎么做?我们不是说一条记录不同的相邻数据集嘛,我们现在预知未来,考虑多条记录不同数据集的局部敏感度。在这些局部敏感度里面取最大值。问题来了~我们需要多少步才能得到这样的最大值大于我们设定的上限?通过设定询问解决这个问题。

5、我们先看看这个局部敏感度的变化程度,因为我们是增加或者减少行,所以对于局部敏感度来说其敏感度就是1。由此我们的噪声尺度就确定下来,由此在我们询问这个最大值时都会加上敏感度为1的拉普拉斯噪声,当不满足条件时返回假,满足则返回原查询结果加上设定的敏感度拉普拉斯噪声。

6、值得注意的是这种方法不是纯DP,因为第2步的噪声足够大的时候可能会满足条件,从而导致本应k步远离原始数据集的情况,在前面就确定下来了。这样的情况就是我们前面提到的灾难机制,简单来说这个方法允许攻击者的查询结果之加入很少的噪声。更极端一点,甚至不加噪声。同时注意,这框架不管攻击者有没有收到答案都会一直消耗隐私预算,直到耗尽。具体的例子代码实现了,小伙伴看就完事了~

差分隐私的变体

现在差分隐私的变体多种多样,相信大家阅读论文也接触了很多。这篇博客主要讲一下瑞丽差分隐私【Rényi differential privacy】和零集中差分隐私【zero-concentrated differential privacy】

发明变体的动机

回想一下,我们展示的大多数隐私成本边界都是有上限的,但它们有时代表非常宽松的上限,即真正的隐私成本远低于上限。开发差分隐私的新变体的主要动机是实现更严格的隐私成本限制,特别是对于迭代算法,同时保持在实践中有用的隐私定义

例如,灾难模式的宽松(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私是不可取的。

ps.灾难模式前面提到过~

这些变体为某些类型的查询提供了更紧密的组合,同时消除了灾难模式。

我们一起来看一下ϵ\epsilonϵ-差分隐私的顺序组合。事实证明,ϵ\epsilonϵ-差分隐私的顺序组合很紧密。

这是什么意思?这意味着顺序组合有一个反例无法满足任何下限:

存在一种满足ϵ\epsilonϵ-差分隐私的机制FFF

当组合kkk次时,FFF满足kϵk\epsilonkϵ-差分隐私

但是FFF不满足c<kc < kc<k-任何cϵc\epsiloncϵ的差分隐私

是不是还没理解什么意思?

就是查看当我们"矢量化"查询时隐私成本会发生什么变化!

也就是说,我们将大量查询合并到一个查询中,该查询返回各个答案的矢量。

因为答案是向量,所以我们可以只使用一次向量值拉普拉斯机制,而完全避免组合

为了让大家更好理解,将绘制kkk查询需要多少噪声的图,首先在顺序组合下,然后使用"矢量化"形式。

在顺序组合情况下,每个查询的敏感度为 1,因此每个查询的噪声小数位数为1ϵi\frac{1}{\epsilon_i}ϵi​1​。如果我们想要一个总的隐私成本ϵ\epsilonϵ,那么ϵi\epsilon_iϵi​必须加起来就是ϵ\epsilonϵ,所以ϵi=ϵk\epsilon_i = \frac{\epsilon}{k}ϵi​=kϵ​。

这意味着每个查询都获取带有尺度(scale)kϵ\frac{k}{\epsilon}ϵk​ 的拉普拉斯噪声。在"矢量化"的情况下,只有一个查询,但它的 L1 敏感度为 ∑i=1k1=k\sum_{i=1}^k 1 = k∑i=1k​1=k,因此在这种情况下,噪声的比例也是kϵ\frac{k}{\epsilon}ϵk​。

%matplotlib inlineimport matplotlib.pyplot as pltplt.style.use('seaborn-whitegrid')import pandas as pdimport numpy as npadult = pd.read_csv("adult_with_pii.csv")def laplace_mech(v, sensitivity, epsilon):return v + np.random.laplace(loc=0, scale=sensitivity / epsilon)def pct_error(orig, priv):return np.abs(orig - priv)/orig * 100.0ks = np.linspace(1, 10, 20)epsilon = .1# L1 sensitivity of each query: 1# noise per query: 1/epsilon# number of queries: knoises_seq = [k*(1/epsilon) for k in ks]plt.plot(ks, noises_seq, label='Sequential Composition')# number of queries: 1# L1 sensitivity of each query: k# noise per query: k / epsilonnoises_l1 = [1*(k/epsilon) for k in ks]plt.plot(ks, noises_l1, label='Vectorized')plt.title('Laplace Mechanism: Vectorized vs. Composition')plt.xlabel('Number of Queries')plt.ylabel('Scale of Noise')plt.legend();

这两条线完全重叠

这意味着,无论我们运行多少个查询,在ϵ\epsilonϵ-差分隐私下,我们都不会比顺序组合做得更好。这是因为顺序组合与矢量化查询一样好,我们不能做得比这更好。

那么(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私呢?这就有些不同了。

在顺序组合的情况下,我们可以使用高级组合定理。这里必须小心一点,以确保总隐私成本正好是(ϵ,δ)(\epsilon, \delta)(ϵ,δ)。

具体来说,我们设置ϵi=ϵ22klog⁡(1/δ′)\epsilon_i = \frac{\epsilon}{2 \sqrt{2k \log(1/\delta')}}ϵi​=22klog(1/δ′)​ϵ​,δi=δ2k\delta_i = \frac{\delta}{2k}δi​=2kδ​和δ′=δ2\delta' = \frac{\delta}{2}δ′=2δ​(拆分δ\deltaδ 50% 用于查询,50% 用于高级组合)。

通过高级组合,所有kkk查询的总隐私成本为(ϵ,δ)(\epsilon, \delta)(ϵ,δ)。

根据高斯机制,噪声的尺度为:

σ2=2log⁡(1.25δi)ϵi2=16klog⁡(1δ′)log⁡(1.25δi)ϵ2=16klog⁡(2δ)log⁡(2.5kδ)ϵ2\sigma^2 =\frac{2 \log(\frac{1.25}{\delta_i})}{\epsilon_i^2}\\ =\frac{16 k \log(\frac{1}{\delta'}) \log(\frac{1.25}{\delta_i})}{\epsilon^2}\\ =\frac{16 k \log(\frac{2}{\delta}) \log(\frac{2.5 k}{\delta})}{\epsilon^2}\\ σ2=ϵi2​2log(δi​1.25​)​=ϵ216klog(δ′1​)log(δi​1.25​)​=ϵ216klog(δ2​)log(δ2.5k​)​

在"矢量化"的情况下,我们只有一个查询,L2 敏感度为k\sqrt{k}k​。

根据高斯机制,噪声的尺度是σ2=2klog⁡(1.25/δ)ϵ2\sigma^2 = \frac{2 k \log(1.25/\delta)}{\epsilon^2}σ2=ϵ22klog(1.25/δ)​。

这种差异在实践中意味着什么?

这两者在kkk中在渐近方向上表现相同,但具有不同的常量,并且高级复合情况在δ\deltaδ中具有额外的对数因子。

所有这些加起来,在高级组合定理的情况下,界限要宽松得多。

ks = np.linspace(1, 100, 20)epsilon = .1delta = 1e-5# L2 sensitivity of each query: 1# number of queries: knoises_seq = [16*k*np.log(1.25/delta)*np.log(1/delta)/(epsilon**2) for k in ks]plt.plot(ks, noises_seq, label='Advanced Composition')# number of queries: 1# L2 sensitivity of each query: sqrt(k)noises_l1 = [2*k*np.log(1.25/delta)/(epsilon**2) for k in ks]plt.title('Gaussian Mechanism: Vectorized vs. Composition')plt.xlabel('Number of Queries')plt.ylabel('Scale of Noise')plt.plot(ks, noises_l1, label='Vectorized')plt.legend();

相比较而言"矢量化"版本增长得更慢。这是什么意思?我们应该能够在顺序组合方面做得更好!

最大散度和Rényi散度

事实证明,差分隐私的定义可以直接用称为最大散度的东西来表示。

在统计学中,散度是测量两个概率分布之间距离的一种方式 ,这正是我们想要为差分隐私做的事情。

最大散度是KL散度的最坏情况,是最常见的度量之一。

两个概率分布YYY和ZZZ之间的最大散度定义为:

D∞(Y∥Z)=max⁡S⊆Supp(Y)[log⁡Pr[Y∈S]Pr[Z∈S]]D_\infty(Y \Vert Z) = \max_{S \subseteq \text{Supp}(Y)} \Big[\log \frac{Pr[Y \in S]}{Pr[Z \in S]} \Big] D∞​(Y∥Z)=S⊆Supp(Y)max​[logPr[Z∈S]Pr[Y∈S]​]

这看起来已经很像ϵ\epsilonϵ-差分隐私的条件!

特别是,事实证明,在以下情况下,FFF满足ϵ\epsilonϵ-差分隐私:

D∞(F(x)∥F(x′))≤ϵD_\infty(F(x) \Vert F(x')) \leq \epsilon D∞​(F(x)∥F(x′))≤ϵ

差分隐私研究的一个有趣方向是探索其他变种的替代隐私定义。

其中,Rényi散度特别有趣,因为它也(像最大散度一样)允许我们恢复差分隐私的原始定义。

概率分布PPP 和 QQQ之间的阶α\alphaα的 Rényi 发散定义为(其中P(x)P(x)P(x)表示PPP在点xxx的概率密度):

Dα(P∥Q)=1α−1log⁡Ex∼Q(P(x)Q(x))αD_\alpha(P \Vert Q) = \frac{1}{\alpha - 1} \log E_{x \sim Q} \Big(\frac{P(x)}{Q(x)}\Big)^\alpha Dα​(P∥Q)=α−11​logEx∼Q​(Q(x)P(x)​)α

如果我们设置α=∞\alpha = \inftyα=∞,那么我们立即恢复ϵ\epsilonϵ-差分隐私的定义!

一个显而易见的问题是:如果我们把α\alphaα设置为其他什么东西,会发生什么?

正如我们将看到的,可以使用Rényi发散来获得非常有趣的松弛差分隐私,从而允许更好的组合定理,同时避免在(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私下可能发生的"灾难"的可能性。

Rényi差分隐私

,Ilya Mironov提出了Rényi差分隐私(RDP)。 随机机制FFF满足(α,ϵˉ)(\alpha, \bar{\epsilon})(α,ϵˉ)-RDP 如果对于所有相邻数据集xxx和x′x'x′

Dα(F(x)∥F(x′))≤ϵˉD_\alpha(F(x) \Vert F(x')) \leq \bar{\epsilon} Dα​(F(x)∥F(x′))≤ϵˉ

换句话说,RDP 要求F(x)F(x)F(x)和F(x′)F(x')F(x′)之间的顺序α\alphaα的 Rényi 发散受ϵˉ\bar{\epsilon}ϵˉ的约束。请注意,我们将使用ϵˉ\bar{\epsilon}ϵˉ来表示 RDP 的ϵ\epsilonϵ参数,以便将其与纯ϵ\epsilonϵ -差分隐私和(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私中的ϵ\epsilonϵ区分开来。

Rényi 差分隐私的一个关键属性是,满足 RDP 的机制也满足(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私。具体来说,如果FFF满足(α,ϵˉ)(\alpha, \bar{\epsilon})(α,ϵˉ)-RDP,则对于δ>0\delta > 0δ>0,FFF满足(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私ϵ=ϵˉ+log⁡(1/δ)α−1\epsilon = \bar{\epsilon} + \frac{\log(1/\delta)}{\alpha - 1}ϵ=ϵˉ+α−1log(1/δ)​。分析人员可以自由选择δ\deltaδ的任何值;在实践中应选取有意义的值(例如δ≤1n2\delta \leq \frac{1}{n^2}δ≤n21​))。

实现 Rényi 差分隐私的基本机制是高斯机制。具体来说,对于具有L2L2L2敏感性Δf\Delta fΔf的函数f:D→Rkf : \mathcal{D} \rightarrow \mathbb{R}^kf:D→Rk,以下机制满足(α,ϵˉ)(\alpha, \bar{\epsilon})(α,ϵˉ)-RDP:

F(x)=f(x)+N(σ2)whereσ2=Δf2α2ϵF(x) = f(x) + \mathcal{N}(\sigma^2) \text{ where } \sigma^2 = \frac{\Delta f^2 \alpha}{2\epsilon} F(x)=f(x)+N(σ2)whereσ2=2ϵΔf2α​

我们可以实现 Rényi 差分隐私的高斯机制,如下所示:

def gaussian_mech_RDP_vec(vec, sensitivity, alpha, epsilon):sigma = np.sqrt((sensitivity**2 * alpha) / (2 * epsilon))return [v + np.random.normal(loc=0, scale=sigma) for v in vec]

Rényi差分隐私的主要优点是高斯机制的紧密组合,而这种组合优势不需要特殊的高级组合定理

Rényi差分隐私的顺序组成定理指出:

如果F1F_1F1​满足(α,ϵ1ˉ)(\alpha, \bar{\epsilon_1})(α,ϵ1​ˉ​)-RDP

并且F2F_2F2​满足(α,ϵ2ˉ)(\alpha, \bar{\epsilon_2})(α,ϵ2​ˉ​)-RDP

则它们的组合满足(α,ϵ1ˉ+ϵ2ˉ)(\alpha, \bar{\epsilon_1} + \bar{\epsilon_2})(α,ϵ1​ˉ​+ϵ2​ˉ​)-RDP

基于这个顺序组合定理,运行(α,ϵˉ)(\alpha, \bar{\epsilon})(α,ϵˉ)-RDP 机制kkk次得到(α,kϵˉ)(\alpha, k\bar{\epsilon})(α,kϵˉ)-RDP.对于给定的噪声水平(即σ2\sigma^2σ2的给定值),使用 RDP 的顺序组合限制重复应用高斯机制的隐私成本,然后转换为(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私,通常会产生比直接在(ϵ,δ)(\epsilon, \delta)(ϵ,δ)差分隐私中执行合成(即使使用高级合成)低得多的隐私成本。

因此,Rényi差分隐私背后的思想已被用于在最近的许多迭代算法中大大改善隐私成本会计,包括Google的Detensorflow的差异私有版本。

最后,与差分隐私的其他变体一样,RDP 提供了后处理属性。

零集中差分隐私

在发布的工作中,Mark Bun和Thomas Steinke提出了零集中差分隐私(zCDP)。 与 RDP 一样,zCDP 是根据 Rényi 散度来定义的,但它只包含一个隐私参数 (ρ\rhoρ)。随机机制FFF满足ρ\rhoρ-zCDP,如果对于所有相邻数据集xxx和x′x'x′,以及所有α∈(1,∞)\alpha \in (1, \infty)α∈(1,∞):

Dα(F(x)∥F(x′))≤ραD_\alpha (F(x) \Vert F(x')) \leq \rho\alpha Dα​(F(x)∥F(x′))≤ρα

这是一个比RDP更强的要求,因为它限制了许多阶数α\alphaα的Rényi散度。但是,随着α\alphaα的增长,边界会变得更加宽松。与 RDP 一样,zCDP 可以转换为(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私:如果FFF满足ρ\rhoρ-zCDP,那么对于δ>0\delta > 0δ>0, FFF满足(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私 ϵ=ρ+2ρlog⁡(1/δ)\epsilon = \rho + 2\sqrt{\rho \log(1/\delta)}ϵ=ρ+2ρlog(1/δ)​。

zCDP也与RDP相似,因为高斯机制可以用作基本机制。具体来说,对于具有L2敏感性Δf\Delta fΔf的函数f:D→Rkf : \mathcal{D} \rightarrow \mathbb{R}^kf:D→Rk,以下机制满足ρ\rhoρ-zCDP:

F(x)=f(x)+N(σ2)whereσ2=Δf22ρF(x) = f(x) + \mathcal{N}(\sigma^2) \text{ where } \sigma^2 = \frac{\Delta f^2}{2\rho} F(x)=f(x)+N(σ2)whereσ2=2ρΔf2​

与 RDP 一样,此机制易于实现:

def gaussian_mech_zCDP_vec(vec, sensitivity, rho):sigma = np.sqrt((sensitivity**2) / (2 * rho))return [v + np.random.normal(loc=0, scale=sigma) for v in vec]

与RDP的另一个相似之处是,zCDP的顺序组成对于高斯机制的重复应用也是渐近紧密的。这也很简单:ρ\rhoρ加起来。具体说来:

顺序组成:

如果F1F_1F1​满足ρ1\rho_1ρ1​-zCDP

并且F2F_2F2​满足ρ2\rho_2ρ2​-zCDP

则它们的组成满足ρ1+ρ2\rho_1+\rho_2ρ1​+ρ2​-zCDP

最后,zCDP 还提供了后处理属性。

差分隐私变体的组合情况

我们应该使用哪种变体,何时使用?

在以下情况下,这些变体将显著收紧隐私成本的界限:

使用高斯机制(特别是在高维向量上)

所讨论的算法多次应用该机制(例如数百或数千次

为了使用 RDP 和 zCDP,我们通常会根据要使用的变体实现一个算法,然后将运行该算法的总隐私开销转换回(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私,以便我们可以将其与其他算法进行比较

为了了解此策略的效果,让我们想象一个应用高斯机制kkk次的算法。我们将修复σ\sigmaσ(即在每次kkk迭代中使用高斯机制添加的噪声量)和δ\deltaδ的值,然后比较每个变体的最终ϵ\epsilonϵ。

我们将看到,对于添加的相同数量的噪声,RDP 和 zCDP 下的合成会导致ϵ\epsilonϵ的值变小。该算法在所有变体下都是相同的(即,它在每种情况下都会添加相同数量的噪声) - 因此这意味着RDP和zCDP为同一算法提供了更严格的隐私成本限制。

sigma = 200.0delta = 1e-5lap_eps = 2*sigma**2xs = np.linspace(0, 500, 100)gauss_eps = np.sqrt(2 * np.log(1.25/delta) / sigma**2)ys_gauss_adv = [2 * gauss_eps * np.sqrt(2 * x * np.log(1/delta)) for x in xs]rho = 1/(2*sigma**2)ys_gauss_zcdp = [(x*rho) + 2*np.sqrt((x*rho) * np.log(1/delta)) for x in xs]alpha = 60rdp_eps = alpha / (2*sigma**2)ys_gauss_rdp = [(x*rdp_eps) + np.log(1/delta)/(alpha-1) for x in xs]ys_moments = [4*np.sqrt(x*np.log(1/delta))/sigma for x in xs]plt.plot(xs, ys_gauss_adv, label="Gaussian+Adv. Comp.")plt.plot(xs, ys_gauss_zcdp, label="Gaussian+zCDP")plt.plot(xs, ys_gauss_rdp, label="Gaussian+RDP")#plt.plot(xs, ys_moments, label="Moments Accountant")plt.xlabel('Number of Iterations')plt.ylabel('Epsilon')plt.ylim(0, 3.0)plt.legend()plt.show();

首先要注意的是,在 zCDP 或 RDP 下使用顺序组合比使用带有(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私的高级组合要好得多。使用高斯机制构建迭代算法时,应始终使用这些变体。

要注意的第二件事是zCDP(橙色)和RDP(绿色)之间的区别。

RDP 的ϵ\epsilonϵ在kkk中线性增长,因为我们已经固定了α\alphaα的值。zCDP 的ϵ\epsilonϵ在kkk中是亚线性的,因为 zCDP 有效地考虑了许多α\alphaα。两条线的触点为kkk,具体取决于为 RDP 选择的α\alphaα (对于α=20\alpha = 20α=20,它们大致接触k=300k=300k=300)

这种差异的实际效果是,在使用RDP时必须仔细选择α\alphaα,以便尽可能严格地约束隐私成本。这通常很容易做到,因为算法通常由α\alphaα参数化。结果,我们可以简单地测试α\alphaα的多个值,看看哪一个值导致最小的相应ϵ\epsilonϵ

由于此测试独立于数据(它主要取决于我们选择的隐私参数以及我们要运行的迭代次数),因此我们可以根据需要测试任意数量的α\alphaα值,而无需支付额外的隐私费用。我们只需要测试α\alphaα的一小部分值 ( 通常在 2 到 100 之间的范围内,即可找到最小值。这是大多数实际实现中采用的方法,包括Google的Tensorflow隐私保护版本。

总结

1、大多数隐私成本边界都是有上限的,但它们有时代表非常宽松的上限,即真正的隐私成本远低于上限。开发差分隐私的新变体的主要动机是实现更严格的隐私成本限制,特别是对于迭代算法,同时保持在实践中有用的隐私定义。

2、无论我们运行多少个查询,在ϵ\epsilonϵ-差分隐私下,我们都不会比顺序组合做得更好。这是因为顺序组合与矢量化查询一样好,我们不能做得比这更好。

3、在顺序组合的情况下,我们可以使用高级组合定理。所有这些加起来,在高级组合定理的情况下,界限要宽松得多。相比较而言"矢量化"版本增长得更慢。我们应该能够在顺序组合方面做得更好!

4、事实证明,差分隐私的定义可以直接用称为最大散度的东西来表示。在统计学中,散度是测量两个概率分布之间距离的一种方式 ,这正是我们想要为差分隐私做的事情。

5、Rényi差分隐私的主要优点是高斯机制的紧密组合,而这种组合优势不需要特殊的高级组合定理。

6、基于这个顺序组合定理,运行(α,ϵˉ)(\alpha, \bar{\epsilon})(α,ϵˉ)-RDP 机制kkk次得到(α,kϵˉ)(\alpha, k\bar{\epsilon})(α,kϵˉ)-RDP.对于给定的噪声水平(即σ2\sigma^2σ2的给定值),使用 RDP 的顺序组合限制重复应用高斯机制的隐私成本,然后转换为(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私,通常会产生比直接在(ϵ,δ)(\epsilon, \delta)(ϵ,δ)差分隐私中执行合成(即使使用高级合成)低得多的隐私成本。因此,Rényi差分隐私背后的思想已被用于在最近的许多迭代算法中大大改善隐私成本会计,包括Google的Detensorflow的差异私有版本。

7、zCDP这是一个比RDP更强的要求,因为它限制了许多阶数α\alphaα的Rényi散度。但是,随着α\alphaα的增长,边界会变得更加宽松。

8、对于添加的相同数量的噪声,RDP 和 zCDP 下的合成会导致ϵ\epsilonϵ的值变小。该算法在所有变体下都是相同的(即,它在每种情况下都会添加相同数量的噪声),因此这意味着RDP和zCDP为同一算法提供了更严格的隐私成本限制。

9、首先要注意的是,在 zCDP 或 RDP 下使用顺序组合比使用带有(ϵ,δ)(\epsilon, \delta)(ϵ,δ)-差分隐私的高级组合要好得多。使用高斯机制构建迭代算法时,应始终使用这些变体。

10、这种差异的实际效果是,在使用RDP时必须仔细选择α\alphaα,以便尽可能严格地约束隐私成本。这通常很容易做到,因为算法通常由α\alphaα参数化。结果,我们可以简单地测试α\alphaα的多个值,看看哪一个值导致最小的相应ϵ\epsilonϵ。

【Rényi差分隐私和零集中差分隐私(差分隐私变体)代码实现】差分隐私代码实现系列(九)

如果觉得《【Rényi差分隐私和零集中差分隐私(差分隐私变体)代码实现】差分隐私代码实现系列(》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。