Approximate Differential Privacy近似差分隐私
• Define approximate differential privacy 定义
• Explain the differences between approximate and pure differential privacy 区别
• Describe the advantages and disadvantages of approximate differential privacy 优缺点
• Describe and calculate L1 and L2 sensitivity of vector-valued queries 向量值查询的敏感度
• Define and apply the Gaussian mechanism 高斯机制
• Apply advanced composition 应用
又叫(𝜖,𝛿) -differential privacy
新的隐私参数𝛿表示定义的“失败概率”。使用概率1 -𝛿,我们将得到与纯差分隐私相同的保证;概率𝛿,我们得不到保证。换句话说:
𝛿越小越好,usually 𝑛12 or less, where 𝑛 is the size of the dataset.
此外,我们将看到(𝜖,𝛿)-差分私有机制在实际使用中不会出现灾难性的失败,正如定义所允许的那样——相反,它们优雅地失败,并且不会做像泄露整个数据集这样糟糕的事情。
7.1 The Gaussian Mechanism高斯机制
高斯机制是拉普拉斯机制的替代,它添加了高斯噪声而不是拉普拉斯算子噪音。高斯机制不满足纯𝜖-differential隐私,但满足(𝜖,𝛿)-差分隐私。根据高斯机制,对于一个返回数字的函数𝑓(𝑥),𝐹(𝑥)的以下定义满足(𝜖,𝛿)-差分隐私:
%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
import pandas as pd
import numpy as np
epsilon = 1
vals_laplace = [np.random.laplace(loc=0, scale=1/epsilon) for x in range(100000)]
delta = 10e-5
sigma = np.sqrt(2 * np.log(1.25 / delta)) * 1 / epsilon
vals_gauss = [np.random.normal(loc=0, scale=sigma) for x in range(100000)]
plt.hist(vals_laplace, bins=50, label='Laplace')
plt.hist(vals_gauss, bins=50, alpha=.7, label='Gaussian');
plt.legend();
高斯机制比laplace机制更远离真实数据。
缺点:1.它需要使用宽松的定义
2.没有laplace精确
7.2 Vector-Valued Functions and their Sensitivities向量值函数及其灵敏度
到目前为止我们只考虑了实数函数(函数的输出只是单独的真实数据。)但是不管是高斯机制或者laplace机制都可以扩张成向量-价值函数,返回实数向量。我们可以将直方图视为向量值函数,它返回一个向量,其中的元素由直方图的箱子计数组成。
函数的敏感度:
向量值函数的敏感度:
考虑表达式𝑓(𝑥)−𝑓(𝑥’)。如果𝑓是向量值函数,则该表达式表示其差值。两个向量可以计算对应元素的差,生成一个新的长度为k的向量。
向量的规模即为f的敏感度:
7.2.1 L1 and L2 Norms
1.长度为k的向量V的L1范数,向量元素总和。在二维空间中,两个向量之间的差的𝐿1范数产生了它们之间的“曼哈顿距离”。
2.长度为k的向量V的L2范数,向量元素平方总和再开根号。在二维空间中,两个向量之间的差的𝐿1范数产生了它们之间的“曼哈顿距离”。在二维空间中,这是“欧氏距离”,它总是小于或等于𝐿1距离。
7.2.2 L1 and L2 Sensitivities
这等于元素灵敏度的和。例如,如果我们定义一个向量值函数𝑓,它返回一个长度为-𝑘的敏感结果向量,则𝑓的𝐿1灵敏度为𝑘。
使用上面的相同示例,向量值函数𝑓返回长度为𝑘的1-敏感结果向量为𝐿2的敏感性√𝑘。对于长向量,𝐿2的灵敏度将明显比𝐿1的灵敏度低得多!对于一些应用程序,如机器学习算法(有时返回包含数千个元素的向量),𝐿2灵敏度明显低于𝐿1灵敏度。
7.2.3 Choosing Between L1 and L2之间的选择
如前所述,拉普拉斯和高斯机制都可以扩展到向量值函数。然而,这两个扩展之间有一个关键的区别:向量值的拉普拉斯机制需要使用𝐿1灵敏度,而向量值高斯机制允许使用𝐿1或𝐿2灵敏度。这是一个重要的高斯机构的强度。对于𝐿2灵敏度远低于𝐿1灵敏度的应用程序高斯机制允许添加更少的噪声。
两种计算
7.3 The Catastrophe Mechanism巨灾机制
(𝜖,𝛿)-差分隐私的定义说,1−𝛿的概率满足定义,同时𝛿的概率意味着它为所欲为。这种“失效概率”是否值得关注,因为满足宽松定义的机制可能(以低概率)导致非常糟糕的结果结果。
灾难机制:
r是均匀分布中随机取出来一个数。
概率为1−𝛿时,突变机制满足𝜖-差分隐私。
当概率为𝛿,它泄露了整个数据集,没有噪声。
该机制满足近似差分隐私的定义,但我们可能不想在实践中使用它。幸运的是,大多数(𝜖, 𝛿)-差异私有机制没有这种灾难性的故障模式。相反,有𝛿的概率高斯分布不完全满足𝜖-差异隐私,但是满足c𝜖-差异隐私,c是某种价值。
高斯机制优雅地失败了,因此,对高斯机制比突变机制更有信心是合理的。稍后,我们将看到该定义的其他放宽版本区分优雅失败的机制(如高斯机制)和失败的机制灾难性的失败(就像灾难机制)。
7.4 Advanced Composition高级组成
事实证明(𝜖, 𝛿)-差异隐私提供了一种分析顺序组成差分隐私组成的新方法,可以降低隐私成本。
高级组成理念通常开始依据在以k-fold适应性组成为样例的机制上。
k-fold适应性组成是一个m1,m2,…mk等一连续的组成。
• 每个机制𝑚𝑖可以根据所有先前机制的输出选择𝑚1,…,𝑚𝑖−1(因此是自适应的)
• 每个机制的输入𝑚𝑖既是私有数据集,也是之前机制的所有输出(因此组合)
迭代程序(即循环或递归函数)几乎总是𝑘-fold自适应合成的实例。例如,一个运行1000次迭代的for循环就是一个1000倍自适应组合。作为一个更具体的例子,平均攻击是一个𝑘-fold自适应合成:
在本例中,机制的顺序是预先固定的(我们每次都使用相同的机制),并且𝑘= 500。标准顺序组合定理表示,该机制的总隐私成本为𝑘𝜖(在本例中为500𝜖)。高级复合定理说:
- 如果每个机制𝑚𝑖在一个𝑘-fold自适应组成中𝑚1,…,𝑚𝑘满足𝜖-differential的隐私
- 那么对于任何𝛿≥0,整个𝑘-fold自适应组合满足(𝜖’,𝛿’)-差异隐私,其中:
从上面的例子中插入𝜖= 1,并设置𝛿’ = 10−5,我们得到:
因此,对于相同的机制,高级组合在𝜖’上得到的边界要比顺序组合低得多。这是什么意思?这意味着顺序组合给出的界限是松散的——它们没有严格限制计算的实际隐私成本。事实上,高级合成也会给出宽松的边界——它们只是比顺序合成给出的边界稍微宽松一些。
一定要注意,这两个边界在技术上是不可比较的,因为高级合成引入了𝛿。当𝛿很小,但是我们经常比较两种方法给出的𝜖s。
那么,我们应该总是使用高级合成吗?事实证明,我们不应该这样做。让我们对𝑘的不同值尝试上面的实验,并绘制出顺序合成和高级合成下的总隐私成本。
事实证明,在𝑘小于约70的情况下,标准顺序组合胜过高级组合。因此,高级合成只有在𝑘较大(例如超过100)时才真正有用。当𝑘非常大的时候,虽然,高级合成会有很大的不同。
7.5 Advanced Composition for Approximate Differential Privacy近似差分隐私的高级合成
上述高级合成的描述要求被合成的单个机制满足纯粹的𝜖-differential隐私。然而,如果它们满足(𝜖,𝛿)-差分隐私,则该定理也适用。高级复合定理的更一般的表述如下([7],定理3.20):
- 如果每个机制𝑚𝑖在一个𝑘-fold自适应组成中𝑚1,…,𝑚𝑘满足 (𝜖, 𝛿)-differential的隐私
- 那么对于任何𝛿′ ≥ 0,整个𝑘-fold自适应组合满足 (𝜖′, 𝑘𝛿 + 𝛿′)-差异隐私,其中:
唯一的区别是组合机制的失败参数𝛿,其中我们有一个额外的𝑘𝛿术语。当所组成的机制满足纯𝜖-differential隐私时,则𝛿=𝑘𝛿= 0,我们得到相同的结果如上所述。