Random-Generation

“拉普拉斯噪聲”是什麼意思?

  • July 13, 2016

我目前正在使用拉普拉斯機制編寫差分隱私算法。

不幸的是,我沒有統計學背景,因此我不知道很多術語。所以現在我在這個詞上磕磕絆絆:拉普拉斯噪聲。為了使數據集差分私有,所有論文都只討論根據拉普拉斯分佈將拉普拉斯噪聲添加到函數值。

(k 是差分私有值,f 是評估函數的返回值,Y 是拉普拉斯噪聲)

這是否意味著我根據我從維基百科https://en.wikipedia.org/wiki/Laplace_distribution獲得的這個函數從拉普拉斯分佈創建隨機變量?

更新:我從上面的函數中繪製了多達 100 個隨機變量,但這並沒有給我一個拉普拉斯分佈(甚至沒有接近)。但我認為它應該模擬拉普拉斯分佈。

更新2:

這些是我的定義:

(拉普拉斯機制)。給定任何函數,拉普拉斯機制定義為:其中 Y 是 iid 隨機變量,取自

也:

要生成 Y ( X ),一個常見的選擇是使用具有零均值和 Δ ( f ) /ε 尺度參數的拉普拉斯分佈

你是對的,添加拉普拉斯噪聲意味著你的變量你添加變量遵循拉普拉斯分佈將其稱為噪聲有多種原因。首先,考慮信號處理,其中消息通過某個通道發送,並且由於通道的不完善性質,接收到的信號是嘈雜的,因此您必須將信號與噪聲隔離開來。其次,在密碼學中我們還談到了偽隨機噪聲,差分隱私與密碼學有關。第三,在統計和機器學習中,我們也可以談論統計噪聲,統計模型包括噪聲或誤差項等(甚至有一本關於預測名稱的書Signal 和Nate Silver 的噪聲)。所以我們使用噪音作為模糊隨機性的更精確的同義詞。

關於隨機生成,有多種方法可以根據拉普拉斯分佈繪製隨機值,例如:

  1. 維基百科上描述的逆變換方法:
f <- function(n) {
  u <- runif(n, -0.5, 0.5)
  sign(u)*log(1-2*abs(u))
}

  1. 如果和是服從指數分佈的獨立隨機變量,則遵循拉普拉斯分佈
g <- function(n) { rexp(n)-rexp(n) }

  1. 如果服從拉普拉斯分佈,則服從指數分佈,所以:
h <- function(n) { rexp(n)*sample(c(-1,1), n, replace = TRUE) }

在下面的圖中,您可以看到分佈使用帶有拉普拉斯密度(紅線)的每個函數繪製的樣本。

在此處輸入圖像描述

為了簡化示例,我使用比例 = 1 的標準拉普拉斯分佈,但您可以通過使用不同比例因子將結果相乘來輕鬆更改結果。

引用自:https://stats.stackexchange.com/questions/223494

comments powered by Disqus