“拉普拉斯噪聲”是什麼意思?
我目前正在使用拉普拉斯機制編寫差分隱私算法。
不幸的是,我沒有統計學背景,因此我不知道很多術語。所以現在我在這個詞上磕磕絆絆:拉普拉斯噪聲。為了使數據集差分私有,所有論文都只討論根據拉普拉斯分佈將拉普拉斯噪聲添加到函數值。
(k 是差分私有值,f 是評估函數的返回值,Y 是拉普拉斯噪聲)
這是否意味著我根據我從維基百科https://en.wikipedia.org/wiki/Laplace_distribution獲得的這個函數從拉普拉斯分佈創建隨機變量?
更新:我從上面的函數中繪製了多達 100 個隨機變量,但這並沒有給我一個拉普拉斯分佈(甚至沒有接近)。但我認為它應該模擬拉普拉斯分佈。
更新2:
這些是我的定義:
(拉普拉斯機制)。給定任何函數,拉普拉斯機制定義為:其中 Y 是 iid 隨機變量,取自
也:
要生成 Y ( X ),一個常見的選擇是使用具有零均值和 Δ ( f ) /ε 尺度參數的拉普拉斯分佈
你是對的,添加拉普拉斯噪聲意味著你的變量你添加變量遵循拉普拉斯分佈。將其稱為噪聲有多種原因。首先,考慮信號處理,其中消息通過某個通道發送,並且由於通道的不完善性質,接收到的信號是嘈雜的,因此您必須將信號與噪聲隔離開來。其次,在密碼學中我們還談到了偽隨機噪聲,差分隱私與密碼學有關。第三,在統計和機器學習中,我們也可以談論統計噪聲,統計模型包括噪聲或誤差項等(甚至有一本關於預測名稱的書Signal 和Nate Silver 的噪聲)。所以我們使用噪音作為模糊隨機性的更精確的同義詞。
關於隨機生成,有多種方法可以根據拉普拉斯分佈繪製隨機值,例如:
- 維基百科上描述的逆變換方法:
f <- function(n) { u <- runif(n, -0.5, 0.5) sign(u)*log(1-2*abs(u)) }
- 如果和是服從指數分佈的獨立隨機變量,則遵循拉普拉斯分佈:
g <- function(n) { rexp(n)-rexp(n) }
- 如果服從拉普拉斯分佈,則服從指數分佈,所以:
h <- function(n) { rexp(n)*sample(c(-1,1), n, replace = TRUE) }
在下面的圖中,您可以看到分佈使用帶有拉普拉斯密度(紅線)的每個函數繪製的樣本。
為了簡化示例,我使用比例 = 1 的標準拉普拉斯分佈,但您可以通過使用不同比例因子將結果相乘來輕鬆更改結果。