論文學習記錄20200619:隱私保護機器學習[TIFS2017]

Privacy-Preserving Deep Learning via Additively Homomorphic Encryption
在這裏插入圖片描述
這篇論文結構比較明瞭,也挺簡單的,它只針對機器學習中的一個算法進行隱私保護,就是異步隨機梯度下降算法,也只用了一種密碼學技術,加法同態加密。
在這裏插入圖片描述
論文提出了一個新的深度學習系統,使用加法同態加密來保護誠實但好奇的雲服務器上的梯度。之前的secagg其實也算是對梯度的隱私保護,那篇論文主要是通過添加掩碼最後消除的方法,額外用了祕密共享、認證加密等密碼學工具。這篇論文只用了加法同態加密。所有梯度都被加密並存儲在雲服務器上,加法同態屬性允許對梯度進行計算,加法計算。
這篇論文裏也提到了那篇論文,但是他沒有在效率或者安全上進行比較,就說這種多樣性很好,可以爲特定的應用程序做好選擇。

在安全性和準確性方面具有以下特點:
Security. 系統不會向誠實但好奇的參數(雲)服務器泄露參與者的信息。
Accuracy. 系統達到與所有參與者聯合數據集上訓練的相應深度學習系統(異步隨機梯度下降,見下文)相同的精度。
簡言之,系統在這兩個方面都享有最好的優勢:安全性如密碼學,精確性如深度學習
在這裏插入圖片描述
神經網絡可以通過一個稱爲異步SGD進行訓練,具有數據並行性和模型並行性的特性。具體來說,首先對神經網絡的全局權重向量W進行隨機初始化。
異步SGD使用神經網絡的多個副本。在每次執行之前,每個副本都將從參數服務器下載最新的權重W;並且每個神經網絡副本都在一個在本地數據集(數據並行性)上運行,生成本地梯度向量G,發送到雲服務器。服務器具有多個處理單元在這裏插入圖片描述 ,由於處理單元可以並行運行,所以這裏將其權重向量W和梯度G拆分爲npu個部分 在這裏插入圖片描述 在這裏插入圖片描述,顯著提高了深度網絡訓練的規模和速度。
對於每個wi和G i,雲服務器的處理單元PUi都會計算,在這裏插入圖片描述
來更新全局權重向量參數w,
其中α是學習率。
更新後的全局權重參數W將廣播到所有副本,然後這些副本用它來替換舊的權重參數。這種更新和廣播W的過程一直重複,直到損失函數達到理想狀態。
在這裏插入圖片描述
下面作者舉了幾個例子表示梯度會泄露信息,而且現有的梯度保護的系統並不能有效地保護數據信息。
主要原因是下面這兩條1 ηk / η(伊塔eta) = xk。Nk和n都是梯度,xk是輸入x中的第k個元素。因此,如果ηk和η被共享到雲服務器,xk將完全泄漏。
然後舉了一個例子,現有梯度保護方案[26]中,建議是隨機選擇1%的本地梯度共享給服務器,那麼ηk和η共享的概率是(1/100)x(1/100)= 1/10000,這個一萬分之一是不可忽略的,這是存在一個概率泄露輸入的。
2 注意到梯度ηk與輸入xk成正比(對所有的1 ≤ i ≤ d)。因此,當x =(x1,…,xd)是一張圖像時,可以使用梯度生成相關的“成比例”圖像,然後通過猜測獲得真實值y

圖a是原數據圖像,bcd都是通過梯度恢復出來的圖像。圖b是經過一般的神經網絡訓練過程中得到的梯度恢復出來的圖像,c是帶有正則化操作的神經網絡的梯度恢復出來的圖像,d是加了Laplace噪聲的神經網絡的梯度恢復出來的圖像。從圖中可以看到,正則化和加Laplace噪聲會有一些作用,但是恢復出來的圖像依然能夠辨識,能夠看出它的真實值y,也就是圖中這個0。如果Laplace的噪聲加的再多,那麼確實無法從梯度上恢復出圖像信息,但是過多的噪聲會導致這個權值不可用,對準確率造成影響
在這裏插入圖片描述
由一個公共雲服務器和N個(e.g.=10x)學習參與者組成
參與者共同設置公鑰pk和私鑰sk,以實現加法同態加密方案。私鑰sk是所有參與者都知道的,但是對雲服務器保密。

圖挺清楚的
在這裏插入圖片描述
安全性:系統沒有向誠實但好奇的雲服務器泄露學習參與者的信息,前提是同態加密方案是CPA(選擇明文攻擊)安全的。因爲參與者只向雲服務器發送加密的梯度。因此,如果加密方案是CPA安全的,那麼參與者的數據就不會泄露任何信息。
準確性:只要所有的梯度都被上傳和下載,所有的密文都被正確解密,那麼這個系統就和一般的異步隨機梯度下降算法的準確率沒有差別。
在這裏插入圖片描述下面是作者對他這個系統的一個實例化操作,用了兩種,一個是基於LWE的加密,這個是格那一塊的東西,我沒有細看
第二個就是基於paillier的加密
我主要關注了一下他是怎麼對一個矩陣向量進行同態加密運算的
對於一個小數,把他表示爲一個整數的形式,通過這個r乘上2的精度次方
因爲公鑰是n,所以明文空間是log2底n,所以可以把一些非負整數打包到一個密文裏面。這裏的填充0是爲了防止在密文相加運算時導致溢出的。
所以精度+填充位就是一個明文元素的長度,用明文空間long2底n相比,得到t就是將這些整數打包爲一個Paillier明文的上限

對於處理單元PUi,她的權值wi和梯度gi都包含有li個元素,在這把它表示爲向量r,r有元素r1,r2 到rli,將其中t個爲一組,一起進行加密。
因爲是同態加法,這種打包成一個密文的方法不會影響加法計算,解密的時候再分開就可以了
在這裏插入圖片描述
表3給出了不同梯度ngd的數量,加密、解密和加法的時間,看到時間與梯度數量是相關的。使用n_lwe=3000,s=8,p=2^48+1和q=277。
圖5分別描述了使用1個線程和20個計算線程進行加密和解密的時間

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章