• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于時間側(cè)信道逆向神經(jīng)網(wǎng)絡(luò)模型*

      2021-03-03 00:56:08黃誠軒李景海
      密碼學(xué)報 2021年6期
      關(guān)鍵詞:網(wǎng)絡(luò)結(jié)構(gòu)攻擊者分類器

      黃誠軒, 唐 明,2, 李景海

      1. 武漢大學(xué)國家網(wǎng)絡(luò)安全學(xué)院空天信息安全與可信計算教育部重點(diǎn)實(shí)驗(yàn)室, 武漢 430072

      2. 密碼科學(xué)技術(shù)國家重點(diǎn)實(shí)驗(yàn)室, 北京 100878

      1 引言

      機(jī)器學(xué)習(xí), 以及近期受到廣泛關(guān)注的深度學(xué)習(xí), 由于其高度的實(shí)用性和有效性, 在圖像識別[1]、機(jī)器人[2]、自然語言處理[3], 以及信息安全等不同領(lǐng)域都受到許多研究者的重視[4,5]. 當(dāng)今計算機(jī)不斷增長的計算能力和海量可用數(shù)據(jù)導(dǎo)致了比以前預(yù)想的更加復(fù)雜的機(jī)器學(xué)習(xí)架構(gòu). 例如, 在2012 年時, 由8 層組成的AlexNet 架構(gòu)在圖像分類任務(wù)ILSVRC20121http://www.image-net.org/challenges/LSVRC/2012/中是性能最好的算法, 而到了2015 年, 同一任務(wù)性能最好的架構(gòu)是由152 層[6]組成的ResNet. 預(yù)計這一趨勢并不會停滯不前, 深度學(xué)習(xí)技術(shù)仍然在高速發(fā)展. 此外, 深度學(xué)習(xí)算法在傳感器或驅(qū)動器等物聯(lián)網(wǎng)邊緣設(shè)備中越來越受歡迎, 因?yàn)樗鼈冊谠S多任務(wù)中是不可或缺的, 如圖像分類任務(wù)、語音識別任務(wù)等. 因此, 越來越多的應(yīng)用都樂于將神經(jīng)網(wǎng)絡(luò)部署在始終處于開啟狀態(tài)的系統(tǒng)上運(yùn)行.

      神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練以及參數(shù)調(diào)優(yōu)需要大量的時間與金錢代價. Google 的XLNet 每次訓(xùn)練需要花費(fèi)61 000 美元來尋找最優(yōu)的訓(xùn)練參數(shù), 并且, 模型訓(xùn)練過程中的數(shù)據(jù)集搜集與制作、分布式存儲、管理等也需要花費(fèi)大量的時間與人力. 其次, 許多高階的針對神經(jīng)網(wǎng)絡(luò)的攻擊, 諸如對抗樣本攻擊、數(shù)據(jù)投毒攻擊都建立在模型已知的前提下, 或通過獲取模型信息來提升攻擊效果[7,8]. 因此, 神經(jīng)網(wǎng)絡(luò)模型不僅是重要的知識產(chǎn)權(quán), 也是應(yīng)用開發(fā)中最底層的安全性問題.

      隨著越來越多的設(shè)計策略和全新場景的使用, 神經(jīng)網(wǎng)絡(luò)模型需要快速構(gòu)建達(dá)到較好的泛化效果, 遷移學(xué)習(xí)(transfer learning) 解決了這個問題, 成為深度學(xué)習(xí)算法主要的挑戰(zhàn)之一. 遷移學(xué)習(xí)是一種機(jī)器學(xué)習(xí)方法, 就是把為任務(wù)A 開發(fā)的模型作為初始點(diǎn), 重新使用到為任務(wù)B 開發(fā)模型的過程中. 遷移學(xué)習(xí)對人類來說很常見, 例如, 研究發(fā)現(xiàn)學(xué)習(xí)識別蘋果可能有助于識別梨, 或者學(xué)習(xí)彈奏電子琴可能有助于學(xué)習(xí)鋼琴. 簡單來說, 找到目標(biāo)問題的相似性, 遷移學(xué)習(xí)任務(wù)就是從相似性出發(fā), 將舊領(lǐng)域?qū)W習(xí)過的模型應(yīng)用在新領(lǐng)域上, 使得目標(biāo)領(lǐng)域能夠取得更好的學(xué)習(xí)效果.

      遷移學(xué)習(xí)的廣泛使用包含以下幾個原因.

      (1) 大數(shù)據(jù)與少標(biāo)注的矛盾: 雖然有大量的數(shù)據(jù), 但往往都是沒有標(biāo)注的, 無法訓(xùn)練機(jī)器學(xué)習(xí)模型. 人工進(jìn)行數(shù)據(jù)標(biāo)注數(shù)據(jù)時間成本過高.

      (2) 大數(shù)據(jù)與弱計算的矛盾: 普通人無法擁有龐大的數(shù)據(jù)量與計算資源, 因此需要借助于模型的遷移.

      (3) 普適化模型與個性化需求的矛盾: 即使是在同一個任務(wù)上, 一個模型也往往難以滿足每個人的個性化需求, 比如特定的隱私設(shè)置. 這就需要在不同個體之間做模型適配.

      (4) 特定應(yīng)用(如冷啟動) 的需求. 在遷移學(xué)習(xí)的背景下, 由于AI 模型的訓(xùn)練需要大量的時間與成本,當(dāng)前許多應(yīng)用開發(fā)的模型結(jié)構(gòu)均來自于已知模型的再訓(xùn)練, 那么對已有模型結(jié)構(gòu)的分析, 能夠以很好地效果預(yù)測未知模型的結(jié)構(gòu).

      神經(jīng)網(wǎng)絡(luò)模型是推理任務(wù)的基石, 其機(jī)密性對于應(yīng)用開發(fā)具有多層次的意義. 在不同的行業(yè)使用人工智能算法時, 研究者們看到了知識產(chǎn)權(quán)(IP) 模式戰(zhàn)略的增加. 當(dāng)優(yōu)化的網(wǎng)絡(luò)具有商業(yè)利益時, 它們的細(xì)節(jié)基本上是保密的. 對神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)保密除了商業(yè)利益外, 還有許多其他的原因. 通常, 這些預(yù)先訓(xùn)練過的模型可能會提供關(guān)于訓(xùn)練數(shù)據(jù)的額外信息, 這些信息可能非常敏感. 例如, 如果模型是基于病人[9]的病歷進(jìn)行訓(xùn)練的, 那么機(jī)密的信息可以在訓(xùn)練階段被編碼到網(wǎng)絡(luò)中. 此外, 用于指導(dǎo)醫(yī)療治療的機(jī)器學(xué)習(xí)模型通常基于患者的基因型等私密信息[10], 從隱私角度來看這些信息非常敏感. 即使不考慮隱私問題, 從神經(jīng)網(wǎng)絡(luò)架構(gòu)中獲取有用的信息, 也可以幫助攻擊者從競爭中獲取商業(yè)秘密, 從而在不侵犯知識產(chǎn)權(quán)的情況下產(chǎn)生有競爭力的產(chǎn)品. 因此, 利用其他競爭者已經(jīng)訓(xùn)練過的網(wǎng)絡(luò)來確定自身網(wǎng)絡(luò)結(jié)構(gòu)的部署是攻擊者的理想目標(biāo).

      目前最直接針對神經(jīng)網(wǎng)絡(luò)的逆向方法是對設(shè)備的物理訪問, 對探測到的二進(jìn)制代碼進(jìn)行逆向工程. 然而, 在保密的IP 設(shè)置中, 標(biāo)準(zhǔn)的保護(hù)措施(如阻止二進(jìn)制回讀、阻止JTAG 訪問[11]、代碼混淆等) 在正確部署到位的情況下, 能夠有效防止物理攻擊. 基于時間泄漏的側(cè)信道分析方法可以作為這些防護(hù)條件下的一種逆向分析方法.

      本文的目標(biāo)是分析神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)實(shí)現(xiàn)的潛在漏洞, 以卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN) 算法為分析對象. 選擇CNN 結(jié)構(gòu)進(jìn)行攻擊的原因在于: (1) 它是現(xiàn)代應(yīng)用中常用的深度學(xué)習(xí)算法;(2) 它由不同類型的層組成, 這些層也出現(xiàn)在其他的網(wǎng)絡(luò)結(jié)構(gòu)中, 比如遞歸神經(jīng)網(wǎng)絡(luò); (3) 研究發(fā)現(xiàn)相同類型的網(wǎng)絡(luò)層由于輸入不同導(dǎo)致運(yùn)算量不一致, 從而利用運(yùn)算時間消耗能夠區(qū)分出整體網(wǎng)絡(luò)結(jié)構(gòu).

      本文展示了利用時間側(cè)信道信息恢復(fù)未知網(wǎng)絡(luò)布局的可能性. 現(xiàn)有參考文獻(xiàn)顯示, 已有神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)中未發(fā)現(xiàn)針對側(cè)信道攻擊方法的相關(guān)防護(hù)措施. 本文提出的逆向分析方法通過使用已存在網(wǎng)絡(luò)模型結(jié)構(gòu)構(gòu)造時間特征序列, 可以匹配出目標(biāo)模型的結(jié)構(gòu), 從而恢復(fù)整體的網(wǎng)絡(luò)信息.

      目前已有的研究中, 利用側(cè)信道分析來攻擊機(jī)器學(xué)習(xí)架構(gòu)的研究受到各種方面的限制. Shokri 等人[12]研究了從機(jī)器學(xué)習(xí)模型中泄漏敏感信息的情況, 這些敏感信息來源于訓(xùn)練數(shù)據(jù)涉及到個人數(shù)據(jù)記錄. 結(jié)果表明, 這些模型容易受到成員推理攻擊, 并對一些緩解攻擊的策略進(jìn)行了評估. Song 等人[13]展示了如何使用惡意機(jī)器學(xué)習(xí)提供商的機(jī)器學(xué)習(xí)模型來獲取模型的訓(xùn)練集信息. Tramèr 等人[14]通過商用公開的API, 在未知機(jī)器學(xué)習(xí)模型的參數(shù)和訓(xùn)練數(shù)據(jù)的情況下, 去復(fù)制(即“竊取”) 模型的功能. Hua 等人[15]首先通過緩存和時間側(cè)信道泄漏對兩種卷積神經(jīng)網(wǎng)絡(luò)AlexNet 和SqueezeNet 進(jìn)行逆向工程. 攻擊者通過人工引入的硬件木馬來測量側(cè)信道. 他們還需要訪問攻擊所需的原始訓(xùn)練數(shù)據(jù)集, 這些數(shù)據(jù)可能并不總是可用的. Hu 等人[16]通過GPU 上運(yùn)行產(chǎn)生的kernel events 和對應(yīng)的內(nèi)存訪問模式, 采用LSTM+CTC 的解決方案逆向基于GPU 實(shí)現(xiàn)的DNN 結(jié)構(gòu). Parashar 等人[17]為了獲得神經(jīng)網(wǎng)絡(luò)的權(quán)值, 它們攻擊中包含一個非常具體的操作, 即零剪枝. Wei 等人[18]還對基于FPGA 的卷積神經(jīng)網(wǎng)絡(luò)加速器進(jìn)行了攻擊. 他們從收集到的功耗痕跡中恢復(fù)了輸入圖像. 該攻擊利用了一個特定的設(shè)計, 即CNN 卷積層中的行緩沖區(qū)(line buffer). Batina 等人[19]通過測量神經(jīng)網(wǎng)絡(luò)模型運(yùn)行過程中的電磁信號, 通過使用差分功耗分析等方式成功逆向出ARM Cortex-M3 平臺上實(shí)現(xiàn)的DNN 網(wǎng)絡(luò)的相關(guān)信息, 包括層數(shù)、每層神經(jīng)元的數(shù)量、激活函數(shù)類別信息等. Wei 等人[20]通過GPU 上下文切換的懲罰側(cè)信道信息也逆向出了DNN 的網(wǎng)絡(luò)結(jié)構(gòu). 簡言之, 以上幾種基于側(cè)信道信息的逆向方法針對特定神經(jīng)網(wǎng)絡(luò)進(jìn)行, 與之相比, 本文的目標(biāo)在于確定現(xiàn)有典型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是否具有時間敏感性, 基于該敏感性給出通用的逆向分析方法,將模型結(jié)構(gòu)逆向問題, 通過時間側(cè)信道轉(zhuǎn)換為對已有模型的分類問題. 隨后分析所提出攻擊方法的優(yōu)勢與不足.

      本文第2 節(jié)介紹了攻擊場景, 提供了時間側(cè)信道攻擊實(shí)現(xiàn)方法. 第3 節(jié)為實(shí)驗(yàn)結(jié)果與分析. 第4 節(jié)簡單對比了其他相關(guān)工作. 第5 節(jié)為討論與總結(jié).

      2 神經(jīng)網(wǎng)絡(luò)模型逆向攻擊

      2.1 攻擊者模型

      攻擊場景. 這項(xiàng)工作的主要目標(biāo)是只使用時間信息恢復(fù)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu). 假設(shè)深度學(xué)習(xí)算法的實(shí)現(xiàn)不包括任何側(cè)信道防護(hù). 一個合適的場景是, 攻擊者合法地獲取了一個具有API 訪問權(quán)限的神經(jīng)網(wǎng)絡(luò)模型的一份副本, 并利用API 訪問網(wǎng)絡(luò), 目的是恢復(fù)網(wǎng)絡(luò)的內(nèi)部細(xì)節(jié), 進(jìn)行知識產(chǎn)權(quán)竊取. 或者是通過對模型結(jié)構(gòu)信息的推測以利于其他攻擊的實(shí)施, 諸如對抗樣本攻擊、數(shù)據(jù)投毒攻擊都能夠利用模型信息來提升攻擊效果.

      攻擊者的能力. 攻擊者可以在“正?!?操作的情況下獲取設(shè)備的測量值, 并且不會通過引發(fā)錯誤的計算和行為來干擾設(shè)備的內(nèi)部操作. 更詳細(xì)地說, 考慮以下情況:

      (1) 攻擊者不知道所使用網(wǎng)絡(luò)的體系結(jié)構(gòu), 但可以向該體系結(jié)構(gòu)提供隨機(jī)輸入. 本文提出的攻擊和分析并不依賴于對輸入分布的任何假設(shè). 假設(shè)攻擊者對設(shè)備具有物理訪問權(quán)限(可以是遠(yuǎn)程訪問),并且他知道該設(shè)備運(yùn)行某種神經(jīng)網(wǎng)絡(luò). 攻擊者只能通過選擇輸入來控制它的執(zhí)行, 但是可以觀察輸出和側(cè)信道信息.

      (2) 攻擊者能夠測量從目標(biāo)體系結(jié)構(gòu)的實(shí)現(xiàn)中泄漏的側(cè)信道信息. 本文假定攻擊者采集目標(biāo)系統(tǒng)運(yùn)行過程的時間側(cè)信道信號.

      2.2 攻擊流程

      通過研究發(fā)現(xiàn), 神經(jīng)網(wǎng)絡(luò)模型運(yùn)算過程之中, 不同網(wǎng)絡(luò)層結(jié)構(gòu)的不一致導(dǎo)致其運(yùn)算量不同, 也因此產(chǎn)生了運(yùn)行時間上的差異. 卷積神經(jīng)網(wǎng)絡(luò)中, 使用三種主要類型的層: 卷積層、池化層和全連接層. 以浮點(diǎn)運(yùn)算數(shù)(floating point operations, FLOPs) 來衡量網(wǎng)絡(luò)層運(yùn)算的復(fù)雜度, 卷積層是在空間中共享權(quán)重的線性層, 單層卷積層的FLOPs 為: 2·K2·M2·Cin·Cout. 其中K為每個卷積核(kernel) 的邊長,M為每個卷積核輸出特征圖(feature map) 的邊長,Cin為每個卷積核的輸入通道數(shù), 即上一層的輸出通道數(shù),Cout為卷積核個數(shù), 即輸出通道數(shù). 系數(shù)2 代表卷積核運(yùn)算過程中包含乘加運(yùn)算兩個操作.

      池化層是減少空間大小以限制神經(jīng)元數(shù)量的非線性層, 由池化大小、步長和填充控制. 單層池化層的FLOPs 為M2, 其中M為每個池化層輸出特征圖的邊長.

      全連接層是指每個神經(jīng)元都與鄰域?qū)又械乃猩窠?jīng)元相連的層. 單層全連接層的FLOPs 為2·I ·O,其中I為輸入神經(jīng)元個數(shù),O為輸出神經(jīng)元個數(shù), 系數(shù)2 代表全連接層運(yùn)算中包含乘加運(yùn)算兩個操作.

      上面的時間分析揭示出了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)上的差異, 導(dǎo)致各層之間運(yùn)算量不同, 卷積層FLOPs 與(K,M,Cin,Cout) 相關(guān), 池化層FLOPs 與M相關(guān), 全連接層FLOPs 與(I,O) 相關(guān), 造成了硬件資源上運(yùn)行時所需的時間消耗也不同, 這一點(diǎn)為時間側(cè)信道攻擊提供了理論基礎(chǔ).

      本文以各運(yùn)算層的時間消耗不同提出了神經(jīng)網(wǎng)絡(luò)模型逆向攻擊. 攻擊主要分為三個階段, 第一個階段是對時間消耗特征進(jìn)行刻畫, 并對數(shù)據(jù)預(yù)處理, 即數(shù)據(jù)準(zhǔn)備階段; 第二個階段利用以提取特征進(jìn)行分類器訓(xùn)練, 即訓(xùn)練階段; 第三個階段對待測試時間序列進(jìn)行預(yù)測, 得到預(yù)測的模型結(jié)構(gòu), 并進(jìn)行精度評價, 即預(yù)測階段. 整個攻擊的流程如圖1.

      2.2.1 數(shù)據(jù)準(zhǔn)備階段

      數(shù)據(jù)準(zhǔn)備階段對被攻擊設(shè)備的特征進(jìn)行刻畫, 這意味著攻擊者可以確定出某些模型時間消耗的特征序列. 例如, 攻擊者可能擁有一臺與被攻擊設(shè)備類型相同的設(shè)備, 并且該設(shè)備完全由攻擊者控制, 又或者是攻擊者合法地獲取網(wǎng)絡(luò)模型的一份拷貝, 并使用API 訪問網(wǎng)絡(luò). 利用相同的設(shè)備, 攻擊者運(yùn)行不同的模型結(jié)構(gòu)fi, 并記錄不同網(wǎng)絡(luò)層的時間消耗信息ti, 然后將fi與相對應(yīng)的跡分組, 這樣對于每一種數(shù)據(jù)和模型fi都可以得到多組特征序列hfi=(?t1,?t2,··· ,?tn). 通過采集到的數(shù)據(jù)驗(yàn)證了此前的發(fā)現(xiàn): 不同網(wǎng)絡(luò)層結(jié)構(gòu)的不一致導(dǎo)致其運(yùn)算量不同, 可以利用時間消耗來確定神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu).

      本文以Pytorch 的profile 模塊作為采集時間信息的方式, 在NVIDIA GeForce GTX 1060 6 GB 上運(yùn)行不同模型, 采集時間序列序列hfi=(?t1,?t2,··· ,?tn). 目前還有許多其他的神經(jīng)網(wǎng)絡(luò)分析工具可以達(dá)到實(shí)驗(yàn)要求. 例如英偉達(dá)的NV prof 工具, 其是用來測試了解并優(yōu)化CUDA 或OpenACC 應(yīng)用程序的性能的分析工具. 分析工具能夠從命令行收集和查看分析數(shù)據(jù). 可以測得GPU 上運(yùn)算所消耗的時間. 著名的深度學(xué)習(xí)框架TensorFlow 從r1.3 版本開始, 提供profiler 模塊. 為方便描述, 下面將TensorFlow 中運(yùn)行的神經(jīng)網(wǎng)絡(luò)模型簡稱為graph, 其中的節(jié)點(diǎn)稱為node. profiler 模塊的最大好處是: 打開TensorFlow執(zhí)行的黑盒, 以graph node 為最細(xì)的粒度, 從多個維度、多個層面去統(tǒng)計神經(jīng)網(wǎng)絡(luò)運(yùn)行的時間和內(nèi)存消耗, 為進(jìn)一步優(yōu)化神經(jīng)網(wǎng)絡(luò)模型的運(yùn)行效率提供最直接的數(shù)據(jù)依據(jù). 本文使用的深度學(xué)習(xí)框架Pytorch 包含的profile 模塊. Pytorch 的Autograd 模塊包括一個分析器profiler, 它可以讓你檢查模型中不同操作符的時間消耗——包括CPU 和GPU. 以Vgg 系列網(wǎng)絡(luò)為例, 采集到的時間特征序列如圖2(圖2 中只展示前20 層layer).

      圖1 攻擊流程圖Figure 1 Attack flow chart

      圖2 Vgg 系列網(wǎng)絡(luò)(layer1—20) 各層時間消耗Figure 2 Time consumption for each layer of Vgg network (layer1–20)

      圖2 中所有時間軌跡疊加在一起, 每一條軌跡代表了一個模型前二十層運(yùn)行所需要的時間消耗. 藍(lán)色曲線即Vgg-11 網(wǎng)絡(luò)結(jié)構(gòu)的時間消耗軌跡, 從layer2 開始就能清晰地區(qū)分開來, 而另外的三個Vgg 系列網(wǎng)絡(luò)結(jié)構(gòu)的時間軌跡在layer1—14 完全重合. 這是因?yàn)槠浣Y(jié)構(gòu)有相似部分, Vgg 的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖3.

      圖3 Vgg 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置Figure 3 Vgg convNet configuration

      觀察圖3 中的網(wǎng)絡(luò)結(jié)構(gòu), 運(yùn)算層layer1–14 中, 除Vgg-11 外的其他Vgg 網(wǎng)絡(luò)結(jié)構(gòu)完全一致, 造成了時間消耗軌跡完全重合. 神經(jīng)網(wǎng)絡(luò)中通常把卷積運(yùn)算加上激活函數(shù)整體統(tǒng)稱為一層卷積層, 而實(shí)際測量時,卷積運(yùn)算與激活函數(shù)均為單獨(dú)的一層layer, 即卷積層包含了兩層運(yùn)算layer. Vgg-11 的網(wǎng)絡(luò)結(jié)構(gòu)在第一個卷積層后緊跟一個池化層, 而Vgg-13、16、19 則均為卷積層+ 卷積層+ 池化層的結(jié)構(gòu), 對于layer3的運(yùn)算來說, Vgg-11 為池化Maxpool 計算, 而其他Vgg 網(wǎng)絡(luò)結(jié)構(gòu)均為卷積運(yùn)算, 該結(jié)構(gòu)上的差異導(dǎo)致了Vgg-11 的layer3 計算量小于其他網(wǎng)絡(luò). 由于運(yùn)算量不一致, 也因此區(qū)分出了Vgg-11 的時間消耗軌跡不同于其他軌跡. 對于其他網(wǎng)絡(luò)結(jié)構(gòu), 在淺層次(layer1–14) 的網(wǎng)絡(luò)結(jié)構(gòu)一致, 所以運(yùn)算量也一致, 這導(dǎo)致時間特征軌跡相同, 如圖2 中所示layer1–14 曲線重合, 符合實(shí)驗(yàn)預(yù)期. 因此淺層次的時間特征不足以完全確立模型具體結(jié)構(gòu), 但是能夠?yàn)榫W(wǎng)絡(luò)類型進(jìn)行初步分類.

      繼續(xù)觀察圖2 中采集到的時間特征序列l(wèi)ayer15–20, 可以清晰地區(qū)分出Vgg 系列的四個網(wǎng)絡(luò)時間消耗軌跡, 原因在于這部分的Vgg 網(wǎng)絡(luò)的結(jié)構(gòu)不一致, 由圖3 可知, 運(yùn)算layer15 層時, Vgg-13 是Maxpool層, 而Vgg-16 和19 均為卷積運(yùn)算, layer17 時, Vgg-16 是Maxpool 層, Vgg-19 仍為卷積運(yùn)算, 由于時間消耗與網(wǎng)絡(luò)結(jié)構(gòu)運(yùn)算的復(fù)雜程度正相關(guān), 也因此導(dǎo)致圖2 中l(wèi)ayer15–20 的時間軌跡產(chǎn)生了差異, 符合實(shí)驗(yàn)預(yù)期, 同時證明了可以通過時間消耗序列來區(qū)分神經(jīng)網(wǎng)絡(luò)的模型結(jié)構(gòu). 其他的網(wǎng)絡(luò)結(jié)構(gòu)也符合此項(xiàng)結(jié)論.

      2.2.2 訓(xùn)練階段

      2.2.1節(jié)中已經(jīng)驗(yàn)證了不同網(wǎng)絡(luò)結(jié)構(gòu)的時間消耗序列不相同, 那么接下來則是需要一個合適的分類器能夠?qū)λ鸭降臅r間軌跡信息進(jìn)行分類區(qū)分. 本文選擇機(jī)器學(xué)習(xí)中應(yīng)用最廣泛的一個算法—支持向量機(jī)(SVM)[21], 它在解決小樣本、非線性及高維模式識別中有特有的優(yōu)勢. 通過尋求結(jié)構(gòu)化風(fēng)險最小來提高學(xué)習(xí)機(jī)泛化能力, 實(shí)現(xiàn)經(jīng)驗(yàn)風(fēng)險和置信范圍的最小化, 從而達(dá)到在統(tǒng)計樣本量較少的情況下, 亦能獲得良好統(tǒng)計規(guī)律的目的. 采集到的時間序列hfi=(?t1,?t2,··· ,?tn), 可以作為訓(xùn)練數(shù)據(jù)輸入支持向量機(jī), 模型的具體結(jié)構(gòu)即為對應(yīng)標(biāo)簽.

      SVM 的主要原理是尋找一個滿足分類要求的最優(yōu)分類超平面, 使得該超平面在保證分類精度的同時,能夠使得超平面兩側(cè)的空白區(qū)域最大化. 理論上, 支持向量機(jī)能夠?qū)崿F(xiàn)對線性可分?jǐn)?shù)據(jù)的最優(yōu)分類.

      其中ξi為松弛變量, 表示誤差, 0≤ξi ≤1 指樣本xi被正確分類,ξi ≥1 為xi被錯誤分類;C為正則化參數(shù), 即對分類錯誤的懲罰系數(shù), 松弛變量需要滿足:

      為了對非線性分類的問題進(jìn)行分類, SVM 通過一個映射函數(shù)φ(x) 將原始數(shù)據(jù)空間映射到高維空間,于是線性不可分的問題變成了線性可分的問題. 為了減小計算量, SVM 通過使用核技巧來加速在高維映射下的計算:

      K(x,y) 是核函數(shù),xi與xj在特征空間的內(nèi)積等于它們在原始樣本空間中通過函數(shù)K(x,y) 計算的結(jié)果,即對任意的xi,xj有K(xi,xj) =φ(xi)·φ(xj). 在實(shí)際應(yīng)用中, 不需要考慮如何映射, 而是直接可以直接選擇合適的核函數(shù). 實(shí)驗(yàn)選取的核函數(shù)為高斯核函數(shù), 它可以將數(shù)據(jù)映射到無窮維, 是最常用的核函數(shù).通過將時間序列輸入到支持向量機(jī)中訓(xùn)練后, 得到的分類器還需要進(jìn)行參數(shù)選擇, 實(shí)驗(yàn)選取網(wǎng)格搜索的方式進(jìn)行參數(shù)的選擇, 得到了最優(yōu)的分類器后就可以進(jìn)行模型結(jié)構(gòu)的預(yù)測.

      2.2.3 預(yù)測階段

      實(shí)驗(yàn)獲取了目標(biāo)分類器之后, 采用準(zhǔn)確率、精確率、召回率、F1值指標(biāo)作為模型結(jié)果預(yù)測的精度評判標(biāo)準(zhǔn). 為了介紹這些指標(biāo), 首先說明一些相關(guān)概念如表1.

      表1 相關(guān)概念Table 1 Related concept

      各項(xiàng)指標(biāo)計算公式如下:

      (1) 準(zhǔn)確率(Accuracy): 所有的預(yù)測正確(正類和負(fù)類) 的占總的比重

      (2) 精確率(Precision): 查準(zhǔn)率. 正確預(yù)測為正的占全部預(yù)測為正的比例.

      (3) 召回率(Recall): 查全率. 即正確預(yù)測為正的占全部實(shí)際為正的比例.

      (4)F1值(H-mean 值):F1對Precision 和Recall 都進(jìn)行了加權(quán).

      公式轉(zhuǎn)化后有

      通過以上多個維度的指標(biāo)來判斷所預(yù)測模型結(jié)構(gòu)的效果好壞. 準(zhǔn)確率用于整體評估模型的預(yù)測能力,但是由于訓(xùn)練樣本正負(fù)樣本數(shù)量的差距過于明顯的時候, 可能導(dǎo)致模型具有高準(zhǔn)確率情況下對正樣本檢出能力過弱(Recall 低) 或過強(qiáng)(Precision 低), 因此需要通過召回率和精確率來具體評價模型的優(yōu)異程度.而F1值, 則是均衡精確率和召回率的綜合評價指標(biāo). 為了判別對所有類別總體預(yù)測效果的好壞, 計算各項(xiàng)指標(biāo)的宏平均(Macro-averaging) 值, 即先對每一個類統(tǒng)計上述指標(biāo)值, 最后對所有類計算算術(shù)平均值.

      通過比較上述指標(biāo)就能更全面地評判分類器的效果.

      3 實(shí)驗(yàn)及分析

      3.1 實(shí)驗(yàn)設(shè)置

      實(shí)驗(yàn)采用在GPU 上運(yùn)行神經(jīng)網(wǎng)絡(luò)模型, 進(jìn)行測量時間參數(shù). GPU 型號為NVIDIA GeForce GTX 1060 6 GB.選取了以下常見的網(wǎng)絡(luò)模型結(jié)構(gòu)進(jìn)行建立時間模板. 包括: AlexNet,Vgg-11,Vgg-13,Vgg-16,Vgg-19, ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152, Densenet-121. 選取這些網(wǎng)絡(luò)的具體原因如下:

      (1) 它們均是現(xiàn)代應(yīng)用中常用的深度學(xué)習(xí)算法;

      (2) 這些網(wǎng)絡(luò)包含了卷積神經(jīng)網(wǎng)絡(luò)中的常見網(wǎng)絡(luò)層, 這些層也出現(xiàn)在其他的網(wǎng)絡(luò)結(jié)構(gòu)中, 比如遞歸神經(jīng)網(wǎng)絡(luò);

      (3) 主要選取了兩個系列的網(wǎng)絡(luò)結(jié)構(gòu), 包括Vgg 系列和ResNet 系列. 同一系列的網(wǎng)絡(luò)結(jié)構(gòu)有許多相似的結(jié)構(gòu), 如果能夠很好地預(yù)測同一系列的神經(jīng)網(wǎng)絡(luò)模型, 那么對于其他不同類型的模型預(yù)測也會有很好地效果.

      構(gòu)建的時間特征序列(以前十層為例) 如圖4 所示, 2.2 節(jié)的分析表明時間消耗序列和網(wǎng)絡(luò)的復(fù)雜程度有關(guān), 和參數(shù)具體的值無關(guān), 因此將模型參數(shù)初始化為Pytorch 中提供的預(yù)訓(xùn)練模型, 每條時間軌跡的繪制是運(yùn)行多次取平均值的結(jié)果.

      圖4 中, 所有時間軌跡疊加在一起, 每一條軌跡代表了一個模型前十層運(yùn)行所需要的時間消耗. 大部分時間軌跡可以清晰地區(qū)分開, 但是部分網(wǎng)絡(luò)結(jié)構(gòu)的時間軌跡完全重合, 例如網(wǎng)絡(luò)結(jié)構(gòu)Vgg-13,16,19 重合; ResNet-18,34 重合; ResNet-50, ResNet-101, ResNet-152 重合. 產(chǎn)生這種現(xiàn)象的原因已在2.2 節(jié)中介紹. 當(dāng)觀察更深層的運(yùn)算layer 時, 不同網(wǎng)絡(luò)的時間消耗會出現(xiàn)差異, 就能夠區(qū)分出目標(biāo)具體的模型結(jié)構(gòu).

      圖4 所選網(wǎng)絡(luò)(layer1–10) 各層時間消耗Figure 4 Time consumption for each layer of selected network (layer1–10)

      實(shí)驗(yàn)使用了共11 000 條不同模型運(yùn)行時的時間軌跡, 其中8000 條作為訓(xùn)練數(shù)據(jù), 3000 條作為測試數(shù)據(jù). SVM 的核函數(shù)選擇為高斯核函數(shù), 經(jīng)過多次網(wǎng)格搜索參數(shù)調(diào)優(yōu)后, 支持向量機(jī)的參數(shù)中, 懲罰系數(shù)選取C=4.737, 核函數(shù)參數(shù)選取gamma=0.053 有最好的實(shí)驗(yàn)效果. 具體的實(shí)驗(yàn)結(jié)果如3.2 節(jié).

      3.2 實(shí)驗(yàn)結(jié)果

      首先使用淺層次的時間特征驗(yàn)證該攻擊方法是否有效. 即只使用layer1–5 的時間特征軌跡進(jìn)行模型構(gòu)建與預(yù)測, 得到的結(jié)果如表2 所示.

      表2 Layer1–5 時間序列匹配結(jié)果Table 2 Layer1–5 time series matching results

      表2 中展示了淺層次特征區(qū)分出兩個網(wǎng)絡(luò)結(jié)構(gòu), 分別是AlexNet 和Vgg-11 網(wǎng)絡(luò), 它們的精確率與召回率都是1.00, 原因在于這兩個網(wǎng)絡(luò)在本次實(shí)驗(yàn)挑選的網(wǎng)絡(luò)中結(jié)構(gòu)較為獨(dú)特, 在淺層次的結(jié)構(gòu)上就與其他網(wǎng)絡(luò)有很大的區(qū)別, 因此使用淺層次的特征就可以完全正確預(yù)測出該網(wǎng)絡(luò). 而Vgg 系列與ResNet 系列網(wǎng)絡(luò)淺層次結(jié)構(gòu)一致, 分類器無法區(qū)分出具體結(jié)構(gòu), 所以預(yù)測的指標(biāo)很低, 整體的預(yù)測準(zhǔn)確率只有56%, 精確率、召回率、F1值的宏平均值也在56% 附近. 此實(shí)驗(yàn)結(jié)果表明使用的時間特征數(shù)量不足時, 難以預(yù)測出正確的模型結(jié)構(gòu), 但可以觀察到時間特征序列恢復(fù)模型結(jié)構(gòu)的初步效果. 因此繼續(xù)以更深層次的時間特征進(jìn)行進(jìn)一步的實(shí)驗(yàn).

      使用layer1–20 的時間軌跡進(jìn)行分類器構(gòu)建與預(yù)測, 得到的結(jié)果如表3 所示. 此時分類器已經(jīng)能夠完全區(qū)分出所選Vgg 系列網(wǎng)絡(luò), 所有Vgg 系列的結(jié)構(gòu)精確率召回率都達(dá)到了100%, 原因可以結(jié)合圖5 進(jìn)行分析, Vgg 系列網(wǎng)絡(luò)在layer14–layer20 處結(jié)構(gòu)不完全一致, 再結(jié)合圖3 發(fā)現(xiàn)Vgg 系列的網(wǎng)絡(luò)分別在layer15, 16, 17, 19 層為池化層運(yùn)算, 由于池化層運(yùn)算量較小, 使得時間消耗顯著下降, 時間消耗軌跡產(chǎn)生了差別, 經(jīng)過訓(xùn)練后分類器能很好地預(yù)測Vgg 系列的網(wǎng)絡(luò)結(jié)構(gòu).

      表3 Layer1–20 時間序列匹配結(jié)果Table 3 Layer1–20 time series matching results

      圖5 Vgg 網(wǎng)絡(luò)(layer11–20) 各層時間消耗Figure 5 Time consumption for each layer of Vgg network (layer11–20)

      表3 中ResNet 系列網(wǎng)絡(luò)各項(xiàng)指標(biāo)仍然較低, 原因可以從圖6 中分析得知, ResNet 網(wǎng)絡(luò)擁有比Vgg 更深層次的結(jié)構(gòu), 在conv1 與conv2_x 的結(jié)構(gòu)中, ResNet-50, 101, 152 的運(yùn)算結(jié)構(gòu)仍然保持一致, ResNet-152 在conv3_x 出現(xiàn)了結(jié)構(gòu)差異, 而ResNet-50 與101 在conv4_x 才出現(xiàn)結(jié)構(gòu)上的差異, 這導(dǎo)致只用layer1–20 構(gòu)建的分類器的預(yù)測效果不好. 但是該分類器各項(xiàng)指標(biāo)的宏平均值提升到了85% 左右, 原因是區(qū)分出了所有Vgg 結(jié)構(gòu)網(wǎng)絡(luò).

      圖6 ResNet 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置Figure 6 ResNet convNet configuration

      結(jié)合表2 和3 的實(shí)驗(yàn)可以得出結(jié)論, 使用更深層的時間特征序列, 即更多的layer 運(yùn)算時間數(shù)據(jù), 分類器的預(yù)測效果就會更好. 那么進(jìn)一步使用更多的時間特征序列為分類器進(jìn)行訓(xùn)練, 對于不同特征層數(shù)最終預(yù)測效果如圖7.

      圖7 分類結(jié)果Figure 7 Classification results

      圖7 中Accuracy, MacroP, MacroR, MacroF的曲線近乎重合, 在layer100 時值都達(dá)到了98.9%. 曲線重合的原因是測試數(shù)據(jù)并不存在樣本不均衡的現(xiàn)象, 所以這些指標(biāo)衡量模型的效果相似. 該曲線變化趨勢能夠說明, 隨著使用網(wǎng)絡(luò)層的數(shù)量增多, 分類器的預(yù)測效果越來越好. 表2 與3 中Vgg 系列各項(xiàng)指標(biāo)優(yōu)于ResNet 系列是因?yàn)閂gg 系列模型結(jié)構(gòu)更簡單, 對于結(jié)構(gòu)越復(fù)雜的模型, 正確預(yù)測出來結(jié)構(gòu)所需的時間特征就需要越多.

      以上實(shí)驗(yàn)成功驗(yàn)證了神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)的不同導(dǎo)致運(yùn)算量不一致, 從而使得時間消耗不一致, 能夠以時間特征序列進(jìn)行神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)的恢復(fù). 使用的特征層數(shù)越多, 分類器預(yù)測的效果越好.

      4 相關(guān)工作

      近些年來, 深度學(xué)習(xí)方向的安全性問題獲得了越來越多的關(guān)注和研究, 之前的工作中表明, 神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)包含了商業(yè)價值、敏感信息, 且攻擊者在已知目標(biāo)模型結(jié)構(gòu)的前提下, 能夠生成更好的對抗樣本進(jìn)行攻擊[7,8,22,23]. 文獻(xiàn)[12,13,24] 研究了從機(jī)器學(xué)習(xí)模型中泄漏敏感信息的情況, 這些敏感信息來源于訓(xùn)練數(shù)據(jù). 這一類攻擊只提取了用戶敏感信息. 文獻(xiàn)[25] 從機(jī)器學(xué)習(xí)算法和神經(jīng)網(wǎng)絡(luò)中提取超參數(shù)信息.也沒有涉及針對神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)的逆向工程.

      目前已提出的基于側(cè)信道信息逆向工程主要針對特定的神經(jīng)網(wǎng)絡(luò)設(shè)計而進(jìn)行, 例如文獻(xiàn)[15] 通過內(nèi)存信息和時間側(cè)信道泄漏對兩種卷積神經(jīng)網(wǎng)絡(luò)AlexNet 和SqueezeNet 進(jìn)行逆向工程. 并且攻擊需要侵入式的方法來獲得內(nèi)存?zhèn)刃诺佬畔? 比如植入硬件木馬, 這意味著攻擊者需要對系統(tǒng)擁有更高的訪問權(quán)限.文獻(xiàn)[16,19,20] 均為針對DNN 模型進(jìn)行逆向工程, 其中部分工作同樣類似地假設(shè)了攻擊者可以獲得足夠多的系統(tǒng)權(quán)限. 文獻(xiàn)[18] 利用特定的行緩沖區(qū)(line buffer) 結(jié)構(gòu), 對基于FPGA 的卷積神經(jīng)網(wǎng)絡(luò)加速器進(jìn)行了攻擊, 而本文提出的方法可以針對不同的物理設(shè)備上運(yùn)行的網(wǎng)絡(luò)結(jié)構(gòu).

      本文提出了一種通用的依靠時間序列逆向神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的攻擊方式, 能夠針對不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)模型, 同時不需要取得更高的系統(tǒng)權(quán)限. 本文通過實(shí)驗(yàn)確定了現(xiàn)有典型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)具有時間敏感性, 基于該敏感性將模型結(jié)構(gòu)逆向問題, 轉(zhuǎn)換為對已有模型的分類問題.

      5 總結(jié)與展望

      本文以神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)逆向攻擊為研究目標(biāo), 通過計算與實(shí)驗(yàn)驗(yàn)證了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的不同會導(dǎo)致運(yùn)算時不同的時間消耗, 提出了一種通用的基于時間側(cè)信道逆向模型的方法. 該方法的理論基礎(chǔ)在于, 由于神經(jīng)網(wǎng)絡(luò)每層的結(jié)構(gòu)不同導(dǎo)致了運(yùn)算量的不一致, 因此時間消耗也不一致. 實(shí)驗(yàn)挑選Vgg 系列、ResNet系列等神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行實(shí)際的時間采集恢復(fù)模型結(jié)構(gòu)的實(shí)驗(yàn), 使用不同數(shù)量的時間特征序列輸入支持向量機(jī)進(jìn)行訓(xùn)練與預(yù)測, 經(jīng)過參數(shù)調(diào)整, 觀察特征層數(shù)數(shù)量對預(yù)測效果的影響, 所選取的指標(biāo)包括準(zhǔn)確率、精確率、召回率、F1值, 隨著選取的時間特征層數(shù)越多, 分類器預(yù)測的指標(biāo)越高. 當(dāng)使用100 層運(yùn)算層的時間特征序列時, 上述指標(biāo)都達(dá)到了98.9%. 實(shí)驗(yàn)?zāi)軌蛴行^(qū)分出選取的11 種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu), 該攻擊方法的主要優(yōu)勢在于僅需要時間側(cè)信道信息就可以實(shí)現(xiàn)攻擊, 且有較好的預(yù)測效果和通用性.

      本文中提出的攻擊方法適用于各種邊緣計算的場景, 包括安防攝像頭、無人駕駛、智能家居設(shè)備等物聯(lián)網(wǎng)場景. 或者攻擊者合法地獲取了一個具有API 訪問權(quán)限的神經(jīng)網(wǎng)絡(luò)模型, 通過利用API 訪問網(wǎng)絡(luò)獲取側(cè)信道信息, 包括云AI 服務(wù)場景.

      但是本方法仍然存在一些局限性, 需要對已有模型結(jié)構(gòu)進(jìn)行大量建模, 實(shí)驗(yàn)中只挑選了11 種神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)驗(yàn)證攻擊的可行性, 實(shí)際攻擊時選取網(wǎng)絡(luò)結(jié)構(gòu)是一個較為繁瑣的過程. 考慮到現(xiàn)階段各種應(yīng)用部署的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)是有限的, 由于遷移學(xué)習(xí)的火熱和從零訓(xùn)練神經(jīng)網(wǎng)絡(luò)的高成本等問題, 目前的應(yīng)用開發(fā)大多是知名網(wǎng)絡(luò)結(jié)構(gòu)的再訓(xùn)練, 通過常見結(jié)構(gòu)來搜索目標(biāo)結(jié)構(gòu)的攻擊方式仍可視為具有實(shí)際威脅性的逆向方法.

      下一步的工作將集中于:

      (1) 通過其他的側(cè)信道信息結(jié)合現(xiàn)有方法, 更直接地逆向神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)以及其他的隱私信息;

      (2) 給出關(guān)于神經(jīng)網(wǎng)絡(luò)側(cè)信道攻擊的防護(hù)手段.

      猜你喜歡
      網(wǎng)絡(luò)結(jié)構(gòu)攻擊者分類器
      基于微分博弈的追逃問題最優(yōu)策略設(shè)計
      正面迎接批判
      愛你(2018年16期)2018-06-21 03:28:44
      BP-GA光照分類器在車道線識別中的應(yīng)用
      電子測試(2018年1期)2018-04-18 11:52:35
      加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
      結(jié)合模糊(C+P)均值聚類和SP-V-支持向量機(jī)的TSK分類器
      基于互信息的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)
      知識網(wǎng)絡(luò)結(jié)構(gòu)維對于創(chuàng)新績效的作用機(jī)制——遠(yuǎn)程創(chuàng)新搜尋的中介作用
      滬港通下A+ H股票網(wǎng)絡(luò)結(jié)構(gòu)演化的實(shí)證分析
      復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)比對算法研究進(jìn)展
      有限次重復(fù)博弈下的網(wǎng)絡(luò)攻擊行為研究
      阜阳市| 梧州市| 湖南省| 穆棱市| 土默特左旗| 大悟县| 克东县| 古田县| 潼关县| 横峰县| 双柏县| 蓬溪县| 山阳县| 库尔勒市| 建昌县| 瑞丽市| 六枝特区| 同江市| 阜康市| 合作市| 汝阳县| 鹿泉市| 汉源县| 日喀则市| 佛学| 平泉县| 汕头市| 神农架林区| 双江| 安龙县| 什邡市| 怀柔区| 元谋县| 嘉荫县| 乌拉特后旗| 罗源县| 安宁市| 新安县| 康定县| 贵南县| 芦溪县|