亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        神經(jīng)網(wǎng)絡驗證和測試技術(shù)研究綜述

        2021-11-26 07:21:36董超群司品超劉錢超
        計算機工程與應用 2021年22期
        關(guān)鍵詞:魯棒性神經(jīng)元神經(jīng)網(wǎng)絡

        李 舵,董超群,司品超,何 曼,劉錢超

        1.戰(zhàn)略支援部隊信息工程大學,鄭州450001

        2.江南計算技術(shù)研究所 軟件測評中心,江蘇 無錫214083

        隨著大數(shù)據(jù)的產(chǎn)生和算力的提升,以神經(jīng)網(wǎng)絡(Neural Network,NN)為代表的人工智能技術(shù)發(fā)展迅猛,并在圖像處理、文本分析、語音識別、自動駕駛等領(lǐng)域取得了突破性的進展。將人工智能技術(shù)集成到軟件中,或是開發(fā)基于人工智能技術(shù)的軟件應用正逐漸成為潮流和趨勢。人工智能軟件一般開發(fā)樣式為:首先根據(jù)任務構(gòu)建模型,然后利用大量訓練數(shù)據(jù)訓練模型,接著在測試數(shù)據(jù)集上檢驗模型的性能,最后投入使用。這類軟件和傳統(tǒng)軟件相比,在實現(xiàn)機理和編碼樣式上有著本質(zhì)的不同,導致如何有效保證人工智能軟件的質(zhì)量成為一個難題。此外,人工智能技術(shù)在應用過程中也暴露了一些問題,引發(fā)人們對人工智能技術(shù)安全性、可靠性和可解釋性等方面的擔憂。

        神經(jīng)網(wǎng)絡是人工智能領(lǐng)域的重要研究方向。神經(jīng)網(wǎng)絡是一種通過模仿動物神經(jīng)網(wǎng)絡特征進行信息處理的算法數(shù)學模型,主要由輸入層、隱藏層、輸出層構(gòu)成,每層由若干個神經(jīng)元組成,上一層的神經(jīng)元通過權(quán)重與下一層的神經(jīng)元相連,整個網(wǎng)絡通過數(shù)據(jù)集訓練,不斷更新權(quán)重等參數(shù),最終在一些具體任務上獲得較好的性能。典型的神經(jīng)網(wǎng)絡有卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)和循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Networks,RNN),其中CNN 廣泛應用在圖像處理領(lǐng)域,而RNN 因其能夠較好地處理時間序列上的數(shù)據(jù)而廣泛應用于語音、文本處理等領(lǐng)域。近些年來,為了獲得更好的性能,神經(jīng)網(wǎng)絡朝著深度神經(jīng)網(wǎng)絡(Deep Neural Networks,DNN)和深度學習(Deep Learning,DL)的方向發(fā)展。然而,隨著神經(jīng)網(wǎng)絡層數(shù)的增加,模型愈加復雜,可解釋性越差,神經(jīng)網(wǎng)絡模型越接近于“黑盒”,其潛在的威脅和隱患就越難以發(fā)現(xiàn)。隨著神經(jīng)網(wǎng)絡技術(shù)部署在自動駕駛系統(tǒng)、疾病預防與檢測系統(tǒng)、惡意軟件檢測系統(tǒng)等安全攸關(guān)領(lǐng)域,對神經(jīng)網(wǎng)絡技術(shù)進行全面的檢驗,及時發(fā)現(xiàn)神經(jīng)網(wǎng)絡技術(shù)存在的缺陷和隱患,進而保證神經(jīng)網(wǎng)絡技術(shù)應用的質(zhì)量就顯得更為重要。目前,針對神經(jīng)網(wǎng)絡的驗證和測試的研究越來越多,這些研究圍繞如何有效驗證神經(jīng)網(wǎng)絡屬性、如何有效測試和發(fā)現(xiàn)神經(jīng)網(wǎng)絡存在的缺陷等問題進行積極探索,并取得了一定的進展。

        已有一些研究人員對機器學習或神經(jīng)網(wǎng)絡相關(guān)領(lǐng)域的測試評估工作進行了總結(jié)。文獻[1-3]主要分析了機器學習系統(tǒng)測試現(xiàn)狀和面臨的風險挑戰(zhàn)。Huang 等人[4]從評估深度神經(jīng)網(wǎng)絡系統(tǒng)可信性、安全性出發(fā),分別從驗證、測試、可對抗攻擊和防御、解釋性技術(shù)等方面介紹了針對DNN 系統(tǒng)驗證測試的進展。王贊等人[5]圍繞測試度量指標、測試輸入生成、測試預言、測試應用和評測數(shù)據(jù)集五方面對深度神經(jīng)網(wǎng)絡測試近年來的研究成果進行了系統(tǒng)而深入的梳理,并對神經(jīng)網(wǎng)絡測試未來的發(fā)展進行了展望。此外,曾春燕等人[6]從自解釋模型、特定模型解釋、不可知模型解釋和因果可解釋性四方面對DL模型可解釋性方法進行了總結(jié)分析。

        圍繞神經(jīng)網(wǎng)絡的驗證和測試技術(shù),對已有的研究成果進行細致的梳理總結(jié),從驗證技術(shù)、基于覆蓋的測試技術(shù)、基于對抗樣本的測試技術(shù)、融合傳統(tǒng)測試技術(shù)等多個角度剖析神經(jīng)網(wǎng)絡驗證和測試技術(shù)研究現(xiàn)狀,為相關(guān)領(lǐng)域研究人員提供參考。文章組織結(jié)構(gòu)如圖1所示。本文與上述相關(guān)綜述文獻有相似之處,但有以下三點不同:(1)側(cè)重從技術(shù)角度出發(fā),分析當前神經(jīng)網(wǎng)絡驗證和測試的主要技術(shù)。(2)對現(xiàn)有技術(shù)進行了較為詳細的歸納和分類,條理清晰。(3)既指出已有研究成果的貢獻,又指出當前工作存在的不足,從正反兩方面闡述神經(jīng)網(wǎng)絡測試的研究進展,供讀者思考和參考。

        圖1 文章組織結(jié)構(gòu)Fig.1 Organization structure of this paper

        1 神經(jīng)網(wǎng)絡驗證和測試

        本章對神經(jīng)網(wǎng)絡驗證和測試中的一些基本概念進行介紹。

        1.1 神經(jīng)網(wǎng)絡

        一個神經(jīng)網(wǎng)絡可以表示為一個元組N=(L,C,Φ)。其中,L={Lk|k∈{1,2,…,K}} 代表一系列網(wǎng)絡層,C=L×L代表層與層之間的連接,Φ={Φk|k∈{2,3,…,K}}代表一系列函數(shù)。對于一個神經(jīng)網(wǎng)絡N,L1代表輸入層,LK代表輸出層,其余代表隱藏層。網(wǎng)絡層Lk包含Nk個神經(jīng)元,Lk層第m個神經(jīng)元可表示為nk,m,值為uk,m。每一個神經(jīng)元前一個網(wǎng)絡層中的每個神經(jīng)元相連,并存在如下關(guān)系:

        其中,wk-1,i,m代表第k-1 層中的神經(jīng)元和nk,m的連接權(quán)重,bk,m為偏置。由于存在非線性激活函數(shù),比如ReLU,則神經(jīng)元激活值vk,m計算過程為:

        如果將每一層計算過程用Φk表示,則對于輸入x,整個神經(jīng)網(wǎng)絡從輸入到輸出可表示為f的函數(shù):

        將神經(jīng)網(wǎng)絡符號化表示,可以是函數(shù)表示或編碼表示,在此基礎(chǔ)上進行推理和證明,一般是進行神經(jīng)網(wǎng)絡驗證的必要準備。

        1.2 神經(jīng)網(wǎng)絡驗證技術(shù)和測試技術(shù)

        神經(jīng)網(wǎng)絡驗證技術(shù)是通過一定手段確定一個屬性(例如,給定輸入的局部魯棒性)是否在神經(jīng)網(wǎng)絡上成立,如果成立,則能夠提供嚴格的數(shù)學證明,如果不成立,則要提供證明或是提出反例。很多場景下,由于神經(jīng)網(wǎng)絡的高度復雜性,推導和準確計算出給定輸入的輸出值難以實現(xiàn),這時候為了簡化計算,一般會引入一個誤差,從而確保計算過程能順利進行,前提條件是保證誤差最終能夠收斂。驗證問題通常具有很高的復雜度,神經(jīng)網(wǎng)絡的高維度和非線性,使得神經(jīng)網(wǎng)絡的驗證是NP難的[7]。神經(jīng)網(wǎng)絡驗證一般在小規(guī)模網(wǎng)絡上進行,對大規(guī)模網(wǎng)絡進行驗證會面臨計算復雜度高、時間開銷大的問題。

        神經(jīng)網(wǎng)絡測試技術(shù)是通過一定方式生成測試用例,通過觀察輸出結(jié)果與預期結(jié)果之間的關(guān)系來檢查和發(fā)現(xiàn)神經(jīng)網(wǎng)絡的缺陷,從而對神經(jīng)網(wǎng)絡某方面的屬性或能力做出判斷。相比驗證技術(shù),測試技術(shù)不需要提供嚴格的數(shù)學證明,計算成本相對較低,但在結(jié)果的可信度上不如驗證技術(shù)。測試技術(shù)一般需要以一定的測試指標為指導,傳統(tǒng)軟件測試通常以覆蓋率為指標指導測試用例生成,如代碼覆蓋、路徑覆蓋、MC/DC 等。由于神經(jīng)網(wǎng)絡沒有明確的控制流和數(shù)據(jù)流,這些指標在神經(jīng)網(wǎng)絡測試中并不適用。因此,神經(jīng)網(wǎng)絡測試技術(shù)主要根據(jù)神經(jīng)網(wǎng)絡的特點,圍繞指導測試用例生成、檢測神經(jīng)網(wǎng)絡潛在缺陷、解決測試預言等問題展開研究。

        1.3 神經(jīng)網(wǎng)絡驗證和測試目的和方法

        神經(jīng)網(wǎng)絡的驗證和測試主要為了發(fā)現(xiàn)神經(jīng)網(wǎng)絡潛在威脅或缺陷,客觀評價神經(jīng)網(wǎng)絡的一些屬性,從而更好地保證神經(jīng)網(wǎng)絡技術(shù)應用的質(zhì)量。

        魯棒性是神經(jīng)網(wǎng)絡的一個重要屬性,神經(jīng)網(wǎng)絡的魯棒性是指神經(jīng)網(wǎng)絡在各種輸入攝動下表現(xiàn)出的穩(wěn)定程度。神經(jīng)網(wǎng)絡魯棒性可以分為全局魯棒性和局部魯棒性,局部魯棒性描述刻畫了神經(jīng)網(wǎng)絡在一定輸入范圍、區(qū)域內(nèi)的魯棒性,全局魯棒性則要考慮在所有輸入下的魯棒性。安全性是神經(jīng)網(wǎng)絡另外一個重要屬性,安全性從神經(jīng)網(wǎng)絡自身脆弱性和易受的外部攻擊出發(fā),衡量神經(jīng)網(wǎng)絡的抵抗內(nèi)部和外部風險的能力。在某種程度上,安全性和魯棒性有相似之處。對抗樣本的存在使得神經(jīng)網(wǎng)絡安全性面臨挑戰(zhàn),對抗樣本是指通過蓄意構(gòu)造細微的擾動,生成新的樣本,來欺騙神經(jīng)網(wǎng)絡,對抗樣本問題廣泛存在于各種神經(jīng)網(wǎng)絡中,成為威脅神經(jīng)網(wǎng)絡技術(shù)應用的一個隱患。

        在驗證方面,Lipschitz屬性常被用來衡量神經(jīng)網(wǎng)絡魯棒性。Lipschitz的定義為:給定神經(jīng)網(wǎng)絡及其函數(shù)f,輸入?yún)^(qū)域η?[0,1]n,對任意x1,x2∈η,在P范數(shù)下,如果存在一個常量L,使得恒成立,則稱L是Lipschitz 常量。Lipschitz 連續(xù)性一般用于刻畫神經(jīng)網(wǎng)絡全局魯棒性。此外,一些研究則從神經(jīng)網(wǎng)絡輸出可達性、區(qū)間屬性等角度對神經(jīng)網(wǎng)絡屬性進行分析和驗證。在測試方面,針對如何生成有效的測試用例,一些學者從覆蓋指標出發(fā),提出了適用于神經(jīng)網(wǎng)絡的覆蓋指標;或者從對抗樣本角度入手,通過生成對抗樣本檢驗神經(jīng)網(wǎng)絡的魯棒性和安全性;還有一些學者將傳統(tǒng)測試技術(shù)應用到神經(jīng)網(wǎng)絡測試中,用于解決測試預言問題、檢測代碼缺陷等。

        2 驗證技術(shù)

        針對神經(jīng)網(wǎng)絡樣本驗證技術(shù)的分類,Huang 等人[4]將DNN驗證技術(shù)分為約束求解、基于搜索的方法、全局優(yōu)化和過度逼近四種方法,具有一定合理性,但是不夠全面,分類界限較為模糊。從是否能夠準確計算結(jié)果出發(fā),將驗證技術(shù)分為精確求解和近似求解兩大類,每一類又進一步細化,對目前驗證技術(shù)進行詳細介紹。

        2.1 精確求解

        精確求解,就是對神經(jīng)網(wǎng)絡的屬性進行全面、準確的驗證,能夠得出準確的結(jié)果。神經(jīng)網(wǎng)絡驗證問題是一個NP 完全問題,因此精確求解會面臨組合爆炸的問題??紤]到約束求解器在求解大規(guī)模組合問題上的成功應用,一些學者嘗試將神經(jīng)網(wǎng)絡的驗證問題轉(zhuǎn)換為約束問題,然后通過約束求解器進行求解,并且取得了不錯的效果。神經(jīng)網(wǎng)絡驗證常用的求解器有可滿足性模理論(Satisfiability Modulo Theories,SMT)求解器、可滿足性(Satisfiability,SAT)求解器、混合整數(shù)線性規(guī)劃(Mixed Integer Linear Programming,MILP)求解器等。

        2.1.1 SMT

        Huang 等人[8]基于SMT 求解器提出了用于驗證前饋神經(jīng)網(wǎng)絡(Feedforward Neural Network,F(xiàn)NN)安全性的自動化框架DLV(Deep Learning Verification)。該框架能夠保證神經(jīng)網(wǎng)絡如果存在錯誤分類的行為,那么一定能夠被發(fā)現(xiàn)。該方法將輸入視為空間中一點,并指定鄰域作為搜索范圍,通過定義一系列的圖像操作,來對輸入圖像的鄰域進行全面的搜索。在此過程中,利用SMT 求解器來實現(xiàn)神經(jīng)網(wǎng)絡進行逐層傳播分析算法,檢測神經(jīng)網(wǎng)絡分類器存在的不安全行為。作者在MNIST、CIFAR-10、ImageNet 等數(shù)據(jù)集和相應的網(wǎng)絡上進行了實驗,發(fā)現(xiàn)該方法能夠檢測出比FGSM(Fast Gradient Sign Method)、JSMA(Jacobian Saliency Map Algorithm)等對抗樣本算法擾動更小的對抗樣本,證明了其檢驗神經(jīng)網(wǎng)絡魯棒性的有效性。

        Katz 等人[9]提出了用于驗證包含線性函數(shù)和ReLU激活函數(shù)的神經(jīng)網(wǎng)絡特性的框架Reluplex。Reluplex是一種利用SMT 求解器對驗證問題進行按需拆分的方法。從賦值開始,Reluplex 始終保持對所有變量的賦值,即使這些變量違反了某些約束。它利用單純形法對約束中的線性約束進行求解,如果不存在解,則意味著反例搜索失敗。如果存在解,會出現(xiàn)兩種情況:一種情況是這個解滿足ReLU約束,生成一個反例;否則,將不滿足的ReLU 約束分為兩種情況進一步考慮。這是一種利用遞歸思想求解的方法,將問題不斷分解來尋找可滿足的解。作者在一個包含300個ReLU節(jié)點的網(wǎng)絡上進行實驗,證明該方法的有效性。

        Ehlers[10]也提出了利用SMT 求解器驗證神經(jīng)網(wǎng)絡的方法Planet。該方法引入了一種神經(jīng)網(wǎng)絡的全局線性近似,作為一種邊界方法來過度逼近每個隱藏單元可能的值集。同時采用凸松弛的方法用線性約束去近似代替非線性約束,這樣就將約束問題轉(zhuǎn)化為線性規(guī)劃問題,并能夠保證提供比Reluplex 更緊的弛豫。此外,Planet 利用沖突分析來發(fā)現(xiàn)不能導致可滿足的分裂組合,從而允許它們對(子)問題進行進一步的修剪。

        2.1.2 SAT

        二值化神經(jīng)網(wǎng)絡(Binarized Neural Network,BNN)的連接權(quán)重和激活值只有+1 和-1 兩種情況,比一般全精度網(wǎng)絡要簡單得多,一些學者對其進行布爾編碼,并將神經(jīng)網(wǎng)絡驗證問題轉(zhuǎn)化為SAT問題進行求解。

        Cheng 等人[11]將BNN 驗證問題歸結(jié)為組合電路驗證中的SAT問題,并利用SAT求解器進行求解。首先對BNN 進行編碼,主要將BNN 中的雙極域運算替換為布爾運算,然后為BNN驗證問題構(gòu)造一個組合聯(lián)接器,并將組合聯(lián)接器編碼為相應的SAT問題。此外,作者還提出利用XNOR進行提取和利用因子分解技術(shù)對BNN驗證進行優(yōu)化。最后作者通過在MNIST、German Traffic Sign兩個數(shù)據(jù)集上進行實驗,證明了所提方法的有效性。

        Narodytska 等人[12-13]將BNN 進行布爾編碼,從布爾可滿足性的角度來分析BNN 的屬性。作者將BNN 分為內(nèi)部塊和外部塊兩部分,首先對內(nèi)部塊和外部塊分別進行布爾編碼,從而將神經(jīng)網(wǎng)絡編碼為布爾公式。然后將內(nèi)部塊和外部塊的每一層一步步從MILP 編碼、ILP編碼最后轉(zhuǎn)化為SAT 編碼。接著對神經(jīng)網(wǎng)絡屬性進行編碼,結(jié)合神經(jīng)網(wǎng)絡編碼,最終可得到一個SAT 公式組。作者結(jié)合反例引導搜索的思想,利用SAT求解器對上述SAT 公式進行求解。通過實驗比較了ILP、純SAT和所提方法在檢測對抗魯棒性上的性能,結(jié)果表明作者所提方法在證明神經(jīng)網(wǎng)絡魯棒性方面要優(yōu)于其他兩種方法。

        2.1.3 MILP

        Lomuscio等人[14]將ReLU函數(shù)的約束編碼為MILP,結(jié)合線性規(guī)劃表示的輸出規(guī)范,輸出集的驗證問題最終變成MILP 的可達性問題,并從結(jié)果可達性角度對神經(jīng)網(wǎng)絡的屬性做出判斷。對于神經(jīng)網(wǎng)絡第i層,MILP 編碼為:

        其中M是一個“足夠大”的常數(shù)。通過這種編碼,可以將可達性分析簡化為求解一個定義在這些約束上的線性規(guī)劃問題。最后作者在MNIST數(shù)據(jù)集上驗證了該方法的可行性。

        Bunel等人[15-16]將分支定界的思想引入到MILP問題的求解中。該方法將MILP 的輸入域不斷地拆分成子域,同時在子域上計算最小值的上下限,通過子域最小值的上下限來跟蹤計算全局最小值的界限。當全局最小值的上界與下界相差小于一定標量時,就認為收斂。在分支的過程中,還可以引入啟發(fā)式求解算法,加快求解。在實驗中,作者將BlackBox、Reluplex、Planet、MIPplanet等方法和所提方法BaB、BaBSB 進行對比,結(jié)果發(fā)現(xiàn)無論是小規(guī)模網(wǎng)絡還是大規(guī)模網(wǎng)絡,所提方法在發(fā)現(xiàn)錯誤的效率上都要優(yōu)于其他方法。

        但是,簡單地使用MILP 來驗證神經(jīng)網(wǎng)絡或計算輸出范圍的效率并不高,因此一些工作就研究如何加速求解過程。Cheng等人[17]利用啟發(fā)式算法加速MILP求解過程,同時嘗試利用并行化的方法進行加速。Dutta 等人[18]交替使用局部搜索和全局搜索來有效計算輸出范圍。其中在局部搜索階段,使用梯度下降法尋找局部最大值(或最小值),而在全局搜索階段,使用MILP對問題進行編碼,以檢查局部最大值(或最小值)是否為全局輸出范圍。Tjeng 等人[19]提出了一種基于MILP 的方法驗證分段線性神經(jīng)網(wǎng)絡的屬性。將非線性的公式和預求解算法相結(jié)合,最大限度減少MILP 問題中的二元變量的數(shù)量,改善數(shù)值條件,能夠比單純使用MILP快幾個數(shù)量級。

        精確求解驗證將神經(jīng)網(wǎng)絡的屬性驗證轉(zhuǎn)化為約束求解問題,并應用求解器進行求解。這種方法雖然能夠全面準確驗證神經(jīng)網(wǎng)絡的屬性,但是也存在計算復雜度高,難以推廣到大規(guī)模網(wǎng)絡上等問題。在神經(jīng)網(wǎng)絡規(guī)模越來越大的今天,采用精確求解的驗證技術(shù)去驗證神經(jīng)網(wǎng)絡具有很大的局限性。

        2.2 近似求解

        一些學者認為,精確求解的方法將神經(jīng)網(wǎng)絡驗證問題考慮得過于全面,導致問題復雜度過高,時間開銷過大,可以適當?shù)貙Ⅱ炞C問題簡化,采用近似的方法進行求解。近似求解驗證技術(shù)主要可以分為抽象解釋、線性松弛、半定規(guī)劃或?qū)ε嫉确椒ā?/p>

        2.2.1 抽象解釋

        抽象解釋的方法是基于Cousot 等人[20]提出的程序分析構(gòu)造和逼近程序理論。該理論的基本思想是在處理復雜的計算問題或模型時,通過對問題進行近似抽象,取出其中的關(guān)鍵部分進行分析,從而減少問題的復雜程度。神經(jīng)網(wǎng)絡的輸入輸出空間可以視為一個具體域C,因為C空間過于龐大,難以直接計算,所以選擇一個相對簡單的域A作為抽象域,它過度逼近C中變量的范圍和關(guān)系,那么神經(jīng)網(wǎng)絡在C上的一些屬性就可以在A上計算和研究。在抽象解釋中,選擇合適的抽象域很重要,它決定了抽象解釋的效率和精度。驗證神經(jīng)網(wǎng)絡比較常用的抽象域有區(qū)間抽象域(Interval Domain)、Zonotope 抽象域(Zonotope Domain)和多面體抽象域(Polytope Domain)。

        Gehr 等人[21]利用抽象解釋的方法開發(fā)了端到端的驗證工具AI2。AI2選擇Zonotope作為抽象域,并證明了該抽象域比區(qū)間抽象域精度更高。為了便于把神經(jīng)網(wǎng)絡驗證問題轉(zhuǎn)換成抽象解釋的表示,作者首先將神經(jīng)網(wǎng)絡表示為條件仿射變換(Conditional Affine Transformations,CAT)的組合;然后通過定義一定的抽象轉(zhuǎn)換函數(shù)來捕獲全連接和卷積神經(jīng)網(wǎng)絡的行為;最后計算抽象輸出以檢查神經(jīng)網(wǎng)絡的行為。與此同時,作者提出了一個有界powerset域,用于在精度和可擴展性之間進行權(quán)衡。通過在20個網(wǎng)絡上的實驗評估表明,AI2不僅能夠有效證明神經(jīng)網(wǎng)絡的某些屬性(例如魯棒性),在速度和精度上也明顯優(yōu)于其他分析器。

        Singh等人[22]提出快速高效證明神經(jīng)網(wǎng)絡魯棒性的方法DeepZ。作者為ReLU、sigmod、tanh 等激活函數(shù)設計新的逐點Zontope 抽象轉(zhuǎn)換器,抽象轉(zhuǎn)換器能夠最小化Zonotope 到二維輸入輸出平面的投影,支持浮點運算,并適用于前饋網(wǎng)絡、卷積網(wǎng)絡、殘差網(wǎng)絡等不同類型的網(wǎng)絡。作者通過實驗證明了該方法能夠有效驗證神經(jīng)網(wǎng)絡的局部魯棒性。

        此外,Singh 等人[23]為了解決驗證神經(jīng)網(wǎng)絡可拓展性和精度方面的挑戰(zhàn),基于抽象解釋提出了DeepPoly。該方法將浮點Polytope 和Interval 相結(jié)合,并且針對激活函數(shù)和Maxpool 算子的特性而專門定制了抽象變換器,這些抽象轉(zhuǎn)換器能夠很好地處理前饋網(wǎng)絡和卷積網(wǎng)絡,另外還支持浮點運算,因此在可擴展性和精度上都有所提高。Mirman等人[24]提出一種基于抽象解釋訓練神經(jīng)網(wǎng)絡的方法。該方法使用定義在Zonotope 域的抽象轉(zhuǎn)換器,可用于計算微分和梯度下降,提高了神經(jīng)網(wǎng)絡魯棒性的可證明性。Li 等人[25]將一種新的符號傳播技術(shù)運用到抽象解釋中,將神經(jīng)元的激活值以符號形式表示,在抽象域上對從輸入層到輸出層的傳播過程進行分析。利用表達式象征性地表示每個神經(jīng)元激活如何由前幾層的神經(jīng)元激活值決定,這樣就比僅簡單地使用抽象解釋獲得更高的精度。

        2.2.2 過度逼近

        Weng等人[26]分析了ReLU網(wǎng)絡的區(qū)間屬性和Lipschitz連續(xù)屬性,提出了兩種算法Fast-Lin和Fast-Lip。該方法采用逐層計算邊界的思路,其中Fast-Lin用于對神經(jīng)網(wǎng)絡中的ReLU 單元進行線性逼近,F(xiàn)ast-Lip 采用梯度對Lipschitz常數(shù)進行逼近。作者通過實驗證明,在獲得相似精度的求解中,他們所提的算法比基于線性規(guī)劃的方法更快。

        Zhang等人[27]受到Weng工作的啟發(fā),提出了一種基于過度逼近的驗證框架CROWN。對于ReLU、sigmod等激活函數(shù),采用線性或者二次函數(shù)進行逼近,從而能夠有效地計算神經(jīng)網(wǎng)絡給定數(shù)據(jù)點的最小失真認證下界。在時間復雜度上,與Reluplex等需要指數(shù)級時間的方法相比,該方法能夠在多項式時間內(nèi)求解,與此同時,該方法比Fast-Lin和Fast-Lip有更好的性能表現(xiàn)。

        Boopathy 等人[28]提出了針對CNN 魯棒性的驗證框架CNN-Cert。該框架將線性邊界技術(shù)應用到非線性函數(shù)(例如非線性激活函數(shù)、殘差塊和池化操作等)的操作中。首先將每個非線性函數(shù)視作一個構(gòu)建塊,計算出每個構(gòu)建塊上界和下界;然后將計算出的上下邊界插入到網(wǎng)絡中并反向傳播到上一層。那么整個網(wǎng)絡就可以看作一個個級聯(lián)的構(gòu)建塊,網(wǎng)絡輸出的上限和下限以及輸入的上限和下限就有一定的線性關(guān)系。作者通過實驗證明了該方法在時間和性能上優(yōu)于Fast-Lin和CROWN等方法。

        2.2.3 對偶或半定規(guī)劃

        Dvijotham等人[29]將神經(jīng)網(wǎng)絡驗證問題轉(zhuǎn)為優(yōu)化問題,并利用問題的對偶進行求解。主要思想是將神經(jīng)網(wǎng)絡在多種約束條件下的輸出表示為拉格朗日松弛,那么原來目標函數(shù)和約束條件在每一層都是可分離的,因此支持獨立優(yōu)化每一層中的變量。通過構(gòu)造對偶優(yōu)化問題,采用梯度方法就可以獲得驗證目標的嚴格界限。Wong等人[30]認為,直接考慮通過線性規(guī)劃方法對含ReLU的網(wǎng)絡進行驗證求解是不可行的,而從線性規(guī)劃的對偶問題出發(fā),任何可行對偶解都提供了原始解的有保證的下界。沿著這一思路出發(fā),在激活函數(shù)邊界計算中,通過對偶函數(shù)可以計算每一層輸出的上下界,并通過層層傳導,最后可以計算整個輸出的邊界。

        Raghunathan 等人[31]針對神經(jīng)網(wǎng)絡魯棒性證明,提出了一種基于半定規(guī)劃的凸優(yōu)化松弛算法。這種方法使用線性規(guī)劃和二次約束代替優(yōu)化問題的非線性ReLU約束,將其轉(zhuǎn)化為二次約束二次規(guī)劃,并進一步放寬到一個半定規(guī)劃。該方法能聯(lián)合解釋中間激活,并捕獲線性規(guī)劃松弛所不能捕獲的相互作用,比基于線性規(guī)劃松弛算法更加嚴謹。在Raghunathan工作基礎(chǔ)上,Richard等人[32]利用幾何技術(shù)來分析半定規(guī)劃的緊致性。將對抗性攻擊問題的最小二乘約束分解為一系列的投影問題,其中最后一個問題將一個點投影到一個非凸雙曲線上(高維雙曲線),那么當且僅當該投影位于雙曲線的長軸上時,半定松弛是緊致的。

        2.2.4 其他技術(shù)

        Lipschitz常量常用于評估神經(jīng)網(wǎng)絡模型的魯棒性,一些研究圍繞計算Lipschitz常量展開。

        Hein等人[33]認為計算DL模型全局Lipschitz上限來評價模型的魯棒性過于粗糙,提出通過計算DL 模型的全局Lipschitz下界來評估模型的魯棒性,并提出了通過正則化優(yōu)化函數(shù)Cross-Lipschitz 來計算這個下限,但是該方法僅適用于連續(xù)可微的神經(jīng)網(wǎng)絡。受Hein工作的啟發(fā),Weng等人[34]基于極值理論,提出了新的魯棒性指標CLEVER。該方法將極值理論應用到ReLU 激活函數(shù)中,把DL 魯棒性分析轉(zhuǎn)換為局部Lipschitz 常數(shù)估計。雖然CLEVER能夠較好地反映DL的魯棒性,但也存在計算復雜度高的問題。Wu 等人[35]研究了DL 逐點穩(wěn)健性的兩個變體,即最大安全半徑問題和特征魯棒性問題,旨在量化單個特征在對抗性擾動方面的魯棒性。在Lipschitz連續(xù)性假設下,可以將優(yōu)化問題轉(zhuǎn)化為兩人回合制游戲問題,并在游戲中引入博弈思想,那么最大安全半徑和特征魯棒性的上下界可以用兩人游戲的上下界代替。計算邊界過程中,采用蒙特卡洛算法計算兩人游戲的上界,利用A*算法和Alpha-Beta 剪枝算法計算兩人游戲的下界。

        此外,Ruan等人[36]專注于L0范數(shù),并研究量化DNN的全局魯棒性問題,將全局魯棒性定義為對測試數(shù)據(jù)集的最大安全半徑的期望。他們提出了一種迭代生成網(wǎng)絡魯棒性下限和上限的方法,該方法可以隨時返回中間結(jié)果,并采用逐漸嚴格約束的方式修改上下界限。此外,數(shù)值采用張量存儲的方式能夠支持并行化計算,加速求解。作者還證明了該方法可以在有限時間內(nèi)收斂到最優(yōu)值。

        此外,也有一些學者[37-38]嘗試將精確求解和近似求解的方法相結(jié)合,從而在精度和時間上獲得平衡。

        神經(jīng)網(wǎng)絡驗證技術(shù)總結(jié)如表1所示。

        表1 神經(jīng)網(wǎng)絡驗證技術(shù)總結(jié)Table 1 Summary of neural network verification technology

        驗證技術(shù)能夠?qū)ι窠?jīng)網(wǎng)絡屬性進行嚴格的證明,為神經(jīng)網(wǎng)絡技術(shù)應用特別是在安全攸關(guān)領(lǐng)域的應用提供了保證。精確求解驗證將神經(jīng)網(wǎng)絡驗證問題轉(zhuǎn)化為約束求解問題,利用求解器進行求解,從而為神經(jīng)網(wǎng)絡提供全面嚴格的驗證,具有精度高、可信度高的特點,但是由于求解問題的復雜度往往很大,很難應用到大規(guī)模網(wǎng)絡上。此外,精確求解在不同網(wǎng)絡之間的通用性也存在不足,像SAT求解僅適用于BNN網(wǎng)絡,SMT則大多適用于前饋神經(jīng)網(wǎng)絡。近似求解驗證,借助抽象模型、過度逼近、對偶等方法,在犧牲一定精度的前提下,將復雜問題進行簡化,實現(xiàn)對問題的快速求解。近似求解驗證技術(shù)能夠應用到大規(guī)模網(wǎng)絡上,并且對不同類型的網(wǎng)絡都有一定的適用性。精確求解和近似求解的精度和適用網(wǎng)絡規(guī)模的關(guān)系如圖2所示。此外,精確求解和近似求解相結(jié)合的方法,能夠平衡精度和時間兩者關(guān)系,并表現(xiàn)出較好的性能,是一個值得研究的方向。

        圖2 驗證技術(shù)精度和網(wǎng)絡規(guī)模之間的關(guān)系Fig.2 Relationship between accuracy and network size of verification technology

        3 基于覆蓋的測試技術(shù)

        傳統(tǒng)軟件測試中,測試覆蓋率是衡量軟件測試充分性的一個重要指標,能夠幫助人們客觀認識軟件質(zhì)量,改進測試工作。比較典型的覆蓋指標有代碼覆蓋、路徑覆蓋、MC/DC。由于在開發(fā)和編程樣式上與傳統(tǒng)軟件有著本質(zhì)的不同,這些覆蓋指標很難直接用在基于神經(jīng)網(wǎng)絡開發(fā)的程序或軟件上,一些學者開始嘗試研究適用于神經(jīng)網(wǎng)絡的覆蓋指標。

        基于覆蓋的測試技術(shù)一般流程如圖3 所示。首先以隨機測試輸入為測試用例,以一定的覆蓋指標為指導,在神經(jīng)網(wǎng)絡上測試這些用例,并獲得相關(guān)覆蓋報告;然后對測試用例進行篩選,選擇具有高覆蓋率的測試用例作為最終測試用例;最后對未被篩選的測試用例,采用一定的策略提高它們的覆蓋率,并作為新的測試用例,進入下一輪測試用例的測試和篩選中。其中提高測試用例覆蓋率的策略一般采用啟發(fā)式搜索算法。

        圖3 基于覆蓋的測試技術(shù)一般流程Fig.3 General flow of testing technology based on coverage

        3.1 神經(jīng)元覆蓋

        Pei等人[39]首次提出了神經(jīng)元覆蓋(Neuron Coverage,NC)指標,通過觀察和計算神經(jīng)網(wǎng)絡中各神經(jīng)元的激活情況來指導測試。設神經(jīng)元n的輸出值為V(n),同時設置一個閾值k,如果V(n)>k,則認為該神經(jīng)元被激活;否則沒被激活。則有,其中N表示神經(jīng)網(wǎng)絡中激活神經(jīng)元的數(shù)量,Nall表示神經(jīng)網(wǎng)絡中神經(jīng)元總量。作者還提出了用于測試神經(jīng)網(wǎng)絡的白盒測試框架DeepXplore,以NC作為指標指導測試輸入生成,結(jié)合差分測試的思想,最大程度檢測神經(jīng)網(wǎng)絡存在的異常行為。最后在MNIST、ImageNet、Driving、Contagio、Drebin等數(shù)據(jù)集和多種網(wǎng)絡上進行了廣泛的實驗,結(jié)果證明了DeepXplore 在發(fā)現(xiàn)神經(jīng)網(wǎng)絡異常行為方面的有效性。Tian等人[40]基于NC測試指標提出了測試自動駕駛車輛的碰撞檢測工具DeepTest。DeepTest 通過模擬現(xiàn)實世界中駕駛環(huán)境的變化,如下雨、起霧、光照條件,對圖像進行變換,利用貪婪搜索的技術(shù)來生成神經(jīng)元覆蓋率最大化的測試輸入,以檢測神經(jīng)網(wǎng)絡在上述條件下的錯誤行為。

        3.2 MC/DC變體

        Sun 等人[41]認為神經(jīng)元覆蓋指標過于粗糙,并不能有效測試DNN,受到MC/DC 覆蓋準則的啟發(fā),提出了基于符號變化、值變化的四種覆蓋指標:符號-符號覆蓋(Sign-Sign Coverage,SSC)、值-符號覆蓋(Value-Sign Coverage,VSC)、符號-值覆蓋(Sign-Value Coverage,SVC)和值-值覆蓋(Value-Value Coverage,VVC)。通過上述四個覆蓋準則引導測試輸入生成,捕獲DNN 中的錯誤行為。同時,測試用例的生成融合了符號方法和啟發(fā)式搜索算法,能夠達到加速測試用例生成的效果。最后通過MNIST、CIFAR-10、ImageNet 的實驗,證明了該方法在檢測神經(jīng)網(wǎng)絡缺陷上的有效性。

        3.3 拓展神經(jīng)元覆蓋

        Ma等人[42]拓展了NC思想,在DeepGauge中引入了三個新的神經(jīng)元級覆蓋指標和兩個層級覆蓋指標。神經(jīng)元級覆蓋指標包括k多節(jié)神經(jīng)元覆蓋(k-Multisection Neuron Coverage,KMNC)、神經(jīng)元邊界覆蓋(Neuron Boundary Coverage,NBC)和強神經(jīng)元激活覆蓋(Strong Neuron Activation Coverage,SNAC);層級覆蓋包括Top-k神經(jīng)元覆蓋(Top-kNeuron Coverage,TKNC)和Top-k神經(jīng)元模式(Top-kNeuron Patterns,TKNP)。作者希望通過最大程度刻畫神經(jīng)元、網(wǎng)絡層等不同層面的狀態(tài)變化,來發(fā)現(xiàn)網(wǎng)絡存在的異常行為。最后在MNIST、ImageNet上進行實驗,證明了這些覆蓋指標能夠有效捕獲包括對抗樣本在內(nèi)的異常輸入,與DeepXplore 相比,能夠在更細粒度的層次上捕獲神經(jīng)網(wǎng)絡的異常行為。此外,Ma 等人[43]將組合測試的方法應用到神經(jīng)網(wǎng)絡測試中,提出了指導測試輸入生成的方法DeepCT。引入t-路組合稀疏覆蓋(t-Way Combination Sparse Coverage,TWCSC)和t-路組合稠密覆蓋(t-Way Combination Dense Coverage,TWCDC)兩個指標,充分考慮同一層神經(jīng)元的各種狀態(tài)組合,來分析神經(jīng)網(wǎng)絡的局部魯棒性。作者通過實驗證明,以這兩個指標引導測試輸入生成,能夠在使用較少測試用例的情況下,獲得令人滿意的缺陷檢測能力。

        Lee等人[44]結(jié)合覆蓋指標和自適應的神經(jīng)元選擇策略提出了神經(jīng)網(wǎng)絡白盒測試框架Adapt。該框架采用NC和TKNC作為覆蓋指標,并定義了神經(jīng)元矩陣和29種神經(jīng)元特征,通過參數(shù)化神經(jīng)元選擇策略和學習方式獲得適當參數(shù)。實驗表明,該方法在提高覆蓋率和發(fā)現(xiàn)對抗輸入方面比現(xiàn)有的白盒和灰盒技術(shù)更有效。

        Xie等人[45]提出了一種覆蓋指標引導的模糊測試框架DeepHunter。該框架將NC、KMNC、NBC、SNAC、TKNC這五種覆蓋指標作為度量標準,在測試輸入生成的過程中,采用變異測試方法,以四種種子選擇策略生成變異體,然后利用覆蓋指標的反饋指導測試輸入生成,用于檢測神經(jīng)神經(jīng)網(wǎng)絡系統(tǒng)的潛在缺陷。實驗結(jié)果證明,該框架在覆蓋范圍、缺陷檢測數(shù)量和多樣性方面要優(yōu)于同一時期的其他方法。

        3.4 意外覆蓋

        Kim等人[46]認為現(xiàn)有的神經(jīng)元覆蓋指標粒度較粗,并不能描述神經(jīng)網(wǎng)絡所表現(xiàn)出的細微行為,于是提出了神經(jīng)網(wǎng)絡充分性測試框架SADL(Surprise Adequacy for Deep Learning Systems)。在框架中,引入了意外充分性(Surprise Adequacy,SA)的概念,用于衡量輸入分布和訓練數(shù)據(jù)的分布差距,并基于此提出了意外覆蓋(Surprise Coverage,SC)指標。SADL 首先衡量單個測量輸入相對于訓練數(shù)據(jù)的SA,然后利用單個測試輸入的意外程度去衡量整個測試輸入的SA,在此過程中采用核密度估計和基于歐式距離兩種方法計算SC。作者通過廣泛的實驗證明了SADL 能夠準確地捕獲異常輸入,并指導神經(jīng)網(wǎng)絡的訓練。

        3.5 路徑覆蓋

        Wang等人[47]認為傳統(tǒng)測試中的控制流和數(shù)據(jù)流對神經(jīng)網(wǎng)絡來說沒有實際意義,提出了一種基于路徑覆蓋的測試方法DeepPath。為了評估DNN 測試的充分性,對神經(jīng)元傳播路徑進行了研究,并定義了l長度強激活路徑覆蓋(l-length Strong Activated Path coverage,l-SAP)、l長度輸出激活路徑覆蓋(l-length Output Activated Path coverage,l-OAP)和l-長度全狀態(tài)路徑覆蓋(l-length Full State Path coverage,l-FSP)三種覆蓋指標,用于指導測試輸入生成。最后在MNIST 上進行實驗,證明了該方法能夠更好地識別對抗樣本和評估模型的魯棒性。

        此外,文獻[48-50]分別從神經(jīng)元激活概率和偏差、狀態(tài)級別和轉(zhuǎn)換級別、數(shù)據(jù)集定量投影等角度提出了覆蓋指標,用于測試神經(jīng)網(wǎng)絡的充分性?;诟采w的測試技術(shù)總結(jié)如表2所示。

        表2 基于覆蓋的測試技術(shù)總結(jié)Table 2 Summary of testing technology based on coverage

        以上覆蓋指標都力圖從神經(jīng)網(wǎng)絡結(jié)構(gòu)的某個角度刻畫神經(jīng)網(wǎng)絡的行為,指導神經(jīng)網(wǎng)絡測試。從覆蓋粒度層面來說,NC、SSC、DSC、SVC、DVC 等覆蓋指標從單個神經(jīng)元符號或值出發(fā),描述神經(jīng)網(wǎng)絡可能的狀態(tài)和行為空間;KMNC、NBC、SNAC、SC 將單個神經(jīng)元的狀態(tài)刻畫進一步細化,產(chǎn)生的狀態(tài)空間也就越大,能夠發(fā)現(xiàn)神經(jīng)網(wǎng)絡更細微的行為差異;TWCSC、TWCDC 則考慮同一網(wǎng)絡層不同神經(jīng)元之間的狀態(tài)組合,l-SAP、l-OAP、l-FSP 考慮不同網(wǎng)絡層之間神經(jīng)元的傳播路徑;TKNC、TKNP 從網(wǎng)絡層級定義覆蓋指標,粒度較粗,但提供了神經(jīng)網(wǎng)絡行為的宏觀視角,可配合更細粒度的覆蓋指標使用。通過整理總結(jié)文獻中的實驗結(jié)果,對各個覆蓋指標的有效性進行了對比。圖4 給出了各種覆蓋指標在檢測異常輸入上的能力對比,其中連線表示二者存在比較關(guān)系,箭頭指向在能力更強的覆蓋指標??梢钥闯?,覆蓋指標的粒度越細,分析神經(jīng)網(wǎng)絡行為的能力就越強,越容易發(fā)現(xiàn)細微擾動的異常輸入。

        圖4 各種覆蓋指標有效性對比Fig.4 Comparison of effectiveness of various coverage indicators

        目前,針對神經(jīng)網(wǎng)絡的測試技術(shù)尚處于探索階段,一些學者認為,上述方法雖然在發(fā)現(xiàn)異常輸入和指導測試用例生成上起到一定的作用,但是覆蓋指標和神經(jīng)網(wǎng)絡安全性、魯棒性的相關(guān)性非常有限,因此出現(xiàn)了一些質(zhì)疑的文章[50-54]。Yan 等人[54]認為目前的神經(jīng)網(wǎng)絡覆蓋標準和模型質(zhì)量沒有很強的相關(guān)性,同時在指導測試輸入生成上和生成對抗樣本的方法具有相似性,一些覆蓋標準僅需數(shù)十個測試用例就可以達到100%的覆蓋,難以獲得更多關(guān)于缺陷的信息。作者通過對DeepXplore、DeepGauge、DeepHunter、SADL 等方法展開實驗,證明了這些覆蓋指標與模型魯棒性之間沒有很強的相關(guān)性。

        4 基于對抗樣本的測試技術(shù)

        Szegedy等人[55]發(fā)現(xiàn),通過圖片添加細微的、人眼不易識別的擾動,能夠使神經(jīng)網(wǎng)絡圖像分類識別錯誤。對抗樣本的概念由此產(chǎn)生,并逐漸成為研究的熱點問題,許多學者將對抗樣本問題歸結(jié)于神經(jīng)網(wǎng)絡分類器的魯棒性存在問題,并研究各種生成對抗樣本算法,用于評估神經(jīng)網(wǎng)絡模型的魯棒性。對抗樣本算法依據(jù)生成方式可以分為白盒方式和黑盒方試,依據(jù)攻擊是否定向可以分為有目標攻擊和無目標攻擊。本文將從白盒和黑盒的角度對基于對抗樣本的測試技術(shù)進行介紹。

        基于對抗樣本的測試技術(shù)的一般流程如圖5所示:對初始測試輸入,分別采用白盒方式和黑盒方式的對抗樣本算法生成對抗性測試輸入,然后將初始測試輸入、對抗性測試輸入交給神經(jīng)網(wǎng)絡進行測試,根據(jù)測試結(jié)果對神經(jīng)網(wǎng)絡模型魯棒性進行評估。

        圖5 基于對抗樣本的測試技術(shù)一般流程Fig.5 General flow of testing technology based on adversarial samples

        4.1 白盒方式

        白盒方式生成對抗樣本技術(shù)主要圍繞神經(jīng)網(wǎng)絡的梯度展開攻擊,針對像素添加擾動生成對抗樣本。白盒方式需要神經(jīng)網(wǎng)絡內(nèi)部結(jié)構(gòu)、參數(shù)的信息,在一些梯度隱藏或遮蓋、模型內(nèi)部參數(shù)不可知場景下往往會失效。

        GoodFellow 等人[56]提出了一種基于梯度攻擊的方法FGSM。FGSM可以表示為:

        其中,x為輸入圖片,y為圖片標簽,?用于限制擾動大小,J是損失函數(shù),θ是模型參數(shù)。該方法通過損失函數(shù)的梯度來決定圖片像素變化的方向,將所有像素等比例地放大或縮小,一步就可以生成對抗樣本。其中?越大,生成對抗樣本的成功率就越高,但也越容易被察覺。Kurakin等人[57]提出了基于FGSM 改進的迭代算法I-FGSM。該方法通過小步迭代的方式逐步增大損失函數(shù),能夠生成比FGSM更有效的對抗樣本。

        Dong 等人[58]在FGSM 和I-FGSM 的基礎(chǔ)上提出了一種基于動量迭代的方法MI-FGSM。動量的方法能夠在損失函數(shù)的梯度上累計速度向量,從而達到加速梯度下降的目的。在擾動中使用動量的方法,能夠幫助穩(wěn)定擾動更新方向和逃逸局部極值,提高對抗樣本的成功率。實驗表明,MI-FGSM攻擊能力比FGSM和I-FGSM更強大,同時擁有更好的遷移性。

        Papernot等人[59]提出了一種基于神經(jīng)網(wǎng)絡前向?qū)?shù)的方法JSMA。首先依據(jù)前向?qū)?shù),給輸入的每個維度分配一個顯著值,顯著值能夠體現(xiàn)該維度對輸出概率的靈敏度,進而整張圖像就可以生成一張雅可比顯著圖;然后通過雅可比顯著圖來捕捉神經(jīng)網(wǎng)絡預測最敏感的特征,從而有選擇性地對圖像的某些像素進行修改。JSMA對顯著像素點的尋找采用貪婪搜索,通常生成對抗樣本時間比FGSM要長,但是擾動相對較小。

        Moosavidezfooli 等人[60]提出了一種迭代算法Deep-Fool,用于生成最小化范數(shù)擾動的對抗樣本。DeepFool從分類超平面的角度分析如何將一張圖像分類錯誤,這種情況下,圖像到分類超平面的距離就是代價最小的地方,然后通過迭代方法生成擾動,每一步將分類邊界內(nèi)的像素修改到邊界外,直至分類器分類錯誤為止。通過在8個分類器和3個數(shù)據(jù)集上的實驗證明了該方法可以高效地生成對抗樣本,并作為模型魯棒性的評價指標。

        Carlini 等人[61]提出了基于優(yōu)化的對抗樣本生成方法C&W,用于評估模型的魯棒性。該方法將發(fā)現(xiàn)一個對抗樣本歸結(jié)為一個約束優(yōu)化問題,即:

        通過引入一個新的優(yōu)化變量避免盒約束,并使用梯度下降法求解該優(yōu)化問題,作者分別提出了適用于L0、L2、L∞三種不同范數(shù)攻擊方式,能夠在較小擾動下找到對抗樣本。在MINIST、CIFAR-10和ImageNet上的實驗表明,該方法優(yōu)于同一時期的其他方法,且在不同網(wǎng)絡上具有很強的適用性,可以作為廣泛評價神經(jīng)網(wǎng)絡模型魯棒性的指標。

        4.2 黑盒方式

        黑盒方式生成對抗樣本的技術(shù)不需要模型結(jié)構(gòu)、參數(shù)等信息,通用性更強,但是在生成對抗樣本的質(zhì)量和效率上往往不如白盒方式。

        Papernot 等人[62]認為,一般的白盒方式生成對抗樣本需要DNN結(jié)構(gòu)、參數(shù)等信息,這些信息在現(xiàn)實中很難直接獲得,不具有普遍適用性,因此提出了通過構(gòu)造替代模型來生成對抗樣本。首先根據(jù)常識選擇模型的大體結(jié)構(gòu),并偽造訓練數(shù)據(jù);然后通過受攻擊模型獲取標簽等信息,再偽造測試數(shù)據(jù);最后在替代模型上訓練和測試數(shù)據(jù)集,獲取其中的參數(shù)。作者對Amazon和Google多個托管模型展開實驗,生成對抗樣本欺騙成功率分別為96.19%和88.94%,證明了該方法具有普遍適用性。

        Narodytska等人[63]采用一種損失函數(shù)梯度近似的方式來構(gòu)造對抗樣本,并基于貪婪局部搜索生成對抗樣本。在每一輪的迭代搜索過程中,該方法首先通過一個局部鄰域來重新定義當前圖像,并根據(jù)網(wǎng)絡輸出優(yōu)化目標函數(shù);然后采用局部搜索的方式,改變圖像中的幾個像素值,觀察輸出的變化,進而生成當前圖像損失函數(shù)梯度的近似;最后便可以利用近似梯度生成對抗樣本。作者通過在ImageNet 的實驗證明,平均只需0.5%的像素擾動就可以達到欺騙成功的目的。

        Su 等人[64]提出了一種通過修改像素值生成對抗樣本的方法One-Pixel,通過在少數(shù)幾個像素上修改像素值,達到欺騙分類器的目的。該方法的關(guān)鍵在于找到整張圖片中對分類器做出判斷影響最大的幾個像素點。作者采用一種差分進化算法來搜索這些像素點,并對像素點做任意強度的修改,來生成對抗樣本。雖然該方法生成的對抗樣本不易被察覺,但是往往時間較長,且成功率不高。

        Zhang等人[65]提出了一種基于模糊測試的黑盒方法DeepSearch。該方法從正確分類圖像開始,采用一定策略將圖像中的像素值變異成可能導致對抗輸入的值,一旦發(fā)現(xiàn)對抗性輸入,就開始迭代優(yōu)化,以最小化圖像的范數(shù)擾動。同時將分層分組的策略應用到過程中,減少了查詢次數(shù),同時提高了模糊化和細化的效率。

        此外,還有一些學者研究了自然界中的對抗樣本[66-68],這里就不做過多介紹?;趯箻颖镜臏y試技術(shù)總結(jié)如表3所示。

        表3 基于對抗樣本的測試技術(shù)總結(jié)Table 3 Summary of testing technology based on adversarial samples

        隨著大量對抗樣本生成算法的提出,神經(jīng)網(wǎng)絡模型在對抗攻擊下的安全性成為熱點問題。一些學者將多種對抗樣本算法集成到工具中,用于評估神經(jīng)網(wǎng)絡在對抗攻擊下的安全性。

        Goodfellow 等人開發(fā)了針對機器學習模型進行對抗攻擊的Python 庫CleverHans[69]。該庫集成了FGSM、C&W等數(shù)十種對抗樣本生成算法,支持JAX、PyTorch、TensorFlow三種機器學習框架,并能夠針對對抗樣本對機器學習模型進行基準測試。百度安全團隊開發(fā)了對抗樣本工具箱AdvBox[70]。該工具箱集成了包括白盒和黑盒方式在內(nèi)的10 種對抗樣本生成算法,除了原生支持百度自身研發(fā)的學習框架PaddlePaddle,還支持PyTorch、Caffe、MxNet、Keras、TensorFlow 等框架,兼容性強,能夠為模型安全性研究和應用提供重要支持。

        IBM 推出了對抗性魯棒工具箱ART(Adversarial Robustness Toolbox)[71]。該工具不僅能夠評估機器學習模型的魯棒性,同時還提供了多種防御措施,指導模型進行重新訓練,提高模型在對抗攻擊下的魯棒性。阿里巴巴聯(lián)合浙江大學研發(fā)了DL 模型安全分析平臺Deep-Sec[72]。該平臺集成了16 種對抗樣本攻擊方法和13 種防御方法,使研究人員既能夠多方面評估DL 模型的安全性,又可以評估攻擊和防御算法的有效性。

        此外,清華大學THUNLP 團隊開發(fā)了文本對抗攻擊工具包OpenAttack[73]。該工具包支持多種對抗樣本生成算法,并覆蓋了字、詞、句等不同級別擾動粒度的攻擊。該工具建立了針對文本對抗攻擊的評測指標,包括攻擊成功率、對抗樣本質(zhì)量、攻擊效率等8個不同指標,同時支持用戶自己設計評測指標,具有可用性強、覆蓋面廣、可拓展性強等特點。

        對抗樣本的廣泛存在說明神經(jīng)網(wǎng)絡模型魯棒性和安全性面臨挑戰(zhàn),這給模型評估工作帶來了困難。基于對抗樣本的測試技術(shù),從攻擊者的角度入手,通過在圖像上構(gòu)造擾動產(chǎn)生異常輸入作為測試輸入,然后觀察神經(jīng)網(wǎng)絡模型在各種測試輸入下的表現(xiàn),對模型的魯棒性、安全性做出判斷。基于白盒方式的測試技術(shù)依賴神經(jīng)網(wǎng)絡模型的內(nèi)部信息,產(chǎn)生樣本擾動較小,成功率高,但是通用性不強,如果模型對梯度進行遮蓋、隱藏,或者模型內(nèi)部信息不可知,那么攻擊方法很難奏效?;诤诤械臏y試技術(shù),通過構(gòu)造替代模型或是近似模擬模型梯度的方式生成對抗樣本,雖然產(chǎn)生的對抗樣本質(zhì)量較低,但是通用性較強,危害性更大。結(jié)合白盒方式和黑盒方式的對抗樣本生成算法生成測試輸入,對模型魯棒性進行全面的評價,具有一定可行性,但是現(xiàn)有的對抗樣本生成算法還只是對抗樣本空間中的一小部分,該方法并不能評估模型在潛在對抗樣本下的魯棒性。

        5 融合傳統(tǒng)測試技術(shù)

        除上述測試技術(shù)外,一些學者將傳統(tǒng)測試技術(shù)應用到神經(jīng)網(wǎng)絡測試中,比如模糊測試、蛻變測試、變異測試和符號執(zhí)行,用于檢測DNN內(nèi)部存在的缺陷,緩解測試預言或評估模型或數(shù)據(jù)集的質(zhì)量。

        5.1 模糊測試

        模糊測試是一種傳統(tǒng)測試技術(shù),它通過生成隨機數(shù)據(jù)作為測試輸入,以檢測程序崩潰、內(nèi)存泄漏等問題,并成功應用于系統(tǒng)安全和漏洞檢測中。將模糊測試用于神經(jīng)網(wǎng)絡測試,可以有效檢測神經(jīng)網(wǎng)絡模型的內(nèi)部缺陷,確保模型應用的安全。

        Guo等人[74]提出了用于指導DL系統(tǒng)暴露錯誤行為的差分模糊測試框架DLFuzz。DLFuzz 通過不斷對輸入進行細微的突變,來最大化神經(jīng)元覆蓋以及原始輸入和變異輸入之間的預測差異,同時定義了四種神經(jīng)元選擇策略來提高神經(jīng)元覆蓋率。在MNIST和ImageNet數(shù)據(jù)集上實驗評估表明,與DeepXplore相比,DLFuzz能夠以20.11%的時間產(chǎn)生338.59%的對抗性輸入,測試輸入生成效率遠高于DeepXplore。

        Odena 等人[75]開發(fā)了一種覆蓋引導模糊測試工具TensorFuzz。該工具包括輸入選擇器、變異器、目標函數(shù)、覆蓋率分析器等模塊。在模糊測試過程中,突變算子以神經(jīng)元覆蓋指標為指導,同時利用基于屬性的測試技術(shù),對目標進行約束。通過最近鄰算法來計算覆蓋率,檢查覆蓋率是否更新,如果產(chǎn)生了新的覆蓋,則在輸入空間進行隨機搜索,否則繼續(xù)執(zhí)行突變。通過在MNIST 數(shù)據(jù)集上的實驗證明,在產(chǎn)生同等數(shù)量的突變情況下,TensorFuzz發(fā)現(xiàn)錯誤的效率要遠高于隨機測試。

        Zhang等人[76]提出了一種覆蓋引導對抗生成的模糊測試框架CAGFuzz。該框架借鑒了覆蓋引導灰盒模糊測試(Coverage-guided Grey-box Fuzzing,CGF)的思想,首先劃分數(shù)據(jù)集并根據(jù)存儲時間設置優(yōu)先級,作為模糊測試的初始輸入;然后利用對抗樣本生成器生成對抗樣本,通過深度特征約束和計算余弦相似度確定需要保留的樣本;最后使用神經(jīng)元覆蓋率指導生成過程,如果保留的對抗樣本出現(xiàn)了新的覆蓋,則將其納入測試集中。作者通過六種模型在三個數(shù)據(jù)集上的實驗證明了該方法在發(fā)現(xiàn)DNN潛在錯誤方面的有效性。

        5.2 蛻變測試

        測試預言是測試工作的關(guān)鍵問題之一,蛻變關(guān)系是指在多個程序執(zhí)行過程中,程序輸入變化和輸出變化之間的關(guān)系。例如為了測試函數(shù)sinx的實現(xiàn),可以檢測當輸入由x變?yōu)棣校瓁時輸出的變化,如果sinx不等于sin(π-x),則程序存在錯誤。其中,sinx=sin(π-x)就構(gòu)成一組蛻變關(guān)系,它扮演著測試預言的角色,可以幫助檢測程序缺陷。

        Ding 等人[77]提出了一種基于蛻變測試的深度學習驗證框架??蚣芊譃橄到y(tǒng)、數(shù)據(jù)、數(shù)據(jù)項三個層次,針對這三個層次分別定義了系統(tǒng)級蛻變關(guān)系、數(shù)據(jù)集級蛻變關(guān)系和數(shù)據(jù)項級蛻變關(guān)系。通過蛻變測試檢查不同DNN 分類模型、不同數(shù)據(jù)集和不同數(shù)據(jù)項之間的分類精度,最終驗證模型或數(shù)據(jù)集的質(zhì)量。

        Dwarakanath 等人[78]針對DNN 分類器提出了四種蛻變關(guān)系:(1)訓練數(shù)據(jù)和測試數(shù)據(jù)輸入通道排列變化;(2)訓練數(shù)據(jù)和測試數(shù)據(jù)運算順序排列變化;(3)歸一化測試數(shù)據(jù);(4)縮放測試數(shù)據(jù)。作者利用這四種蛻變關(guān)系在多個網(wǎng)絡上進行實驗,結(jié)果表明該方法能夠有效捕獲代碼實現(xiàn)上的缺陷,檢錯率達到71%。Zhu 等人[79]針對人臉識別應用提出了一種數(shù)據(jù)蛻變測試框架,并定義了四種蛻變關(guān)系:(1)帶上眼鏡;(2)化妝;(3)改變發(fā)型;(4)改變頭發(fā)顏色。最后,通過在四個人臉識別系統(tǒng)上對CelebA和PubFig人臉數(shù)據(jù)集的實驗證明了該方法的有效性。

        Sharma 等人[80]提出了一種用于檢測數(shù)據(jù)集平衡性的測試方法TILE。作者設計了四種蛻變關(guān)系,該方法結(jié)合蛻變關(guān)系和等價模型檢驗,能夠有效檢測訓練數(shù)據(jù)的平衡性。劉佳洛等人[81]針對DNN圖像分類程序提出了一種蛻變測試框架。根據(jù)數(shù)據(jù)集的幾何屬性以及模型特性構(gòu)造三種蛻變關(guān)系,結(jié)合變異測試在VGG 網(wǎng)絡和CIFAR-10 數(shù)據(jù)集上進行實驗,驗證該框架在檢測模型實現(xiàn)錯誤方面的效率和有效性。

        5.3 變異測試和符號執(zhí)行

        在傳統(tǒng)軟件測試中,變異測試通過注入錯誤來評估測試輸入揭示錯誤的能力。其中檢測到的故障與所有注入故障的比率稱為突變分數(shù),用以評估測試用例的質(zhì)量。神經(jīng)網(wǎng)絡的變異測試主要從代碼層面、數(shù)據(jù)層面、模型層面展開。

        Ma等人[82]將變異測試應用到DL模型中,用于評估測試數(shù)據(jù)的質(zhì)量。定義了一組源碼級別的變異操作和模型級別的變異操作,分別將錯誤注入到DL 源碼和模型中,通過分析注入故障的檢測程度來評估測試數(shù)據(jù)的質(zhì)量。作者在MINIST、CIFAR-10 數(shù)據(jù)集上對三個DL模型的實驗證明了該測試框架的有效性。Shen 等人[83]提出了一種神經(jīng)網(wǎng)絡變異分析的方法MuNN,定義了五種針對神經(jīng)網(wǎng)絡模型的變異算子,通過計算突變分數(shù)衡量測試數(shù)據(jù)的充分性。Jahangirova等人[84]對Ma和Shen提出的20 種變異算子進行實證研究,指出了這些變異算法應用時需要進行適當?shù)呐渲?,并重新定義了殺死變異,用于指導在DL模型上的變異測試。

        符號執(zhí)行是一種程序分析技術(shù),用于測試被測軟件是否違反某些屬性。動態(tài)符號執(zhí)行(Concolic Testing)使用隨機測試輸入執(zhí)行被測程序,同時并行執(zhí)行符號執(zhí)行,以檢測程序的漏洞。

        Sun 等人[85]提出了一種基于符號執(zhí)行的DNN 測試和調(diào)試工具DeepConcolic。該工具由預處理、測試標準、符號執(zhí)行引擎、遺傳算法搜索引擎、測試套件、測試預言等模塊組成。首先預處理模塊根據(jù)測試標準對測試輸入數(shù)據(jù)格式化,以便符號執(zhí)行引擎和遺傳算法搜索引擎進行操作;然后通過符號執(zhí)行引擎和遺傳算法搜索引擎生成測試用例,其中符號執(zhí)行引擎支持線性規(guī)劃和全局優(yōu)化兩種分析技術(shù);最后依據(jù)神經(jīng)元覆蓋和MC/DC變體生成測試用例的覆蓋率報告。此外,Gopinath 等人[86]將神經(jīng)網(wǎng)絡轉(zhuǎn)化為命令式程序,然后利用符號分析的方法對神經(jīng)網(wǎng)絡進行分析和驗證。Agarwal等人[87]將神經(jīng)網(wǎng)絡局部解釋構(gòu)建決策樹,然后應用符號執(zhí)行來檢測DNN中的個體差異,進而指導測試用例生成。

        融合傳統(tǒng)測試技術(shù)總結(jié)如表4所示。目前,神經(jīng)網(wǎng)絡測試在測試輸入生成、測試預言、測試充分性、缺陷檢測等方面面臨諸多挑戰(zhàn)。融合傳統(tǒng)測試技術(shù)將傳統(tǒng)測試技術(shù)在解決這類問題上的經(jīng)驗,應用到神經(jīng)網(wǎng)絡測試中,這樣就可以沿著既有的技術(shù)路線,針對神經(jīng)網(wǎng)絡的特點展開測試,在取得不錯測試效果的同時,降低了測試成本。模糊測試能夠有效地指導測試輸入生成,檢測神經(jīng)網(wǎng)絡錯誤行為;蛻變測試針對測試預言問題,通過構(gòu)建蛻變關(guān)系指導測試輸入生成,發(fā)現(xiàn)神經(jīng)網(wǎng)絡內(nèi)部缺陷;變異測試通過對代碼、數(shù)據(jù)、模型進行變異,能夠有效評估測試用例集的質(zhì)量;利用符號執(zhí)行分析技術(shù)分析神經(jīng)網(wǎng)絡,能夠以更少的執(zhí)行次數(shù)發(fā)現(xiàn)錯誤,同時以更高效率生成高質(zhì)量測試輸入。此外,將多種傳統(tǒng)測試技術(shù)相結(jié)合,例如蛻變測試+變異測試,用于指導測試用例生成,同時檢查測試用例的質(zhì)量,也是一條可行的途徑。

        表4 融合傳統(tǒng)測試技術(shù)總結(jié)Table 4 Summary of fusing traditional testing technology

        6 總結(jié)和展望

        針對神經(jīng)網(wǎng)絡驗證和測試技術(shù),本文從驗證技術(shù)、基于覆蓋的測試技術(shù)、基于對抗樣本的測試技術(shù)、融合傳統(tǒng)測試技術(shù)等方面對該領(lǐng)域內(nèi)的研究現(xiàn)狀進行了梳理和總結(jié),對其中關(guān)鍵技術(shù)進行了歸納和分類,并對一些技術(shù)的基本思想和實現(xiàn)進行了簡要介紹。

        雖然目前神經(jīng)網(wǎng)絡的驗證和測試工作取得了一定的進展,但是距全面檢測神經(jīng)網(wǎng)絡缺陷,有效保證神經(jīng)網(wǎng)絡應用的質(zhì)量還有一段距離,神經(jīng)網(wǎng)絡驗證和測試工作還面臨諸多挑戰(zhàn)。神經(jīng)網(wǎng)絡的驗證和測試需要對以下內(nèi)容進行研究:

        (1)適用大規(guī)模網(wǎng)絡的精確驗證技術(shù)。神經(jīng)網(wǎng)絡朝著大規(guī)模的方向發(fā)展,大規(guī)模神經(jīng)網(wǎng)絡的驗證需求將進一步上升,隨著大規(guī)模神經(jīng)網(wǎng)絡應用在一些安全攸關(guān)的領(lǐng)域,勢必要求更加精確、高效的驗證技術(shù)。

        (2)有效的度量指標。如何有效刻畫神經(jīng)網(wǎng)絡的屬性,如何客觀評價神經(jīng)網(wǎng)絡,如何有效指導神經(jīng)網(wǎng)絡測試的有效進行,這些都需要以科學、有效的度量指標為牽引。

        (3)更具通用性的測試技術(shù)和方法。當前測試技術(shù)多是針對神經(jīng)網(wǎng)絡在特定應用領(lǐng)域的測試,往往缺乏普遍適用性,因此成本較高。研究更具通用性的測試技術(shù)和方法,能夠提高測試效率和降低測試成本。

        (4)合理規(guī)范的驗證測試流程。傳統(tǒng)軟件測試有著較為成熟的流程和規(guī)范,測試工作更加科學、全面,而神經(jīng)網(wǎng)絡驗證和測試工作缺乏合理規(guī)范的流程,在具體操作層面還存在主觀性和片面性。

        隨著神經(jīng)網(wǎng)絡技術(shù)的推廣和應用,如何有效地驗證和測試神經(jīng)網(wǎng)絡將成為一個亟待解決的問題。圍繞如何建立科學有效的測試度量指標、如何設計更具可行性測試技術(shù)、如何規(guī)范測試流程等問題,還需要做進一步深入的研究。

        猜你喜歡
        魯棒性神經(jīng)元神經(jīng)網(wǎng)絡
        《從光子到神經(jīng)元》書評
        自然雜志(2021年6期)2021-12-23 08:24:46
        荒漠綠洲區(qū)潛在生態(tài)網(wǎng)絡增邊優(yōu)化魯棒性分析
        神經(jīng)網(wǎng)絡抑制無線通信干擾探究
        電子制作(2019年19期)2019-11-23 08:42:00
        基于確定性指標的弦支結(jié)構(gòu)魯棒性評價
        中華建設(2019年7期)2019-08-27 00:50:18
        躍動的神經(jīng)元——波蘭Brain Embassy聯(lián)合辦公
        基于非支配解集的多模式裝備項目群調(diào)度魯棒性優(yōu)化
        非接觸移動供電系統(tǒng)不同補償拓撲下的魯棒性分析
        基于神經(jīng)網(wǎng)絡的拉矯機控制模型建立
        重型機械(2016年1期)2016-03-01 03:42:04
        復數(shù)神經(jīng)網(wǎng)絡在基于WiFi的室內(nèi)LBS應用
        基于二次型單神經(jīng)元PID的MPPT控制
        亚洲天堂一区二区精品| 女厕厕露p撒尿八个少妇| 国产精品国产三级农村妇女| 亚洲va成无码人在线观看| 亚洲熟女av在线观看| 97久人人做人人妻人人玩精品| 亚洲av成人无码久久精品| 久久久久久久国产精品电影| 美女视频在线观看一区二区三区| 国产三级a三级三级| 中文人妻av久久人妻18| 久久久久国产亚洲AV麻豆| 国产亚洲av一线观看| 深夜爽爽动态图无遮无挡| 国产在线精品一区二区| 亚洲综合网站精品一区二区| 精品国产日韩亚洲一区在线| 国产激情一区二区三区| 精品国产精品久久一区免费式| 四虎国产精品成人影院| 亚洲乱码中文字幕一线区| 山外人精品影院| 久久麻豆精品国产99国产精| 国产大片在线观看三级| av网站在线观看入口| 无码精品人妻一区二区三区影院| 国产精品美女黄色av| 国产自拍av在线观看| 久久久久久久久毛片精品| 丰满少妇人妻无码专区| 亚洲视频中文字幕更新| 亚洲一区在线观看中文字幕| 老子影院午夜精品无码| 小13箩利洗澡无码免费视频 | 国产人妻久久精品二区三区老狼| 国产自产精品露脸刺激91在线| 国产精品黑丝美女av| 夜夜夜夜曰天天天天拍国产| 亚洲成色在线综合网站| 91久久精品国产性色tv| 日本精品视频免费观看|