“拉普拉斯噪声”是什么意思?

机器算法验证 随机生成 拉普拉斯分布 差分隐私
2022-03-01 02:19:19

我目前正在使用拉普拉斯机制编写差分隐私算法。

不幸的是,我没有统计学背景,因此我不知道很多术语。所以现在我在这个词上磕磕绊绊:拉普拉斯噪声为了使数据集差分私有,所有论文都只讨论根据拉普拉斯分布将拉普拉斯噪声添加到函数值。

k(X)=f(X)+Y(X)

(k 是差分私有值,f 是评估函数的返回值,Y 是拉普拉斯噪声)

这是否意味着我根据我从维基百科https://en.wikipedia.org/wiki/Laplace_distribution获得的这个函数从拉普拉斯分布创建随机变量?

Y=μb sgn(U)ln(12|U|)

更新:我从上面的函数中绘制了多达 100 个随机变量,但这并没有给我一个拉普拉斯分布(甚至没有接近)。但我认为它应该模拟拉普拉斯分布。

更新2:

这些是我的定义:

(拉普拉斯机制)。给定任意函数f:N|X|Rk,拉普拉斯机制定义为:ML(x,f(·),ϵ)=f(x)+(Y1,...,Yk)其中 Y 是从Lap(f/ϵ)

也:

要生成 Y ( X ),一个常见的选择是使用具有零均值和 Δ ( f ) /ε 尺度参数的拉普拉斯分布

2个回答

您是对的,添加拉普拉斯噪声意味着您向变量添加遵循拉普拉斯分布将其称为噪声有多种原因首先,考虑信号处理,其中消息通过某个通道发送,并且由于通道的不完善性质,接收到的信号是嘈杂的,因此您必须将信号与噪声隔离开来。其次,在密码学中我们也谈到了伪随机噪声,差分隐私与密码学有关。第三,在统计和机器学习中我们也可以谈论统计噪声,统计模型包括噪声或误差项等(甚至有一本关于预测名称的书XYNate Silver的信号和噪声)。所以我们使用噪声作为模糊随机性的更精确的同义词。

关于随机生成,有多种方法可以根据拉普拉斯分布绘制随机值,例如:

  1. 维基百科上描述的逆变换方法:
f <- function(n) {
   u <- runif(n, -0.5, 0.5)
   sign(u)*log(1-2*abs(u))
}
  1. 如果是服从指数分布的独立随机变量,服从拉普拉斯分布UVY=UV
g <- function(n) { rexp(n)-rexp(n) }
  1. 如果服从拉普拉斯分布,服从指数分布,所以:Y|Y|
h <- function(n) { rexp(n)*sample(c(-1,1), n, replace = TRUE) }

在下面的图中,您可以看到使用每个函数绘制的样本的分布以及伴随的拉普拉斯密度(红线)。105

在此处输入图像描述

为了简化示例,我使用比例 = 1 的标准拉普拉斯分布,但您可以通过使用不同比例因子将结果相乘来轻松更改结果。

拉普拉斯或双指数分布在某个均值左右呈指数下降。它基本上是反映到另一边的指数。

  • 如果您想要可能性,请使用指数的可能性并将 abs() 添加到观察值。对数似然只是残差的 abs() 乘以指数的比率。

  • 要进行采样,最简单的方法是从 -1,1 中抽取,然后与指数分布中的抽取相乘,这在大多数编程语言中都可用。或者,如上所述,您还可以找到 Laplace 的直接实现,但可能需要更多搜索。