当前位置: 首页 > news >正文

Laplace 噪声

Laplace 噪声是一种特定概率分布(拉普拉斯分布)产生的随机扰动。它是差分隐私(Differential Privacy, DP)中最核心、最常用的噪声机制之一。它的核心作用是在不泄露个体信息的前提下,允许从包含敏感数据的数据库中提取有用的统计信息。目的: 直接保护数据库中的个体记录不被推断出来。即使攻击者拥有除目标个体之外的所有其他数据,也无法通过查询结果确认该目标个体是否在数据库中或其具体属性值。

1. 原理

  • 通过在查询结果(如计数、求和、平均值等)上添加精心设计的、符合拉普拉斯分布的噪声,使得查询输出对数据库中任何单一个体记录的加入或移除变得“不敏感”。这种“不敏感”的程度由隐私参数ε严格控制。

  • 提供可量化、可证明的隐私保证。ε值越小,添加的噪声越大,隐私保护强度越高(但数据可用性会降低)。

2. Laplace 噪声实现原理(核心:差分隐私)

Laplace 噪声在差分隐私中的运用原理:

  1. 邻近数据集: 考虑两个仅在一条个体记录上存在差异的数据集DD'。它们被称为“邻近数据集”。

  2. 查询函数: 定义一个查询函数f(例如,“数据集中有多少人患有某种疾病?”,“工资总和是多少?”)。该函数作用于数据集并输出一个实数 f(D) 或实数向量 f(D)=(f₁(D),f₂(D), ..., fₖ(D))

  3. 全局敏感度:  Laplace机制的核心参数。

    • 定义:对于一个查询函数  (输出 k 维实数向量),其 L1 全局敏感度 Δf 定义为在所有邻近数据集(D,D')上,f(D)f(D')的 L1 距离的最大值:

    • 意义: Δf 衡量了查询函数f的输出结果,在任意一条记录改变时,最大可能改变多少。例如:

      • 计数查询: “数据集中满足某条件的人数”。改变一条记录最多只能让计数改变 1 (满足条件的记录加入或移除)。所以Δf=1

      • 求和查询: “数据集中某数值型属性的总和”。假设单个记录的最大可能值是 M,那么改变一条记录最多能让总和改变M(一个值为M的记录加入或移除)。所以Δf=M

  4. Laplace 机制:

    • 目标: 保护邻近数据集DD'上的查询结果f(D)f(D')在概率分布上非常接近,使得攻击者难以区分查询是基于D还是D'进行的。

    • 方法: 对于查询f的(标量或向量)输出f(D),添加独立生成的拉普拉斯噪声:
      M(D)=f(D)+(Y₁, Y₂, ..., Yₖ)
      其中每个Yᵢ是独立同分布的随机变量,服从拉普拉斯分布Lap(0,b),其概率密度函数为:

    • 尺度参数b的选择: 尺度参数b直接决定了噪声的大小。为了满足ε-差分隐私,b必须设置为:
      b=Δf/ε

      • ε隐私预算,由数据所有者设定。ε越小,要求的隐私保护越强。

      • Δf查询函数的全局敏感度。

    • 原理证明(直观): 拉普拉斯分布的特性(指数衰减)使得添加噪声后的输出 M(D) 和 M(D') 的概率密度比值  被有界地控制在 e^\varepsilon 以内。这正是ε-差分隐私的数学定义所要求的。Δf决定了噪声的尺度b,从而保证了即使f(D)和 f(D')差异最大(达到Δf)时,这个比值也不会超过e^ε

3. 生成 Laplace 噪声的步骤 (编程实现)

要在代码中生成服从Lap(0,b)分布的噪声Y,可以使用以下方法:

  1. 生成均匀分布随机数: 生成两个独立的、在[0,1)区间上均匀分布的随机数U₁U₂。通常使用标准库的随机数生成器(如 Math.random() in JS, random.random() in Python, rand() in C++)。

  2. 生成标准均匀分布随机数: 将U₁转换为(-1,1)区间上的均匀分布。一种常见方法是:
    U=U₁*2-1 (现在U[-1,1) 上均匀分布)

  3. 生成标准拉普拉斯噪声: 利用均匀分布随机数的反函数变换:
    Y_standard=-sign(U)*ln(1-|U|)

    • sign(U)U的符号(U>=0时为1,U<0时为-1)。

    • ln(1-|U|)是自然对数。

    • Y_standard服从标准拉普拉斯分布Lap(0,1)

  4. 缩放: 将标准拉普拉斯噪声Y_standard乘以尺度参数b,得到最终需要的噪声:
    Y=b*Y_standard
    这个Y就服从Lap(0,b)分布。

http://www.lqws.cn/news/80407.html

相关文章:

  • 什么算得到?什么又算失去?
  • 软件测评师教程 第9章 基于质量特性的测试与评价 笔记
  • Kotlin 中 companion object 扩展函数和普通函数区别
  • docker-部署Nginx以及Tomcat
  • 汽车软件 OTA 升级技术发展现状与趋势
  • 「Java教案」算术运算符与表达式
  • 一元函数积分
  • 深度学习与神经网络 前馈神经网络
  • 基于STM32的循迹避障小车的Proteus仿真设计
  • 使用API网关Kong配置反向代理和负载均衡
  • github 2FA双重认证丢失解决
  • 【java面试】MySQL篇
  • AIOps智能运维体系中Python故障预测与根因分析的应用实践
  • 个人总结八股文之-基础篇(持续更新)
  • SpringBoot-配置Spring MVC
  • L2-054 三点共线 - java
  • JavaSwing中使用JxBroser与JavaScript进行异步通信
  • Aviator表达式语法基础和Java实战表达式(电商应用)
  • SolidWorks建模(U盘)- 多实体建模拆图案例
  • vscode code runner 使用python虚拟环境
  • SpringBoot项目搭建指南
  • 【dshow】VIDEOINFOHEADER2 头文件
  • 【沉浸式求职学习day52】【初识Mybaits】
  • 秋招Day12 - 计算机网络 - UDP
  • nssctf第二题[SWPUCTF 2021 新生赛]简简单单的逻辑
  • 基于ubuntu和树莓派环境对游戏进行移植
  • eBay关键词搜索API开发指南
  • Matlab绘图
  • Baklib云内容中台的核心是什么?
  • 100V离线语音通断器