zoukankan      html  css  js  c++  java
  • 差分隐私学习三:实现机制

    在实践中,通常使用拉普拉斯机制和指数机制来实现差分隐私。拉普拉斯机制用于数值型结果的保护,指数机制用于离散型结果的保护。

    拉普拉斯机制

    拉普拉斯机制通过向确切的查询结果中加入服从拉普拉斯分布的随机噪声,来实现 ε-差分隐私保护 。记位置参数为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提供ε-差分隐私保护。

  • 相关阅读:
    Eclipse给方法添加注释
    隐式等待和显示等待和固定等待
    用例执行完后切换到指定的页面
    HTTP常见响应状态码
    Java类初始化顺序问题
    博客园!我来了
    MySQL的存储引擎
    String声明为NULL和""的区别
    Mysql入门
    MySQL查询与结构
  • 原文地址:https://www.cnblogs.com/KbMan/p/14338935.html
Copyright © 2011-2022 走看看