在實踐中,通常使用拉普拉斯機制和指數機制來實現差分隱私。拉普拉斯機制用於數值型結果的保護,指數機制用於離散型結果的保護。
拉普拉斯機制通過向確切的查詢結果中加入服從拉普拉斯分布的隨機雜訊,來實現 ε-差分隱私保護 。記位置引數為0、尺度引數為b的拉普拉斯分布為lap(b),那麼其概率密度函式為:p(x)=exp(-|x|/b)/2b。
對於拉普拉斯機制,我們進行以下定義:給定資料集d,設有函式f:d->rd,其敏感度為δf,那麼隨機演算法m(d)=f(d)+y提供ε-差分隱私保護,其中y~lap(δf/ε)為隨機雜訊,服從尺度引數為δf/ε的拉普拉斯分布。
示例**:
import numpy as np
def lap_one():
realresult = 50
loc, scale = 0, 1
s = np.random.laplace(loc, scale, 10)
print(s)
result = realresult + s[0]
print(result)
def noisy_count(sensitivety, epsilon):
beta = sensitivety/epsilon
u1 = np.random.random()
u2 = np.random.random()
if u1 <= 0.5:
noisy_value = -beta*np.log(1.-u2)
else:
noisy_value = beta*np.log(u2)
return noisy_value
def laplace_mech(data,sensitivety,epsilon):
for i in range(len(data)):
data[i] += noisy_count(sensitivety,epsilon)
return data
if __name__ == "__main__":
sensitivety = 2
epsilon = 2
real_data = [1, 2, 3, 4, 5]
dp_data = laplace_mech(real_data, sensitivety, epsilon)
for item in dp_data:
print(int(item))
設查詢函式的輸出域為range,域中的每個值r∈range為一實體物件。在指數機制下,函式q(d,r)->r成為輸出值r的可用性函式,用來評估輸出值r的優劣程度。
對於指數機制,我們進行以下定義:設隨機演算法m輸入為資料集d,輸出為一實體物件r∈range,q(d,r)->r為可用性函式,δq為函式q(d,r)->r的敏感度。若演算法m以正比於exp(εq(d,r)/2δq)的概率從range中選擇並輸出r,那麼演算法m提供ε-差分隱私保護。
差分隱私學習
差分隱私 是對統計資料庫洩漏問題提出的新的隱私定義。在此定義下,對資料集的計算處理結果對於具體某個記錄的變化是不敏感的,單個記錄在資料集中或者不在資料集中對計算結果影響微乎其微。所以,一 個記錄因其加入到資料集中所產生的隱私洩露風險 被控制在極小的 可接受的範圍內,攻擊者無法通過 觀察計算結果而獲取...
差分隱私 python 差分隱私
差分隱私的由來 想要在乙個統計資料庫裡面保護使用者的隱私,那麼理想的隱私定義是這樣的 訪問乙個統計資料庫而不能夠洩露在這個資料庫中關於個人的資訊。也就是說統計資料庫應該提供乙個統計值,但是對於個人的資訊不應該被查詢到。但是,這個理想的定義是不可行的,它並沒有考慮到輔助資訊。比如這麼乙個例子 乙個關於...
差分隱私簡介
time 20191008 差分隱私描述了乙個承諾,該承諾是由資料持有者或者管理員向資料主體發起 將資料用在任何研究 分析中,資料主體不會受到不利影響,且不管其他研究,資料集以及資訊源是什麼。差分隱 理的是從個體上學習不到任何資訊而整體上可以習得有用資訊的悖論。比如說,醫療資料庫可以告知我們抽菸會導...