美文网首页
差分隐私2019-03-07

差分隐私2019-03-07

作者: lijunmn | 来源:发表于2019-03-07 11:48 被阅读0次

差分隐私的定义

数据的距离:
对于数据库 x ,它的第一范数为:
||x||_1=\sum_{i=1}^{|X|}x_i
两个数据库 x 和 y 的l_1 距离是||x-y||_1。对于||x||_1表示数据库x的大小。||x-y||_1表示数据x和y不同元素的个数

(\varepsilon,\delta)\ \ differential\ \ privacy:
定义1:一个随机算法M,其值域范围为N^{|X|},对于所有的S\in Range(M),和对于所有的x和y, 满足||x||_1\le1有:
Pr[M(x)\in S] \le exp(\varepsilon)Pr[M(y)\in S]+\delta
\delta=0时,其满足\varepsilon-differential private

Laplace 机制

通过Laplace 函数可以个某个查询f增加噪音,实现差分隐私
定义2:Laplace 分布,随机变量x满足以下式子,其中a,b是参数
L(x|a;b)=\frac{1}{2b}exp(-\frac{x-a}_{b})
服从这个分布的随机变量X满足\sigma^2=2b^2
在利用Laplace 增加噪音实现差分隐私时,需要将均值a,设置为0,我们将此事的Laplace 密度函数记作L(b)
定义3:函数f 的ℓ1敏感度\nabla f,对于一个函数f : N^{|X|} → R^k ,有
\nabla f=\mathop{max}_{ \overset{x,y\in N^{|X|}}{||x-y||_1=1}} ||x-y||_1.

定义4:Laplace 机制:对于函数f : N^{|X|} → R^k ,Laplace 机制 M 被定义满足如下:
M_L(x,f(\cdot ),\varepsilon )= f(x)+(Y_1,Y_2,...,Y_k)
其中Y_i是分别独立地从L(\nabla / \varepsilon)获得的随机变量

实验实现

Laplace 函数图形:

import matplotlib.pyplot as plt
import numpy as np


def laplace_function(x, beta):
    result = (1 / (2 * beta)) * np.e ** (-1 * (np.abs(x) / beta))
    return result


# 在-5到5之间等间隔的取10000个数
x = np.linspace(-5, 5, 10000)
y1 = [laplace_function(x_, 0.5) for x_ in x]
y2 = [laplace_function(x_, 1) for x_ in x]
y3 = [laplace_function(x_, 2) for x_ in x]

plt.plot(x, y1, color='r', label='beta:0.5')
plt.plot(x, y2, color='g', label='beta:1')
plt.plot(x, y3, color='b', label='beta:2')
plt.title("Laplace distribution")
plt.legend()
plt.show()

https://blog.csdn.net/qq_38242289/article/details/80798952

Laplace 的分布

import matplotlib.pyplot as plt
import numpy as np


def count_zft():
    i=0
    sums=0
    xx=np.random.laplace(0,1,100)

    sums=sum(xx)
    return sums
#    print(sums)

if __name__=='__main__':

    vec = list()
    j=0;
    while j<100000:
        vec.append(count_zft())
        j+=1




    n, bins, patches = plt.hist(vec, 100, density=True, facecolor='g', alpha=0.75)
    plt.xlabel('sum of nosiy')
    plt.ylabel('Probability')
    plt.title('')
    plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
    plt.axis([-40, 40, 0, 0.06])
    plt.grid(True)
    plt.show()

100个噪音和的分布

相关文章

网友评论

      本文标题:差分隐私2019-03-07

      本文链接:https://www.haomeiwen.com/subject/mcpqpqtx.html