ε-差分隐私之拉普拉斯噪声机制
- 差分隐私的描述
- 1-范式的定义:使用matlab调用函数norm(x, 1)
- 更多范式见 范式
- 差分隐私的定义应该满足
拉普拉斯噪声的证明全过程如下:
DP方向差分隐私证明是基本入门!!!
-拉普拉斯噪声分布代码
Laplace分布的概率密度函数的形式是:
使用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()
使用np.random.laplace获得随机样本的值:
上面用的是折线图来展现拉布拉斯分布的数据,用直方图来进行显示的话大致的曲线也是一样的。可以看出也是符合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()
代码实现效果图: