差分隐私-Laplace机制的简单证明

Laplace函数

f ( x ∣ μ , b ) = 1 2 b e − ∣ x − μ ∣ b f(x|μ,b)=\frac{1}{2b}e^{\frac{-|x-μ|}{b}} f(xμ,b)=2b1ebxμ
其图像为:

image-20200420182643294

​ 其中 μ μ μ表示期望,图像上表示对称轴, x x x代表变量, b b b代表参数。

​ 对于该函数,其期望为 μ μ μ,方差为 2 b 2 2b^2 2b2,这里的证明,比较简单,略。

​ 在差分隐私中通常,令 μ μ μ等于0, b b b等于 Δ f ε \frac{\Delta f}{\varepsilon} εΔf,此时函数Laplace函数记为:
L a p ( Δ f ε ) = 1 ( 2 Δ f ε ) e − ∣ x ∣ ( Δ f ε ) Lap(\frac{\Delta f}{\varepsilon})=\frac{1}{(\frac{2\Delta f}{\varepsilon})}e^{\frac{-|x|}{(\frac{\Delta f}{\varepsilon})}} Lap(εΔf)=(ε2Δf)1e(εΔf)x
化简为
L a p ( Δ f ε ) = ε 2 Δ f e − ε ∣ x ∣ Δ f Lap(\frac{\Delta f}{\varepsilon})=\frac{\varepsilon}{2\Delta f}e^{\frac{-\varepsilon|x|}{\Delta f}} Lap(εΔf)=2ΔfεeΔfεx

Laplace噪声满足 ε \varepsilon ε-差分隐私定义

差分隐私定义:

​ 对于相邻的数据集 D D D D ’ D’ D,他们两者之多相差一条数据。然后给定一个映射函数 f : D → R d f:D\rightarrow R^d f:DRd。它表示一个数据集 D D D到一个 d d d维空间的映射关系。对于所得的函数 f ( D ) = ( x 1 , x 2 , … , x d ) T f(D)=(x_1,x_2,\dots,x_d)^T f(D)=(x1,x2,,xd)T上加入Laplace噪声,得到输出函数 M ( D ) M(D) M(D)

​ 可记为:
M ( D ) = f ( D ) + ( L a p 1 ( Δ f ε ) , … , L a p d ( Δ f ε ) ) T M(D)=f(D)+(Lap_1(\frac{\Delta f}{\varepsilon}),\dots,Lap_d(\frac{\Delta f}{\varepsilon}))^T M(D)=f(D)+(Lap1(εΔf),,Lapd(εΔf))T
​ 如果横着看不习惯,可以竖着看(看成列向量)。

​ 关键点:

Δ f = max ⁡ D , D ′ ∣ ∣ f ( D ) − f ( D ′ ) ∣ ∣ p \Delta f=\max \limits_{D,D'}||f(D)-f(D')||_p Δf=D,Dmaxf(D)f(D)p,其中 p p p一般取值为1,即一范数。

​ 算法 M M M满足差分隐私定义条件是:
P r [ M ( D ) ∈ S ] ⩽ e ε ∗ P r [ M ( D ′ ) ∈ S ] Pr[M(D)\in S]\leqslant e^\varepsilon * Pr[M(D')\in S] Pr[M(D)S]eεPr[M(D)S]
S S S表示为一组观察到的所有序列组合。类比于函数的值域。

证明

​ 首先,得出 Δ f \Delta f Δf的表示具体表示形式。

​ 设, f ( D ) = ( x 1 , … , x d ) T f(D)=(x_1,\dots,x_d)^T f(D)=(x1,,xd)T f ( D ′ ) = ( x 1 ′ , … , x d ′ ) T = ( x 1 + Δ x 1 , … , x d + Δ x d ) T f(D')=(x'_1,\dots,x'_d)^T=(x_1+\Delta x_1,\dots,x_d+\Delta x_d)^T f(D)=(x1,,xd)T=(x1+Δx1,,xd+Δxd)T

则:

Δ f = max ⁡ D , D ′ ( ∑ i = 1 n ( ∣ x i − x i ′ ∣ ) ) = max ⁡ D , D ′ ( ∑ i = 1 n ∣ Δ x i ∣ ) \Delta f=\max \limits_{D,D'}(\displaystyle \sum_{i=1}^n(|x_i-x'_i|)) = \max \limits_{D,D'}(\displaystyle \sum_{i=1}^n|\Delta x_i|) Δf=D,Dmax(i=1n(xixi))=D,Dmax(i=1nΔxi)

​ 为了简化,假定所有的 x i x_i xi均为0,那么 f ( D ) = ( 0 , … , 0 ) T f(D)=(0,\dots,0)^T f(D)=(0,,0)T f ( D ′ ) = ( Δ x 1 , … , Δ x d ) T f(D')=(\Delta x_1,\dots,\Delta x_d)^T f(D)=(Δx1,,Δxd)T

​ 记一个输出序列(向量) S = ( y 1 , … , y d ) T S=(y_1,\dots,y_d)^T S=(y1,,yd)T

​ 证明技巧:化为分式比较

P r [ M ( D ) ∈ S ] = ∏ i = 1 d ε 2 Δ f e − ε Δ f ∣ y i ∣ Pr[M(D)\in S]=\displaystyle\prod_{i=1}^d\frac{\varepsilon}{2\Delta f}e^{-\frac{\varepsilon}{\Delta f}|y_i|} Pr[M(D)S]=i=1d2ΔfεeΔfεyi,累乘号,是因为 x i x_i xi独立同分布

P r [ M ( D ′ ) ∈ S ] = ∏ i = 1 d ε 2 Δ f e − ε Δ f ∣ y i − Δ x i ∣ Pr[M(D')\in S]=\displaystyle\prod_{i=1}^d\frac{\varepsilon}{2\Delta f}e^{-\frac{\varepsilon}{\Delta f}|y_i-\Delta x_i|} Pr[M(D)S]=i=1d2ΔfεeΔfεyiΔxi

​ 二者相比:
P r [ M ( D ) ∈ S ] P r [ M ( D ′ ) ∈ S ] = ∏ i = 1 d ε 2 Δ f e − ε Δ f ∣ y i ∣ ∏ i = 1 d ε 2 Δ f e − ε Δ f ∣ Δ x i − y i ∣ = ∏ i = 1 d e − ε 2 Δ f ( ∣ y i ∣ − ∣ y i − Δ x i ∣ ) = e ε Δ f ∑ i = 1 d ( ∣ y i − Δ x i ∣ − ∣ y i ∣ ) \frac{Pr[M(D)\in S]}{Pr[M(D')\in S]}=\frac{\displaystyle\prod_{i=1}^d\frac{\varepsilon}{2\Delta f}e^{-\frac{\varepsilon}{\Delta f}|y_i|}}{\displaystyle\prod_{i=1}^d\frac{\varepsilon}{2\Delta f}e^{-\frac{\varepsilon}{\Delta f}|\Delta x_i-y_i|}}=\displaystyle \prod_{i=1}^d e^{-\frac{\varepsilon}{2\Delta f}(|y_i|-|y_i-\Delta x_i|)}=e^{\frac{\varepsilon}{\Delta f} \displaystyle \sum_{i=1}^d(|y_i-\Delta x_i|-|y_i|)} Pr[M(D)S]Pr[M(D)S]=i=1d2ΔfεeΔfεΔxiyii=1d2ΔfεeΔfεyi=i=1de2Δfε(yiyiΔxi)=eΔfεi=1d(yiΔxiyi)
​ 由基本不等式知:
∣ y i − Δ x i ∣ − ∣ y i ∣ ≤ ∣ y i − Δ x i − y i ∣ = ∣ Δ x i ∣ |y_i-\Delta x_i|-|y_i| \leq |y_i -\Delta x_i -y_i|=|\Delta x_i| yiΔxiyiyiΔxiyi=Δxi
​ 故上式:
∑ i = 1 d ( ∣ y i − Δ x i ∣ − ∣ y i ∣ ) ≤ ∑ i = 1 n ∣ Δ x i ∣ ≤ max ⁡ D , D ′ ( ∑ i = 1 n ∣ Δ x i ∣ ) = Δ f \sum_{i=1}^d(|y_i-\Delta x_i|-|y_i|) \leq \sum_{i=1}^n|\Delta x_i| \leq \max \limits_{D,D'}(\sum_{i=1}^n|\Delta x_i|)=\Delta f i=1d(yiΔxiyi)i=1nΔxiD,Dmax(i=1nΔxi)=Δf
​ 于是有:


P r [ M ( D ) ∈ S ] P r [ M ( D ′ ) ∈ S ] ⩽ e ε \frac{Pr[M(D)\in S]}{Pr[M(D')\in S]} \leqslant e^{\varepsilon} Pr[M(D)S]Pr[M(D)S]eε
​ 得证。即 P r [ M ( D ) ∈ S ] ⩽ e ε ∗ P r [ M ( D ′ ) ∈ S ] {Pr[M(D)\in S]} \leqslant e^{\varepsilon} * {Pr[M(D')\in S]} Pr[M(D)S]eεPr[M(D)S]

​ 再由对称性知, P r [ M ( D ′ ) ∈ S ] ⩽ e ε ∗ P r [ M ( D ) ∈ S ] {Pr[M(D')\in S]} \leqslant e^{\varepsilon} * {Pr[M(D)\in S]} Pr[M(D)S]eεPr[M(D)S]

其他问题

我们已经知道,噪声是符合Laplace机制的,这样是符合差分隐私的定义的。问题是:

  1. M ( D ) = f ( D ) + ( L a p 1 ( Δ f ε ) , … , L a p d ( Δ f ε ) ) T M(D)=f(D)+(Lap_1(\frac{\Delta f}{\varepsilon}),\dots,Lap_d(\frac{\Delta f}{\varepsilon}))^T M(D)=f(D)+(Lap1(εΔf),,Lapd(εΔf))T,这个“加法”是普通的加法就好了吗?对于数据集 D D D的分布有什么要求吗?还是说任意数据都可以呢?
  2. 在累乘时,我们默认是独立同分布的,那么非独立同分布数据也可以这样算吗?
  3. Δ f \Delta f Δf的定义时,我们假定是用一范数的,用其他范数来度量可以吗?答案是否定的,不可以。具体分析可以参考这篇文章

image-20200420202833807

  1. 根据范数的定义可知道, ∣ ∣ x ⃗ ∣ ∣ p ||\vec x||_p x p是一个随着 p p p增大而不断减小的递减函数。这个结论是明显的,但是证明,现在我还不会。对于这题而言,这个范数的证明,是无关紧要的。但是这个结论是需要记住的。

参考自MathThinker

数学公式的排版好费时间呀,得多敲!排版公式的语法总结,后面写多了再做。

  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
_salary DECIMAL(10,2); DECLARE allowance DECIMAL(10,2); SELECT s.basic_salary, s.post_salary, s差分隐私是一种在保护数据隐私的同时,允许对数据进行分析的技术。Lap.allowance INTO basic_salary, post_salary, allowance FROM salary s WHERE s.employee_id = employee_id; RETURN basiclace机制差分隐私中常用的一种噪声添加方法,可以在查询中添加噪声以保护_salary + post_salary + allowance; END; ``` 4. 计算部门的平均工资的存储函数 ``` CREATE FUNCTION `get_department_avg_salary`(department_id INT) RETURNS DECIMAL(10,2) BEGIN DECLARE total_salary DECIMAL查询结果的隐私。 Java实现Laplace机制: ```java import java.util.Random; public class LaplaceMechanism(10,2); DECLARE employee_count INT; SELECT SUM(s.basic_salary + s.post_salary + s.allowance), COUNT(e.id { /** * @param epsilon 隐私预算 * @param sensitivity 敏感度 * @param value 原始) INTO total_salary, employee_count FROM employee e LEFT JOIN salary s ON e.id = s.employee_id WHERE e查询结果 * @return 添加拉普拉斯噪声后的查询结果 */ public static double addNoise(double epsilon.department_id = department_id; RETURN total_salary / employee_count; END; ``` 5. 查询所有职工的总工资, double sensitivity, double value) { Random rand = new Random(); double u = rand.nextDouble() - 0.5; double laplaceNoise = -sensitivity / epsilon * Math.signum(u) * Math.log(1 - 2 * Math.abs(u)); 和平均工资的存储过程 ``` CREATE PROCEDURE `get_employee_salary_statistic`() BEGIN SELECT SUM return value + laplaceNoise; } } ``` Python实现Laplace机制: ```python import random import(s.basic_salary + s.post_salary + s.allowance) AS total_salary, AVG(s.basic_salary + s.post_salary + s.allowance) AS avg_salary FROM salary s; END; ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值