差分隱私學習三:實現機制


在實踐中,通常使用拉普拉斯機制和指數機制來實現差分隱私。拉普拉斯機制用於數值型結果的保護,指數機制用於離散型結果的保護。

拉普拉斯機制

拉普拉斯機制通過向確切的查詢結果中加入服從拉普拉斯分布的隨機噪聲,來實現 ε-差分隱私保護 。記位置參數為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提供ε-差分隱私保護。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM