范仁昊,龐猛,王明羽,李明釗,張悠慧,李兆麟
(1.清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,北京 100084;2.中山大學(xué)微電子科學(xué)與技術(shù)學(xué)院,廣州 510275;3.無(wú)錫太昊慧芯微電子有限公司,江蘇,無(wú)錫 214063)
近年來(lái),隨著計(jì)算機(jī)算力的快速增長(zhǎng)和數(shù)據(jù)集規(guī)模的擴(kuò)大,DNN已在人臉識(shí)別、自動(dòng)駕駛等智能任務(wù)中取得壓倒性優(yōu)勢(shì)。但是現(xiàn)有工作表明,DNN具有高維稀疏性質(zhì)和不可解釋性,導(dǎo)致DNN很容易受到對(duì)抗樣本攻擊,即通過(guò)添加人眼不可見(jiàn)的微小擾動(dòng),輸入圖片就會(huì)被錯(cuò)誤分類,這給DNN的廣泛使用帶來(lái)了巨大的安全風(fēng)險(xiǎn)。特別對(duì)于自動(dòng)駕駛等涉及人身安全的應(yīng)用領(lǐng)域,微小的錯(cuò)誤都有可能導(dǎo)致嚴(yán)重的后果,因此,研究針對(duì)深度神經(jīng)網(wǎng)絡(luò)攻擊的防御方法至關(guān)重要。
許多研究工作已經(jīng)提出了針對(duì)神經(jīng)網(wǎng)絡(luò)對(duì)抗樣本攻擊的防御方法,它們可以分為兩類:模型防御方法和樣本檢測(cè)方法。模型防御方法通過(guò)增強(qiáng)推理網(wǎng)絡(luò)模型的魯棒性來(lái)增加構(gòu)建對(duì)抗樣本的難度,而在線檢測(cè)方法利用樣本和推理網(wǎng)絡(luò)隱藏層數(shù)據(jù)的信息來(lái)分辨輸入樣本是否屬于對(duì)抗樣本。由于增強(qiáng)推理網(wǎng)絡(luò)的魯棒性通常會(huì)導(dǎo)致推理網(wǎng)絡(luò)的精度下降,樣本檢測(cè)方法是更好的解決方案?,F(xiàn)有的樣本檢測(cè)方法已經(jīng)取得了很高的檢測(cè)精度,例如MagNet、NIC和Feature Squeezing。但是,這些方法僅在算法層面解決了對(duì)抗樣本的在線檢測(cè)問(wèn)題,當(dāng)考慮到DNN模型的實(shí)際運(yùn)行環(huán)境時(shí),已有的樣本檢測(cè)方法將會(huì)面臨兩個(gè)新的挑戰(zhàn)。
首先,為了提高實(shí)際運(yùn)行場(chǎng)景中的能效和吞吐量,DNN通常運(yùn)行在專用的神經(jīng)網(wǎng)絡(luò)加速器上,如Eyeriss和Tangram。這些神經(jīng)網(wǎng)絡(luò)加速器使用特別設(shè)計(jì)的計(jì)算陣列來(lái)加速DNN中常用的算子,如矩陣乘法、卷積和激活函數(shù)。然而,現(xiàn)有的基于支持向量機(jī)和空間平滑降噪的在線防御算法包含大量不規(guī)則的計(jì)算操作,因而很難在神經(jīng)網(wǎng)絡(luò)加速器中得到良好的支持。其次,現(xiàn)有工作更注重優(yōu)先提高檢測(cè)精度,而忽略了對(duì)運(yùn)行時(shí)開(kāi)銷的評(píng)估。一些樣本檢測(cè)方法的計(jì)算量甚至達(dá)到推理網(wǎng)絡(luò)的數(shù)倍,這在實(shí)際應(yīng)用中是無(wú)法接受的。因此,如何選擇或設(shè)計(jì)防御算法以很好地適應(yīng)神經(jīng)網(wǎng)絡(luò)加速器的硬件計(jì)算能力(簡(jiǎn)稱為硬件友好)是實(shí)現(xiàn)檢測(cè)精度和運(yùn)行時(shí)開(kāi)銷權(quán)衡的關(guān)鍵。
針對(duì)上述問(wèn)題,本文提出了一種硬件友好的對(duì)抗樣本在線防御方法,該方法由基于自編碼器(Auto Encoder)的廣譜檢測(cè)算法、適用于瓷片架構(gòu)神經(jīng)網(wǎng)絡(luò)加速器的層調(diào)度方法和相應(yīng)的軟硬件協(xié)同設(shè)計(jì)方法。硬件友好的解決方案可以使神經(jīng)網(wǎng)絡(luò)加速器統(tǒng)一地支持推理網(wǎng)絡(luò)和檢測(cè)網(wǎng)絡(luò),而不需要引入異構(gòu)的功能模塊,從而使加速器設(shè)計(jì)更加實(shí)用、可靠和簡(jiǎn)單。
具體來(lái)說(shuō),本方法包括以下貢獻(xiàn):
(1)基于自編碼器的在線檢測(cè)算法。自編碼器是一種簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),可以從推理網(wǎng)絡(luò)的隱藏層激活值(Activations)中提取自然樣本激活值的流形分布。自編碼器不僅可以在不引入對(duì)抗樣本的條件下擬合自然樣本的流形分布,而且能夠高效地映射到神經(jīng)網(wǎng)絡(luò)加速器,從而使其成為一種廣譜和硬件友好的算法。
(2)一種適用于瓷片架構(gòu)神經(jīng)網(wǎng)絡(luò)加速器的高效層調(diào)度方案,能夠減少數(shù)據(jù)訪問(wèn)開(kāi)銷。本文使用可擴(kuò)展瓷片架構(gòu)的神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)方案Tangram作為基準(zhǔn),提出了一種新的層調(diào)度方法來(lái)減少推斷-檢測(cè)聯(lián)合網(wǎng)絡(luò)的數(shù)據(jù)訪問(wèn)開(kāi)銷。
(3)能夠最小化運(yùn)行時(shí)開(kāi)銷的軟硬件協(xié)同設(shè)計(jì)方案。本文對(duì)一組檢測(cè)器集合使用剪枝-搜索的融合方法,以優(yōu)化檢測(cè)網(wǎng)絡(luò)配置,在不損失檢測(cè)精度的前提下最小化推斷-檢測(cè)聯(lián)合網(wǎng)絡(luò)的運(yùn)行時(shí)開(kāi)銷。
對(duì)抗樣本可以通過(guò)在自然樣本上添加大小有限的特定擾動(dòng)來(lái)生成。形式上,DNN分類器可以描述為函數(shù):→,其中表示輸入空間,表示類別集合。對(duì)于標(biāo)簽為∈的自然樣本∈和閾值,對(duì)抗樣本滿足()≠()∧Δ(,)<,其中Δ(,)是和之間的距離函數(shù)。在現(xiàn)有工作中,距離函數(shù)通常定義為兩個(gè)輸入樣本的0-范數(shù)、2-范數(shù)或∞-范數(shù)。
接下來(lái),簡(jiǎn)要描述一些對(duì)抗樣本攻擊作為本文所提算法的檢測(cè)目標(biāo)。它們的范數(shù)和生成函數(shù)在表1中展示。在表1中,,,和表示原始樣本、對(duì)抗樣本、擾動(dòng)和真實(shí)類別。(·)表示推理網(wǎng)絡(luò),(·,·)表 示 損 失 函 數(shù)???速 梯 度 符 號(hào) 方 法(Fast Gradient Sign Method,F(xiàn)GSM)將的每個(gè)像素向損失函數(shù)的梯度方向移動(dòng)一小段固定距離來(lái)增加損失函數(shù)的值,是一種無(wú)窮范數(shù)攻擊方法,而快速梯度方法(Fast Gradient Method,F(xiàn)GM)是FGSM的二范數(shù)版本?;镜椒ǎ˙asic Iteration Method,BIM)是FGSM或FGM的迭代版本,通過(guò)多步移動(dòng)在原始樣本的-鄰域中找到更好的對(duì)抗樣本。C&W攻擊將對(duì)抗樣本攻擊公式轉(zhuǎn)化為優(yōu)化問(wèn)題,并定義正則化函數(shù)(·)進(jìn)行擾動(dòng)大小和效果的權(quán)衡。
表1 一些對(duì)抗樣本攻擊算法
已有工作從兩個(gè)維度嘗試解決對(duì)抗樣本的在線檢測(cè)問(wèn)題。其一是設(shè)計(jì)能夠識(shí)別對(duì)抗樣本的算法,其二是設(shè)計(jì)能夠同時(shí)支持神經(jīng)網(wǎng)絡(luò)算法和在線檢測(cè)算法運(yùn)行的神經(jīng)網(wǎng)絡(luò)加速器架構(gòu)。
現(xiàn)有的樣本檢測(cè)算法從作用原理上可以分為兩類方法:檢測(cè)器方法和預(yù)測(cè)不一致方法。
檢測(cè)器方法構(gòu)造各種檢測(cè)器,從輸入樣本或推理網(wǎng)絡(luò)隱藏層激活值中提取攻擊特征,從而區(qū)分自然樣本和對(duì)抗樣本。檢測(cè)器通常基于統(tǒng)計(jì)模型或機(jī)器學(xué)習(xí)方法構(gòu)建。例如,Deepfense通過(guò)微調(diào)推理網(wǎng)絡(luò)的參數(shù),使某個(gè)隱藏層的激活值服從混合高斯分布模型,如果樣本離對(duì)應(yīng)類別的分布中心太遠(yuǎn),就會(huì)被認(rèn)為是對(duì)抗樣本。NIC使用單分類支持向量機(jī)在推理網(wǎng)絡(luò)每個(gè)隱藏層處進(jìn)行異常值檢測(cè),并認(rèn)為離群值(Outlier)是對(duì)抗樣本。Deep Neural Rejection在推理網(wǎng)絡(luò)靠后的某個(gè)隱藏層使用多類別支持向量機(jī)進(jìn)行分類,得到每個(gè)類別的置信度,如果所有類別置信度都小于給定閾值,則該樣本被判定為對(duì)抗樣本。
預(yù)測(cè)不一致方法利用降噪器去除對(duì)抗樣本擾動(dòng),然后測(cè)量降噪前后推理網(wǎng)絡(luò)分類結(jié)果之間的差異。Feature Squeezing對(duì)樣本進(jìn)行顏色深度量化和空間平滑降噪,而MagNet將輸入樣本通過(guò)自編碼器實(shí)現(xiàn)降噪。事實(shí)上,所有模型增強(qiáng)方法都可以進(jìn)一步轉(zhuǎn)換為預(yù)測(cè)不一致方法。利用原始模型獲得較為準(zhǔn)確的分類結(jié)果,并運(yùn)行增強(qiáng)后的模型進(jìn)行不一致檢查,就可以實(shí)現(xiàn)樣本檢測(cè)。然而,預(yù)測(cè)不一致的方法需要運(yùn)行多個(gè)模型或運(yùn)行多次模型,從而導(dǎo)致成倍的運(yùn)行時(shí)開(kāi)銷。
由于對(duì)抗樣本檢測(cè)算法大多使用SVM、隨機(jī)森林等傳統(tǒng)機(jī)器學(xué)習(xí)方法,而這些方法很難在專為神經(jīng)網(wǎng)絡(luò)加速而設(shè)計(jì)的加速器架構(gòu)上直接運(yùn)行,所以支持對(duì)抗樣本檢測(cè)的神經(jīng)網(wǎng)絡(luò)加速器架構(gòu)的設(shè)計(jì)重點(diǎn)在于如何支持這些復(fù)雜的檢測(cè)算法。
DNNGuard是一種異構(gòu)的DNN加速器架構(gòu),該架構(gòu)將DNN加速器與CPU內(nèi)核緊耦合到一個(gè)芯片中,用DNN加速器運(yùn)行推理網(wǎng)絡(luò),而用CPU內(nèi)核運(yùn)行NIC、Feature Squeezing等檢測(cè)算法,并設(shè)計(jì)了專用的數(shù)據(jù)通路和緩存來(lái)實(shí)現(xiàn)高效的數(shù)據(jù)傳輸,可以實(shí)現(xiàn)DNN和檢測(cè)算法的協(xié)同執(zhí)行。然而,試驗(yàn)結(jié)果表明,運(yùn)行在CPU上的檢測(cè)算法速度慢于部分推理網(wǎng)絡(luò)(如GoogLeNet和AlexNet),從而會(huì)影響推理網(wǎng)絡(luò)的運(yùn)行速度。這種異構(gòu)的設(shè)計(jì)方案也顯著增大了神經(jīng)網(wǎng)絡(luò)加速器的設(shè)計(jì)復(fù)雜性和系統(tǒng)開(kāi)銷。
因此,本文的設(shè)計(jì)思路是設(shè)計(jì)一種基于自編碼器的檢測(cè)算法。由于自編碼器是一種特殊的神經(jīng)網(wǎng)絡(luò),可以在現(xiàn)有的神經(jīng)網(wǎng)絡(luò)加速器上運(yùn)行,而無(wú)需額外的硬件支持。同時(shí),由推理網(wǎng)絡(luò)和多個(gè)檢測(cè)網(wǎng)絡(luò)耦合在一起形成的多分支復(fù)雜神經(jīng)網(wǎng)絡(luò),其在加速器架構(gòu)上的映射和調(diào)度,也有很大的軟硬件協(xié)同設(shè)計(jì)空間??梢酝ㄟ^(guò)優(yōu)化映射和調(diào)度方案,實(shí)現(xiàn)一個(gè)硬件友好的對(duì)抗樣本在線檢測(cè)方案。
為了實(shí)現(xiàn)高性能和高能效,許多新的神經(jīng)網(wǎng)絡(luò)硬件加速器架構(gòu)被提出,這些架構(gòu)在內(nèi)部數(shù)據(jù)流上有所不同。如今,規(guī)模越來(lái)越大的神經(jīng)網(wǎng)絡(luò)具有更高的計(jì)算和內(nèi)存要求,導(dǎo)致芯片上集成越來(lái)越多的計(jì)算和存儲(chǔ)資源,這也使瓷片架構(gòu)的神經(jīng)網(wǎng)絡(luò)加速器成為高度可擴(kuò)展的解決方案。
由于瓷片架構(gòu)加速器的參數(shù)探索空間很大,尋找與之相適應(yīng)的數(shù)據(jù)流映射方案成為關(guān)鍵。這方面的一項(xiàng)最先進(jìn)的工作是Tangram,它提出了對(duì)層內(nèi)并行性和層間流水線的優(yōu)化,能夠找到片上資源映射的最優(yōu)策略。
在對(duì)抗樣本攻擊的在線防御場(chǎng)景中,推理網(wǎng)絡(luò)和檢測(cè)網(wǎng)絡(luò)的共存帶來(lái)了更多的數(shù)據(jù)依賴,使神經(jīng)網(wǎng)絡(luò)各層組成的有向無(wú)環(huán)圖更加復(fù)雜。在本文提出的在線檢測(cè)算法(圖1)中,多個(gè)檢測(cè)器依賴于推理網(wǎng)絡(luò)中相應(yīng)的隱藏層,而所有檢測(cè)器的輸出作為聯(lián)合分類器的輸入。這增加了上述資源映射方案搜索的難度。盡管Tangram已經(jīng)為一般的神經(jīng)網(wǎng)絡(luò)提出了一個(gè)最優(yōu)的數(shù)據(jù)流方案,但對(duì)于這個(gè)應(yīng)用場(chǎng)景來(lái)說(shuō)它仍然有很大的改進(jìn)空間?;赥angram的工作,本文將提出并評(píng)估一種擁有新的層調(diào)度方法的瓷片架構(gòu)加速器,用于在線防御對(duì)抗樣本攻擊。
2.1.1 動(dòng)機(jī)
首先解釋對(duì)抗樣本的產(chǎn)生機(jī)制。現(xiàn)有工作表明,所有高維空間的自然樣本都位于低維流形中。設(shè)樣本空間的維數(shù)為,流形空間的維數(shù)為,那么有?。理想情況下,穩(wěn)健的分類器應(yīng)該生成垂直于樣本流形分布的分類邊界。然而,Dimpled Manifold Model表明DNN傾向于生成帶“酒窩”的分類邊界,這些邊界緊緊貼合于樣本所在流形的分布,只在樣本點(diǎn)附近產(chǎn)生微小的凸起或凹陷,以確保分類的正確性。因此,將自然樣本沿著垂直于流形的方向移動(dòng)一小步以越過(guò)分類邊界,就能構(gòu)建出對(duì)抗樣本。
相應(yīng)地,這也為對(duì)抗樣本的檢測(cè)提供了一個(gè)新的方向。只要能夠擬合出維流形,就能利用樣本到流形的距離判斷樣本是否屬于對(duì)抗樣本。自編碼器是學(xué)習(xí)流形分布的一種較優(yōu)選擇。自編碼器是由編碼器和解碼器組成的簡(jiǎn)單神經(jīng)網(wǎng)絡(luò),它嘗試用少量隱層神經(jīng)元提取壓縮特征,并在輸出端重現(xiàn)輸入樣本。對(duì)于編碼器函數(shù):R→R和解碼器函數(shù):R→R(?),自編碼器定義如下的損失函數(shù)(也稱為重建損失):
在使用自然樣本進(jìn)行訓(xùn)練后,編碼器可以將維輸入向量減少為維向量(),然后解碼器能夠使用()中的個(gè)分量重新構(gòu)建輸入向量。令v∈R(=1…)為第個(gè)分量為1且所有其他分量為0的向量,則自編碼器會(huì)將維輸入空間投影到由{(),(),…,(v)}為基向量組成的
維子空間,這個(gè)維子空間就對(duì)應(yīng)于數(shù)據(jù)的流形分布。對(duì)分布在流形之外的樣本(即對(duì)抗樣本),經(jīng)過(guò)訓(xùn)練的自編碼器將輸出其在流形上的投影,因此重建損失恰好是樣本與流形之間的歐式距離,于是就可以使用重建損失的大小判斷樣本是否屬于對(duì)抗樣本。
2.1.2 算法設(shè)計(jì)
本文假設(shè)除了輸入樣本本身之外,輸入樣本在推理網(wǎng)絡(luò)某個(gè)隱層的激活值向量也分布在一個(gè)低維的流形上。用f()表示在推理網(wǎng)絡(luò)第層的激活值向量,那么,可以訓(xùn)練一個(gè)自編碼器來(lái)擬合這一層激活向量對(duì)應(yīng)的流形分布M={f()|∈}。對(duì)神經(jīng)網(wǎng)絡(luò)的每個(gè)隱藏層,都可以構(gòu)建相應(yīng)的自編碼器,進(jìn)而判斷樣本的屬性,這種類型的自編碼器稱為單層檢測(cè)器。
此外,當(dāng)同時(shí)考慮多個(gè)隱藏層時(shí),本文認(rèn)為自然樣本在推理網(wǎng)絡(luò)多個(gè)隱藏層的激活向量的拼接向量也應(yīng)該分布在高維向量空間的一個(gè)子空間中。也就是說(shuō),對(duì)于某個(gè)層編號(hào)集合{,,…,i},拼接向量(f(),f(),...,f())位于高維聯(lián)合空間R×R×…×R的低維子空間中。然而,對(duì)抗樣本對(duì)應(yīng)的拼接向量分布的區(qū)域位于該子空間之外。這是因?yàn)?,?duì)于自然樣本,所有隱層的激活值在它們自己的流形分布中屬于同一類別(即該樣本的真實(shí)類別)的區(qū)域;但對(duì)于對(duì)抗樣本,不同層的激活值對(duì)應(yīng)的流行分布的類別不同。具體來(lái)說(shuō),它們?cè)谇皫讓佑休^大概率屬于真實(shí)標(biāo)簽,而在后幾層有很高概率屬于攻擊后的標(biāo)簽。因此,自編碼器也可用于逼近自然樣本多個(gè)隱藏層的聯(lián)合子空間并據(jù)此檢測(cè)對(duì)抗樣本。為了方便起見(jiàn),本文只采用兩個(gè)相鄰層的子空間構(gòu)建跨層檢測(cè)器。
算法概述如圖1所示。在圖中,左側(cè)列出了一個(gè)ResNet18網(wǎng)絡(luò),每個(gè)基本塊由兩個(gè)64通道的3×3卷積層(Conv)組成。在每個(gè)基本塊的輸出端有單層檢測(cè)器和跨層檢測(cè)器。算法分為兩個(gè)階段:訓(xùn)練階段和推理階段。在訓(xùn)練階段,使用自然訓(xùn)練樣本的激活值來(lái)訓(xùn)練每個(gè)檢測(cè)器。而在推理階段,當(dāng)新樣本通過(guò)推理網(wǎng)絡(luò)時(shí),每個(gè)檢測(cè)器都會(huì)計(jì)算出重建損失,即樣本到流形的距離。之后,聯(lián)合分類器(同樣也由一個(gè)自編碼器組成)收集所有檢測(cè)器輸出的重建損失并做出聯(lián)合決策以獲得最終的判定結(jié)果。
圖1 檢測(cè)算法示意圖
2.2.1 動(dòng)機(jī)
檢測(cè)器與推理網(wǎng)絡(luò)耦合后,整個(gè)網(wǎng)絡(luò)的規(guī)模將會(huì)變大,隨著推理網(wǎng)絡(luò)模型規(guī)模的增大,這一點(diǎn)會(huì)越來(lái)越明顯。本文使用瓷片架構(gòu)的神經(jīng)網(wǎng)絡(luò)加速器作為基本架構(gòu),因?yàn)樗哂辛己玫目蓴U(kuò)展性。如圖2所示,瓷片架構(gòu)加速器由一個(gè)二維的運(yùn)算陣列(Array)組成,其中每個(gè)陣列包含一個(gè)小型的二維處理引擎(Processing Unit,PE)和一個(gè)局部SRAM緩沖區(qū)。所有的陣列都通過(guò)片上網(wǎng)絡(luò)(Network on Chip,NoC)連接。
圖2 瓷片架構(gòu)示意圖
為了降低能耗和延遲,一項(xiàng)最新研究(Tangram)提出的層間/層內(nèi)數(shù)據(jù)流映射方案用于獲得細(xì)粒度的數(shù)據(jù)并行。
為了支持層間流水線,大型神經(jīng)網(wǎng)絡(luò)以層為單位劃分為段(Segment)。瓷片架構(gòu)同一時(shí)間只運(yùn)行一個(gè)段。圖3展示了映射和計(jì)算的過(guò)程:神經(jīng)網(wǎng)絡(luò)各層被劃分為段序列,,,,然后依次映射到硬件上執(zhí)行。在此過(guò)程中,DRAM用于存儲(chǔ)段之間的網(wǎng)絡(luò)權(quán)重和臨時(shí)數(shù)據(jù)。
當(dāng)網(wǎng)絡(luò)拓?fù)渥兊脧?fù)雜時(shí),在滿足數(shù)據(jù)依賴的情況下尋找最優(yōu)的網(wǎng)絡(luò)層調(diào)度和劃分方案將不再是一個(gè)簡(jiǎn)單的遍歷搜索任務(wù)。高效的調(diào)度可以大大減少不同存儲(chǔ)層次之間的中間數(shù)據(jù)傳輸,從而有效降低能耗,提高性能。Tangram中提出的層調(diào)度方案只考慮了數(shù)據(jù)依賴關(guān)系,不能保證高效地減少段之間的數(shù)據(jù)傳輸。例如,在圖3中,和共享的輸出,卻分為了兩個(gè)段,導(dǎo)致數(shù)據(jù)傳輸了兩次。此外,在聯(lián)合網(wǎng)絡(luò)中,具有多個(gè)后繼的層非常常見(jiàn)。因此,本文針對(duì)這種情況提出了一種更好的層調(diào)度方法。
圖3 神經(jīng)網(wǎng)絡(luò)的映射過(guò)程
2.2.2 層調(diào)度方案
由于神經(jīng)網(wǎng)絡(luò)是以段為單位依次映射到硬件,段間的數(shù)據(jù)需要使用DRAM存儲(chǔ),帶來(lái)巨大的性能損失和能耗。為了更有效地調(diào)度推理-檢測(cè)聯(lián)合網(wǎng)絡(luò),本文的想法是找到一個(gè)最優(yōu)的層調(diào)度拓?fù)渑判颍ㄟ^(guò)該拓?fù)湫蛄锌梢赃M(jìn)一步得到段的劃分,以最小化對(duì)DRAM的訪問(wèn)。
算法1神經(jīng)網(wǎng)絡(luò)的映射過(guò)程
本文提出了一種以中間數(shù)據(jù)傳輸量最小化為目標(biāo)的拓?fù)渑判蜇澬姆椒?,可以保證神經(jīng)網(wǎng)絡(luò)的各層按照某種拓?fù)漤樞蛴行У貏澐譃槎?,并最大限度地減少段之間的數(shù)據(jù)傳輸?;舅枷胧牵海?)將盡可能多的具有共同數(shù)據(jù)依賴的層組合在一起(如圖3中的紅色框),從而減少公共數(shù)據(jù)的傳輸量;(2)將具有較少中間數(shù)據(jù)傳輸量的層組合在一起,以便在一個(gè)段中包含更多層,從而減少段之間的數(shù)據(jù)傳輸。網(wǎng)絡(luò)被建模為圖(,),其中頂點(diǎn)集表示網(wǎng)絡(luò)中的層,邊集表示層之間的數(shù)據(jù)依賴關(guān)系。算法1展示了本文的優(yōu)化方法,其中一個(gè)頂點(diǎn)的Totalsize表示該節(jié)點(diǎn)計(jì)算所需的所有數(shù)據(jù)量,一條邊的FmapSize表示要在層之間傳輸?shù)奶卣鲌D的大小。
在獲得網(wǎng)絡(luò)中各層的拓?fù)湫蛄泻?,通過(guò)動(dòng)態(tài)規(guī)劃算法在拓?fù)湫蛄猩蠈ふ易顑?yōu)的段劃分,使整個(gè)網(wǎng)絡(luò)以最短的執(zhí)行時(shí)間或最低的能耗運(yùn)行。
根據(jù)第3.1節(jié)中描述的算法,可以在推理網(wǎng)絡(luò)的每一層都引入單層檢測(cè)器、在每相鄰兩層都引入跨層檢測(cè)器。然而,引入過(guò)多的檢測(cè)器會(huì)帶來(lái)巨大的開(kāi)銷,而且并不是所有的檢測(cè)器都具有良好的流形表示能力。因此,有必要選擇一個(gè)高效的檢測(cè)器集合來(lái)減少運(yùn)行時(shí)開(kāi)銷,同時(shí)保持檢測(cè)成功率,從而實(shí)現(xiàn)軟硬件協(xié)同設(shè)計(jì)。
為了找到最佳的協(xié)同設(shè)計(jì)方案,應(yīng)該評(píng)估每種檢測(cè)器配置方案的運(yùn)行時(shí)開(kāi)銷和檢測(cè)精度。在這一步,本文引入一些對(duì)抗樣本作為驗(yàn)證集來(lái)評(píng)估檢測(cè)精度,使用多種對(duì)抗樣本攻擊方法生成對(duì)抗樣本,混合起來(lái)形成驗(yàn)證集,以避免對(duì)特定攻擊方法的傾向性,保持算法的廣譜性。對(duì)于運(yùn)行時(shí)開(kāi)銷的評(píng)估,相比簡(jiǎn)單地使用模型計(jì)算量或存儲(chǔ)量作為指標(biāo),更好的方法是衡量實(shí)際模型在實(shí)際的神經(jīng)網(wǎng)絡(luò)加速器架構(gòu)中的性能指標(biāo)。本文使用第3.2節(jié)中設(shè)計(jì)的瓷片架構(gòu)評(píng)估模型運(yùn)行的能耗,但這給搜索最佳方案帶來(lái)了額外的困難。具體來(lái)說(shuō),由于神經(jīng)網(wǎng)絡(luò)在瓷片架構(gòu)加速器上的調(diào)度和劃分是一個(gè)復(fù)雜且離散的問(wèn)題,添加或刪除某個(gè)檢測(cè)器可能會(huì)導(dǎo)致完全不同的調(diào)度劃分方案,因此,傳統(tǒng)的基于啟發(fā)式的局部搜索方法很難獲得良好的結(jié)果。
因此,本文對(duì)檢測(cè)器集合的所有子集進(jìn)行窮盡搜索以找到最佳設(shè)計(jì)。為了避免子集數(shù)量隨檢測(cè)器數(shù)目的增加而指數(shù)增長(zhǎng),本文首先將對(duì)自然樣本和對(duì)抗樣本區(qū)分度不高的檢測(cè)器進(jìn)行剪枝。之后,進(jìn)行全局搜索并選擇具有高精度和低開(kāi)銷的最佳配置。
本文在3個(gè)神經(jīng)網(wǎng)絡(luò)模型上進(jìn)行試驗(yàn),包括一個(gè)4層的簡(jiǎn)單卷積神經(jīng)網(wǎng)絡(luò)(稱為simpleCNN)、ResNet18和ResNet50。它們分別使用MNIST、GTSRB和CIFAR10作為數(shù)據(jù)集進(jìn)行訓(xùn)練。本文選擇了4種攻擊方法來(lái)生成對(duì)抗樣本,即前面提到的FGSM、FGM、BIM和C&W攻擊。神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率和4種攻擊方法的攻擊成功率見(jiàn)表2。
表2 模型分類準(zhǔn)確率和攻擊算法的攻擊成功率
關(guān)于防御的配置,simpleCNN中的每個(gè)卷積層和線性層、ResNet18和ResNet50中的每個(gè)基本塊的輸出向量都被用來(lái)訓(xùn)練檢測(cè)器,因此3個(gè)推理網(wǎng)絡(luò)分別有7、19和33個(gè)檢測(cè)器。
本文還實(shí)現(xiàn)了NIC,這是一種最先進(jìn)的對(duì)抗樣本檢測(cè)方法,并將其與本文的方法在檢測(cè)成功率和運(yùn)行時(shí)開(kāi)銷方面進(jìn)行比較。實(shí)驗(yàn)用服務(wù)器配置為Xeon E5-2680 2.40GHz 56核處理器、500 GB RAM和2個(gè)Tesla P100 GPU。
本文對(duì)包含16×16個(gè)陣列的瓷片架構(gòu)進(jìn)行建模。每個(gè)瓷片都是一個(gè)Eyeriss NN引擎,其中包含一個(gè)8×8 PE陣列和一個(gè)32 kB的私有SRAM緩沖區(qū)。假設(shè)采用28 nm技術(shù),引擎以500 MHz運(yùn)行。PE面積和功率從文獻(xiàn)中縮放產(chǎn)生,假設(shè)每個(gè)16位乘加運(yùn)算單元的面積和單次操作能耗為0.004 mm和1 pJ。NoC功率估計(jì)為每跳0.61 pJ/bit。
Tangram中的搜索工具可以支持瓷片架構(gòu)加速器的數(shù)據(jù)流方案。它以神經(jīng)網(wǎng)絡(luò)拓?fù)浜陀布渲米鳛檩斎?,并輸出運(yùn)行時(shí)間和能耗。本文修改這個(gè)搜索工具來(lái)實(shí)現(xiàn)本文的設(shè)計(jì)方案,評(píng)估本文提出的層調(diào)度方法。
本文的檢測(cè)器只使用自然樣本進(jìn)行訓(xùn)練。這些檢測(cè)器估計(jì)重建損失,并將其發(fā)送到聯(lián)合分類器中進(jìn)行最終決策。用戶需要指定一個(gè)閾值用來(lái)進(jìn)行分類。當(dāng)閾值從零移動(dòng)到一個(gè)大數(shù)時(shí),假陽(yáng)性率(FPR,所有自然樣本中被錯(cuò)誤分類為對(duì)抗樣本的比例)和真陽(yáng)性率(TPR,所有對(duì)抗樣本被正確分類為對(duì)抗樣本的比率)將從0變?yōu)?。TPR與FPR折線圖的曲線下面積(Area Under Curve,AUC)可以用來(lái)衡量檢測(cè)成功率。具體來(lái)說(shuō),AUC是一個(gè)介于0和1之間的值,AUC越大意味著檢測(cè)準(zhǔn)確率越高。表3中列出了不同攻擊方法和檢測(cè)算法的AUC分?jǐn)?shù)。在該表中,“全模型”表示在每個(gè)卷積層(或基本塊)后插入檢測(cè)器的模型,“協(xié)同設(shè)計(jì)模型”表示剪枝和搜索后的協(xié)同設(shè)計(jì)模型。協(xié)同設(shè)計(jì)模型的細(xì)節(jié)將在后文進(jìn)行描述。
表3 本文方法與NIC方法的AUC分?jǐn)?shù)比較
表3的結(jié)果表明,盡管NIC在BIM攻擊中的表現(xiàn)略好一些,但在12個(gè)樣例中有9個(gè)樣例本文方法的表現(xiàn)優(yōu)于NIC,這表明本文方法具有和NIC相當(dāng)?shù)臋z測(cè)精度。本文的方法通常在較大的網(wǎng)絡(luò)中具有更好的檢測(cè)精度,這是因?yàn)榭梢约筛嗟臋z測(cè)器進(jìn)行聯(lián)合判斷。此外,除了受到BIM攻擊的ResNet50網(wǎng)絡(luò)外,協(xié)同設(shè)計(jì)模型的AUC分?jǐn)?shù)都高于或幾乎等于全模型,表明協(xié)同設(shè)計(jì)不會(huì)導(dǎo)致準(zhǔn)確率的下降。
在相同的硬件資源條件下,本文比較了兩種調(diào)度方式。本文評(píng)估了運(yùn)行一批(32個(gè))樣本的能耗和運(yùn)行時(shí)間。圖4顯示了兩種調(diào)度方法下對(duì)DRAM和SRAM的數(shù)據(jù)訪問(wèn)量。本文提出的算法將DRAM訪問(wèn)量減少了43%以上,而作為代價(jià),SRAM訪問(wèn)有所增加。這是因?yàn)楸疚牡乃惴▽⒏嗟臄?shù)據(jù)依賴劃分在同一個(gè)段內(nèi),這意味著段之間的數(shù)據(jù)傳輸被轉(zhuǎn)移到了段內(nèi),與此對(duì)應(yīng)的,DRAM上的數(shù)據(jù)移動(dòng)就被轉(zhuǎn)化成了SRAM上的數(shù)據(jù)移動(dòng)。評(píng)估還發(fā)現(xiàn)70%的系統(tǒng)能耗是由內(nèi)存訪問(wèn)引起的,因此,通過(guò)降低DRAM訪問(wèn)可以進(jìn)一步減小能耗。
圖4 兩種調(diào)度方式的內(nèi)存訪問(wèn)量
表4顯示了3個(gè)推理網(wǎng)絡(luò)與所有檢測(cè)器聯(lián)合網(wǎng)絡(luò)的能耗和性能。與Tangram中的方法相比,本文提出的方法在運(yùn)行所有3個(gè)模型時(shí)都可以節(jié)省超過(guò)28%的能耗并減少超過(guò)41%的運(yùn)行時(shí)間。能耗和運(yùn)行時(shí)間的節(jié)省主要來(lái)自于本文所提調(diào)度方法對(duì)DRAM訪問(wèn)量的優(yōu)化。
表4 兩種調(diào)度方式的運(yùn)行開(kāi)銷
本文以ResNet18為例來(lái)說(shuō)明協(xié)同設(shè)計(jì)過(guò)程。首先,使用一個(gè)驗(yàn)證集來(lái)評(píng)估每個(gè)檢測(cè)器的檢測(cè)成功率,保留成功率最高的8個(gè)檢測(cè)器,而舍棄其他檢測(cè)器。然后遍歷這些檢測(cè)器的所有組合(總共255個(gè)方案)并評(píng)估準(zhǔn)確率和開(kāi)銷。圖5是一個(gè)散點(diǎn)圖,其中每一個(gè)點(diǎn)表明每個(gè)檢測(cè)器組合的AUC分?jǐn)?shù)和能耗。左上區(qū)域的點(diǎn)具有高AUC分?jǐn)?shù)和低能耗,是較優(yōu)的選擇。因此,本文選擇圖中的紅點(diǎn)作為協(xié)同設(shè)計(jì)方案。它包含一個(gè)單層檢測(cè)器和兩個(gè)跨層檢測(cè)器。同樣,可以通過(guò)分別部署1個(gè)和3個(gè)檢測(cè)器來(lái)找到simpleCNN和ResNet50的協(xié)同設(shè)計(jì)模型。
圖5 ResNet18模型不同檢測(cè)器組合的AUC分?jǐn)?shù)-能耗散點(diǎn)圖
表5展示了推理網(wǎng)絡(luò)在無(wú)檢測(cè)模型、使用全模型和協(xié)同設(shè)計(jì)模型的情況下的運(yùn)行時(shí)開(kāi)銷。結(jié)果表明,相比原始的推理網(wǎng)絡(luò),全模型在每個(gè)卷積層(或基本塊)引入一個(gè)檢測(cè)器,造成的能耗和運(yùn)行時(shí)間的開(kāi)銷是非常大的。這是由于推理網(wǎng)絡(luò)和檢測(cè)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)差異引起的。執(zhí)行圖像分類任務(wù)的深度神經(jīng)網(wǎng)絡(luò)中需要很多卷積層來(lái)實(shí)現(xiàn)局部特征的提取,卷積層的參數(shù)數(shù)目相對(duì)較少,而計(jì)算量偏大;執(zhí)行在線檢測(cè)任務(wù)的自編碼器網(wǎng)絡(luò)主要由全連接層組成,參數(shù)數(shù)目很多,而計(jì)算量偏小。對(duì)于神經(jīng)網(wǎng)絡(luò)加速器而言,主要的能耗和時(shí)間開(kāi)銷在訪存而非計(jì)算,因此,引入檢測(cè)器會(huì)顯著增大整個(gè)模型的能耗和時(shí)間開(kāi)銷。這正是本文提出軟硬件協(xié)同設(shè)計(jì)的剪枝方案的初衷。
表5 不同檢測(cè)配置下聯(lián)合網(wǎng)絡(luò)的運(yùn)行開(kāi)銷
比較協(xié)同設(shè)計(jì)模型和全模型,可以發(fā)現(xiàn),軟硬件協(xié)同設(shè)計(jì)的作用是明顯的,由于對(duì)檢測(cè)器的數(shù)目和位置進(jìn)行了篩選,去除了檢測(cè)能力較差的檢測(cè)器,所以獲得了較大的性能提升。協(xié)同設(shè)計(jì)模型與全模型相比,能耗降低了58%以上,執(zhí)行時(shí)間減少了54%以上。
深度神經(jīng)網(wǎng)絡(luò)已廣泛用于自動(dòng)駕駛等,本文針對(duì)深度神經(jīng)網(wǎng)絡(luò)攻擊的防御,提出了一種新型的硬件友好的在線防御方案。本文的設(shè)計(jì)方案采用多個(gè)自編碼器來(lái)檢測(cè)推理網(wǎng)絡(luò)的每一層,然后使用本文提出的新型層調(diào)度方法在瓷片架構(gòu)加速器中運(yùn)行推理-檢測(cè)聯(lián)合網(wǎng)絡(luò)。最后,本文設(shè)計(jì)了一種軟硬件協(xié)同設(shè)計(jì)方法,以在檢測(cè)成功率和運(yùn)行時(shí)開(kāi)銷之間取得平衡。
試驗(yàn)表明,本文提出的防御方案不僅達(dá)到了相當(dāng)?shù)臋z測(cè)成功率,而且通過(guò)最小化DRAM訪問(wèn)量,使能耗降低了28%,運(yùn)行時(shí)間降低了41%。軟硬件協(xié)同設(shè)計(jì)在不降低檢測(cè)成功率的前提下,進(jìn)一步減少了58%和54%的能耗和時(shí)間。