Programming Differential Privacy第五章

差异隐私的属性

1.解释顺序组合、并行组合和后处理的概念
2.计算不同隐私机制的多个应用程序的累积隐私成本
3.确定何时允许使用并行组合
下面定义三种有用的方法用在算法中

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')

5.1Sequential Composition

这限制了在同一输入数据上发布不同私有机制的多个结果的总隐私成本。形式上,差异隐私的序列合成定理表示:
• If 𝐹1(𝑥) satisfies 𝜖1-differential privacy
• And 𝐹2(𝑥) satisfies 𝜖2-differential privacy
• Then the mechanism 𝐺(𝑥) = (𝐹1(𝑥), 𝐹2(𝑥)) which releases both results satisfies 𝜖1 + 𝜖2-differential privacy
这段话说明差分隐私具有累积性。顺序组成
顺序组合是差分隐私的一个重要属性,因为它允许设计不止一次查阅数据的算法。当对一个数据集执行多个单独的分析时,顺序组合也很重要,因为它允许个人通过参与所有这些分析来限制他们所产生的“总”隐私成本。
顺序组合给出的隐私成本的界限是一个“上”界限——两个特定的不同的私有发布的实际隐私成本可能比这个,但永远不会更大。

# plot F1
plt.hist([F1() for i in range(1000)], bins=50, label='F1');

# plot F2 (should look the same)
plt.hist([F2() for i in range(1000)], bins=50, alpha=.7, label='F2');
plt.legend();

形状很相似
在这里插入图片描述

# plot F1
plt.hist([F1() for i in range(1000)], bins=50, label='F1');

# plot F3 (should look "pointier")
plt.hist([F3() for i in range(1000)], bins=50, alpha=.7, label='F3');
plt.legend();

F3更集中,因为𝜖 更大
a

# plot F1
plt.hist([F1() for i in range(1000)], bins=50, label='F1');

# plot F_combined (should look "pointier")
plt.hist([F_combined() for i in range(1000)], bins=50, alpha=.7, label='F_combined');
plt.legend();

F_combined更集中,这意味着它的答案比F1的更准确,所以它的𝜖必须更高(即它比F1产生更少的隐私)是有道理的。
v

# plot F1
plt.hist([F3() for i in range(1000)], bins=50, label='F3');

# plot F_combined (should look "pointier")
plt.hist([F_combined() for i in range(1000)], bins=50, alpha=.7, label='F_combined');
plt.legend();

事实上,F3看起来“更尖了”!顺序组合产生了几个版本的𝜖的上限,对隐私的实际累积影响可能更低。这里的情况就是这样——在这种情况下,实际的隐私损失似乎略低于由顺序组合确定的上限𝜖。顺序组合是控制总体隐私成本的一种非常有用的方法,我们将看到它在许多不同的方面被使用,但请记住,它不一定是一个精确的界限。
d

5.2 Parallel Composition

并行组合可以被视为顺序组合的替代方案——这是计算多个数据发布的总隐私成本的第二种方法。并行组合的思想是将数据集分割成不相交的块,并在每个块上分别运行不同的私有机制。由于数据块是不相交的,每个个体的数据出现在恰好的一个数据块中——所以即使总共有k的数据块(因此该机制运行k次),该机制在每个个体的数据上只运行一次。
• If 𝐹(𝑥) satisfies 𝜖-differential privacy
• And we split a dataset 𝑋 into 𝑘 disjoint chunks such that 𝑥1 ∪ … ∪ 𝑥𝑘 = 𝑋
• Then the mechanism which releases all of the results 𝐹(𝑥1), …, 𝐹(𝑥𝑘) satisfies 𝜖-differential privacy
并行组合更好,因为运行F()k次的话,顺序组合说这是k𝜖-differential隐私。并型组合总隐私成本仅为𝜖。
如果数据集中的每个参与者都贡献一行𝑋, 然后此行将恰好出现在其中一个块中𝑥1., …, 𝑥𝑘.这意味着𝐹 将只“看到”此参与者的数据一次,意味着隐私成本𝜖 适合该个人。由于该财产适用于所有个人,因此隐私成本是𝜖 对每个人来说。

5.2.1Histograms柱状图

在我们的上下文中,直方图是对数据集的分析,它根据一个数据属性的值将数据集划分为“箱”,并计算每个箱中的行数。例如,直方图可以计算数据集中达到特定教育水平的人数。

adult = pd.read_csv("adult_with_pii.csv")
adult['Education'].value_counts().to_frame().head(5)


Education
HS-grad	10501
Some-college	7291
Bachelors	5355
Masters	1723
Assoc-voc	1382

直方图对于差分隐私特别有趣,因为它们自动满足并行组合。直方图中的每个“bin”都由一个数据属性的可能值定义(例如,‘Education’‘HS-grad’)。
单行不可能同时拥有一个属性的两个值,因此以这种方式定义容器可以确保它们是分离的。因此,我们已经满足了并行组合的要求,并且可以使用差分隐私机制来释放所有的bin计数,而总私有成本仅为𝜖。

epsilon = 1
f = lambda x: x + np.random.laplace(loc=0, scale=1/epsilon)
s = adult['Education'].value_counts().apply(f)
s.to_frame().head(5)


			Education
HS-grad	10500.906639
Some-college	7291.847396
Bachelors	5357.873869
Masters	1723.745979
Assoc-voc	1381.895589

5.2.2Contingency Tables列列表

列联表或交叉表(通常缩写为crosstab)类似于多维直方图。它统计数据集中同时具有多个属性值的行出现的频率。在分析数据时,列联表常用来表示两个变量之间的关系。例如,我们可能希望同时查看基于教育水平和性别的计数:多维表

pd.crosstab(adult['Education'], adult['Sex']).head(5)

与前面看到的直方图一样,数据集中的每个个体只参与了表中出现的一次计数。对于构建列联表时考虑的任何一组数据属性来说,任何一行都不可能同时有多个值。因此,在这里使用并行组合也是安全的。

ct = pd.crosstab(adult['Education'], adult['Sex'])
f = lambda x: x + np.random.laplace(loc=0, scale=1/epsilon)
ct.applymap(f).head(5)

	Sex		Female	Male
Education		
10th	295.419180	638.916314
11th	429.561261	742.399131
12th	143.765760	288.433161
1st-4th	41.595746	121.788742
5th-6th	83.902621	249.121173

也可以生成包含2个以上变量的列联表。不过,考虑一下每次添加变量时会发生什么:每次计数都会变小。直观地说,当我们将数据集分成更多的块时,每个块包含的行更少,因此所有的计数都更小。
这些减少的计数可能会对我们从中计算的差分隐私结果的准确性产生重大影响。如果我们从信号和噪声的角度考虑问题,一个大的计数代表一个强信号——它不太可能被相对较弱的噪声(如我们上面添加的噪声)干扰太多,因此即使添加了噪声,结果也可能有用。然而,一个小的计数表示一个弱信号——可能和噪声本身一样弱——在我们添加噪声之后,我们将无法从结果中推断出任何有用的东西

因此,虽然并行组合看起来给了我们一些“免费”的东西(相同的隐私成本却得到了更多的结果),但事实并非如此。并行组合只是沿着不同的轴移动了准确性和隐私之间的权衡——当我们将数据集分割成更多的块并发布更多的结果时,每个结果包含一个更弱的信号,因此它不那么准确。

个人理解:数据分为多个块以后,就好比信号一样,数据越小更容易收到噪声干扰,容易失真,不准确。

5.3 Post-processing

不可能通过某种方式对数据进行后处理来逆转差分隐私提供的隐私保护。
• If 𝐹(𝑋) satisfies 𝜖-differential privacy
• Then for any (deterministic or randomized) function 𝑔, 𝑔(𝐹(𝑋)) satisfies 𝜖-differential privacy
•如果𝐹(𝑋)满足𝜖-differential隐私
•对于任何(确定性或随机)函数𝑔,𝑔(𝐹(𝑋))满足𝜖-differential隐私

后处理特性意味着对差分的输出执行任意计算总是安全的私有机制——没有逆转机制提供的隐私保护的危险。它是可以执行可能减少噪声或改善机制输出中的信号的后处理(例如替换如果查询不应该返回负数,则返回0)。

事实上,许多复杂的差异私有算法利用后处理来减少噪声,提高结果的准确性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值