王粵晗 孫 磊 郭 松 戴樂育
(信息工程大學(xué)密碼工程學(xué)院 河南 鄭州 450001)(河南省信息安全重點(diǎn)實(shí)驗(yàn)室 河南 鄭州 450001)
隨著神經(jīng)網(wǎng)絡(luò)應(yīng)用的普及,深度學(xué)習(xí)的安全威脅嚴(yán)重影響人們的正常生活。如有未授權(quán)用戶繞過云端防御機(jī)制非法訪問云環(huán)境下深度神經(jīng)網(wǎng)絡(luò)模型,利用云服務(wù)的API接口獲取深度神經(jīng)網(wǎng)絡(luò)模型的初步信息(包括模型參數(shù))帶來次生威脅。
通過對深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行逆向分析,未授權(quán)用戶可能復(fù)制該深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行濫用。次生安全威脅還包括攻擊者能夠得到模型內(nèi)部的隱私數(shù)據(jù),如病人醫(yī)療數(shù)據(jù)、用戶面部識別數(shù)據(jù)等[1-2]。
深度神經(jīng)網(wǎng)絡(luò)模型的常見安全威脅按照其運(yùn)行階段可以分為訓(xùn)練階段的安全威脅和預(yù)測階段的安全威脅。
在訓(xùn)練階段,未授權(quán)用戶通過訪問訓(xùn)練數(shù)據(jù)的方式在訓(xùn)練數(shù)據(jù)集中注入惡意數(shù)據(jù)或是對原有訓(xùn)練數(shù)據(jù)修改、刪除,改變訓(xùn)練數(shù)據(jù)的原有分布,令模型在預(yù)測時(shí)使結(jié)果出錯(cuò),這種攻擊手段就被稱為投毒攻擊。而且一旦投毒成功,在預(yù)測階段進(jìn)行防御是十分困難的。
在預(yù)測階段,未授權(quán)用戶通過對圖片增加肉眼難以辨別的輕微擾動(dòng)欺騙神經(jīng)網(wǎng)絡(luò),使目標(biāo)模型預(yù)測結(jié)果出錯(cuò)。這種增加了輕微擾動(dòng)的圖片就被稱為對抗樣本,該種攻擊手段被稱為對抗樣本攻擊。
另一種在預(yù)測階段的常見攻擊手段被稱為模型提取攻擊。這種攻擊能夠?qū)δ繕?biāo)模型進(jìn)行復(fù)制,并嘗試恢復(fù)目標(biāo)模型在訓(xùn)練中使用的數(shù)據(jù)信息,涉及對模型知識產(chǎn)權(quán)及用戶隱私的威脅。有攻擊者利用黑盒模型云服務(wù)平臺(tái)API輸出的置信值(Confidence Values),實(shí)現(xiàn)了方程求解攻擊(Equation-solving Attacks),并在輸出只含有標(biāo)簽信息的情況下,實(shí)現(xiàn)了包括深度神經(jīng)網(wǎng)絡(luò)在內(nèi)等多種算法的模型提取攻擊(Model Extraction Attacks)[3]。
本文針對云環(huán)境下深度神經(jīng)網(wǎng)絡(luò)模型可能面臨的常見威脅,以卷積神經(jīng)網(wǎng)絡(luò)為研究對象,提出一種內(nèi)嵌在深度神經(jīng)網(wǎng)絡(luò)模型中的深層控制方法。該方法能夠限制未授權(quán)用戶訪問目標(biāo)網(wǎng)絡(luò),從源頭上抵抗未授權(quán)用戶攻擊,保護(hù)深度神經(jīng)網(wǎng)絡(luò)模型參數(shù)與用戶的隱私信息。
目前,由于能夠收集足夠多的用戶數(shù)據(jù),大型公司多采用集中訓(xùn)練方式,這種方式能夠一定程度上規(guī)避訓(xùn)練階段的投毒攻擊。
在預(yù)測階段,通常采用正則化、對抗訓(xùn)練等手段抵抗對抗樣本攻擊帶來的影響。正則化通過為代價(jià)函數(shù)添加正則項(xiàng),提高目標(biāo)模型的泛化能力,在預(yù)測中具有良好的適應(yīng)性來抵抗攻擊[4]。文獻(xiàn)[5-7]使用正則化方法提高模型的頑健性,在抵抗攻擊時(shí)取得良好的效果。對抗訓(xùn)練在訓(xùn)練數(shù)據(jù)集中引入了對抗樣本,通過合法化對抗樣本提高模型的頑健性。文獻(xiàn)[8]提出聯(lián)合對抗訓(xùn)練(Ensemble Adversarial Training)增加對抗樣本的多樣性,但是在對抗訓(xùn)練中引入所有未知攻擊的對抗樣本是不現(xiàn)實(shí)的,所以對抗訓(xùn)練具有一定的局限性。除此之外,還有學(xué)者提出防御精餾手段[9]抵抗攻擊。針對模型提取攻擊,目前較好的防御措施是PATE[10]。PATE通過將數(shù)據(jù)分區(qū)并訓(xùn)練多個(gè)模型,根據(jù)多個(gè)模型的結(jié)果進(jìn)行決策,但決策結(jié)果仍可能被其他差分隱私系統(tǒng)的噪聲欺騙。
若要對深度神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練階段的攻擊,則惡意用戶首先要獲得訪問神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)的權(quán)限。云環(huán)境下深度神經(jīng)網(wǎng)絡(luò)遭受投毒攻擊,通常是因?yàn)樯疃壬窠?jīng)網(wǎng)絡(luò)模型采用了開放的訓(xùn)練方式。
若要對深度神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測階段的攻擊,則惡意用戶首先要能夠使用該神經(jīng)網(wǎng)絡(luò)。云環(huán)境下深度神經(jīng)網(wǎng)絡(luò)遭受對抗樣本攻擊、模型提取攻擊,通常是因?yàn)閻阂庥脩舯旧頁碛性L問目標(biāo)網(wǎng)絡(luò)的權(quán)限,或者獲取到訪問目標(biāo)神經(jīng)網(wǎng)絡(luò)的權(quán)限,如表1所示。
表1 神經(jīng)網(wǎng)絡(luò)常見攻擊手段與未授權(quán)用戶權(quán)限
綜上所述,針對深度神經(jīng)網(wǎng)絡(luò)的常見攻擊源于未授權(quán)用戶能夠開放地訪問深度神經(jīng)網(wǎng)絡(luò),所以采用授權(quán)的方式對用戶進(jìn)行訪問控制尤為必要。
然而現(xiàn)有情況下,云服務(wù)使用系統(tǒng)級的外部防御機(jī)制存在一定漏洞[11]。當(dāng)惡意用戶試圖利用安全漏洞繞過系統(tǒng)防護(hù)訪問云環(huán)境下的深度神經(jīng)網(wǎng)絡(luò)時(shí),就需要在神經(jīng)網(wǎng)絡(luò)內(nèi)部設(shè)計(jì)一種內(nèi)嵌的訪問控制模型。
針對云環(huán)境下深度神經(jīng)網(wǎng)絡(luò)模型面臨的安全威脅,此前有學(xué)者期望采取對網(wǎng)絡(luò)的輸入進(jìn)行加密的方式,形成加密神經(jīng)網(wǎng)絡(luò),用以保護(hù)隱私數(shù)據(jù)。由于同態(tài)加密算法具有以下特性:原始數(shù)據(jù)同態(tài)加密后形成密文,對密文進(jìn)行變換得到新的輸出再解密,其結(jié)果與對原始數(shù)據(jù)采用相同變換得到的輸出結(jié)果一致。因此,在理想情況下,同態(tài)加密技術(shù)能夠較好地支持上述方法。Orlandi等[12]提出結(jié)合同態(tài)加密技術(shù)和典型雙方計(jì)算結(jié)構(gòu)的加密神經(jīng)網(wǎng)絡(luò)。Dowlin等[13]以Bos等[14]提出的全同態(tài)加密方案為基礎(chǔ),提出了一種可用于加密數(shù)據(jù)的類神經(jīng)網(wǎng)絡(luò)。
對深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行控制的方法國內(nèi)外學(xué)者提出較少。Sun等[15]采用了一種能夠與被保護(hù)神經(jīng)網(wǎng)絡(luò)結(jié)合的保護(hù)鎖模塊,使未授權(quán)用戶在使用目標(biāo)模型時(shí)無法得到正確輸出以保護(hù)目標(biāo)模型。Wang等[16]對深度神經(jīng)網(wǎng)絡(luò)的單一隱層的偏置加入變異因子,只有授權(quán)用戶能夠解耦受控神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)對用戶的訪問控制。
本文在上述文獻(xiàn)的基礎(chǔ)上,提出卷積神經(jīng)網(wǎng)絡(luò)深層控制方法。當(dāng)目標(biāo)模型訓(xùn)練完成,通過在目標(biāo)神經(jīng)網(wǎng)絡(luò)多個(gè)隱層的眾多參數(shù)處加入控制因子,使未授權(quán)用戶無法訪問目標(biāo)模型。授權(quán)用戶輸入用戶ID使用目標(biāo)深度神經(jīng)網(wǎng)絡(luò)模型時(shí),目標(biāo)模型可以對用戶輸入做出正確預(yù)測。
在人工智能即服務(wù)模式下,用戶能夠通過授權(quán)訪問的方式使用云環(huán)境下深度神經(jīng)網(wǎng)絡(luò)模型,從而對數(shù)據(jù)進(jìn)行預(yù)測分析。在現(xiàn)有場景下,授權(quán)訪問通常是由云服務(wù)防御機(jī)制實(shí)現(xiàn)的,這種系統(tǒng)級的防護(hù)可能存在被繞過的風(fēng)險(xiǎn),直接導(dǎo)致未授權(quán)用戶能夠直接訪問并使用云環(huán)境下的神經(jīng)網(wǎng)絡(luò)。這樣做的次生危害有:云環(huán)境下深度神經(jīng)網(wǎng)絡(luò)模型被竊??;深度神經(jīng)網(wǎng)絡(luò)模型中包含的訓(xùn)練數(shù)據(jù)信息泄露;攻擊者可以利用深度神經(jīng)網(wǎng)絡(luò)模型信息發(fā)起白盒攻擊等。
神經(jīng)網(wǎng)絡(luò)深層控制方法主要面向云環(huán)境下的卷積深度神經(jīng)網(wǎng)絡(luò)模型。假設(shè)云管理員完全可信,云管理員通過云端控制模塊對卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行控制,如圖1所示。
圖1 用戶使用云端受控網(wǎng)絡(luò)
云端控制模塊存儲(chǔ)了與不同授權(quán)用戶信息相對應(yīng)的多組隨機(jī)數(shù)。多組隨機(jī)數(shù)包括與卷積神經(jīng)網(wǎng)絡(luò)不同層權(quán)重位的隨機(jī)數(shù)rwm、不同層偏置位的隨機(jī)數(shù)rbj和激活函數(shù)輸入位的隨機(jī)數(shù)rgl,其中l(wèi),m,j∈n,n為神經(jīng)網(wǎng)絡(luò)總的隱層數(shù)。
用戶使用安全通道與云端服務(wù)器通信,云端控制模塊接收到用戶訪問請求后,等待云管理員授權(quán)。云管理員對用戶授權(quán)之后,隨機(jī)選取多組隨機(jī)數(shù)生成不同位置的控制因子,包含任意隱層的kgl、kwm和kbj。將選定的隨機(jī)數(shù)用用戶信息加密后存儲(chǔ)于云端控制模塊,如kb2表示與第二隱層的偏置位結(jié)合的控制因子,那么此時(shí)被加密存儲(chǔ)的信息為Enc(rb2)。同時(shí),控制模塊將控制因子分別與卷積神經(jīng)網(wǎng)絡(luò)不同隱層的參數(shù)結(jié)合。云端控制模塊根據(jù)用戶信息,控制模塊將生成的控制因子與深度神經(jīng)網(wǎng)絡(luò)模型中的對應(yīng)參數(shù)作ζ(·,k)運(yùn)算,神經(jīng)網(wǎng)絡(luò)深層控制完成。
神經(jīng)網(wǎng)絡(luò)深層控制完成之后,未授權(quán)用戶即便繞過云端防御機(jī)制直接訪問深度神經(jīng)網(wǎng)絡(luò)模型,也無法使用ζ(·,k)運(yùn)算之后的神經(jīng)網(wǎng)絡(luò)。
當(dāng)授權(quán)用戶使用受控神經(jīng)網(wǎng)絡(luò)時(shí),云端控制模塊確認(rèn)用戶信息,解密隨機(jī)數(shù)位置信息,利用相應(yīng)隨機(jī)數(shù)計(jì)算k-1還原受控神經(jīng)網(wǎng)絡(luò),使授權(quán)用戶能夠使用模型進(jìn)行預(yù)測。
當(dāng)授權(quán)用戶得到神經(jīng)網(wǎng)絡(luò)的預(yù)測輸出后,云端控制模塊刷新該用戶信息下對應(yīng)的多組隨機(jī)數(shù),保證模型受控。
這種在深度神經(jīng)網(wǎng)絡(luò)模型隨機(jī)隱層的不同參數(shù)處實(shí)現(xiàn)控制的方法,被稱為卷積神經(jīng)網(wǎng)絡(luò)深層控制方法。
鏈?zhǔn)浇Y(jié)構(gòu)是神經(jīng)網(wǎng)絡(luò)中最常用的結(jié)構(gòu),其中每一層都是前一層的函數(shù)。訓(xùn)練數(shù)據(jù)中樣本伴隨的標(biāo)簽為神經(jīng)網(wǎng)絡(luò)的輸出提供了目標(biāo),但是訓(xùn)練數(shù)據(jù)并沒有指明神經(jīng)網(wǎng)絡(luò)中每一層需要如何做才能得到最終理想的輸出。這些由學(xué)習(xí)算法來決定的層被稱為隱藏層,如圖2所示。
圖2 深度卷積神經(jīng)網(wǎng)絡(luò)中的隱藏層
圖2中,激活函數(shù)的自變量z1由用戶輸入x和神經(jīng)網(wǎng)絡(luò)權(quán)重w1、偏置b1組成。
(1)
由于采用了鏈?zhǔn)浇Y(jié)構(gòu),在神經(jīng)網(wǎng)絡(luò)層單元組中,第一隱層的輸出h1可以表示為:
(2)
第二隱層的輸出h2是第一隱層輸出h1的函數(shù),若第二隱層為圖2所示池化層,則第二隱層的輸出h2可以表示為:
h2=pooling2(h1)
(3)
第三隱層的輸出是第二隱層的函數(shù),若第三隱層為圖2所示卷積層,則第三層的輸出h3可以表示為:
(4)
以此類推,則第n隱層輸出的表達(dá)式為:
(5)
式中:x為用戶的輸入數(shù)據(jù)。若第i隱層為卷積層,則gi為該層激活函數(shù)的表達(dá)式,wi為該隱層權(quán)重,bi為該隱層偏置。若第j隱層為池化層,則poolingj(hj-1)表示對j-1層的輸出hj-1進(jìn)行池化。
為了使神經(jīng)網(wǎng)絡(luò)能夠擬合不同的曲線,在隱層引入了激活函數(shù)。具有隱藏層的前饋神經(jīng)網(wǎng)絡(luò)提供了一種萬能近似框架[17]。具體而言,萬能近似定理(Universal Approximation Theorem)[18-19]表明,一個(gè)前饋神經(jīng)網(wǎng)絡(luò)如果具有線性輸出層和至少一層具有任何一種“擠壓”性質(zhì)的激活函數(shù),例如Sigmoid激活函數(shù)的隱藏層,只要給予網(wǎng)絡(luò)足夠數(shù)量的隱藏單元,它可以以任意準(zhǔn)確率來近似任何從一個(gè)有限維空間到另一個(gè)有限維空間的Borel可測函數(shù)。萬能近似定理也已經(jīng)被證明對于更廣泛類別的激活函數(shù)也是適用的,其中就包括現(xiàn)在常用的線性整流單元。由此可見,激活函數(shù)對前饋神經(jīng)網(wǎng)絡(luò)擬合任意曲線有著至關(guān)重要的作用,而卷積神經(jīng)網(wǎng)絡(luò)就是前饋神經(jīng)網(wǎng)絡(luò)中的一種。
在深度卷積神經(jīng)網(wǎng)絡(luò)中,對輸出起到?jīng)Q定性影響的參數(shù)除了深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練完成的權(quán)重、偏置,還有每一隱層中激活函數(shù)的輸出。
本文將激活函數(shù)自變量zi(i=1,2,…,n)看作參數(shù)的一種,故在基于眾參數(shù)的多層控制模型中,涉及的參數(shù)類別主要有三種:權(quán)重w、偏置b和激活函數(shù)的自變量z。
定義1運(yùn)算ζ(x,k)是由集合X到集合Y的一一映射,若x∈X,則集合Y中一定存在y,使y=ζ(x,k)。其中控制因子k為標(biāo)量,當(dāng)且僅當(dāng)k=1時(shí),y=ζ(x,1)=y。那么,雙射ζ(x,k)中,存在ζ-1,使ζ-1(y,k-1)=ζ-1(ζ(x,k),k-1)=x。
在神經(jīng)網(wǎng)絡(luò)完成訓(xùn)練之后,對各層權(quán)重、偏置、激活函數(shù)作ζ(·,k)運(yùn)算,如圖3所示。
圖3 受控卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
則受控神經(jīng)網(wǎng)絡(luò)的第一隱層的輸出h′1可以表示為:
(6)
不同卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)各不同,因此每一層是否作用控制因子的表達(dá)式也各不相同。若受控神經(jīng)網(wǎng)絡(luò)第二隱層為池化層,由于控制因子不作用于池化層,則該層輸出h′2可以表示為:
h′2=pooling2(h′1)
(7)
若受控卷積神經(jīng)網(wǎng)絡(luò)第二隱層為卷積層,由于控制因子作用于卷積運(yùn)算層參數(shù)處,則該層輸出h′2可以表示為:
(8)
(9)
卷積神經(jīng)網(wǎng)絡(luò)層數(shù)較多,每一層又分布不同類型的參數(shù),如權(quán)重、偏置參數(shù)等。通過內(nèi)嵌控制因子對卷積運(yùn)算層中的多個(gè)位置進(jìn)行控制,可能導(dǎo)致受控神經(jīng)網(wǎng)絡(luò)開銷過大,下面對深層控制模型展開研究并進(jìn)行方法優(yōu)化。
為了探究卷積神經(jīng)網(wǎng)絡(luò)深層控制方法的可用性并進(jìn)一步優(yōu)化控制方法,以具有8個(gè)隱層結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)作為研究對象,利用控制變量的方法進(jìn)行研究。該網(wǎng)絡(luò)包含了3層卷積運(yùn)算、3層池化、1層全連接和1層輸出。選擇該網(wǎng)絡(luò)的3個(gè)運(yùn)算層作為實(shí)驗(yàn)對象,分別稱其為卷積層C1、卷積層C2和卷積層C3。
對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練完成準(zhǔn)確率為97.68%。分別在每一隱層的權(quán)重、偏置、激活函數(shù)自變量處加入控制因子作ζ(·,k)運(yùn)算。為保證實(shí)驗(yàn)結(jié)論不受控制因子大小影響,統(tǒng)一將各處k取定值。當(dāng)k大于103數(shù)量級且ζ(·,k)運(yùn)算滿足定義1時(shí),受控神經(jīng)網(wǎng)絡(luò)準(zhǔn)確率穩(wěn)定在10%左右,深度神經(jīng)網(wǎng)絡(luò)模型受控效果較好。
隨機(jī)生成大于103的不同k值,將控制因子k作用于隱層激活函數(shù)自變量處進(jìn)行實(shí)驗(yàn),深層控制模型如圖4所示。
圖4 將控制因子作用于激活函數(shù)的深層控制模型
可以看到,單在C3隱層加入控制因子準(zhǔn)確度降低較小,對神經(jīng)網(wǎng)絡(luò)受控效果較差。當(dāng)控制因子在C2層激活函數(shù)處參與深層控制時(shí),能夠令神經(jīng)網(wǎng)絡(luò)受控準(zhǔn)確率達(dá)到9.72%左右,起到較好的控制效果,如圖5所示。
圖5 將控制因子作用于不同層激活函數(shù)的準(zhǔn)確率
將控制因子作用于各隱層權(quán)重處進(jìn)行實(shí)驗(yàn),深層控制模型如圖6所示。
圖6 將控制因子作用于不同層權(quán)重的深層控制模型
本實(shí)驗(yàn)同上實(shí)驗(yàn),分為三部分:第一部分對單一隱層權(quán)重進(jìn)行控制;第二部分同時(shí)對兩個(gè)隱層權(quán)重進(jìn)行控制;第三部分同時(shí)對三個(gè)隱層權(quán)重進(jìn)行控制。結(jié)果如圖7所示。
圖7 將控制因子作用于不同層權(quán)重的準(zhǔn)確率
目標(biāo)模型未受控時(shí)正常使用的準(zhǔn)確率為97.68%,只對隱層中的權(quán)重做受控操作對模型準(zhǔn)確率幾乎無影響,控制效果差。說明對于本次實(shí)驗(yàn)所選取的滿足定義1的運(yùn)算而言,在隱層權(quán)重處作ζ(·,k)運(yùn)算對卷積深度神經(jīng)網(wǎng)絡(luò)模型影響較小。
將控制因子作用于各隱層偏置處進(jìn)行實(shí)驗(yàn),深層控制模型如圖8所示。
圖8 將控制因子作用于不同層偏置的深層控制模型
實(shí)驗(yàn)同樣分為三部分:第一部分對單一隱層偏置進(jìn)行控制;第二部分同時(shí)對兩個(gè)隱層的偏置進(jìn)行控制;第三部分同時(shí)對三個(gè)隱層的偏置進(jìn)行控制。結(jié)果如圖9所示。
圖9 將控制因子作用于不同層偏置的準(zhǔn)確率
可以看到,當(dāng)控制因子作用于不同層偏置時(shí),能夠令神經(jīng)網(wǎng)絡(luò)平均受控準(zhǔn)確率達(dá)到約10.29%,起到較好的控制效果。當(dāng)C3層的偏置參與深層控制時(shí),能夠令受控神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確率達(dá)到最小值9.72%,起到較好的控制效果。
在授權(quán)用戶使用受控神經(jīng)網(wǎng)絡(luò)時(shí),控制模塊需要先恢復(fù)受控參數(shù)。由于深層控制方法需要令控制因子內(nèi)嵌在卷積神經(jīng)網(wǎng)絡(luò)各隱層的不同參數(shù)處,內(nèi)嵌控制因子的參數(shù)越多,恢復(fù)神經(jīng)網(wǎng)絡(luò)的時(shí)間開銷就越大。為了進(jìn)一步降低使用深層控制方法產(chǎn)生的時(shí)間開銷,同時(shí)提高控制效果,根據(jù)上述研究結(jié)果提出對深層控制方法的優(yōu)化方案。
上述研究表明,在以三層卷積神經(jīng)網(wǎng)絡(luò)為研究對象的實(shí)驗(yàn)中,令C2層的激活函數(shù)和C3層偏置同時(shí)參與深層控制,能夠起到最好的控制效果。所以在對卷積神經(jīng)網(wǎng)絡(luò)深度控制時(shí),優(yōu)先選取模型中間隱層的激活函數(shù)和靠近輸出的隱層偏置。
驗(yàn)證卷積神經(jīng)網(wǎng)絡(luò)深層控制方法與優(yōu)化后深層控制方法的有效性。
選取LeNet-5、VGG-16卷積神經(jīng)網(wǎng)絡(luò)作為實(shí)驗(yàn)對象,分別使用MNIST、ImageNet數(shù)據(jù)集。操作系統(tǒng)采用Windows 10,GPU為GeForce GTX 1060,算力為6.1,采用TensorFlow 1.12.0以及對應(yīng)的cuda 9.0、cudnn 7.1.4,編譯器選用Pycharm,卷積神經(jīng)網(wǎng)絡(luò)代碼使用Python3.6,部分使用C/C++編寫。
首先使用訓(xùn)練好的LeNet-5卷積神經(jīng)網(wǎng)絡(luò)模型對MNIST的10 000組數(shù)據(jù)進(jìn)行多次測試,記錄平均時(shí)間為0.463 s,模型準(zhǔn)確率為94.49%。以該時(shí)間與準(zhǔn)確率作為衡量后續(xù)實(shí)驗(yàn)結(jié)果的標(biāo)準(zhǔn)時(shí)間開銷和標(biāo)準(zhǔn)準(zhǔn)確率。
使用深層控制方法控制實(shí)驗(yàn)對象,記錄授權(quán)用戶多次使用受控網(wǎng)絡(luò)測試10 000組數(shù)據(jù)的時(shí)間開銷為0.516 s,受控模型準(zhǔn)確率為94.49%,未授權(quán)用戶多次使用受控網(wǎng)絡(luò),模型準(zhǔn)確率為10.32%。
優(yōu)化后的深層控制方法要求控制模塊優(yōu)先選取受控模型中間隱層的激活函數(shù)和靠近輸出的隱層偏置。使用優(yōu)化后的深層控制方法控制實(shí)驗(yàn)對象,授權(quán)用戶多次使用受控網(wǎng)絡(luò),同樣測試10 000組數(shù)據(jù)的時(shí)間開銷為0.483 s,受控模型準(zhǔn)確率為94.49%,未授權(quán)用戶多次使用受控優(yōu)化網(wǎng)絡(luò),模型準(zhǔn)確率為8.92%。
對比三組時(shí)間數(shù)據(jù),可以發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)采用深層控制方法后,運(yùn)行時(shí)間增加11.45%,時(shí)間開銷不大。在對深層控制方法優(yōu)化后,時(shí)間從0.516 s降至0.483 s,受控模型時(shí)間縮短6.39%,如圖10所示。
圖10 LeNet-5在不同狀態(tài)下的時(shí)間開銷對比
對比三組準(zhǔn)確率數(shù)據(jù),可以發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)采用深層控制方法之后,未授權(quán)用戶難以使用受控網(wǎng)絡(luò)預(yù)測數(shù)據(jù)。在對深層控制方法優(yōu)化后,受控優(yōu)化網(wǎng)絡(luò)的準(zhǔn)確率進(jìn)一步下降,從10.32%降低至8.92%,控制效果有所提升,如圖11所示。
圖11 LeNet-5在不同狀態(tài)下的準(zhǔn)確率對比
從ImageNet包含50 000組圖片的驗(yàn)證集中隨機(jī)抽取200組圖片,使用訓(xùn)練好的VGG-16卷積神經(jīng)網(wǎng)絡(luò)模型多次測試,記錄平均時(shí)間為6.04 s,模型準(zhǔn)確率為78.50%。以該時(shí)間與準(zhǔn)確率作為衡量后續(xù)實(shí)驗(yàn)結(jié)果的標(biāo)準(zhǔn)時(shí)間開銷和標(biāo)準(zhǔn)準(zhǔn)確率。
使用深層控制方法控制實(shí)驗(yàn)對象,記錄授權(quán)用戶多次使用受控網(wǎng)絡(luò)的時(shí)間開銷為6.73 s,受控模型準(zhǔn)確率為78.50%,未授權(quán)用戶使用受控網(wǎng)絡(luò),模型準(zhǔn)確率為2.00%。優(yōu)化控制方法后,要求控制模塊優(yōu)先選取受控模型中間隱層的激活函數(shù)和靠近輸出的隱層偏置。使用優(yōu)化后的深層控制方法控制實(shí)驗(yàn)對象,授權(quán)用戶使用受控網(wǎng)絡(luò)時(shí)間開銷為6.36 s,受控模型準(zhǔn)確率為78.50%,未授權(quán)用戶多次使用受控優(yōu)化網(wǎng)絡(luò),模型準(zhǔn)確率為1.50%。
對比三組時(shí)間數(shù)據(jù),可以發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)采用深層控制方法后,運(yùn)行時(shí)間增加11.42%,時(shí)間開銷不大。在對深層控制方法優(yōu)化后,時(shí)間開銷從6.73 s降至6.36 s,受控模型時(shí)間縮短5.50%,如圖12所示。
圖12 VGG-16在不同狀態(tài)下的時(shí)間開銷對比
對比三組準(zhǔn)確率數(shù)據(jù),可以發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)采用深層控制方法之后,未授權(quán)用戶難以使用受控網(wǎng)絡(luò)預(yù)測數(shù)據(jù)。在對深層控制方法優(yōu)化后,受控優(yōu)化網(wǎng)絡(luò)的準(zhǔn)確率進(jìn)一步下降,從2.00%降低至1.50%,控制效果有所提升,如圖13所示。
圖13 VGG-16在不同狀態(tài)下的準(zhǔn)確率對比
驗(yàn)證實(shí)驗(yàn)成功,卷積神經(jīng)網(wǎng)絡(luò)深層控制方法在卷積神經(jīng)網(wǎng)絡(luò)中能夠起到較好的控制效果,未授權(quán)用戶無法使用受控神經(jīng)網(wǎng)絡(luò)做出預(yù)測。
在卷積深度神經(jīng)網(wǎng)絡(luò)模型內(nèi)部參數(shù)處實(shí)現(xiàn)控制是一項(xiàng)技術(shù)難點(diǎn),國內(nèi)外相關(guān)研究較少。本文針對常用的卷積神經(jīng)網(wǎng)絡(luò)面臨的未授權(quán)訪問及其次生安全威脅,通過研究神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu),提出一種在隱層不同參數(shù)處結(jié)合因子的深層控制方法,并通過實(shí)驗(yàn)驗(yàn)證了方法的有效性。
深層控制方法的本質(zhì)在于降低未授權(quán)用戶使用神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確率,以至于未授權(quán)用戶無法使用目標(biāo)神經(jīng)網(wǎng)絡(luò),而授權(quán)用戶則能夠使用目標(biāo)神經(jīng)網(wǎng)絡(luò)進(jìn)行正常預(yù)測。該方法不僅能夠抵抗未授權(quán)用戶的非法訪問,同時(shí)能夠?qū)崿F(xiàn)對模型參數(shù)的保護(hù)。
本文的研究在一定程度上為保護(hù)神經(jīng)網(wǎng)絡(luò)模型提出了新的思路與方法,后續(xù)工作將把深層安全控制方法的實(shí)驗(yàn)框架更換為當(dāng)前更易用的Pytorch,對方法進(jìn)一步優(yōu)化,并推廣應(yīng)用至更深的卷積神經(jīng)網(wǎng)絡(luò)模型及其他神經(jīng)網(wǎng)絡(luò)模型中。