日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

差分隐私(Differential Privacy)定义及其理解

發布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 差分隐私(Differential Privacy)定义及其理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

🚀 優質資源分享 🚀

學習路線指引(點擊解鎖)知識定位人群定位
🧡 Python實戰微信訂餐小程序 🧡進階級本課程是python flask+微信小程序的完美結合,從項目搭建到騰訊云部署上線,打造一個全棧訂餐系統。
💛Python量化交易實戰💛入門級手把手帶你打造一個易擴展、更安全、效率更高的量化交易系統

1 前置知識

本部分只對相關概念做服務于差分隱私介紹的簡單介紹,并非細致全面的介紹。

1.1 隨機化算法

隨機化算法指,對于特定輸入,該算法的輸出不是固定值,而是服從某一分布。

單純形(simplex):一個kk維單純形是指包含k+1k+1個頂點的凸多面體,一維單純形是一條線段,二維單純形是一個三角形,三維單純形是一個四面體,以此類推推廣到任意維。“單純”意味著基本,是組成更復雜結構的基本構件。

概率單純形(probability simplex):是一個數學空間,上面每個點代表有限個互斥事件之間的概率分布。該空間的每條坐標軸代表一個互斥事件,k?1k-1維單純形上的每個點在kk維空間中的坐標就是其kk個互斥事件上的概率分布。每一點的坐標(向量)包含kk個元素,各元素非負且和為1。

如下圖所示,三個事件發生的概率分布形成一個二維的概率單純形,上面每個點在三個事件上發生的概率之和為1。

形式化定義:給定一個離散集BB,BB上的概率單純形Δ(B)\Delta(B)被定義為

Δ(B)={x∈R|B||xi≥0,i=1,2,?,|B∣;|B|∑i=1xi=1}\Delta(B)=\left{x \in \mathbb{R}^{|B|}\left|x_{i} \geq 0, i=1,2, \cdots,\right| B \mid ; \sum_{i=1}^{|B|} x_{i}=1\right}
Δ(B)\Delta(B)是一個集合,集合中每一個元素是一個|B||B|維向量,該向量代表了一個離散型隨機變量的概率分布。Δ(B)\Delta(B)代表了一個有|B||B|種取值的離散型隨機變量的所有可能的概率分布。

隨機化算法(randomized algorithm):一個隨機化算法M\cal{M}有定義域AA、離散的值域BB。一個輸入a∈Aa\in A,算法M\cal{M}的輸出M(a)\mathcal{M}(a)是一個隨機變量,服從概率分布p(x)=Pr(M(a)=x),x∈Bp(x)=\operatorname{Pr}(\mathcal{M}(a)=x),x\in B,并且p(x)∈Δ(B)p(x)\in \Delta(B)。

例如,A={2,3,4}A={2,3,4},B={1,2,3,4,5}B={1,2,3,4,5},設Δ(B)\Delta(B)中包含三個元素,分別為(13,13,13,0,0)(\frac{1}{3},\frac{1}{3},\frac{1}{3},0,0)、(0,13,13,13,0)(0,\frac{1}{3},\frac{1}{3},\frac{1}{3},0)、(0,0,13,13,13)(0,0,\frac{1}{3},\frac{1}{3},\frac{1}{3}),即

Δ(B)={(13,13,13,0,0),(0,13,13,13,0),(0,0,13,13,13)}\Delta(B)=\left{
(\frac{1}{3},\frac{1}{3},\frac{1}{3},0,0),
(0,\frac{1}{3},\frac{1}{3},\frac{1}{3},0),
(0,0,\frac{1}{3},\frac{1}{3},\frac{1}{3}) \right}
每個元素均代表算法輸出的隨機變量取值為1,2,3,4,5的概率分布,現可以規定映射M\cal{M}為

M(2)~(13,13,13,0,0),M(3)~(0,13,13,13,0),M(4)~(0,0,13,13,13)\mathcal{M}(2)\sim \left(\frac{1}{3}, \frac{1}{3}, \frac{1}{3}, 0,0\right), \mathcal{M}(3)\sim \left(0, \frac{1}{3}, \frac{1}{3}, \frac{1}{3}, 0\right), \mathcal{M}(4)\sim \left(0,0, \frac{1}{3}, \frac{1}{3}, \frac{1}{3}\right)
也就是說,一個特定輸入a∈Aa\in A經過隨機化算法M\cal{M}得到的不是一個具體值b∈Bb\in B,而是一個隨機變量M(a)~p(x),p(x)∈Δ(B)\mathcal{M}(a) \sim p(x),p(x)\in \Delta(B),又或者說,算法將以一定概率輸出某一個值。

上述情況是在離散概率空間中討論的,有時,算法將從連續分布中的采樣,但最后將以適當的精度進行離散化。

1.2 KL散度(KL-Divergence)

KL散度(Kullback Leible-Divergence)概念來源于概率論與信息論,又被稱作相對熵、互熵。從統計學意義上來說,KL散度可以用來衡量兩個分布之間的差異程度,差異越小,KL散度越小。

熵(entropy):信息論中熵定義首次被香農提出:無損編碼事件信息的最小平均編碼長度。通俗理解,如果熵比較大,即對該信息進行編碼的最小平均編碼長度較長,意味著該信息具有較多可能的狀態,即有著較大的信息量/混亂程度/不確定性。從某種角度上看,熵描述了一個概率分布的不確定性。

一個離散的隨機變量XX可能取值為X=x1,x2,…,xnX=x_1,x_2,…,x_n,即取值空間為X={x1,x2,…,xn}\cal{X}={x_1,x_2,…,x_n},概率分布律為p(x)=Pr(X=x),x∈Xp(x)=\operatorname{Pr}(X=x),x\in \cal{X},則隨機變量的熵定義為

H(X)=?∑x∈Xp(x)logp(x)=Ex~p[?logp(x)]\begin{aligned}
H(X)&=-\sum_{x\in \cal{X}} p \left(x\right) \log p \left(x\right) \
&=\mathbb{E}_{x \sim p}\left[-\log p(x)\right]
\end{aligned}
規定當p(x)=0p(x)=0時,p(x)logp(x)=0p(x)\log p(x)=0。

其中,?logp(x)-\log p(x)表示狀態X=xX=x的最小編碼長度。

  • Pr(A)\operatorname{Pr}(A)也即P(A)\operatorname{P}(A),表示事件AA發生的概率,只是書寫習慣不同,避免與其他PP混淆。
  • 有時也將上面的量記為H§H§;
  • 公式中的Ex~p\mathbb{E}_{x \sim p}表示使用概率分布pp來計算期望;
  • 其中log\log以2為底時,熵單位為bit,以e為底時,熵單位為nat;
  • 上述的對熵的討論也只是針對離散隨機變量進行討論的,p(x)p(x)在離散型隨機變量中為概率分布律,在連續型隨機變量中為概率密度函數;

交叉熵(cross-entropy):熵的計算是已知各狀態的概率分布求其理論上最小平均編碼長度。如果不知道各狀態真實的概率分布p(x)p(x),只有預估的概率分布q(x)q(x),我們只好根據預估的概率分布q(x)q(x)給事件編碼,得到事件各狀態xx的預估最小編碼長度?logq(x)-\log q(x)。假如經過觀測后我們得到了真實概率分布p(x)p(x),那么在計算預估最小編碼長度?logq(x)-\log q(x)的期望時就可以采用真實概率分布p(x)p(x),得到交叉熵。

對于同一取值空間X={x1,x2,…,xn}\cal{X}={x_1,x_2,…,x_n}下的離散隨機變量P,QP,Q,概率分布分別為p(x)=Pr(P=x),q(x)=Pr(Q=x),x∈Xp(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \cal{X},交叉熵定義為

H(P,Q)=∑x∈Xp(x)log1q(x)=?∑x∈Xp(x)logq(x)=Ex~p[?logq(x)]\begin{aligned}
H(P, Q)&=\sum_{x\in \cal{X}} p(x) \log \frac{1}{q(x)} \
&=-\sum_{x\in \cal{X}} p(x) \log q(x) \
&=\mathbb{E}_{x \sim p}\left[-\log q(x)\right]
\end{aligned}
即用預估概率分布q(x)q(x)計算每個狀態的最小編碼長度,用真實概率分布p(x)p(x)求期望??梢?#xff0c;H(P,Q)≠H(Q,P),H(P,Q)?H§H(P,Q)\neq H(Q,P),H(P,Q)\geqslant H§。

上述定義也可寫作:對于取值空間X\cal{X}的離散隨機變量XX,有兩個分布p(x),q(x),x∈Xp(x),q(x),x\in \cal{X},這也是《信息論基礎(原書第二版)》的表達方式;但考慮到一個隨機變量對應一個分布更嚴謹些,便分成了同一取值空間的兩個隨機變量進行解釋,這是《The Algorithmic Foundations of Differential Privacy》的表達方式。二者意思是一樣的。

相對熵(relative entropy)/KL散度(KL-divergence):用來衡量交叉熵與熵之間的差距的,也是兩個隨機分布之間距離的度量。

對于同一取值空間X={x1,x2,…,xn}\cal{X}={x_1,x_2,…,x_n}下的離散隨機變量P,QP,Q,概率分布分別為p(x)=Pr(P=x),q(x)=Pr(Q=x),x∈Xp(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \cal{X},則PP相對QQ的相對熵為P,Q的交叉熵?P的熵P,Q的交叉熵-P的熵:

DKL(P‖Q)=H(P,Q)?H§=?∑x∈Xp(x)logq(x)?∑x∈X?p(x)logp(x)=?∑x∈Xp(x)(logq(x)?logp(x))=?∑x∈Xp(x)logq(x)p(x)=∑x∈Xp(x)logp(x)q(x)=Ex~p[?logq(x)]?Ex~p[?logp(x)]=Ex~p[logp(x)q(x)]\begin{aligned}
D_{K L}(P | Q) &=H(P, Q)-H§ \
&=-\sum_{x\in \cal{X}} p(x) \log q(x)-\sum_{x\in \cal{X}}-p(x) \log p(x) \
&=-\sum_{x\in \cal{X}} p(x)(\log q(x)-\log p(x)) \
&=-\sum_{x\in \cal{X}} p(x) \log \frac{q(x)}{p(x)} \
&=\sum_{x\in \cal{X}} p(x) \log \frac{p(x)}{q(x)} \
&=\mathbb{E}_{x \sim p}\left[-\log q(x)\right]-\mathbb{E}_{x \sim p}\left[-\log p(x)\right]\
&=\mathbb{E}_{x \sim p}\left[\log \frac{p(x)}{q(x)}\right]
\end{aligned}
可見,KL散度也可以用來衡量兩個分布P,QP,Q的差異程度,另外,DKL(P‖Q)≠DKL(Q‖P)?0D_{K L}(P | Q) \neq D_{K L}(Q | P)\geqslant 0。

最大散度(Max Divergence):KL散度是從整體上衡量兩個分布的距離,最大散度是兩個分布比值的最大值,從兩個分布比值的最大值角度衡量了兩個分布的差異。

對于同一取值空間X={x1,x2,…,xn}\cal{X}={x_1,x_2,…,x_n}下的離散隨機變量P,QP,Q,概率分布分別為p(x)=Pr(P=x),q(x)=Pr(Q=x),x∈Xp(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \cal{X},最大散度為

D∞(P‖Q)=maxx∈X[logPr[P=x]Pr[Q=x]]=maxx∈X[logp(x)q(x)]\begin{aligned}
D_{\infty}(P | Q)&=\max _{x\in \cal{X}}\left[\log \frac{\operatorname{Pr}[P=x]}{\operatorname{Pr}[Q=x]}\right] \
&=\max _{x\in \cal{X}}\left[\log \frac{p(x)}{q(x)}\right]
\end{aligned}

2 差分隱私定義

差分隱私是Dwork在2006年首次提出的一種隱私定義,函數的輸出結果對數據集中任何特定記錄都不敏感。

假設對于一個考試成績數據集DD,通過查詢操作得知有xx個同學不及格,現加入一條新紀錄得到新數據集D′D’,通過查詢得知有x+1x+1個同學不及格,便可推理出新加入的同學成績不及格,如此一來,攻擊者便通過這樣的手段推理出了一些知識。

應對上述攻擊,差分隱私通過往查詢結果f(D),f(D′)f(D),f(D’)中加入隨機噪聲rr最終得到查詢結果M(D)=f(D)+r,M(D′)=f(D′)+r\mathcal{M}(D)=f(D)+r,\mathcal{M}(D’)=f(D’)+r,使得DD與D′D’經過同一查詢后的結果并非確定的具體值,而是服從兩個很接近的概率分布,這樣攻擊者無法辨別查詢結果來自哪一個數據集,保障了個體級別的隱私性。

2.1 形式化定義

鄰接數據集(neighbor datasets):僅有一條記錄不同的兩個數據集DD,D′D’。

隨機化算法M\cal{M}:隨機化算法指,對于特定輸入,該算法的輸出不是固定值,而是服從某一分布。

隱私預算?\epsilon(privacy budget):?\epsilon用于控制算法的隱私保護程度,?\epsilon越小,則算法保護效果越好。

隱私損失(privacy loss):對于任意的輸出結果SS,lnPr[M(D)∈S]Pr[M(D′)∈S]\ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) \in \mathrm{S}\right]}或lnPr[M(D)=ξ]Pr[M(D′)=ξ]\ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) = \mathrm{\xi}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) = \mathrm{\xi}\right]},其描述了算法M\cal{M}在鄰接數據集上輸出同一個值的概率差別大小,差分隱私機制將算法的隱私損失控制在一個有限范圍?\epsilon內。

隱私損失可正可負,越正和越負都表示隱私損失很大,因此嚴格來說隱私損失應加個絕對值,為

Privacyloss=|lnPr[M(D)∈S]Pr[M(D′)∈S]|Privacyloss=\left |\ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) \in \mathrm{S}\right]}\right |
當然,如沒有加絕對值的地方默認Pr[M(D)∈S]?Pr[M(D′)∈S]\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}] \geqslant \operatorname{Pr}[\mathcal{M}(\mathrm{D’}) \in \mathrm{S}]。

??\epsilon-差分隱私:對于只有一個記錄不同的鄰接數據集DD、D′D’,給這兩個數據集施加一個隨機化算法(機制)M\cal{M},對于所有的S?Range(M)S\subseteq \operatorname{Range}(\mathcal{M}),若有

Pr[M(D)∈S]?Pr[M(D′)∈S]×e?\operatorname{Pr}[\mathcal{M}(D) \in S] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D’ \right) \in S\right] \times \mathrm{e}^{\epsilon}

maxS[lnPr[M(D)∈S]Pr[M(D′)∈S]]??\max _{S}\left[\ln \frac{\operatorname{Pr}[\mathcal{M} (D) \in S]}{\operatorname{Pr}\left[\mathcal{M}\left(D’ \right) \in S\right]}\right] \leqslant \epsilon
成立,則稱算法M\cal{M}滿足??\epsilon-差分隱私。

其中Range(M)\operatorname{Range}(\mathcal{M})是隨機算法M\cal{M}映射結果隨機變量的取值空間,SS是其子集;對于所有的S?Range(M)S\subseteq \operatorname{Range}(\mathcal{M})即對于Range(M)\operatorname{Range}(\mathcal{M})的所有子集。

另種寫法:

Pr[M(D)=x]?Pr[M(D′)=x]×e?,x∈S\operatorname{Pr}[\mathcal{M}(D) =x] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D’ \right) =x\right] \times \mathrm{e}^{\epsilon},x\in S

maxx∈S[logPr[M(D)=x]Pr[M(D′)=x]]??\max _{x\in S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D)=x]}{\operatorname{Pr}[\mathcal{M}(D’)=x]}\right] \leqslant \epsilon

(?,σ)?(\epsilon,\sigma)-差分隱私:上面描述的是嚴格的差分隱私的定義,為了算法的實用性,Dwork后面引入了松弛的差分隱私,加入一個小常數δ\delta(稱作失敗概率):

Pr[M(D)∈S]?Pr[M(D′)∈S]×e?+δ\operatorname{Pr}[\mathcal{M}(D) \in S] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D’ \right) \in S\right] \times \mathrm{e}^{\epsilon}+\delta

2.2 該定義是如何得來的

差分隱私的目的是使M(D),M(D′)\mathcal{M}(D),\mathcal{M}(D’)的分布盡可能接近,便可用Max Divergence衡量兩個分布的差異:

D∞(M(D)‖M(D′))=maxx∈S[logPr[M(D)=x]Pr[M(D′)=x]]=maxS[logPr[M(D)∈S]Pr[M(D′)∈S]]\begin{aligned}
D_{\infty}(\mathcal{M}(D) | \mathcal{M}(D’))
&=\max _{x\in S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D)=x]}{\operatorname{Pr}[\mathcal{M}(D’)=x]}\right] \
&=\max _{S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D) \in S]}{\operatorname{Pr}[\mathcal{M}(D’) \in S]}\right]
\end{aligned}
其中S?Range(M)S\subseteq \operatorname{Range}(\mathcal{M}),Range(M)\operatorname{Range}(\mathcal{M})是隨機算法M\cal{M}映射結果隨機變量的取值空間,SS是其子集。

對于Range(M)\operatorname{Range}(\mathcal{M})的所有子集,即對于任意的S?Range(M)S\subseteq \operatorname{Range}(\mathcal{M}),兩個分布的差異都被限制在隱私預算?\epsilon以內:

maxx∈S[logPr[M(D)=x]Pr[M(D′)=x]]=maxS[logPr[M(D)∈S]Pr[M(D′)∈S]]??\max _{x\in S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D)=x]}{\operatorname{Pr}[\mathcal{M}(D’)=x]}\right] =\max _{S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D) \in S]}{\operatorname{Pr}[\mathcal{M}(D’) \in S]}\right] \leqslant \epsilon
可見,上述的Max Divergence就是隱私損失。

取log\log的底為ee,并兩邊同時利用指數運算、乘以分母變形得:

Pr[M(D)=x]?Pr[M(D′)=x]×e?,x∈S\operatorname{Pr}[\mathcal{M}(D) =x] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D’ \right) =x\right] \times \mathrm{e}^{\epsilon},x\in S

Pr[M(D)∈S]?Pr[M(D′)∈S]×e?\operatorname{Pr}[\mathcal{M}(D) \in S] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D’ \right) \in S\right] \times \mathrm{e}^{\epsilon}

3 差分隱私中常用的隨機化算法(機制)

常用的隨機化機制有:

  • 拉普拉斯機制(Laplace mechanism)
  • 指數機制(Exponential mechanism)
  • 高斯機制(Gaussian mechanism)

這些機制中,噪聲發現取決于算法的敏感度。

敏感度(sensitivity):對于只有一個記錄不同的兩個數據集D,D′D,D’,對于一個函數M:D→Rd\mathcal{M}:\cal{D} \rightarrow \cal{R^d},則M\cal{M}的敏感度為接收所有可能的輸入后,得到輸出的最大變化值:

ΔM=maxD,D′‖M(D)?M(D′)‖\Delta \mathcal{M}=\max _{D, D{\prime}}\left|\mathcal{M}(D)-\mathcal{M}\left(D{\prime}\right)\right|
其中,‖?‖|\cdot|表示向量的范數。l1?l_1-敏感度和l2?l_2-敏感度分別適用于l1l_1范數和l2l_2范數。

參考資料:

  • 概率單純形 https://zhuanlan.zhihu.com/p/479892005
  • 【數學知識】KL散度 https://zhuanlan.zhihu.com/p/365400000
  • 一文搞懂熵(Entropy),交叉熵(Cross-Entropy) https://zhuanlan.zhihu.com/p/149186719
  • 差分隱私Differential Privacy介紹 https://zhuanlan.zhihu.com/p/40760105
  • 差分隱私(一) Differential Privacy 簡介 https://zhuanlan.zhihu.com/p/139114240
  • 差分隱私的算法基礎 第二章 第三節 形式化差分隱私 https://zhuanlan.zhihu.com/p/502656652
  • 《聯邦學習》楊強.et al 電子工業出版社
  • 機器學習的隱私保護研究綜述. 劉俊旭 孟小峰 doi: 10.7544/issn1000-1239.2020.20190455
  • 《The Algorithmic Foundations of Differential Privacy》3.5.1
  • 《信息論基礎(原書第2版)》Thomas.et al 機械工業出版社
  • 總結

    以上是生活随笔為你收集整理的差分隐私(Differential Privacy)定义及其理解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。