論文學習記錄20200605:隱私保護神經網絡推理[USENIX2020]

DELPHI: A Cryptographic Inference Service for Neural Networks
在這裏插入圖片描述
DELPHI是一個安全的神經網絡預測系統。
背景 :
許多公司爲用戶提供神經網絡預測服務,比如說,家庭監控系統,使用專有的神經網絡對客戶家中的監控視頻中的對象進行分類,例如停在用戶家附近的汽車,或訪客的人臉。但是,當前的預測系統損害了用戶和公司中其中一方的隱私:要麼用戶必須將敏感輸入發送給服務提供商進行分類,損害了用戶的個人隱私。要麼服務提供商必須將其專有的神經網絡存儲在用戶的設備上,這會泄露服務提供商的商業機密,或者說是隱私。
作者提出的這個DELPHI,一個是在這個神經網絡推理過程中可以保證兩方的隱私,另一個是在性能方面比當前的工作有了很大的提高。
在這裏插入圖片描述
這個圖是表示一些能夠保護兩方隱私的協議,這些協議首先對用戶輸入數據和服務提供商的神經網絡模型進行加密,然後使用密碼協議對加密數據進行計算(例如同態加密或祕密共享),協議執行的最後,用戶得到推理的結果;任何一方都無法瞭解對方的輸入。

我們設計、實現並評估DELPHI,一個安全的預測系統,它允許雙方在不暴露任何一方數據的情況下執行神經網絡推理。
DELPHI通過同時設計密碼協議和一個planner規劃器來解決這個問題。
DELPHI的體系結構由兩個組件組成:用於評估神經網絡的混合密碼協議和用於優化給定神經網絡以配合我們的協議使用的神經網絡配置規劃器
首先,設計了一個混合密碼協議,它比以前的工作提高了通信和計算成本,但是同時可能造成準確度損失。
所以,開發了一個自動生成神經網絡結構配置的規劃器,該結構可以在混合協議的性能-準確度兩方之間進行平衡。總之,這些技術能夠在在線預測延遲方面比現有的最新工作提高22倍
DELPHI的目標是讓客戶只學習兩條信息:神經網絡的結構和推理的結果;關於客戶的私有輸入和服務器神經網絡模型參數的所有其他信息都應該隱藏起來。
在這裏插入圖片描述
它主要是在gazelle [ɡəˈzel]上進行改進的。
現代卷積神經網絡是由若干層組成的,每一層包含一個子層用於線性性質,一個子層用於非線性性質。常見的線性運算包括卷積、矩陣乘法和平均池。非線性操作包括激活函數,例如流行的ReLU(整流線性單元)函數
Gazelle處理線性層使用的是線性同態加密方案,處理非線性層使用的是混淆電路,這些工具需要用戶和服務提供商之間進行大量通信,所以性能較差和開銷較大。
爲了降低計算線性操作的在線成本,我們使用GAZELLE將開銷較大的密碼操作轉移到預處理階段。
我們的關鍵見解是,服務提供商對線性層的輸入M(即該層的模型權重)在用戶輸入隱私數據之前就已經知道,因此我們可以在預處理期間使用LHE創建M的祕密共享。
稍後,當用戶的輸入在聯機階段可用時,所有線性操作都可以直接在祕密共享數據上執行,而無需調用LHE之類的重型加密工具,也無需交互來執行矩陣向量乘法。

雖然上述技術已經大大減少了計算時間和通信成本,但兩種技術的主要瓶頸是爲ReLU激活函數評估亂碼電路的成本。爲了最小化這一成本,我們使用了一種更適合於有限域單元計算設置的替代方法:多項式近似。用多項式近似(特別是二次逼近)替換激活函數ReLU。
這些可以通過標準協議安全有效地計算。因爲這些協議只需要在每次乘法中傳送恆定數量的字段元素,所以使用二次近似大大減少每次激活的通信開銷,而不需要引入額外的通信回合。類似地,由於無延遲乘法協議只需要少量廉價的有限域運算,因此計算成本也降低了幾個數量級。具體來說,安全計算二次近似值的在線通信和計算成本比相應的誤碼電路的成本分別小192⇥和10000⇥。
然而,這種用多項式近似來達到的性能的提高,它是以神經網絡的準確性和可訓練性爲代價的。優先工作已經證明,二次逼近在某些情況下提供了良好的精度。同時,先前的工作和我們自己的實驗都表明,在許多情況下,簡單地用二次近似替換激活函數ReLU會導致準確度下降,並且可以增加數量級的訓練時間(如果訓練收斂的話)。爲了克服這個問題,我們開發了一個混合密碼協議,它使用激活函數ReLUs和二次近似來獲得良好的準確度和效率。
所以對於這樣一個混合的密碼協議,需要去在性能和準確度之間進行平衡。所以設計了一個規劃器,自動發現用二次近似代替哪些層的激活函數,以使所用的多項式近似數最大化,同時仍然確保精度保持在規定的閾值以上。我們的計劃者的洞察力是調整神經架構搜索(NAS)和超參數優化的技術。也就是說,我們採用這些技術來確定在給定的神經網絡體系結構中哪些層是近似的,併爲發現的網絡優化超參數。

在這裏插入圖片描述
系統設置中有兩方:客戶端和服務提供商。
服務提供者首先通過規劃器確定合適的神經網絡,比如說圖中,藍色點應該指的是性能低準確度高的用激活函數的非線性層,黃色點應該是多項式逼近實現的非線性層。可以看到客戶給服務提供者發送了一個同意使用準確度92%的。然後雙方進行預處理階段,然後在在線階段,客戶會輸入他的數據,再結合之前預處理階段的操作,最後輸出預測值。
在DELPHI中,雙方通過提供自己的輸入。服務提供者的輸入是神經網絡,而客戶的輸入是其用於預測的私有輸入。

威脅模型是兩方半誠實的,在這種模型下,只有一方被敵手攻陷。此外,這個敵手不會偏離協議,但它會試圖從收到的消息中瞭解對方的敏感輸入信息。
DELPHI的目標是讓客戶只學習兩條信息:神經網絡的結構和推理的結果;所有其他關於客戶的私有輸入和服務器的神經網絡模型參數的信息都應該隱藏起來。

在這裏插入圖片描述
這個是預處理階段,客戶端和服務器提前計算可在在線階段使用的數據。這個階段不需要知道用戶的輸入
客戶端通過同態加密的密鑰生成得到公鑰pk和私鑰sk,
每一層客戶端會選擇一個隨機掩碼向量ri,服務器選擇隨機掩碼向量si
客戶端用公鑰加密ri,發送給服務器。服務器通過同態的一些性質,計算得到miri-si的密文,發送給客戶端。
客戶端再用私鑰解密得到 miri-si ,這樣,服務器有si,客戶端有miri-si,客戶端和服務器就分別拿到了miri的加法祕密共享份
這一部分是爲了線性操作的預處理操作

下面是非線性操作,激活函數relu和多項式近似
激活函數使用混淆電路進行操作的,右圖是計算激活函數的電路,服務器作爲亂碼者,把這個電路進行混淆得到混淆電路c波浪線,然後發送給客戶端,同時,客戶端作爲評估者,通過不經意傳輸從服務器那裏獲得ri+1和mi x ri-si的標籤
對於多項式近似,客戶端和服務器運行Beaver的三元組生成協議,以生成許多Beaver的乘法三元組。Beaver的三元組生成協議是一個兩方的,計算一個乘法函數,採樣 a和b,然後將a1 b1 ab1給一方,a2b2ab2給另一方,這都是加法祕密共享。在這裏,他說這個三元組生成協議是用的線性同態加密方案

在這裏插入圖片描述
在線階段
客戶端輸入x,在第i層,客戶端在預處理階段已經採樣了ri,所以發送xi-ri給服務器,這裏的xi是上一層i-1層的傳遞下來的,如果是第一層,那x1就是輸入值x。這樣,服務器獲得xi-ri,客戶端已知ri,所以服務器和客戶端持有x的祕密共享份。

接下來,對於線性運算,服務器計算Mi(xi-ri)+si,在預處理階段,客戶端已經得到了Miri-si,所以,客戶端和服務器持有Mixi的祕密共享份,掩碼ri保證服務器無法獲得用戶的輸入xi,掩碼si保證客戶端無法獲得服務器的模型參數mi。

線性層之後就是非線性層,有兩種方式,一種是用混淆電路評估或者說是計算激活函數relu,第二種就是用beaver的乘法來進行多項式近似。
對於混淆電路,服務器把Mi(xi-ri)+si相關的亂碼標籤發送給客戶端,有了這個標籤加上之前在上一個階段客戶端已經通過不經意傳輸從服務器那裏獲得的亂碼標籤,他就能夠解開這個電路,得到結果xi+1 – ri+1的一次密碼本密文,這就是電路的輸出結果,然後把這個結果發送給服務器,服務器用密鑰進行解密,得到xi+1 -ri+1。

第二種方法是多項式近似,客戶機和服務器運行Beaver的乘法過程來計算接近該層的多項式。在程序結束時,客戶端保存[XI+1] 1,服務器保存【XI+1] 2。這其中具體的方式沒有打開來講。
客戶端計算 [xi+1]1- ri+1並且發送給服務器. 服務器加上[xi+1]2 獲得xi+1-ri+1.
當l層之後,服務器發送xl – rl ,客戶端加上rl,得到最後的結果xl
在這裏插入圖片描述
因爲使用混淆電路的方法性能比不上多項式近似,而使用多項式近似準確率不如混淆電路,爲了在這兩種方法提供的性能和精度之間進行權衡(以評估非線性層),DELPHI設計了一個規劃器,該規劃器生成了將這兩種方法混合使用的神經網絡,以最大程度地提高效率,同時仍能實現精度,該規劃器的核心是一種神經架構搜索(NAS)算法,該算法使服務提供商能夠自動找到滿足服務提供者的準確性和效率目標的網絡架構

在我們的實現中,我們決定使用基於人羣的訓練算法PBT
在每個時間步的末尾,它通過用戶指定的評分功能測量每個候選網絡的性能,並用性能最佳的候選版本替換性能最差的候選對象(變異函數由用戶指定)。
在優化過程結束時,PBT將輸出發現的性能最佳的候選網絡架構(以及用於訓練它們的超參數)

從右邊可以看到,首先會設置準確度閾值t,還有先設置非線性層全部爲激活函數,然後在3中看到逐步加大 I 也就是使用二次近似的層數,然後用PBT進行優化,輸出最佳候選網絡架構及超參數,然後在c中與準確度t比較,小於的話直接丟棄,滿足的話加進來,最後輸出網絡架構。

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

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