ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)

ε-差分隐私之拉普拉斯噪声机制

  • 差分隐私的描述
    ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第1张图片
  • 1-范式的定义:使用matlab调用函数norm(x, 1)
  • 更多范式见 范式
    ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第2张图片
  • 差分隐私的定义应该满足
    ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第3张图片

拉普拉斯噪声的证明全过程如下
ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第4张图片
ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第5张图片
ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第6张图片
ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第7张图片
DP方向差分隐私证明是基本入门!!!

-拉普拉斯噪声分布代码
Laplace分布的概率密度函数的形式是:
在这里插入图片描述
ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第8张图片
使用python - matplotlib来绘制概率分布图

import matplotlib.pyplot as plt
import numpy as np
def laplace_function(x, lambda_):
    return (1/(2*lambda_)) * np.e**(-1*(np.abs(x)/lambda_))
x = np.linspace(-5,5,10000)
y1 = [laplace_function(x_,1) for x_ in x]
y2 = [laplace_function(x_,2) for x_ in x]
y3 = [laplace_function(x_,0.5) for x_ in x]

plt.plot(x, y1, color='r', label="lambda:1")
plt.plot(x, y2, color='g', label="lambda:2")
plt.plot(x, y3, color='b', label="lambda:0.5")

plt.title("Laplace distribution")
plt.legend()
plt.show()

ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第9张图片
使用np.random.laplace获得随机样本的值
ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第10张图片
上面用的是折线图来展现拉布拉斯分布的数据,用直方图来进行显示的话大致的曲线也是一样的。可以看出也是符合Laplace分布。

import numpy as np
laplace1 = np.random.laplace(0, 1, 10000)
laplace2 = np.random.laplace(0, 2, 10000)

import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(1,2, sharex=True, sharey=True)
ax1.hist(laplace1,bins=1000, label="lambda:1")
ax1.legend()

ax2.hist(laplace2, bins=1000, label="lambda:2")
ax2.legend()
plt.show()

代码实现效果图
ε-差分隐私之拉普拉斯噪声机制(定义 + 证明 + 代码)_第11张图片

你可能感兴趣的:(差分隐私,大数据)