全局敏感度,局部敏感度和平滑敏感度到底有什么区别?【差分隐私】

  • 写在前面的话
  • 噪声校准
    • 全局敏感度:
    • 局部敏感度
    • 平滑敏感度
    • 噪声分布范围
  • 自己的理解

写在前面的话

关于敏感度相关的知识,我认为这是差分隐私的重中之重。这也是我个人的笔记,如果又不正确的地方欢迎指正,谢谢大家。大家不想看长篇大论可以直接点目录里面(自己的理解)。

噪声校准

全局敏感度:

全局敏感度度量在修改一个元组时查询结果的最大变化。它只与查询函数相关,并且独立于数据集本身。对于一些函数,如和、计数和最大值,全局灵敏度很容易计算。例如,计数的全局敏感性为1,因为对于任何两个相邻的数据集,只有一个元组被更改,而对于直方图查询的全局敏感性为2。对于其他一些函数,如计算kmeans簇的最大直径和计数子图,全局灵敏度可能难以计算或无界。例如,中值函数可以具有很高的全局灵敏度。以f(D)=中位数(x1、x2,……、xn)为例,其中xi是[0、M]中的一个实数。假设n是一个奇数,并且x1,x2,……,xn被排序。因此,f(D)=xm,其中m=(n+1)/2 。考虑以下极端情况,

我们有f(D)=0和f(D0)=M。因此,这个函数的全局灵敏度是M,它可以任意大。另一个例子,三角形计数查询的全局敏感性是无界的,因为三角形计数的变化取决于图的大小。注入以实现差异隐私的噪声可以根据查询函数的全局灵敏度进行校准,即的最大的量。当数据集中只修改了一条记录时,请更改为查询结果。对于全局灵敏度较小的函数,只需要添加少量的噪声,以掩盖在更改一条记录时对查询结果的影响。然而,当全局灵敏度较大时,需要向输出添加大量的噪声,以确保隐私保证,从而导致数据效用较差。针对不同的问题,提出了两种噪声机制,即拉普拉斯机制和指数机制。

局部敏感度

当全局灵敏度较大时,必须向输出中添加大量的噪声,以实现差分隐私,这可能会严重损害数据效用。为了解决这个问题,Nissim等人提出了局部灵敏度的思想。

局部敏感度不仅与查询函数f有关,而且还与给定的数据集d有关。根据定义3,GSf=maxD(LSf(D))。由于噪声的大小与灵敏度成正比,噪声的局部灵敏度要小得多。不幸的是,局部灵敏度不能满足差分隐私的要求,因为噪声大小本身可能会揭示数据库信息。例如,考虑一个数据库,其中的值在0和M>0之间,以及两个相邻的数据库D(0、0、0、0、0、M、M)和D0(0、0、0、0、M、M、M)。设f为中值函数。然后,f(D)=0和f(D0)=0,以及相应的局部灵敏度为LSf(D)=0和LSf(D0)=M。相应地,如果噪声分别根据0和M进行校准,以计算A(D)和A(D0),那么它们很容易被对手区分。如果采用局部灵敏度,算法A不是(ϵ,δ)差异私有的。为了弥合差距,提出了一个局部灵敏度的光滑上界来确定所添加的噪声的大小。

平滑敏感度


当β=0,S(D)成为常数GSf,以满足定义5中的要求。全局灵敏度是LSf上一个简单但可能松散的上界。当β>0时,全局灵敏度是LSf的一个保守上界。LSf可能有多个平滑边界,并且平滑灵敏度是符合定义5的最小边界。再次,以中位数函数为例。我们构造了一个函数a(k)(D),它计算当最多k个条目被修改时敏感度的变化。

为了计算A(k)(D),我们需要计算LSf(D0)的最大值,其中D0和D多相差多达k个元组。回想一下,D被排序了,f(D)=xm和LSf(D)=max{xm−xm−1、xm+1−xm}。因此,我们已经有了

然后,中值函数的光滑灵敏度可以通过

一般来说,计算图中三角形数等函数的光滑灵敏度是非平凡的,甚至是np难问题。因此,当光滑灵敏度难以计算时,就使用光滑上界来代替光滑灵敏度。接下来,我们将展示如何使用β平滑灵敏度(或上界)来校准ϵ-差异隐私的噪声。对数据集D上的查询f返回A(D)=f(D)+Z,其中Z是从一个分布中抽取的随机变量。如果Z∼Lap(GSf/ϵ),A(D)提供了ϵ-的差异隐私。在ϵ-的差异隐私中,添加的噪声的大小应该尽可能小,以保持数据效用,并且应该独立于数据库,以进行强大的隐私保护。根据全局灵敏度校准的噪声独立于数据库D,但其大小可能太大,无法使查询结果不可用。根据局部灵敏度校准的噪声依赖于D,使其失效,导致差异隐私。为了解决这个挑战,Nissim等人。建议使用根据局部灵敏度的平滑上界(更优选的是平滑灵敏度)进行校准的噪声。其基本思想是添加与Sf(D)α成正比的噪声,即A(D)=f(D)+Sf(D)α·Z,其中Sf是f局部灵敏度的β平滑上界,Z是一个具有概率密度函数h的随机变量。Nissim等人指出,h必须允许(α,β),以实现基于平滑灵敏度的差异隐私。

噪声分布范围


滑动和膨胀特性保证了在滑动和膨胀条件下噪声分布变化不大,α和β的值是基于h的∆(滑移偏移)和λ(膨胀偏移)的上界。如果hofZ(α,β)允许,数据库访问机制A(D)=f(D)+Sf(D)α·Z是(ϵ,δ)差异隐私。
可容许分布有三个族:柯西、拉普拉斯和高斯[68]。柯西可许分布产生了δ=0的“纯”ϵ-差异隐私。拉普拉斯和高斯可许分布可以产生不同α和β值的δ>0产生近似差分隐私。

自己的理解


中值查询:
全局敏感度:考虑最极端的情况,不管你的数据怎么分布,只看查询。当有一条记录改变对查询结果造成的最大影响就是10,因为数字的范围就是0到10,我先假设中值为0,然后改个10,不可能有比这更大的改变了。
局部敏感度:查询也看,数据也看。上面这个图的局部敏感度就是1,从形式化定义来看,局部敏感度是依赖于给定的数据集的,在给定的数据集中变一条记录找最大影响,这个影响大小就是局部敏感度。看上去好像完美无缺,实际已经都不能算差分隐私了。为什么?因为数据集不可能永远不变,每次改变,局部敏感度是不是要变,那么是不是体现出了数据分布的差异。关于中值查询关于局部敏感度的例子前面提到了,我这里就不赘述了。直接见图:
你看,这里的G作为数据集,在横坐标上变化,局部敏感度也在变化。说局部敏感度最大就是全局敏感度我不敢苟同,只能说全局敏感度是局部敏感度的上界(其实也一样),看你怎么理解了。并且不要认为局部敏感度就一定要在局部去找,从全局也可以出发。我在看社会网络中就加入这样的误区,认为局部视图才有局部敏感度,全局也是,只要图是给定的就可以算局部敏感度。
平滑敏感度:还是上面那个图,找到一个平滑上界函数,不同的函数会导致上界不同。全局敏感度作为局部敏感度较为松弛的上界,平滑敏感度是较为保守的上界。我的理解是预测未来,数据集的变化从当前来看是一条数据条目变化,但是在后面的变化中可能相对于第一个数据集有多条记录变化。所以平滑上界考虑的是改变多条记录的最大敏感度,再乘以一个平滑上界函数,这个函数的目的在于做一个惩罚,这个函数一定小于1。最终就得到了上面这个图。

全局敏感度,局部敏感度和平滑敏感度到底有什么区别?【差分隐私】相关推荐

  1. 【局部敏感度的问题代码实现】差分隐私代码实现系列(八)

    差分隐私代码实现系列(八) 写在前面的话 回顾 局部敏感度(Local Sensitivity) 均值的局部灵敏度(Local Sensitivity of the Mean) 通过局部灵敏度实现差分 ...

  2. ELV局部视图与差分隐私【敏感度到底怎么理解】【上】

    <Analyzing Subgraph Statistics from Extended Local Views with Decentralized Differential Privacy& ...

  3. DP敏感度(全局,局部,平滑)

    L2灵敏度明显低于L1灵敏度. 向量值拉普拉斯机制需要使用 L1灵敏度,而向量值高斯机制允许使用L1或L2灵敏度.这是高斯机制的一个主要优势.对于L2灵敏度远低于L1灵敏度的应用,高斯机制允许添加更少 ...

  4. ELV局部视图与差分隐私【敏感度到底怎么理解】【下】

    [后续]Analyzing Subgraph Statistics from Extended Local Views with Decentralized Differential Privacy ...

  5. 【敏感度,查询,裁剪代码实现】差分隐私代码实现系列(六)

    差分隐私代码实现系列(六) 写在前面的话 回顾 敏感性(Sensitivity) 距离(Distance) 计算灵敏度(Calculating Sensitivity) 计算查询数(Counting ...

  6. 什么是数据敏感度?怎么培养数据敏感度?

    前几天,群里小伙伴提问什么是数据敏感度? 提这个问题是因为她的主管自诩数据敏感度很高,做为下属的她想知道到底什么是数据敏感度,怎么培养数据敏感度. 1.什么是数据敏感度? 数据敏感度高的人,看到数字, ...

  7. 什么是数据敏感度!怎么培养数据敏感度?

    前几天,有小伙伴提问什么是数据敏感度? 提这个问题是因为她的主管自诩数据敏感度很高,做为下属的她想知道到底什么是数据敏感度,怎么培养数据敏感度. 1.什么是数据敏感度? 数据敏感度高的人,看到数字,两 ...

  8. TCSVT2021:一种结合全局和局部细粒度特征的行人再识别方法

    本文首发于极市平台 论文地址: https://www.researchgate.net/publication/347764290_Feature_Refinement_and_Filter_Net ...

  9. [转载]内存分配 知识,全局,局部,静态变量

    [转载]内存分配 知识,全局,局部,静态变量 预备知识-程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变 ...

最新文章

  1. Macbook pro安装MacOS系统
  2. 容器间通信的三种方式 - 每天5分钟玩转 Docker 容器技术(35)
  3. java对import语句_Java的import语句 - 不积跬步,无以至千里 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  4. Linux shell脚本的字符串截取
  5. 再说409,又提离别痛
  6. 12个很棒的Pandas和NumPy函数,让python数据分析事半功倍
  7. thinkphp5的Illegal string offset 'id'错误
  8. Netty in action—第一个Netty应用
  9. 在RedHat/CentOS下安装Docker(不升级内核)
  10. Hadoop MapReduce篇
  11. 华三交换机配置telnet远程登录和http、https登录
  12. OMV搭建系列教程[5] – 安装Aria2
  13. 区块链ICO:互联网进化的驱动力
  14. 解决鼠标右键特别慢的方法
  15. 腾讯T3大牛亲自讲解!学java是什么意思
  16. Python破解加密的zip文件
  17. 进入BeOS的花花世界 系列八
  18. Oracle varchar2 4000
  19. Redis-4-Java操作Redis
  20. python(第八天)

热门文章

  1. 科大奥瑞物理实验——光电效应和普朗克常量的测定
  2. 百度网盘登录测试用例
  3. 涿州8500亩 国稻种芯·中国水稻节:河北保定百尺竿镇名片
  4. java求一个数的因子
  5. 中级工程师职称有什么用?伴德诚
  6. 11月中下旬张家界自由行
  7. python:VOC数据集转COCO格式
  8. Xamarin实现将图片设置为启动页——Xamarin.forms
  9. python circle后面是什么意思_circle 是什么意思
  10. 无法清空剪切板,另一程序正在使用剪切板,无法复制东西了