林 寧 陳曉明 夏春偉 李文星 葉 靖 劉自臻 李曉維
(中國科學院計算技術研究所 北京 100190)
(中國科學院大學計算機科學與技術學院 北京 101408)
隨著以深度學習模型為代表的人工智能技術的快速研究和發(fā)展,模型和數據的安全和隱私保護問題也開始受到廣泛的關注。例如,在分布式訓練深度學習模型的任務中(如聯邦學習(federated learning,FL)[1-6]),為了保護用戶的輸入數據隱私,不同用戶通過上傳模型的梯度而不是輸入數據到中央服務器進行梯度聚合。然而,最近的研究結果表明,用戶直接上傳模型的原始梯度并不安全。例如,文獻[7]提出一種有效的梯度泄露攻擊方法(deep leakage from gradients,DLG),惡意攻擊者直接利用模型的梯度,通過L-BFGS[8]優(yōu)化求解器來不斷優(yōu)化梯度間的歐式距離損失函數,就能完全恢復出用戶的輸入圖像。文獻[9]也提出一種有效的梯度攻擊方法(inverting gradients attack,IGA),通過構造初始化梯度與真實梯度之間的Cosine 相似度距離,并利用ADAM[10]優(yōu)化算法能夠在層數更深的模型上(如ResNet-18 模型[11])恢復出用戶的隱私輸入圖像。
現存的基于安全多方計算(secure multi-party computation,SMPC)、同態(tài)加密(homomorphic encryption,HE)以及差分隱私(differential privacy,DP)保護數據安全的方法,存在的主要問題分別是通信開銷較大、時延開銷過大以及精度損失嚴重。應用于圖像領域中的混沌映射算法具有延遲開銷較小、保護效果良好且映射過程無損等特點,這些都適合成為解決深度學習模型梯度安全保護的備選技術方案。
本文的主要貢獻包括:(1)總結了梯度攻擊方法的基本原理,提出一種基于混沌映射算法的梯度安全保護方法。保護梯度不是通過改變梯度的值大小來實現的,而是利用混沌映射算法變換梯度的位置來實現的,避免了復雜的數學運算過程,極大地降低了時延開銷。映射之后的梯度能夠完全恢復原始梯度值的大小,因此不會對模型的精度造成影響。(2)提出了一種有效且時延開銷較小的深度學習模型梯度映射保護方案。通過在模型各層梯度內任意選取不同的映射參數,并將模型層的映射問題轉化為0 -1 整數背包問題,利用動態(tài)規(guī)劃算法求解出最優(yōu)的保護方案,進一步降低了映射整個深度學習模型的時延開銷。(3)提出了一種雙重混沌映射方案,能在聯邦學習場景中同時防止惡意服務器和惡意用戶利用梯度攻擊還原出用戶的輸入隱私數據。本文在最新的兩類梯度攻擊方法DLG 以及IGA 上驗證了所提方法的有效性,同時在多種深度學習模型上進行了實驗并給出梯度保護算法在不同硬件平臺上的時延開銷對比。
當前主要存在三類保護深度學習模型梯度安全的方法。第一類是基于同態(tài)加密的數據加密方法。同態(tài)加密方法存在的主要問題是加解密時延開銷過大。例如,文獻[12]使用Paillier 算法[13-14](同態(tài)加密算法的一種),在一塊Intel Xeon CPU E5-2660 v3 CPU 上需要花費454.8 ms 才能加密52 650 個模型的參數值(大約0.5 M)。當前這種加密效率無法滿足實用性的需求,因為絕大多數深度學習模型的參數量遠大于0.5 M,例如VGG16 模型[15]的參數量為138 M,在時延開銷方面至少需要花費大約二十多分鐘來完成一次VGG16 模型的加密過程。然而,在聯邦學習場景中,通常需要幾百次梯度上傳操作,意味著需要耗費大約十幾個小時在模型的梯度加密操作上。而對于計算資源受限的端設備,加密時延開銷將會更大。為了降低加解密時延開銷,文獻[16]提出先利用矩陣分解方式來得到少量需要上傳的參數值(如梯度值),之后再對分解后的參數值進行同態(tài)加密操作。然而,盡管加密少量的值能夠降低時延開銷,但是由于依然采用了運算過程復雜的同態(tài)加密方法,因此加解密時延依然較大。此外,由于該方法利用了矩陣分解,會對模型的精度造成影響,且方法未在大數據集上(如ImageNet 數據集)或者層數較深的模型上進行實驗驗證。因此,當前基于同態(tài)加密來保護梯度安全性的方法,在算法運行效率方面依然有待進一步提升。
第二類保護梯度安全的方法是差分隱私[17-18]。差分隱私方法的基本思想是在權衡實用性和隱私性的前提下,向數據引入噪聲,因此差分隱私的時延幾乎可以忽略不計。然而,由于對需要保護的模型梯度添加了噪聲,無法保證模型的精度不受影響。添加的噪聲級越大,對模型梯度保護的安全等級就越高,然而模型精度損失就越大。例如在文獻[7]中,作者在實驗中說明為了防御DLG 攻擊,采用差分隱私方法對模型梯度值添加高斯噪聲或拉普拉斯噪聲。當添加的噪聲等級為0.001 時,模型的精度下降了大約3%,但無法起到梯度保護作用,攻擊者利用添加噪聲后的梯度依然能夠恢復出模型的輸入圖像;與之相反,當添加的噪聲等級為0.01 或者0.1時,能對梯度起到安全保護作用,然而模型精度下降超過了30%。因此,基于添加噪聲的差分隱私方法,在安全性與精度權衡方面需要進一步研究。
此外,還有一類保護梯度安全的方法是安全多方計算,最早由文獻[19]提出,主要研究如何協同地從每一方的隱私輸入中計算函數的結果,而不需要將輸入展示出來。安全多方計算主要通過不經意傳輸(oblivious transfer,OT)、密鑰共享(secret sharing,SS)和閾值同態(tài)加密(threshold homomorphic encryption,THE)來實現[4]。安全多方計算存在的主要問題是通信過程復雜以及通信輪數較多,造成的計算開銷和時延開銷較大。例如,文獻[20]提出利用密鑰共享來對不同用戶上傳的梯度進行安全聚合,在服務器端的通信開銷為O(n2+mn),其中m代表數據量的大小,n代表用戶的個數。因此,數據量越大以及用戶個數越多,帶來的通信成本就越高。
文獻[7]提出DLG 梯度攻擊方法,主要通過構造隨機初始化輸入圖像x'對應的模型梯度?W'與真實輸入圖像對應的梯度?W之間的歐式距離,利用L-BFGS[5]來求解出滿足梯度間距離最小的輸入圖像x',梯度間歐式距離函數關系如式(1)所示。
式中,F代表深度學習模型,L代表損失函數,y'代表隨機初始化輸入圖像對應的輸出類別。因此,一旦惡意攻擊者獲得了模型的原始梯度?W,通過求解式(1)能恢復出模型的輸入圖像。另外,文獻[9]通過將梯度間的歐式距離替換為Cosine 相似度,并利用ADAM 優(yōu)化器來求解出最優(yōu)的輸入圖像,實現了IGA 梯度攻擊。
通過以上分析可知,如果對原始梯度?W施加某種數據保護措施,例如使用差分隱私方法對?W添加等級較大的噪聲值,那么利用式(1)進行優(yōu)化求解,最終會得到錯誤的輸入圖像,實現了模型梯度的安全保護。然而,添加噪聲等級較大的值會帶來嚴重的精度損失。本文希望能夠完全不損失模型精度的前提下,高效快速地完成對模型原始梯度?W的保護。
通過分析梯度攻擊原理可知,除了對模型梯度?W直接進行數值操作能夠對梯度進行保護之外,還可以通過變換梯度內部值的位置來實現梯度保護。變換位置后的梯度與原始梯度的差異性越大,對梯度的安全保護效果就越好,且變換位置運算過程通常不需要數據加密算法中復雜的數學運算操作(如同態(tài)加密),能夠節(jié)省運算的時延開銷?;谏鲜隹紤],本文希望利用圖像隱私保護領域中的Arnold’s Cat Map (ACM)算法[21-22]來保護模型的梯度。ACM 屬于混沌映射理論的一種,最早由Vladimir Arnold 提出并主要用于圖像安全隱私保護。圖1(a)展示了使用ACM 算法對圖像映射之后的效果圖。ACM 通過以特定方式交換圖像中像素位置來實現安全保護,由于映射變換破壞了相鄰像素之間的相關性,映射后的圖像沒有任何語義信息,可以達到與傳統數值加密算法同樣的保護效果,且映射過程運行效率較高、映射前后完全可逆,因此不會對模型造成精度損失。下文將詳細介紹ACM 映射算法的基本原理。
圖1 ACM 映射示例圖
映射本文利用ACM 算法通過變換深度學習模型中卷積層或全連接層的梯度位置來完成映射。如圖1(b)所示,以單層梯度?W為例,設深度學習模型第l層梯度的形狀為C×N×k×k,其中C是通道數目、N是卷積核的個數、k是卷積核的大小,其值通常取為1、3、5 和7。當k=1 時,可將ACM 算法應用于全連接層。為了降低計算量同時節(jié)省映射時延開銷,本文只對前兩維,即C×N,進行位置映射變換操作,實驗結果證實了對梯度前兩維進行映射變換是有效的。映射過程如式(2)所示。
其中,參數p、q和τ 為正整數值,為ACM 的映射參數。(i,j) 以及(iACM,jACM) 分別為原始梯度的位置以及ACM 映射后梯度的位置。S代表映射范圍的大小(映射范圍須為正方形,即S×S),映射范圍的大小須同時滿足S≤C和S≤N,且ACM 映射能夠在單層梯度的任意范圍內實施,假設為[α1,α2] ×[β1,β2](0 ≤α1<α2≤N以及0 ≤β1<β2≤C),則需要進行位置映射的集合Ⅱ,如式(3)所示。
其中,映射范圍的大小S=(α2-α1)=(β2-β1)。此外,ACM 能夠對深度學習模型的任意層進行位置映射,因此映射層集合L、ACM 映射參數(即p、q和τ)以及映射位置集合Ⅱ構成ACM 算法的映射因子,映射因子PACM的具體表達如式(4)所示。
其中,上角標l代表映射層的序號,映射后的梯度?WACM如圖1(b)右子圖所示。
逆映射當已知映射因子以及映射后對應的梯度位置(iACM,jACM),原始梯度的位置(i,j) 可以通過式(5)求得。
在式(2)和式(5)中,參數τ 較大時,計算Aτ以及A-τ的過程較為耗時,為了降低時延開銷,快速求解出Aτ以及A-τ,本文將參數p、q值的大小設置為1。此時,Aτ的表達式可以表示為
式(6)中,fτ為斐波那契數,即,
利用斐波那契數列的遞推公式,可以提前求得Aτ,因此節(jié)省了計算的時延開銷。同理,逆映射參數A-τ的表達式為
為了驗證所提算法的有效性,本文以聯邦學習場景為例,展示了如何保護深度學習模型梯度的安全。圖2 顯示了聯邦學習的參與方,其中包括一個中央服務器和多個聯邦用戶。在聯邦學習場景訓練深度學習模型時,服務器方會接收到來自不同聯邦用戶的梯度,這些梯度是用戶在本地端設備利用各自的隱私輸入數據求得的。在此場景中,如果梯度沒有進行安全保護操作,一旦被惡意服務器接收或者被第三方惡意用戶通過中間人攻擊截獲,利用2.1節(jié)提到的梯度攻擊方法(例如,DLG 攻擊以及IGA 攻擊)能完全恢復出用戶的隱私輸入數據,因此給深度學習模型梯度的安全帶來了嚴重的威脅。本文將利用ACM 算法對梯度進行安全保護,同時防止聯邦學習場景中惡意服務器和惡意用戶利用梯度還原用戶的輸入數據。
圖2 聯邦學習中的梯度泄露
利用ACM 映射,用戶可以對深度學習模型所有層的梯度值進行位置交換從而實現較好的保護效果。然而,對模型所有層的梯度值進行ACM 映射會導致較高的時延開銷,尤其是對計算資源受限的智能終端設備(如手機等移動端設備),時延開銷會隨著映射層數的增加而增大。為了能夠獲得具有良好的保護效果且能夠快速高效地運行,本文通過最大化映射梯度?WACM與原始梯度?W之間差值,構造了梯度差值最大化目標函數,并使得映射模型梯度總的時延開銷T(PACM) 小于預先指定的最大時延tmax開銷,具體如式(9)和式(10)所示。
通過分析上述目標函數可知,最大化映射梯度?WACM(PACM) 與原始梯度?W的差值能夠有效防御DLG 及IGA 攻擊利用原始梯度直接還原用戶的輸入圖像,這是因為惡意攻擊者獲得的梯度?WACM(PACM) 與原始梯度差值較大,使用式(1)破解時,會得到完全錯誤的優(yōu)化結果,因此也就無法恢復用戶的輸入圖像。直接求解式(9)會得到最優(yōu)且唯一的映射因子PACM。然而,唯一映射因子會增加惡意攻擊者破解的可能性。
為了增大攻擊者破解的難度,本文通過在優(yōu)化目標式(9)中增加更多ACM 映射因子選取的隨機性。首先,對于需要映射的深度學習梯度層集合L,在每一層中選取任意的映射范圍。然后,利用這些層對模型進行ACM 映射。單層梯度內大的映射范圍S以及更多的映射層數能夠產生良好的保護效果,但也會帶來較大時延開銷。為了使得映射后的模型能夠取得較好的保護效果,且映射時延開銷小于預期最大的時延開銷tmax,將式(9)中的優(yōu)化目標改進為如下優(yōu)化目標:
其中,xl∈{0,1},l∈L。xl=1 表示深度學習模型的第l層梯度需要進行ACM 映射,相反xl=0 表示該層不進行ACM 映射。tl表示第l層梯度的映射對應的時延開銷。
通過分析上述公式可知,式(11)中的優(yōu)化問題可以被看作經典的0 -1 整數背包問題,本文利用動態(tài)規(guī)劃方法求解該整數背包問題。在算法1 及算法2中詳細展示了求解式(11)中的優(yōu)化目標的具體過程。在算法1 中,首先,計算深度學習模型第l層的映射梯度和原始梯度之間距離的L1 范數dl,其中dl=,dl越大代表ACM 映射后的梯度與原始梯度的差異性越大。之后,在硬件平臺測量出每一層ACM 映射對應的時延開銷tl。最后,利用算法2 中的動態(tài)規(guī)劃算法求解出最優(yōu)的保護方案,即需要使用ACM 映射的層數。需要說明的是,整個算法的求解過程不會耗費大量的時延開銷,原因在于:(1)在硬件平臺測量映射時延開銷tl是非??斓?僅需要L次測量就可以完成,其中L是深度學習模型的層數。(2)計算深度學習模型的第l層映射梯度和原始梯度距離的L1 范數也僅僅需要L次就能夠完成。因此,通過算法1 能求出每一層的映射因子{τl,Sl},利用算法2 可以求得需要映射的層集合L,因此可得最終的映射因子PACM。通過以上分析可以得出,本文提出的算法能夠確保映射因子是有效且不唯一的,同時映射時延開銷小于預期最大的時延開銷。
為了能夠同時防止惡意服務器以及惡意用戶利用深度學習模型的梯度來偷窺用戶輸入,本文提出對需要上傳的模型梯度進行雙重ACM 映射,來實現保護模型梯度的安全性。圖3 展示了雙重映射機制上傳梯度的流程。其中,第一輪映射是為了防止惡意服務器通過梯度來偷窺用戶的輸入,此時所有用戶共享同一個映射因子來保護模型梯度,本文將其稱為用戶-用戶映射。第二輪映射是為了防止惡意用戶通過中間人攻擊竊取梯度來偷窺其他用戶的輸入。因此,每個用戶對梯度進行第二輪映射時,每個用戶的映射因子只與服務器進行共享,且各用戶之間的映射因子不同,因此本文將其稱為用戶-服務器映射。映射因子使用3.2 節(jié)提出的方法生成。
圖3 雙重映射示意圖
為了在服務器端進行梯度聚合操作,當服務器收到不同用戶傳來的雙重映射梯度后,首先根據用戶-服務器映射因子對雙重映射的梯度進行一次逆映射操作。逆映射一次后的梯度依然處于映射狀態(tài)(即第一輪映射梯度狀態(tài)),此時服務器沒有用戶-用戶之間的映射因子,因此惡意服務器要想偷窺用戶的輸入,就需要破解映射后的梯度。由于不同用戶上傳的第一次映射后梯度具有相同的映射因子,表明所有用戶都對梯度進行了相同方式的位置變換,而聯邦學習中常見的聚合操作是線性的求均值操作,因此映射后的梯度能夠在第一輪映射狀態(tài)進行聚合操作。最后,服務器將保持映射狀態(tài)的聚合梯度返回給不同的用戶,不同用戶根據用戶-用戶映射因子對梯度進行一次逆映射操作,并利用完全逆映射后的梯度(即原始梯度)在本地更新模型的參數,并進行下一輪的學習。
惡意用戶只有用戶-用戶映射因子以及該惡意用戶與服務器之間的映射因子,沒有其他用戶與服務器之間的映射因子,因此無法直接對雙重映射的梯度進行兩次逆映射來偷窺其他用戶的輸入。同理,惡意服務器只有不同用戶與服務器之間的映射因子,但沒有用戶之間的映射因子,因此也無法對雙重映射的梯度進行二次逆映射,也無法直接利用梯度攻擊方法來偷窺用戶的輸入。綜上,本文提出的雙重映射機制不但能阻止惡意服務器通過梯度偷窺用戶的輸入隱私,同時還能防止惡意用戶偷窺用戶的輸入,因此確保了模型梯度的安全性。
ACM 映射算法主要應用于圖像隱私保護領域,本文利用其效率高且安全保護效果好等特點將其應用于深度學習模型的梯度安全保護。對于ACM 在圖像領域的保護,存在兩種已知的攻擊方式,分別為已知明文攻擊(known-plaintextattack)和選擇明文攻擊(chosen-plaintext attack)[23-24]。一方面,已知明文攻擊假設攻擊者已知明文與密文對,然而在梯度安全保護場景下,惡意服務器只知道映射梯度而無法得知原始梯度。同理,惡意用戶只能獲得本地原始梯度與映射后的梯度對,而無法獲得其他用戶原始的梯度。因此,已知明文攻擊對于本文的梯度保護場景是無法實施的。另一方面,對于選擇明文攻擊,假設攻擊者能夠訪問映射的內部機制。得益于雙重映射協議,本文提出的方法能有效防止此類攻擊。原因在于惡意服務器只能訪問自身與不同用戶的映射機制,而無法得知用戶之間的映射方式。同理,惡意用戶只能訪問本地和服務器之間的映射機制,而無法得知其他用戶與服務器之間的映射機制。因此,應用于圖像領域的已知明文攻擊和選擇明文攻擊在深度學習模型梯度保護領域是不起作用的。
另一種可能的攻擊方法是暴力搜索,根據上文分析可知,本文所提方法能映射深度學習模型的任意層以及任意范圍,因此暴力搜索的攻擊復雜度較大,接近。以下文實驗中使用的ConvNet64 模型為例(模型結構詳見文獻[9]),該模型具有8 層網絡結構(即L=8),由于第一層可映射范圍較小,因此只考慮映射后7 層梯度,假設ACM 映射參數τ 的取值范圍為10,則暴力搜索的攻擊復雜度接近4.7 ×1056。即使攻擊者使用算力強大的計算機來破解,假設能夠每秒驗證1000 次,破解本文所提梯度保護方法需要花費4.7 ×1053s,約等于1.5 ×1046a。
本文在兩類最新的攻擊方法上驗證了對梯度的安全保護效果,分別為DLG 梯度攻擊[7]以及IGA 梯度攻擊[9]。本文提出的梯度安全保護方法適用于各類深度學習模型,包括淺層模型以及深層模型。其中,使用文獻[7]中提到的淺層模型在CIFAR-100[25]數據集上,評估防御DLG 攻擊方法的有效性。使用在文獻[9]中提到的深層ConvNet-64 模型以及ResNet-18 模型[11]在CIFAR-10[25]、LFW[26]以及ImageNet[27]數據集上來評估防御IGA 攻擊方法的有效性。
對于防御DLG 攻擊,采用原始文獻中的添加噪聲的DP 防御方法作為基準進行對比。由于基于同態(tài)加密的LWE 防御方法[12]與DLG 攻擊方法使用的淺層模型參數量接近,因此本文將其作為實驗基準進行分析說明。對于防御IGA 攻擊,由于模型的層數較深且參數量較大,在原始文獻中沒有給出相關防御策略,本文提出將ACM 方法直接應用于深層模型的所有卷積層作為實驗基準進行對比并分析其時延開銷。
實驗中使用的評價指標包括:(1)峰值信噪比(peak signal to noise ratio,PSNR),用來評估梯度攻擊之后的圖像恢復效果。PSNR 越小,表示恢復的圖像質量越差,代表本文提出的梯度安全保護方法效果越好。(2)時延開銷,用來評價算法在硬件平臺上的運行效率。時延開銷越小,代表算法運行效率越高。表1 展示了本文使用的硬件實驗平臺。在時延開銷評估方面,對于算力較弱的硬件平臺,本文使用3 款移動手機芯片Qualcomm Snapdragon 450、-625 以及-835 來進行實驗,并使用C++來實現本文所提算法,同時使用安卓NDK 庫對程序進行編譯。對于算力較強的硬件平臺,本文使用Intel E5-2650 V4 CPU 和NVIDIA TITAN V GPU 進行實驗,分別使用C++和CUDA 實現本文所提算法。
表1 實驗中使用的硬件平臺
4.2.1 映射因子分析
圖4 以及圖5 分別展示了不同映射因子參數對ConvNet 64 模型的保護效果以及時延開銷的影響。其中,保護效果利用映射后的梯度與原始梯度之間差值的L1 范數()來表示。為了降低映射時延開銷,在映射因子式(4)中設置p=1 以及q=1 。因此,模型梯度的映射時延開銷以及保護效果主要取決于層集合L、映射參數τ 以及映射范圍大小S。
圖4 映射因子對ConvNet 64 模型梯度保護效果的影響
圖5 映射范圍大小對時延開銷的影響
映射層集合L 的影響。圖4 展示了不同映射因子對ConvNet 64 模型映射效果的影響。從圖中能夠得出,模型靠后層的保護效果要好于靠前層的保護效果。例如,當映射范圍S×S=128 ×128 以及τ=5 時,模型第8 層對應的梯度差值L1 范數大小為8.21,第7 層對應梯度的差值L1 范數大小為5.06,而第6 層對應的梯度差值L1 范數大小為2.99。梯度間的差值L1 范數越大表明映射后的梯度與原始梯度差異越大,此時梯度攻擊方法利用映射后的梯度就越難以恢復出原始的輸入圖像。
映射參數τ 的影響。從圖4 中能夠得出,τ 在大部分取值情況下,不會對保護效果有較大差別的影響。舉例來說,當映射ConvNet64 的第8 層梯度及S×S=96 ×96 時,隨著τ 的不斷增大,除了τ 為12 的倍數對應的梯度差值距離較小之外,大部分梯度差值L1 范數距離為4.9,因此參數τ 具有周期性,文獻[28]中給出了其周期性取決于映射范圍以及映射參數p和q。因此,在隨機選取映射參數τ時,應該剔除那些導致保護效果較差的值。
映射范圍大小S的影響。映射范圍的大小不僅會影響保護效果,同時還會影響時延開銷。越大的映射范圍,保護效果就越好,但隨之也帶來了較大的時延開銷。例如,如圖4 所示,對于ConvNet 64 模型的第8 層梯度以及τ 取值為6 時,映射范圍S×S=256 ×256、196 ×196 以及128 ×128 對應的梯度間距的L1 范數分別為33.8、16.5 以及7.9。然而,圖5展示了不同映射范圍在不同硬件平臺的時延開銷對比,當映射范圍為S×S=256 ×256 時,在Intel Xeon E5-2650 v4 CPU 上對應的時延開銷為996 μs,比S×S=196 ×196 以及S×S=128 ×128 對應的時延開銷分別快435 μs 以及777 μs。
4.2.2 防御DLG 攻擊
圖6 以及表2 展示了本文所提方法防御DLG攻擊方法的效果,實驗中對比了基于同態(tài)加密的LWE 方法[12]的加密時延開銷,還比較了對梯度添加高斯噪聲(Gaussian)以及拉普拉斯(Laplacian)噪聲的差分隱私方法(differential privacy,DP)。其中,差分隱私方法在文獻[7]進行了實驗驗證,本文利用文獻中的實驗數據在表2 中進行分析說明。
圖6 防御DLG 攻擊的效果
表2 不同防御方法性能對比
從圖6 能夠得出,如果不對梯度增加任何保護措施(即圖中的無防御),DLG 攻擊方法能夠持續(xù)不斷地優(yōu)化梯度損失,直到損失接近為0,此時峰值信噪比(PSNR)達到最大值37.93,從圖中看出輸入圖像已經幾乎完全被還原出來。差分隱私方法添加較大級別的噪聲時能夠阻止DLG 攻擊,但對模型在原始任務上的精度造成了嚴重的影響。例如,DP(L-0.1)(拉普拉斯噪聲為0.1 級別)對應的梯度匹配損失幾乎沒有下降,且利用DLG 攻擊方法恢復出來的輸入圖像的峰值信噪比(PSNR)為8.33。由于恢復之后的圖像沒有任何語義內容信息,因此實現了對梯度安全保護的目標,然而模型的精度損失為75.3%,如表2 所示。而差分隱私方法添加較小級別的噪聲無法對梯度起到安全保護作用,因此無法阻止攻擊者使用DLG 方法還原輸入數據。例如,DP(L-0.001)(拉普拉斯噪聲為0.001 級別)對應的峰值信噪比為22.91,從圖能夠看出輸入圖像的內容信息。
與差分隱私相反,基于同態(tài)加密的LWE 方法以及本文所提方法都能夠有效防止DLG 攻擊還原輸入圖像,且能夠保證精度不下降。文獻[7]的4 層的深度學習模型大約包含85 000 個梯度,使用LWE方法需要至少花費大約450 ms 才能在一塊Intel Xeon E5-2660 v3 CPU 進行加密。本文所提方法僅需要花費大約6 μs 就能對該模型在一塊Intel Xeon E5-2650 v4 CPU 上實現保護,因此能夠節(jié)省大量的時延開銷。所提方法時延開銷較小的原因在于,沒有利用復雜的加密運算對85 000 個梯度值進行逐個加密(例如,同態(tài)加密),而是直接對梯度中的整個卷積核進行ACM 映射,且能夠選擇部分映射范圍,因此大幅降低了時延開銷。此外,本文也在一塊TITAN V GPU 實現了對該模型的保護,實驗數據顯示需要花費大約496 μs 能完成映射過程。GPU 上時延開銷比CPU 大的原因是調用CUDA 核函數本身會花費幾百微秒的時延。
4.2.3 防御IGA 攻擊
圖7 展示了在不同的梯度防御措施下,惡意攻擊者利用IGA 攻擊通過模型梯度恢復的輸入圖像。圖中T-US 中的T 代表期望的最大時延開銷(即tmax)為Tus,時延開銷在一塊Intel Xeon E5-2650 v4 CPU 上進行測試,此外US 表示聯邦學習中的惡意服務器僅有服務器(Server)與客戶(User)之間的映射因子,而沒有客戶與客戶之間的映射因子。舉例來說,在1000-US 設定參數條件下,本文提出的方法大約需要999 μs 就能對ConvNet64 模型完成安全保護。利用IGA 攻擊對1000-US 設置下的梯度進行攻擊,恢復的輸入圖像峰值信噪比(PSNR)為0.93,遠小于無保護措施下的峰值信噪比11.42。對于更深層的ResNet-18 模型,在5000-US 設定條件下,本文所提方法需要4627 μs 來保護梯度,恢復的輸入圖像峰值信噪比為-0.82,幾乎沒有任何語義信息。對于ConvNet64 模型,在500-US 設定條件下,對于梯度保護的效果均較差,這是由于設定的最大時延開銷過小(tmax為500 μs)而導致的。此外,在圖7中還展示了利用ACM 方法對模型所有層梯度映射保護后的IGA 梯度攻擊防御效果。由于對模型所有層梯度都進行了映射操作,因此ACM 方法能有效保護模型梯度的安全性,但時延開銷比本文所提方法要高。因此,本文在實現良好梯度保護效果的同時,能夠保持較小的時延開銷。
圖7 防御IGA 攻擊的效果
除了需要防止惡意服務器利用模型的梯度偷窺用戶隱私之外,還要防止惡意用戶利用中間人攻擊通過梯度偷窺用戶的輸入。如圖8 所示,一旦攻擊者同時擁有用戶之間的映射因子(UU 映射因子)及其他用戶和服務器之間的映射因子(US 映射因子),此時利用IGA 攻擊能夠完全恢復用戶的輸入圖像,如子圖3000-US&UU 所示。然而在實際情況中,惡意用戶只有用戶之間的映射因子(UU 映射因子),沒有其他用戶與服務器之間的映射因子(US映射因子)。因此,惡意用戶無法利用IGA 攻擊通過梯度來還原其他用戶的輸入圖像,如子圖3000-UU 所示惡意用戶利用中間人攻擊無法獲取。如果攻擊者既沒有用戶之間的映射因子,又沒有用戶與服務器之間的映射因子,則完全無法利用IGA 攻擊來偷窺用戶的輸入數據。此外,在500-UU 設定參數條件下,由于最大時延開銷過小(tmax為500 μs),因此防御能力較差。
圖8 防御IGA 中惡意用戶攻擊
4.2.4 用戶間的映射因子適用性
第一次對梯度進行ACM 映射時所有用戶使用的是某個用戶生成的映射因子來對梯度進行位置交換。在聯邦學習任務中,不同用戶會具有不同類型的輸入數據,這些輸入數據可能是類似的,服從獨立同分布(independent and identically distributed,IID),對模型求得的梯度可能是類似的。也可能不是類似的,服從非獨立同分布的(Non-IID),求出的梯度不是類似的。在圖9 中,所有用戶使用的是同一映射因子進行安全保護,該映射因子為ACM 映射算法在圖7 的小汽車數據所產生的梯度上的優(yōu)化結果。從映射后防御IGA 攻擊的效果能夠得出,當期望的最大時延開銷tmax為3000 μs或1000 μs時,由于圖9 中的小汽車具有與圖7 中的小汽車相同的屬性,屬于獨立同分布(IID)數據,因此圖9 中的小汽車產生的梯度值能夠使用圖7中的小汽車產生的梯度對應的映射因子進行混沌映射保護,且具有良好的防御效果。此外,對于其他用戶擁有比如狗、馬、青蛙和飛機等輸入對應的模型梯度,使用小汽車對應梯度的映射因子也能對其進行有效保護。這是因為當最大時延tmax設置較大時,能夠對深度學習模型中較多層的梯度進行混沌映射,并取得較好的保護效果。
圖9 用戶間映射因子的適用性
4.2.5 移動端平臺性能
為了評估本文提出方法在計算資源受限的端設備上的性能表現,圖10 展示了3 款手機芯片Qualcomm Snapdragon 835、-625 和-450 上梯度保護效果以及對應的時延開銷,同時也對比了性能較強的CPU 和GPU 上的實驗結果。在3 款手機芯片上,性能較好的Qualcomm Snapdragon 835 芯片在不同的實驗配置下都能產生較好的梯度保護效果。性能較差的Snapdragon 625 以及Snapdragon 450 芯片,保護效果較差,原因是混沌映射時延限制要求較高而芯片性能較差。例如,在1000(即tmax為1000 μs)實驗設置下,對梯度的安全保護效果較差。而當實驗配置設置為3000 時(即tmax為3000 μs),Snapdragon 625 以及Snapdragon 450 芯片的保護效果幾乎與Snapdragon 835 相同。綜上,本文所提方法能夠保護模型梯度的安全且時延開銷較小,在毫秒級別就能完成梯度安全保護。
圖10 不同平臺的保護效果
本文提出一種基于雙重混沌映射算法的深度學習模型梯度安全保護方法,在聯邦學習場景中能夠同時阻止惡意用戶和服務器利用梯度攻擊方法恢復用戶的輸入隱私數據。與安全多方計算、同態(tài)加密和差分隱私方法不同,本文所提方法利用ACM 映射算法通過交換深度學習模型梯度的位置來實現梯度保護。由于不需要對深度學習模型所有梯度值進行映射,而是將深度學習模型梯度層的混沌映射問題轉化為背包問題,并利用動態(tài)規(guī)劃求解出最優(yōu)的保護方案,因此節(jié)省了梯度保護的時延開銷。此外,對每一層梯度進行混沌映射時,任意映射范圍增加了映射因子生成的隨機性,也增大了攻擊者破解的復雜度。此外,與差分隱私方法相比較,本文提出的方法完全不損失精度;與安全多方計算方法相比,本文所提方法通信開銷可以忽略不計。所提方法的有效性在當前最新兩類梯度攻擊方法——DLG 和IGA上得到了驗證。最后,在計算能力較低的移動端芯片平臺上驗證了混沌映射的時延開銷,實驗結果表明所提方法能在毫秒級別完成計算。
人工智能算法已經在日常生活的各種場景得到了大量的應用,本文希望該項研究工作能夠促使人工智能算法的研究和應用人員更多地關注算法的安全性,同時能夠探索更高效的安全保護方法。