文章目录
Laplace噪声与DP
Laplace噪声的概率密度
f ( x ∣ μ , b ) = 1 2 b e − ∣ x − μ ∣ b f(x|μ,b)=\frac{1}{2b}e^{\frac{-|x-μ|}{b}} f(x∣μ,b)=2b1eb−∣x−μ∣
Laplace噪声函数的图像
敏感度
这里的== L a p ( Δ f ε ) Lap(\frac{\Delta f}{\varepsilon}) Lap(εΔf)==即表示上面提到的拉普拉斯噪声中 μ = 0 \mu=0 μ=0, b = Δ f ε b=\frac{\Delta f}{\varepsilon} b=εΔf
L a p ( Δ f ε ) Lap(\frac{\Delta f}{\varepsilon}) Lap(εΔf)中的参数对隐私保护强度的影响
-
有了Δf 之后,自然想:== Δ f \Delta f Δf越大, ε \varepsilon ε越小,噪声也就越大。 Δ f \Delta f Δf越小, ε \varepsilon ε越大,噪声也就越大。==原因解释见后面。
解释:
L a p ( Δ f ε ) = 1 ( 2 Δ f ε ) e − ∣ x ∣ ( Δ f ε ) = ε 2 Δ f e − ε ∣ x ∣ Δ f Lap(\frac{\Delta f}{\varepsilon})=\frac{1}{(\frac{2\Delta f}{\varepsilon})}e^{\frac{-|x|}{(\frac{\Delta f}{\varepsilon})}}=\frac{\varepsilon}{2\Delta f}e^{\frac{-\varepsilon|x|}{\Delta f}} Lap(εΔf)=(ε2Δf)1e(εΔf)−∣x∣=2ΔfεeΔf−ε∣x∣
- ε , Δ f \varepsilon,\Delta f ε,Δf共同决定,函数的峰值,若想实现更好的保护,即要加入更多的噪声(这里体现是提高返回和原数据 x i x_i xi差别较大 的值的概率)
- 比如,原数据是12,保护时返回了120(夸张一下)的概率提高了,那么就很有可能返回就是120,虽然也有可能返回的是13(这个值相比较120和12差不多,保护性可能就没有那么强)。我们要的保护,不是总要返回一个很离谱的值,我们要做的是,返回一个和真实值较大差别的值的概率较大(这样这个离谱的值就有可能出现)【虽然这个例子不是很好,但是可以帮助理解】
基于上面的解释,Laplace噪声可以满足差分隐私保护的约束条件了,那么问题就变为了,怎么提高“离谱值”的概率呢?
-
单纯的 x x x(非数据集 X X X)可不可做手脚呢?【要不要将他们全部化为一个xx的分布呢?比如均匀?,这个暂不清楚,但是真实数据集 X X X的手脚有一些,主要包括组合性质中的串行和并行两种。】结论就是,数据集肯定是可以做手脚的,考虑组合性质。至于数据本身要不要进行归一化等操作,待试验论证。
-
μ \mu μ已经规定死了,就是0了。这个就不用这改变了。( μ \mu μ为0是为了保证,不出现较大偏差,保护的数据集的期望可能的不变。当然不变是最好的,因为,不变的话,至少数据的期望是可用的呀。既保证了数据安全,有保证数据可用性。)
-
那就只剩下 Δ f , ε \Delta f,\varepsilon Δf,ε这两个变量了。一, ε \varepsilon ε是人为指定的,随意性和经验性太强(我就是要设为0.1,我就是要设为0.5,你管我?我就是想)。二, Δ f \Delta f Δf是由敏感度确定的,这是有约束条件的,至少一般用兄弟数据集,他就确定为1了(即 Δ f = 1 \Delta f=1 Δf=1)。
- 假定,这两个变量,咱们不考虑这些背景。就是单纯的从函数上说,目标是就是想提高那个离谱值的输出概率,怎么办?->很简单,让这个函数变得平缓就好了呀。(如果大家都一样,那么最有可能”以假乱真“,出现”滥竽充数“的离谱值)。那要怎么让Laplace噪声函数变的平缓呀?!
- 让 ε \varepsilon ε变小
- 让 Δ f \Delta f Δf变大
- 或两者都考虑,让 ε \varepsilon ε变小,让 Δ f \Delta f Δf变大。
- 至于说,你怎么知道让这两个变量这样变化就能达到让函数变平缓的效果?自己画图,或者自己函数分析一下,就能得出结论了。
- 假定,这两个变量,咱们不考虑这些背景。就是单纯的从函数上说,目标是就是想提高那个离谱值的输出概率,怎么办?->很简单,让这个函数变得平缓就好了呀。(如果大家都一样,那么最有可能”以假乱真“,出现”滥竽充数“的离谱值)。那要怎么让Laplace噪声函数变的平缓呀?!
-
其他关于等式变形
e θ q + δ = e θ ∗ ( q + δ e θ ) = e θ ∗ q ′ e^\theta q+\delta = e^\theta *(q + \frac{\delta}{e^\theta})=e^\theta*q' eθq+δ=eθ∗(q+eθδ)=eθ∗q′
从形式上看,这就是简单的运算。这个针对完整版的差分隐私,那个 δ \delta δ去了哪里?反过来看就一目了然了!
e θ ∗ p = e θ ∗ ( p ′ + δ e θ ) = e θ p ′ + δ e^\theta*p=e^\theta*(p' + \frac{\delta}{e^\theta})=e^\theta p'+\delta eθ∗p=eθ∗(p′+eθδ)=eθp′+δ
那么 δ = ( p − p ′ ) ∗ e θ \delta =(p-p')*e^\theta δ=(p−p′)∗eθ,若 δ \delta δ为 0 0 0,说明 p = p ′ p=p' p=p′。个人感觉在实际过程中,我就没考虑过 δ \delta δ。
Laplace机制的应用
- 案例一:Counting Queries(统计查询)
一般来说统计查询形如这样:“How many elements in the dataset satisfy property P”。即查询数据集中有多少条记录满足给定的条件。根据敏感度的定义,Counting Queries中敏感度为1(即 Δ f = 1 \Delta f =1 Δf=1)。所以直接在查询结果上加Lap(0, 1/ε) 的噪声即可。
- 案例二:Histogram Queries(直方图查询)
在直方图查询中,首先作出数据的直方图,每一个直方图中的数据表示当前块(cell)中有多少记录。直方图查询即查询每一个cell中有多少记录。由于每个cell是独立的,改变数据集中一条记录只会影响到一个cell,因此敏感度为1。在这个模式下,和Counting Queries一样敏感度为1,(即 Δ f = 1 \Delta f =1 Δf=1),只需要加上 Lap(0, 1/ε) 的噪声。
参考自:知乎Dper