肖林聲,錢慎一
(鄭州輕工業(yè)大學(xué) 計(jì)算機(jī)與通信工程學(xué)院,鄭州 450002)
深度學(xué)習(xí)已經(jīng)被證明在很多的機(jī)器學(xué)習(xí)任務(wù)中表現(xiàn)出色,這些深度神經(jīng)網(wǎng)絡(luò)(DNN)可以從大量的樣本中訓(xùn)練出高精度的模型,然后以極高的準(zhǔn)確率對(duì)新的樣本進(jìn)行分類,因此DNN被大量的用于各種環(huán)境和任務(wù)中[1-3].而在當(dāng)今的世界中,深度學(xué)習(xí)和人工智能技術(shù)發(fā)展遇到了兩個(gè)主要的挑戰(zhàn),一個(gè)是在的大多數(shù)的行業(yè)中,數(shù)據(jù)以數(shù)據(jù)孤島的形式存在;另一個(gè)是訓(xùn)練人工智能模型需要大量的數(shù)據(jù),而將數(shù)據(jù)的不當(dāng)收集將使得數(shù)據(jù)的隱私和安全難以得到保護(hù)[4].為了解決以上問(wèn)題,谷歌最早提出了聯(lián)邦學(xué)習(xí)的概念[5-7].他們的主要想法是基于分布在多個(gè)設(shè)備上的數(shù)據(jù)來(lái)構(gòu)建機(jī)器學(xué)習(xí)模型,并同時(shí)防止用戶的隱私泄露.
除此之外,最近關(guān)于機(jī)器學(xué)習(xí)和安全領(lǐng)域的研究也表明,攻擊者可以通過(guò)讓大多數(shù)的包括DNN在內(nèi)的機(jī)器學(xué)習(xí)模型,使用精心設(shè)計(jì)的輸入來(lái)迫使其輸出攻擊者所選擇的輸出.攻擊者精心設(shè)計(jì)的樣本被稱為對(duì)抗樣本,對(duì)抗樣本的設(shè)計(jì)算法僅引入了盡可能少量的擾動(dòng),使得對(duì)抗樣本和正常樣本難以區(qū)分.圖1展示了普通樣本和對(duì)抗樣本的區(qū)別.
圖1中,圖像(a)被訓(xùn)練完成的DNN正確分類為數(shù)字“8”,而圖像(b)則是對(duì)抗樣本設(shè)計(jì)算法從正確的圖像中生成的并被分類為錯(cuò)誤的數(shù)字“4”.深度學(xué)習(xí)被廣泛用于車輛的自動(dòng)駕駛中,基于DNN的系統(tǒng)用于識(shí)別道路上的標(biāo)識(shí)和車輛[8],若干擾這些系統(tǒng)的輸入,例如輕微的改變車身導(dǎo)致對(duì)于行駛的車輛識(shí)別失敗,則會(huì)無(wú)法使得汽車停下來(lái),最終釀成事故.即使在聯(lián)邦學(xué)習(xí)的條件下,所訓(xùn)練的DNN模型依舊容易受到對(duì)抗攻擊的威脅.因此,設(shè)計(jì)DNN系統(tǒng)時(shí)必須要考慮對(duì)抗樣本的問(wèn)題,但是目前的對(duì)策非常少,過(guò)去的工作考慮了構(gòu)建針對(duì)對(duì)抗樣本的防御的問(wèn)題,但是它們的不足之處在于,它們需要對(duì)DNN的架構(gòu)進(jìn)行修改,或者僅僅對(duì)部分對(duì)抗樣本有效[9-10].
(a) (b)圖1 對(duì)抗樣本和正常樣本的差別Fig.1 The difference between adversarial samples and normal samples
為了解決目前DNN所面臨的問(wèn)題,本文使用了聯(lián)邦學(xué)習(xí)和防御蒸餾[11]的技術(shù)來(lái)對(duì)抗攻擊者進(jìn)行的對(duì)抗攻擊并保護(hù)用戶的隱私,并使用了稀疏三元(STC)法減小用戶與服務(wù)器之間的通信開銷,設(shè)計(jì)了安全的深度神經(jīng)網(wǎng)絡(luò).主要貢獻(xiàn)包括以下方面:① 本文所使用的防御蒸餾的方法使得對(duì)抗攻擊的對(duì)抗樣本的制作成功率從95.9%降低到了0.45%.② 通過(guò)在真實(shí)數(shù)據(jù)集上的驗(yàn)證,文中的方案在保證了模型預(yù)測(cè)準(zhǔn)確性和安全性的同時(shí),將通信開銷減少到了原來(lái)的1%~10%.
主要介紹深度神經(jīng)網(wǎng)絡(luò)(DNN)、防御蒸餾、聯(lián)邦學(xué)習(xí)和STC稀疏三元理論.
深度神經(jīng)網(wǎng)絡(luò)是一種成熟的機(jī)器學(xué)習(xí)技術(shù),在其中組合了許多的參數(shù)函數(shù),使得輸入的樣本的表示更加簡(jiǎn)單[12].實(shí)際上來(lái)說(shuō),一個(gè)DNN由幾個(gè)連續(xù)的神經(jīng)元層組成,最后形成一個(gè)輸出層,這些層可以看作是輸入數(shù)據(jù)的連續(xù)表示[13].深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖2所示.
圖2 深度神經(jīng)網(wǎng)絡(luò)Fig.2 Deep neural network
輸入層的多維輸入向量X,其中的每一個(gè)神經(jīng)元都對(duì)應(yīng)上文所提到的參數(shù)函數(shù),構(gòu)成層的神經(jīng)元被建模為將激活函數(shù)應(yīng)用于其輸入的基本計(jì)算單元.并且神經(jīng)網(wǎng)絡(luò)通過(guò)一組向量加權(quán)的鏈接來(lái)連接各層,這些權(quán)重向量也稱為網(wǎng)絡(luò)參數(shù)θF.在訓(xùn)練的過(guò)程中,θF中數(shù)值的權(quán)重向量將會(huì)被評(píng)估.在這個(gè)過(guò)程中,DNN中會(huì)輸入大量的訓(xùn)練樣本(x,y)∈(X,Y),通過(guò)一系列的訓(xùn)練過(guò)程計(jì)算DNN輸出層的預(yù)測(cè)誤差,以及相應(yīng)的權(quán)重參數(shù)的梯度[14],再使用計(jì)算出的梯度值更新現(xiàn)有的權(quán)重參數(shù),以此來(lái)提高網(wǎng)絡(luò)的整體精度.該訓(xùn)練方式被稱為反向傳播,由預(yù)先設(shè)定的超參數(shù)來(lái)控制,這些超參數(shù)對(duì)于模型是否收斂至關(guān)重要,最重要的超參數(shù)為學(xué)習(xí)率,它控制著使用梯度更新權(quán)重的速度.
一旦網(wǎng)絡(luò)被訓(xùn)練,整個(gè)網(wǎng)絡(luò)的體系結(jié)構(gòu),連同它的參數(shù)θF將被認(rèn)為是一個(gè)分類函數(shù)F,在測(cè)試的過(guò)程中,訓(xùn)練完成的網(wǎng)絡(luò)將被用于測(cè)試數(shù)據(jù)X并且得到預(yù)測(cè)輸出F(X),訓(xùn)練過(guò)程中所得到的權(quán)重包含了使得DNN可以正確預(yù)測(cè)和分類新數(shù)據(jù)的知識(shí).在之前額工作中已經(jīng)證明了DNN部署在對(duì)抗環(huán)境中時(shí),必須考慮DNN的一些漏洞,即對(duì)抗樣本是針對(duì)DNN的人工產(chǎn)物,在DNN完成訓(xùn)練之后,攻擊者可以利用生成的對(duì)抗樣本進(jìn)行攻擊.通過(guò)將精心設(shè)計(jì)的擾動(dòng)δX加入到正常樣本X中,從而激發(fā)DNN的特定行為,將樣本分配到攻擊者所選擇的類中.注意,攻擊者所設(shè)計(jì)并添加的樣本擾動(dòng)δX必須足夠小,允許樣本被正常的處理而不被發(fā)現(xiàn),以此來(lái)達(dá)到對(duì)抗攻擊的目的,對(duì)抗樣本的生成過(guò)程如圖3所示.
圖3 對(duì)抗樣本生成過(guò)程Fig.3 Adversarial sample generation process
聯(lián)邦學(xué)習(xí)的結(jié)構(gòu)如圖4所示.
圖4 聯(lián)邦學(xué)習(xí)系統(tǒng)結(jié)構(gòu)Fig.4 Federal learning system structure
模型訓(xùn)練過(guò)程如下.
1) 基于私有數(shù)據(jù)集,用戶Ci在本地訓(xùn)練θ,得到梯度向量gi:
gi=Train(θ,Di) .
(1)
2) 服務(wù)器S接收從用戶上傳的梯度向量gi.
3) 在服務(wù)器S中,所有將獲得的梯度向量聚合:
(2)
4) 計(jì)算完成后,得到聚合梯度向量gS,并將其返回給所有m,用戶使用聚合梯度來(lái)更新本地模型:
(3)
其中,α是學(xué)習(xí)率.
在一輪訓(xùn)練完成后,用戶需要檢測(cè)本地模型的準(zhǔn)確率是否達(dá)到了要求,如果滿足了要求則停止訓(xùn)練并輸出訓(xùn)練好的模型,如果沒(méi)有達(dá)到要求則繼續(xù)迭代,進(jìn)行下一輪的訓(xùn)練,直到達(dá)到要求為止.
聯(lián)邦學(xué)習(xí)中,用戶在每次訓(xùn)練完成后,均需要將訓(xùn)練得到的梯度全部傳輸給服務(wù)器,在需要的梯度參數(shù)較多的系統(tǒng)中,將會(huì)占用大量的通信資源,這將會(huì)成為系統(tǒng)性能的瓶頸.在本文中,參考了Aij等[15]提出的Top-K梯度選擇方案和Felix Sattler等[16]提出的Top-K梯度選擇方案的擴(kuò)展——STC稀疏三元算法,如圖5所示.之所以選擇STC稀疏三元算法,是因?yàn)橄啾扔赥op-K梯度選擇算法,STC根據(jù)稀疏度選擇梯度后,將選擇出的梯度進(jìn)行量化處理,當(dāng)稀疏化和非零元素的量化結(jié)合將獲得更好的減小通信開銷的效果.
圖5 稀疏三元壓縮算法(STC)Fig.5 Sparse ternary compression
具體來(lái)說(shuō),每次用戶C計(jì)算得到梯度g后,首先將梯度向量中的每個(gè)元素g[j]的絕對(duì)值并將取完絕對(duì)值的g[j]進(jìn)行排序,將排序完成的梯度絕對(duì)值的最大的K個(gè)梯度提取出.然后將這選擇出的K個(gè)梯度值量化為三元張量后,上傳到服務(wù)器S.
圖5中TK代表用Top-K方案取出的絕對(duì)值最大的K個(gè)梯度值.而tmp中存儲(chǔ)的是梯度的索引和梯度的絕對(duì)值,將梯度的索引和梯度的絕對(duì)值排序后選擇出絕對(duì)值最大的K個(gè)梯度值,在稀疏化的同時(shí)對(duì)稀疏化后的目標(biāo)向量進(jìn)行量化,在STC算法的作用下,TK∈Rn最終會(huì)生成三元張量TK*∈{-μ,0,μ}n.
在文獻(xiàn)[15]中,先使用Top-K算法取出相應(yīng)的梯度絕對(duì)值最大的K個(gè)梯度,然后再將其梯度值量化成為包含{-μ,0,μ},作者用實(shí)驗(yàn)證明了,三元化對(duì)收斂速度沒(méi)有影響,甚至?xí)岣哂?xùn)練模型的精度,表明了對(duì)數(shù)據(jù)稀疏化和量化的結(jié)合相比于單純使用Top-K算法來(lái)對(duì)數(shù)據(jù)進(jìn)行稀疏化操作更好地利用了通信資源,而且效率更高,并且作者還不只將STC用在從用戶將梯度上傳到服務(wù)器的情況,同時(shí)也將STC用到了用戶從服務(wù)器下載的情況上,進(jìn)一步減小了通信開銷.
蒸餾是一個(gè)訓(xùn)練的程序,最初設(shè)計(jì)出來(lái)是為了使用從不同的DNN中遷移來(lái)的知識(shí)來(lái)訓(xùn)練目標(biāo)DNN.Ba等[17]最早提出了這個(gè)概念,而Hinton等[18]則將蒸餾正式引入.通過(guò)蒸餾技術(shù)將知識(shí)進(jìn)行轉(zhuǎn)移是為了將知識(shí)從大的架構(gòu)轉(zhuǎn)移到較小的架構(gòu)中來(lái)減少DNN的計(jì)算復(fù)雜度,這項(xiàng)技術(shù)有助于深度學(xué)習(xí)在計(jì)算資源有限的設(shè)備,例如智能手機(jī)中進(jìn)行部署,這些設(shè)備無(wú)法使用強(qiáng)大的GPU進(jìn)行計(jì)算.Nicolas Papernot等[11]則提供了一種新的蒸餾變體,從DNN中提取知識(shí)來(lái)提高其自身對(duì)于對(duì)抗樣本的魯棒性,而不是在不同的架構(gòu)中進(jìn)行知識(shí)遷移.
Hinton等[18]提出了神經(jīng)網(wǎng)絡(luò)蒸餾模型,由于蒸餾最早出現(xiàn)的目的是降低DNN的規(guī)模,使其可以在運(yùn)算能力較差的設(shè)備上部署,因此需要有一個(gè)DNN在原始數(shù)據(jù)集中訓(xùn)練,將訓(xùn)練得到的蒸餾標(biāo)簽輸入到第二個(gè)DNN的數(shù)據(jù)集中,第一個(gè)DNN為了實(shí)現(xiàn)蒸餾,首先使用原始數(shù)據(jù)在一個(gè)輸出層為softmax層的神經(jīng)網(wǎng)絡(luò)上進(jìn)行訓(xùn)練,softmax層僅僅接收最后一層隱藏層的輸出Z(x),并將其歸一化為概率向量F(x),也就是DNN的輸出,為數(shù)據(jù)集中的每一個(gè)標(biāo)簽類分配一個(gè)概率.在softmax層中,概率向量F(x)的計(jì)算為:
(4)
其中的N為類的數(shù)量,并且T為蒸餾溫度并且該參數(shù)在softmax層中共享.由式(4)可知,softmax溫度越高,生成的概率越相近,即T→∞時(shí)概率趨近于1/N,而溫度越小則生成的概率越離散,即輸出的概率向量中有一個(gè)概率會(huì)趨近于1而其他的則趨近于0.
防御蒸餾與Hinton等[18]提出的原始的蒸餾方法不同之處在于防御蒸餾保持相同的網(wǎng)絡(luò)架構(gòu)來(lái)訓(xùn)練原始網(wǎng)絡(luò)和蒸餾網(wǎng)絡(luò).防御蒸餾的框架如圖6所示.
圖6 防御蒸餾結(jié)構(gòu)圖Fig.6 Defense distillation structure diagram
防御蒸餾的訓(xùn)練過(guò)程概述如下.
1) 防御蒸餾算法的輸入是一個(gè)帶有樣本標(biāo)簽的樣本集合X.特別的,令x∈X作為樣本,將Y(x)來(lái)表示樣本的離散標(biāo)簽,也稱為硬標(biāo)簽.Y(x)是一個(gè)指示向量,其中唯一的非零元素代表了樣本所對(duì)應(yīng)的正確的類的索引,例如(0,1,0,0,…,0).
2) 使用給定的訓(xùn)練集{X,Y(X)},然后在溫度T的條件下訓(xùn)練以softmax層為輸出層的深度神經(jīng)網(wǎng)絡(luò)F,輸出的F(x)為標(biāo)簽的概率向量.更確切地說(shuō),如果深度神經(jīng)網(wǎng)絡(luò)擁有參數(shù)θF,然后在輸入為X的條件下輸出的概率分布為F(X)=p(.|X,θF),對(duì)于標(biāo)簽集中的所有的標(biāo)簽Y,所分配的概率為p(Y|X,θF).為了簡(jiǎn)化符號(hào)表示,文中使用Fi(X)來(lái)表示在輸入為X并且有參數(shù)θF的條件下類i的概率.
3) 重新形成一個(gè)新的樣本集{X,F(X)}來(lái)代替{X,Y(X)},即使用代表了網(wǎng)絡(luò)F的在每個(gè)類上的概率的軟標(biāo)簽F(X)來(lái)代替樣本X的硬標(biāo)簽Y(X).
4) 使用新的樣本集{X,F(X)},訓(xùn)練另一個(gè)DNN模型Fd,該模型和第一個(gè)DNN模型F結(jié)構(gòu)相同,并且溫度T也相同.這個(gè)新的DNN模型Fd被稱為蒸餾模型.
使用軟標(biāo)簽的好處在于,與硬標(biāo)簽相比,在概率向量中包含了類之間的相對(duì)差別和關(guān)聯(lián)等額外的知識(shí),使用類的相關(guān)信息來(lái)訓(xùn)練模型,也可以有效地防止過(guò)擬合,有效增強(qiáng)了模型的泛化能力.
基于聯(lián)邦學(xué)習(xí)和防御蒸餾,針對(duì)DNN中所面臨的挑戰(zhàn),提出了安全且通信開銷較小的訓(xùn)練協(xié)議πDNFL,可以有效的抵御測(cè)試過(guò)程中攻擊者通過(guò)對(duì)抗樣本對(duì)訓(xùn)練完成的模型發(fā)動(dòng)的對(duì)抗攻擊.
在協(xié)議中,文中的目標(biāo)是在對(duì)抗攻擊中保護(hù)DNN模型的預(yù)測(cè)準(zhǔn)確度以及在模型訓(xùn)練的過(guò)程中保護(hù)用戶的隱私數(shù)據(jù)的安全.但是由于訓(xùn)練DNN需要大量的數(shù)據(jù),傳統(tǒng)的訓(xùn)練方式是將用戶的數(shù)據(jù)匯總到一起來(lái)進(jìn)行模型的訓(xùn)練,這使得一些攻擊者會(huì)通過(guò)訪問(wèn)服務(wù)器,使得用戶數(shù)據(jù)泄露,因此,本文在協(xié)議中使用聯(lián)邦學(xué)習(xí),使得訓(xùn)練DNN時(shí)可以在一定程度上保護(hù)用戶的隱私.協(xié)議的流程如圖7所示.
圖7 協(xié)議πDNFLFig.7 The illustration of protocol πDNFL
算法1 協(xié)議πDNFL.
輸入:用戶的私人數(shù)據(jù)Di、以及需要訓(xùn)練的防御蒸餾模型θ.
輸出:訓(xùn)練完成的模型θ.
步驟1 服務(wù)器和用戶之間建立安全的傳輸信道;
步驟2 用戶在各自本地生成隨機(jī)數(shù);
步驟3 用戶使用本地?cái)?shù)據(jù)訓(xùn)練防御蒸餾模型,計(jì)算梯度;
步驟4 用戶使用STC稀疏三元法,選擇出梯度元素并將其量化,并計(jì)算殘差Ri;
步驟5 將量化完成的梯度以及對(duì)應(yīng)的索引信息傳送到服務(wù)器中,并在服務(wù)器按照索引信息將量化梯度聚合,并在服務(wù)器中計(jì)算殘差R;
步驟6 服務(wù)器將聚合完成的梯度和對(duì)應(yīng)的索引信息傳送回參與用戶;
步驟7 用戶更新本地模型;
步驟8 檢查所訓(xùn)練模型的性能,若所訓(xùn)練的模型準(zhǔn)確率達(dá)到要求則停止訓(xùn)練,否則跳轉(zhuǎn)到步驟3開始下一輪訓(xùn)練.
在完成訓(xùn)練后,研究防御蒸餾對(duì)于模型靈敏度的影響.對(duì)于DNN來(lái)說(shuō),模型靈敏度越高,則越容易被對(duì)抗攻擊威脅.而在溫度T越高的情況下,對(duì)抗樣本就越難生成,這也是為何高溫使得蒸餾模型Fd更穩(wěn)定的原因,這是由于蒸餾降低了模型對(duì)于輸入微小變化的敏感度.使用雅可比矩陣來(lái)量化模型對(duì)于輸入的敏感度,于是計(jì)算得到溫度為T時(shí)的模型F的雅可比行列式(i,j)的表達(dá)式為:
(5)
這里將zi(X)寫為zi,由式(5)可知,提升softmax層的溫度可以系統(tǒng)的降低在防御蒸餾訓(xùn)練時(shí)模型對(duì)于輸入的微小變化的靈敏度.在測(cè)試時(shí),將溫度T降低為1,因?yàn)檫@樣操作不會(huì)影響在訓(xùn)練時(shí)得到的模型參數(shù),因此通過(guò)高溫而得到的低靈敏度在測(cè)試時(shí)就可以觀察到,而在測(cè)試時(shí)改變溫度只會(huì)使得類的概率向量更加離散而不會(huì)改變相對(duì)順序,防御蒸餾模型可以降低對(duì)抗樣本的生成梯度,從而降低了模型對(duì)于輸入變化的敏感性,并且增強(qiáng)了模型的魯棒性[11].
在手寫體數(shù)字識(shí)別MNIST上的基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的深度神經(jīng)網(wǎng)絡(luò)上進(jìn)行試驗(yàn),其中深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如表1所示.其中的參數(shù)選擇:Learning Rate:0.1;Momentum:0.5;Dropout Rate(Fully Connected Layers):0.5;Batch Size:128;Epochs:50.其中MNIST數(shù)據(jù)集由Training Set Images、Training Set Labels、Test Set Images和Test Set Labels這四部分組成,其中將Training Set Images和Training Set Labels的數(shù)量設(shè)定為60 000,而Test Set Images和Test Set Labels為10 000.
表1 深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)Tab.1 The structure of a deep neural network
實(shí)驗(yàn)環(huán)境部署在 Inter Xeon E5-2620和8根16G DDR4內(nèi)存條共128 G內(nèi)存的服務(wù)器上,并在服務(wù)器的局域網(wǎng)內(nèi)模擬了2個(gè)參數(shù)服務(wù)器和10個(gè)客戶端,基于Python3實(shí)現(xiàn)本文所提出的基于防御蒸餾和聯(lián)邦學(xué)習(xí).在實(shí)驗(yàn)中,每一次迭代都會(huì)使得參與者和服務(wù)器交互計(jì)算1次,完成梯度的聚合運(yùn)算.
分別從準(zhǔn)確率、訓(xùn)練的通信開銷和對(duì)抗樣本的攻擊成功率三方面來(lái)分析文中所提出的方案.
衡量模型性能一個(gè)很重要的標(biāo)準(zhǔn)就是模型的準(zhǔn)確率,通過(guò)測(cè)量準(zhǔn)確率的變化,表明本文方案對(duì)于模型性能的影響是可以接受的,這一部分首先測(cè)量了原始DNN和僅使用聯(lián)邦學(xué)習(xí)和稀疏三元方法的DNN兩種情況.圖8分別給出了兩種情況下在訓(xùn)練過(guò)程中的準(zhǔn)確率的變化情況,其中本文所使用的STC中的梯度選擇的參數(shù)為1%、5%和10%.
圖8 準(zhǔn)確率變化Fig.8 The accuracy change
可以看到,在使用聯(lián)邦學(xué)習(xí)和不同的梯度選擇參數(shù)的條件下,模型訓(xùn)練的收斂速度基本一致,并且模型的準(zhǔn)確率雖略有降低但是在可以接受的范圍內(nèi).接下來(lái)在模型中使用防御蒸餾,其中防御蒸餾中softmax層的溫度T取{1,2,5,10,20,30,50,100}.如圖9所示,經(jīng)過(guò)訓(xùn)練可以發(fā)現(xiàn),溫度對(duì)于模型性能的影響是有限的.
圖9 溫度對(duì)于模型性能的影響Fig.9 The effect of temperature on model performance
在本文所提出的協(xié)議中,需要將參與用戶的訓(xùn)練梯度傳輸?shù)椒?wù)器中,因此,通信開銷大是研究者必須面臨的問(wèn)題,因此為了通信性能的提升,本文使用了STC稀疏三元法與聯(lián)邦學(xué)習(xí)算法結(jié)合提出了高效的解決方案.
在實(shí)驗(yàn)中,將STC選擇的比率選擇為1%、5%和10%,并分別在不使用STC的plaintext以及協(xié)議πDNFL條件下,在一次迭代過(guò)程中的通信開銷.結(jié)果如表2所示.
表2 一次迭代訓(xùn)練中的通信開銷Tab.2 Communication overhead in an iterative training
實(shí)驗(yàn)結(jié)果表明,相比于不使用梯度選擇算法的plaintext,該協(xié)議使用的STC稀疏三元法可以極大地優(yōu)化通信開銷,由3.1節(jié)可得,稀疏度在該范圍內(nèi)選擇不會(huì)對(duì)模型的性能造成太大的影響,因此可以看到,將STC的稀疏度從10%降為1%,通信開銷減少了大約9.02倍,很好地優(yōu)化了通信性能.
在本節(jié)中,需要在測(cè)試集中生成對(duì)抗樣本,因此通過(guò)將輸入特征的4.02%進(jìn)行失真[19]的方法在測(cè)試集中生成9 000個(gè)對(duì)抗樣本,該方法在沒(méi)有使用蒸餾的情況下成功率可以達(dá)到95.89%.然后將測(cè)試集中的樣本輸入?yún)f(xié)議πDNFL中進(jìn)行預(yù)測(cè),同時(shí)不斷的改變溫度T的值,分別觀察在不同的溫度下,對(duì)抗樣本攻擊的成功率的大小.實(shí)驗(yàn)中將溫度T的值取為{1,2,5,10,20,30,40,50,100},圖10展示了與溫度有關(guān)的對(duì)抗樣本成功率.
圖10 溫度對(duì)于對(duì)抗樣本成功率的影響Fig.10 The effect of temperature on the success rate of adversarial samples
由圖10中的數(shù)據(jù)可以看到,隨著溫度的上升,對(duì)抗攻擊的成功率從95.89%下降到了0.45%,因此提高溫度可以有效地抵御對(duì)抗樣本的攻擊.
DNN是一中優(yōu)秀的深度學(xué)習(xí)模型,但是其卻容易受到對(duì)抗攻擊和隱私泄露的威脅,而這個(gè)問(wèn)題則在當(dāng)今的生活中顯得尤為重要.本文將防御蒸餾、聯(lián)邦學(xué)習(xí)和稀疏三元法相結(jié)合,在保證DNN可以抵御對(duì)抗攻擊和隱私泄露問(wèn)題的同時(shí),也使得通信效率有了很大的提升.由于除了DNN之外,其他的很多機(jī)器學(xué)習(xí)模型依舊受到對(duì)抗攻擊的威脅,但是防御蒸餾卻只能使用在DNN模型中,接下來(lái)筆者將探索更好的對(duì)抗攻擊的應(yīng)對(duì)方法,并使這些擁有更好的泛化能力.