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

        ?

        意外充分性引導(dǎo)的深度神經(jīng)網(wǎng)絡(luò)測試樣本生成

        2024-04-29 05:35:50郭虹靜陶傳奇黃志球
        關(guān)鍵詞:方法模型

        郭虹靜 陶傳奇,2,3 黃志球,2

        1(南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 南京 210016)

        2(高安全系統(tǒng)的軟件開發(fā)與驗(yàn)證技術(shù)工信部重點(diǎn)實(shí)驗(yàn)室(南京航空航天大學(xué)) 南京 210016)

        3(計(jì)算機(jī)軟件新技術(shù)國家重點(diǎn)實(shí)驗(yàn)室(南京大學(xué)) 南京 210023)

        (guohongjing@nuaa.edu.cn)

        以深度學(xué)習(xí)(deep learning,DL)為代表的人工智能技術(shù)迅猛發(fā)展,基于大量數(shù)據(jù)訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)模型越來越多地被部署在智能軟件系統(tǒng)中,并廣泛應(yīng)用在工業(yè)生產(chǎn)、社會生活、金融經(jīng)濟(jì)等各方面.然而,智能軟件的可靠性、魯棒性、安全性等問題也日益凸顯,尤其在安全攸關(guān)領(lǐng)域,例如無人駕駛汽車系統(tǒng)、惡意軟件檢測系統(tǒng)以及飛機(jī)碰撞避免系統(tǒng)等,如不能有效加以防范,可能會導(dǎo)致重大損失甚至災(zāi)難性后果.例如,2018 年 3 月,Uber 公司在美國亞利桑那州開展汽車試驗(yàn)時發(fā)生了一起無人駕駛汽車將行人誤識別為物體的意外事件,導(dǎo)致行人遭受了撞擊[1].當(dāng)前智能軟件的核心組件是DNN 模型,通過DNN 模型的感知與決策實(shí)現(xiàn)智能功能.DNN 模型不遵循傳統(tǒng)軟件的編程范式,其決策邏輯是從訓(xùn)練集中學(xué)習(xí)而得[2-3],具有高度復(fù)雜的數(shù)據(jù)依賴性、內(nèi)在行為不確定性等特點(diǎn),樣本中任何微小的擾動都可能導(dǎo)致模型做出難以理解的錯誤行為.因此,有效保證DNN 模型的質(zhì)量至關(guān)重要.軟件測試是發(fā)現(xiàn)軟件錯誤、保障質(zhì)量的關(guān)鍵手段.為保證DNN 模型的可靠性,使用足夠的測試樣本對模型的一般行為和邊界條件下的行為進(jìn)行充分的測試是必要的[4].

        DNN 模型的決策邏輯無法通過控制流、數(shù)據(jù)流分析等程序分析方法進(jìn)行解析,模型的輸入具有維度高、特征復(fù)雜的特點(diǎn),導(dǎo)致以最大化語句或分支覆蓋為引導(dǎo)的傳統(tǒng)軟件測試數(shù)據(jù)生成技術(shù)不再適用于DNN 模型[5-6].因此針對DNN 模型設(shè)計(jì)有效的測試樣本生成方法是近年來深度學(xué)習(xí)測試領(lǐng)域的研究熱點(diǎn).覆蓋引導(dǎo)的模糊測試(coverage-guided fuzzing,CGF)在傳統(tǒng)軟件測試中表現(xiàn)出較強(qiáng)的錯誤揭示能力,能夠在有限的測試數(shù)據(jù)上自動化產(chǎn)生大量的、具有高代碼覆蓋率的測試數(shù)據(jù)[6].CGF 方法也被廣泛用于DNN 模型的測試樣本生成,以DNN 模型的測試覆蓋率為指導(dǎo)準(zhǔn)則,在原始測試集的基礎(chǔ)上,通過對種子樣本進(jìn)行變異,生成新的測試樣本,揭露原始測試集無法暴露的錯誤,并且使得衍生測試集具有更高的覆蓋率[6-8].

        在DNN 模型測試覆蓋度量指標(biāo)方面,Kim 等人[9]從測試樣本多樣性的角度,提出意外充分性(surprise adequacy,SA)指標(biāo),該指標(biāo)量化單個測試樣本相對訓(xùn)練集的“意外性”.在此基礎(chǔ)上設(shè)計(jì)意外覆蓋(surprise coverage,SC)準(zhǔn)則,度量測試的充分程度.意外充分性是針對單個測試樣本的指標(biāo),用于量化測試樣本與訓(xùn)練集在DNN 模型內(nèi)部神經(jīng)元輸出方面的差異.意外充分性值越低,表明該測試樣本與訓(xùn)練集的神經(jīng)元輸出較為相似;值越高,表明該測試樣本與訓(xùn)練集的神經(jīng)元輸出值差異越大,更有可能揭示DNN 模型隱藏的錯誤[9-11].盡管已提出的意外充分性指標(biāo)能夠捕捉測試樣本相較于訓(xùn)練集的意外程度,但由于指標(biāo)在度量時需要將DNN 模型一層的全部神經(jīng)元的輸出作為特征,執(zhí)行時間開銷較大[12].計(jì)算效率極大依賴于模型的規(guī)模,特定網(wǎng)絡(luò)層的神經(jīng)元數(shù)量越多,執(zhí)行時間開銷越大.此外,已提出的意外充分性度量指標(biāo)未考慮神經(jīng)元與模型決策結(jié)果之間的因果關(guān)系,即忽略神經(jīng)元輸出值對模型決策結(jié)果的貢獻(xiàn)程度[13-14].

        當(dāng)前CGF 方法主要采用神經(jīng)元覆蓋[7]、強(qiáng)神經(jīng)元激活覆蓋[15]等結(jié)構(gòu)性測試覆蓋準(zhǔn)則作為引導(dǎo),較少考慮單個樣本的揭錯能力,缺乏基于意外充分性的測試樣本生成方法.此外,種子測試樣本是影響DNN模型測試樣本生成有效性的關(guān)鍵.然而已有測試樣本生成方法多采用隨機(jī)的方式篩選種子樣本,忽略對種子樣本揭錯能力的考慮;同時,篩選種子樣本時未充分覆蓋原始測試集的全部類別,生成的測試樣本多樣性不足.因此,利用覆蓋引導(dǎo)的模糊測試思想,將樣本的意外充分性作為引導(dǎo),在生成對抗樣本的同時,能夠最大化模型的意外覆蓋率,即生成豐富多樣的測試樣本,進(jìn)一步探索模型的輸入空間,以提升測試充分性.

        針對上述問題,本文提出了意外充分性引導(dǎo)的深度神經(jīng)網(wǎng)絡(luò)(surprise adequacy-guided deep neural network,DeepSA)測試樣本生成方法.考慮到對于決策結(jié)果影響較大的重要神經(jīng)元能夠刻畫模型的決策邏輯,DNN模型在相似的樣本上的決策邏輯很大程度上具有一定的相似性,利用重要神經(jīng)元的輸出值作為特征,從而可以更精準(zhǔn)地刻畫樣本間的差異程度.因此DeepSA首先篩選出對于決策結(jié)果影響較大的神經(jīng)元,利用這些神經(jīng)元的輸出改進(jìn)意外充分性指標(biāo),并進(jìn)一步提升計(jì)算效率.其次,基于測試樣本的意外充分性選取種子樣本;為了使得生成的樣本能夠探索模型的不同內(nèi)部邏輯,選取種子樣本時覆蓋原始測試樣本的所有類別.最后,利用覆蓋引導(dǎo)的模糊測試思想,將樣本的意外充分性和模型預(yù)測的類別概率間差異作為聯(lián)合優(yōu)化目標(biāo),利用梯度上升算法迭代產(chǎn)生擾動,對種子樣本進(jìn)行變異,生成新的測試樣本.

        本文在5 組經(jīng)典的深度學(xué)習(xí)數(shù)據(jù)集和模型上對DeepSA 開展了實(shí)驗(yàn)評估,實(shí)驗(yàn)對象涵蓋4 個分類模型和1 個回歸模型.實(shí)驗(yàn)結(jié)果表明,改進(jìn)的意外充分性指標(biāo)能夠精準(zhǔn)地捕捉異常的測試樣本,并進(jìn)一步提升計(jì)算效率.在測試樣本生成方面,在最好情況下,LeNet4 模型與DeepGini[16]和RobOT[17]相比,基于DeepSA 種子選擇策略生成的衍生測試集的意外覆蓋率提升幅度分別為29.9%和95.4%.Fashion-LeNet5模型相比于DeepXplore[7]和DLFuzz[8],基于DeepSA種子選擇策略生成的衍生測試集的意外覆蓋率提升了33.7%和26.5%.

        本文的主要貢獻(xiàn)可總結(jié)為4 點(diǎn):

        1)提出了意外充分性引導(dǎo)的測試樣本生成方法,基于意外充分性指標(biāo)選取種子樣本,并將樣本的意外充分性作為反饋,迭代引導(dǎo)測試樣本的生成.該方法能夠在生成對抗樣本的同時提升意外覆蓋率.

        2)改進(jìn)了意外充分性指標(biāo),利用對于決策結(jié)果影響較大的神經(jīng)元的輸出值,量化模型在測試樣本和訓(xùn)練樣本上決策的差異;改進(jìn)的指標(biāo)可減少測試集意外充分性計(jì)算的時間開銷.

        3)在4 種公開圖像數(shù)據(jù)集和5 個DNN 模型上驗(yàn)證了所提方法的有效性.在4 個分類模型上,相比于已有方法,DeepSA 生成的衍生測試集的意外覆蓋率提升達(dá)到23.4%,7.5%,3.9%,33.7%.

        4)基于Tensorflow1.10.0,Keras2.2.0 等框架 實(shí)現(xiàn)了DeepSA,方法實(shí)現(xiàn)源代碼及DeepSA 生成的測試樣本已共享至網(wǎng)址①https://github.com/TestingA?Group/DeepSA,以方便其他研究者開展后續(xù)研究.

        1 背景知識

        1.1 覆蓋引導(dǎo)的深度神經(jīng)網(wǎng)絡(luò)模糊測試

        受傳統(tǒng)測試覆蓋思想的啟發(fā),已有研究學(xué)者提出了多種基于神經(jīng)元輸出值的結(jié)構(gòu)性測試覆蓋指標(biāo),以此定義測試數(shù)據(jù)對于 DNN 模型的覆蓋率.例如,神經(jīng)元覆蓋[7]、K多段區(qū)域神經(jīng)元覆蓋[15]、強(qiáng)神經(jīng)元激活覆蓋[15]、激活路徑覆蓋[18]、t-路組合稠密覆蓋[19]、狀態(tài)覆蓋[20]等.在此基礎(chǔ)上,研究人員提出面向DNN模型的CGF 技術(shù),通過執(zhí)行待測DNN 模型,基于覆蓋率和模型預(yù)測結(jié)果,指導(dǎo)模糊測試過程[21].

        CGF 技術(shù)首先依據(jù)種子選擇策略選取測試樣本,然后依據(jù)變異策略對種子樣本進(jìn)行變異,生成新的測試數(shù)據(jù),旨在揭露原始測試集無法暴露的錯誤,并且使得衍生測試集具有更高的測試覆蓋率.變異策略直接影響CGF 方法的錯誤揭示能力,通常采用基于梯度的變異方法、基于神經(jīng)網(wǎng)絡(luò)的變異方法、基于搜索的變異方法等.基于梯度的變異方法將種子樣本的變異建模為聯(lián)合優(yōu)化問題進(jìn)行求解,即生成使得結(jié)構(gòu)性覆蓋最大化并且模型輸出錯誤結(jié)果的樣本,通過設(shè)計(jì)損失函數(shù)作為優(yōu)化目標(biāo),在最大化目標(biāo)的驅(qū)動下,采用梯度上升等算法迭代產(chǎn)生擾動,將擾動添加到種子樣本中生成新的測試樣本.

        1.2 意外充分性與意外覆蓋

        Kim 等人[9]從非結(jié)構(gòu)性角度引入了意外充分性的概率,提出了基于似然的意外充分性(likelihoodbased surprise adequacy,LSA)和基于距離的意外充分性(distance-based surprise adequacy,DSA),在此基礎(chǔ)上度量測試集的意外覆蓋率.本節(jié)主要介紹意外充分性度量指標(biāo)及意外覆蓋準(zhǔn)則.

        首先給出相關(guān)符號的定義,給定測試樣本x,表示DNN模型第l層全部神經(jīng)元的輸出值構(gòu)成的向量,為訓(xùn)練集T中所有樣本的神經(jīng)元輸出值向量構(gòu)成的集合;D(x)為模型預(yù)測的測試樣本x的類別,TD(x)表示與該測試樣本屬于同一類別的訓(xùn)練樣本子集.

        1)基于似然的意外充分性.給定測試樣本x,該指標(biāo)利用核密度估計(jì)來估計(jì)DNN 模型D在訓(xùn)練過程中出現(xiàn)相似樣本的可能性.其定義為:

        其中K為高斯核函數(shù),H為帶寬.對于分類模型,可利用TD(x)替換公式中的T.LSA指標(biāo)表明與訓(xùn)練集差異較大的測試樣本的概率密度函數(shù)值較小.

        2)基于距離的意外充分性.該指標(biāo)基于單個測試樣本的神經(jīng)元輸出向量與訓(xùn)練樣本的神經(jīng)元輸出向量間的歐氏距離來量化樣本間的差異.

        其中xa表示與x距離最近且屬于同類別的訓(xùn)練樣本,xb表示與xa距離最近且屬于不同類別的訓(xùn)練樣本.DSA指標(biāo)表明越接近2 個類間決策邊界的測試樣本與訓(xùn)練集的差異越大.由于DSA指標(biāo)利用樣本間的距離刻畫DNN 模型類別間的決策邊界,因此該指標(biāo)僅適用于分類模型.

        3)意外覆蓋.給定一個測試集,L為測試集的SA值下界,U為預(yù)先設(shè)置的SA值上界,將[L,U]區(qū)間平均分成k段,Si表示第i段;若測試樣本x計(jì)算出的DSA值或LSA值位于段Si內(nèi),則該段被覆蓋.意外覆蓋計(jì)算被測試集覆蓋的段的比例為:

        其中測試集對應(yīng)的SC值越高,則表明該測試集更加多樣化,既包含與訓(xùn)練數(shù)據(jù)相似的輸入,又包含與訓(xùn)練數(shù)據(jù)具有差異的輸入.DSC和LSC分別表示基于DSA指標(biāo)和LSA指標(biāo)度量的意外覆蓋準(zhǔn)則.

        2 意外充分性引導(dǎo)的測試樣本生成

        2.1 方法框架

        本文所提出的DeepSA 方法的框架如圖1 所示,首先引入分層相關(guān)性傳播(layer-wise relevance propagation,LRP)算法[22-23],識別對于DNN 模型決策結(jié)果貢獻(xiàn)大的重要神經(jīng)元,將這些神經(jīng)元的輸出值作為特征,改進(jìn)意外充分性指標(biāo).然后基于測試樣本的意外充分性選取種子樣本;采用基于梯度的種子樣本變異方法,利用梯度上升算法對目標(biāo)損失函數(shù)求解產(chǎn)生擾動,生成中間樣本;將中間樣本的意外充分性作為反饋,指導(dǎo)后續(xù)測試樣本的生成并不斷迭代.在生成有效的對抗性測試樣本的同時,最大化模型的意外覆蓋率,以探索DNN 模型的輸入空間.

        Fig.1 Framework of DeepSA approach圖1 DeepSA 方法框架

        2.2 重要神經(jīng)元篩選

        DeepSA 選取網(wǎng)絡(luò)中的特定隱藏層作為目標(biāo)層,利用LRP 算法[22],輸入訓(xùn)練集,利用神經(jīng)元的正向輸出值和神經(jīng)元間的權(quán)重,度量DNN 模型中各神經(jīng)元與輸出結(jié)果的相關(guān)性得分,捕捉網(wǎng)絡(luò)中每個神經(jīng)元對決策的實(shí)際貢獻(xiàn),識別目標(biāo)層中的重要神經(jīng)元.

        以圖像分類算法為例,將一張圖像輸入至DNN模型中,LRP 算法利用深度泰勒分解技術(shù),以神經(jīng)網(wǎng)絡(luò)中神經(jīng)元間的權(quán)重為引導(dǎo),結(jié)合神經(jīng)元的正向輸出值,將模型輸出層的預(yù)測值逐層分解并反向傳播到輸入空間,為圖像輸入的每個像素分配與輸出結(jié)果相關(guān)的貢獻(xiàn)值,從而確定輸入和輸出之間的相關(guān)性.DeepSA 將訓(xùn)練樣本x輸入至DNN 模型中,獲取輸出的樣本x所屬類別對應(yīng)的概率f(x),每層網(wǎng)絡(luò)層中所有神經(jīng)元的相關(guān)性得分之和等于f(x).針對每個訓(xùn)練樣本,LRP 算法將模型的輸出逐層反向傳播,依據(jù)式(4)計(jì)算目標(biāo)層中每個神經(jīng)元的相關(guān)性得分.

        針對目標(biāo)層中的每個神經(jīng)元,DeepSA 將其在每個訓(xùn)練樣本上計(jì)算出的相關(guān)性得分進(jìn)行累加,得到每個神經(jīng)元在訓(xùn)練集上的相關(guān)性得分;選取每層相關(guān)性得分為前m%的神經(jīng)元作為重要神經(jīng)元,構(gòu)成目標(biāo)層重要神經(jīng)元集合,表示為針對不同的DNN模型,可通過實(shí)驗(yàn)找到m的最優(yōu)取值.

        2.3 意外充分性引導(dǎo)的測試樣本生成

        DeepSA 基于CGF 的思想,將樣本的意外充分性作為反饋,迭代引導(dǎo)測試樣本的生成.

        2.3.1 改進(jìn)的意外充分性

        意外充分性指標(biāo)利用DNN 模型產(chǎn)生的中間表示,即樣本的神經(jīng)元輸出值,量化單個測試樣本與訓(xùn)練集的差異,能夠發(fā)現(xiàn)使得模型產(chǎn)生錯誤預(yù)測行為的測試樣本.DeepSA 將目標(biāo)層中重要神經(jīng)元的輸出值作為特征,利用代替式(1)(2)中的Nl,以度量測試樣本的LSA值和DSA值.DeepSA 改進(jìn)的2 種意外充分性度量指標(biāo)表示為LSAv和DSAv,對應(yīng)的意外覆蓋指標(biāo)表示為LSCv和DSCv.

        2.3.2 種子測試樣本選擇

        CGF 方法需要從原始測試集中選取一定數(shù)量的樣本作為種子樣本,依據(jù)變異策略對其進(jìn)行變異.種子樣本是模糊測試的基礎(chǔ),對于測試的有效性具有關(guān)鍵影響[6].多樣性的種子測試樣本能夠提升模糊測試探索DNN 模型內(nèi)部的能力;并且對具有錯誤揭示能力的種子樣本進(jìn)行變異生成新的測試樣本,能夠盡可能多地揭露原始測試集無法暴露的錯誤.因此,DeepSA 結(jié)合種子樣本的類別標(biāo)簽,基于測試樣本的意外充分性LSAv值和DSAv值優(yōu)先篩選具有揭錯能力的種子測試樣本作為后續(xù)測試樣本迭代生成的基礎(chǔ).

        DeepSA 設(shè)計(jì)2 種種子測試樣本選擇策略.第1種選擇策略表示為ST-Dall 和ST-Lall,即分別依據(jù)DSAv值和LSAv值將測試樣本進(jìn)行降序排序,選取前num個樣本作為種子測試樣本,其中num為預(yù)先定義的種子測試樣本數(shù)量.第2 種是考慮類別標(biāo)簽的選擇策略ST-Dper 和ST-Lper.由于不同類別的種子測試樣本能夠探索模型的不同內(nèi)部邏輯,受沐燕舟等人[24]的工作啟發(fā),DeepSA 在選擇種子測試樣本時,不僅考慮意外充分性,而且覆蓋到原始測試集中包含的全部測試樣本類別.需要說明的是,沐燕舟等人[24]提出的測試樣本選擇方法旨在篩選小規(guī)模的測試子集,以精確估計(jì)原始測試集的準(zhǔn)確率.盡管該方法與DeepSA 在測試樣本選擇上的目標(biāo)不同,但其核心思想與動機(jī)類似,即篩選測試樣本時盡可能多地覆蓋到原始測試集中包含的測試樣本類別.具體而言,ST-Dper 和ST-Lper 種子樣本選擇策略以樣本的真實(shí)標(biāo)簽作為區(qū)分測試樣本類別的依據(jù),針對每個類別,算法選取相同數(shù)量的樣本作為種子樣本,以保證所選的種子測試樣本集覆蓋全部的樣本類別.種子測試樣本選擇算法如算法1 所示.

        算法1.種子測試樣本選擇算法.

        種子測試樣本選擇算法將被測DNN 模型D、訓(xùn)練集train_data、測試集test_data以及測試樣本的類別標(biāo)簽集合labels作為輸入;輸出種子測試樣本集針對每個類別,算法選取相同數(shù)量的樣本作為種子樣本,以保證所選的種子測試樣本集覆蓋全部的測試樣本類別,num_label表示每個類別需要篩選出的種子樣本數(shù)量.算法首先將測試集test_data輸入至DNN模型中,比較樣本的真實(shí)標(biāo)簽和模型預(yù)測結(jié)果,篩選被模型正確預(yù)測的測試樣本子集,存儲至test_corr中(行③);針對每種類別標(biāo)簽la,篩選屬于該類別并被DNN 模型正確預(yù)測的測試樣本,構(gòu)成測試子集label_corr(行⑤).然后利用函數(shù)SA_var()計(jì)算測試樣本子集中各樣本的LSAv值或DSAv值,結(jié)果存儲在意外充分性值列表sa_list中(行⑥~⑧).接著依據(jù)意外充分性值,通過函數(shù)sort()將類別標(biāo)簽為la的測試樣本進(jìn)行降序排序,選擇前num_label個測試樣本作為種子樣本,存儲在seeds_label中(行⑨).最后將各類別篩選出的種子樣本存儲在種子測試樣本集seeds_list中(行⑩).

        2.3.3 測試樣本生成

        DeepSA 采用基于梯度的變異方法[6,8],將如何對種子樣本迭代產(chǎn)生擾動建模成聯(lián)合優(yōu)化問題,通過設(shè)計(jì)目標(biāo)損失函數(shù),將目標(biāo)損失函數(shù)作為優(yōu)化目標(biāo),采用梯度上升算法最大化目標(biāo)損失函數(shù),產(chǎn)生擾動,迭代生成測試樣本.目標(biāo)損失函數(shù)定義為:

        其中給定樣本x′,DNN 模型Softmax 層輸出的概率分布向量為(P(c),P(c1),…,P(cm)),各分量為模型預(yù)測的樣本屬于各類別的概率.P(c)表示概率分布向量中最大的概率值,c為其對應(yīng)的類別標(biāo)簽;ci(1≤i≤k)表示預(yù)測概率低于c的前i個類標(biāo)簽之一,k=4.目標(biāo)損失函數(shù)的前半部分旨在使得生成的測試樣本跨越DNN 模型類別間的決策邊界[17],使模型產(chǎn)生錯誤分類.SAv(x′) 表示樣本x′的意外充分性LSAv值或DSAv值,用于增大測試樣本相對于訓(xùn)練集的重要神經(jīng)元輸出差異.算法2 展示了測試樣本生成的偽代碼.

        算法2.意外充分性引導(dǎo)的測試樣本生成算法.

        算法2 將被測DNN 模型D、種子測試樣本集合seeds_list、訓(xùn)練集train_data以及預(yù)先設(shè)置的學(xué)習(xí)速率lr作為輸入;算法輸出為生成的對抗樣本adv_samples.算法使用s_list存儲每個種子產(chǎn)生的中間樣本,對于s_list中的每個樣本,算法首先得到模型預(yù)測的類別標(biāo)簽c_orig、最大預(yù)測概率p以及低于p的前K個預(yù)測概率p_topk(行⑥);其次利用函數(shù)SA_var()度量該樣本的意外充分性sa_orig、目標(biāo)值obj以及目標(biāo)對原始樣本的梯度grads(行⑦~⑨).然后依據(jù)梯度構(gòu)造中間樣本x′(行?),其中函數(shù)random()用于產(chǎn)生隨機(jī)值,防止持續(xù)迭代的過程中產(chǎn)生相同的微小擾動.將目標(biāo)obj對原始樣本的梯度grads乘以學(xué)習(xí)速率lr,再乘以隨機(jī)值(random()+0.5),作為添加到原始樣本上的微小擾動,以產(chǎn)生中間樣本x′.之后算法獲取模型預(yù)測的該中間樣本的類別c_fup、意外充分性sa_fup以及與原始樣本的距離dis(行?~?).依據(jù)意外充分性值是否能夠提升以及樣本間的距離約束來決定生成的中間樣本是否應(yīng)該被保留,用于下一輪迭代生成測試樣本(行?~?).函數(shù)dis_constraint()用于計(jì)算樣本間的范數(shù)距離,dis表示樣本間的距離.判定中間樣本與原始樣本的預(yù)測類別,若不一致則該中間樣本即為對抗性測試樣本,添加到adv_samples中(行?~?).經(jīng)過多輪迭代,生成更多的對抗性測試樣本.由于生成的中間樣本都需要度量其意外充分性值,DeepSA 方法篩選重要神經(jīng)元,能夠減少中間樣本意外充分性度量的時間開銷,以提升測試樣本生成的效率.

        算法設(shè)置種子測試樣本的總數(shù)量num=100,迭代次數(shù)iters=5,學(xué)習(xí)速率lr=0.1,距離閾值 ε=0.5;設(shè)置目標(biāo)函數(shù)權(quán)值 λ=1,λ值越大表明算法更傾向于生成能夠提升意外充分性的樣本.為方便描述算法2 的時間復(fù)雜度,使用sj表示種子測試樣本集seeds_list中第j個種子樣本對應(yīng)的中間樣本列表s_list中樣本的數(shù)量,算法2 的時間復(fù)雜度表示為

        3 實(shí)驗(yàn)設(shè)計(jì)

        3.1 研究問題

        1)問題1:DeepSA 方法是否能夠有效地生成測試樣本.

        問題1 分別從生成的對抗樣本數(shù)量和意外覆蓋率提升2 個方面評估DeepSA 測試樣本生成方法的有效性.由于DeepSA 結(jié)合DNN 模型輸出的測試樣本類別概率差異及改進(jìn)的意外充分性設(shè)計(jì)目標(biāo)優(yōu)化函數(shù),本文提出的測試樣本生成方法僅適用于分類模型.針對問題1,本文僅在分類模型上開展實(shí)驗(yàn)分析.

        實(shí)驗(yàn)將DeepSA 分別與DeepXplore[7]和DLFuzz[8]對比,分析在相同的迭代停止條件下,DeepSA 是否能夠生成更多的對抗性測試樣本,并提升測試集的意外覆蓋率.DeepXplore 與DLFuzz 均采用基于梯度的變異方法.DeepXplore 旨在生成能夠最大化不同DNN 模型輸出結(jié)果之間的差異和神經(jīng)元覆蓋率的對抗性測試樣本.DLFuzz 將最大化神經(jīng)元覆蓋和最大化模型預(yù)測錯誤的概率作為聯(lián)合目標(biāo)函數(shù),生成對抗性測試樣本.DeepXplore 和DLFuzz 隨機(jī)選取樣本作為種子樣本,種子樣本隨機(jī)選擇策略表示為random.

        為了進(jìn)一步分析DeepSA 提出的種子測試樣本選擇策略的有效性,問題1 利用不同的種子測試樣本選擇策略,選取相同數(shù)量的種子測試樣本,對比分析不同種子樣本策略在測試樣本生成上的效果.DeepSA提出的模糊策略分別表示為DFuzz 和LFuzz,即分別利用DSAv和LSAv指標(biāo)設(shè)計(jì)目標(biāo)損失函數(shù).對比實(shí)驗(yàn)基于DFuzz 和LFuzz 模糊策略,分別采用DeepGini[16]提出的基于模型預(yù)測概率的選擇策略以及RobOT[17]提出的基于樣本損失值的BE-ST(bi-end strategy)選擇策略,從原始測試集中篩選種子測試樣本.此外,問題1 進(jìn)一步分析不同種子樣本數(shù)量對測試樣本生成的影響,種子測試樣本數(shù)量分別取50 和100.

        2)問題2:改進(jìn)的意外充分性指標(biāo)是否能夠捕捉異常的測試樣本.

        為了探究以重要神經(jīng)元輸出值為特征改進(jìn)的意外充分性指標(biāo)是否能夠更加精準(zhǔn)地捕捉到異常的測試樣本,問題2 依據(jù)LSAv值或DSAv值將測試樣本降序排序,計(jì)算DNN 模型在具有不同樣本數(shù)量的測試子集上的準(zhǔn)確率或均方誤差(mean squared error,MSE).問題2 在分類模型和回歸模型上開展實(shí)驗(yàn)評估.針對分類模型,測試樣本子集中包含的樣本數(shù)量分別為100,300,500,1 000,2 000,4 000,6 000,8 000.分類模型在測試子集上的準(zhǔn)確率越低,則表明可以捕捉到更多的異常樣本.針對回歸模型,基于改進(jìn)的意外充分性度量值分別構(gòu)建5 個測試樣本子集,包含的樣本數(shù)量分別為100,1 000,2 000,4 000,5 000.采用MSE 評估改進(jìn)的意外充分性指標(biāo)在回歸模型上的效果;回歸模型在測試子集上的MSE 值越高,表明利用該指標(biāo)捕捉到的異常樣本的數(shù)量越多.實(shí)驗(yàn)中,m的取值范圍為10~100,步長設(shè)置為10;m=100 表示選取目標(biāo)層的全部神經(jīng)元,即原始意外充分性指標(biāo)的特征選取方式.

        3)問題3:改進(jìn)的意外充分性度量指標(biāo)的運(yùn)行時間開銷.

        DeepSA 在度量樣本的意外充分性時預(yù)先篩選出重要神經(jīng)元,為了探究以重要神經(jīng)元輸出值為特征是否能夠提升意外充分性計(jì)算的性能,問題3 對比基于不同m取值的測試集意外充分性計(jì)算的時間開銷.從獲取目標(biāo)層神經(jīng)元的輸出開始計(jì)時,直至測試集中所有樣本的意外充分性值度量完畢,不包含DNN模型加載以及測試集、訓(xùn)練集的讀取.m取值的設(shè)置與問題2 中的一致.

        3.2 實(shí)驗(yàn)對象和評測指標(biāo)

        3.2.1 實(shí)驗(yàn)對象

        本文利用MN?ST[25],C?FAR10[26],F(xiàn)ashion-MN?ST[27],Udacity Self-driving Car Challenge[28]圖像數(shù)據(jù)集,在4個分類模型和1 個回歸模型上開展方法的有效性評估,表1 列出了待測模型及數(shù)據(jù)集的詳細(xì)信息.采用的數(shù)據(jù)集被廣泛應(yīng)用在DNN 模型測試的研究中,MN?ST 是手寫數(shù)字0~9 的圖像數(shù)據(jù)集;C?FAR10 數(shù)據(jù)集包含10 種類別的真實(shí)世界中的對象,如鳥類、飛機(jī)等的圖像;Fashion-MN?ST 數(shù)據(jù)集包含10 種類別商品,如裙子、T 恤等的圖像;Udacity Self-driving Car Challenge 數(shù)據(jù)集包含從行駛的汽車擋風(fēng)玻璃上捕獲的攝像頭圖像,被廣泛用于自動駕駛系統(tǒng)的方向盤轉(zhuǎn)向角預(yù)測.表1 中第3 列和第4 列列出了分類模型在測試集上達(dá)到的準(zhǔn)確率以及回歸模型在測試集上的MSE 值.考慮到一些隱藏層中的神經(jīng)元數(shù)量較少,提取出的神經(jīng)元輸出值向量無法精準(zhǔn)區(qū)分樣本間差異,Deep-SA 在選取目標(biāo)層時,重點(diǎn)考慮了層數(shù)較深且包含一定數(shù)量神經(jīng)元的卷積層、激活層或全連接層.

        Table 1 DNN Models and Data Sets表1 DNN 模型和數(shù)據(jù)集

        3.2.2 評估指標(biāo)

        1)對抗性測試樣本數(shù)量.在相同的種子測試樣本數(shù)量、迭代次數(shù)、學(xué)習(xí)速率、樣本距離閾值的情況下,對比分析不同方法生成的對抗性測試樣本數(shù)量.

        2)意外覆蓋率差值.將原始測試集與DeepSA 生成的測試樣本合并為衍生測試集,本文采用原始測試集和衍生測試集在意外覆蓋率上的差值來衡量DeepSA 生成的測試樣本是否能夠提升意外覆蓋.表2展示了本文在度量原始測試集的意外覆蓋率DSCv和LSCv時分別采用的意外充分性上界值和段的數(shù)量.

        Table 2 Parameter Configurations of Surprise Coverage表2 意外覆蓋率的參數(shù)配置

        4 實(shí)驗(yàn)結(jié)果分析

        4.1 測試樣本生成的有效性

        表3 展示了采用不同的模糊策略和種子樣本選擇策略生成的對抗樣本數(shù)量、原始測試集的意外覆蓋率以及衍生測試集對應(yīng)的意外覆蓋率差值.種子樣本數(shù)量均設(shè)置為100.

        Table 3 The Number of Generated Adversarial Examples and Corresponding Surprise Coverage Differences表3 生成的對抗樣本數(shù)量及對應(yīng)的意外覆蓋率差值

        從生成的對抗樣本數(shù)量上看,DeepSA 在LeNet4,LeNet5,Fashion-LeNet5 模型上生成的最多對抗樣本數(shù)量分別為:885,1 607,2 039.在種子樣本數(shù)量和迭代次數(shù)相同的條件下,利用ST-Dper 種子樣本選擇策略和DFuzz 模糊策略,生成的對抗樣本數(shù)量較多.例如,在相同的模糊測試策略DFuzz 下,相比于RobOT 提出的BE-ST 種子選擇策略,利用ST-Dper 策略生成的對抗樣本數(shù)量提升幅度分別達(dá)到82.1%,89.7%,7.5%,68.9%.此外,利用ST-Dper 和ST-Lper 作為種子測試樣本選擇策略生成的對抗樣本的數(shù)量多于采用STDall 及ST-Lall 策略生成的.

        相較于已有的測試樣本生成方法DeepXplore 和DLFuzz,在相同的種子樣本數(shù)量、迭代次數(shù)、迭代停止條件下,DeepSA 在對抗樣本生成數(shù)量上表現(xiàn)較為顯著.具體而言,對于4 個分類模型,DeepSA 相比Deep-Xplore 能夠多生成809,1 529,293,1 975 個對抗樣本;與DLFuzz 相比,DeepSA 能夠多生成662,1 368,34,1 597個對抗樣本.

        從意外覆蓋率差值的角度,基于DeepSA 提出的模糊策略和種子樣本選擇策略生成的衍生測試樣本,能夠有效提升意外覆蓋率.其中,在4 個DNN 模型上,DeepSA 的DSCv提升最大值分別為25.6%,7.7%,5.1%,34.2%.LSCv提升的最大值分別為40.0%,35.0%,6.5%,14.6%.在大多數(shù)情況下,采用ST-Dper 和ST-Lper 作為種子樣本選擇策略,衍生測試集提升的意外覆蓋率更高.例如,在Fashion-LeNet5 模型上,盡管LFuzz+ST-Lper 策略生成的對抗樣本數(shù)量少于LFuzz+STLall 策略生成的,但前者對應(yīng)的意外覆蓋率差值高于后者.在ConvNet 模型上,基于ST-Dper 種子選擇策略生成的對抗樣本數(shù)量略少于使用DeepGini 策略生成的對抗樣本,但意外覆蓋率提升幅度達(dá)4.1%.在LeNet4 模型上,采用ST-Dper 種子選擇策略取得的意外覆蓋率差值(25.6%)高于DeepGini 策略(19.7%)和RobOT 策略(13.1%).上述結(jié)果表明,在篩選種子測試樣本時,覆蓋原始測試集的所有類別能夠生成更加多樣化的樣本,從而提升意外覆蓋率,以進(jìn)一步探索DNN 模型的輸入空間.

        與DeepXplore 和DLFuzz 相比,DeepSA 生成的衍生測試樣本集的意外覆蓋率提升顯著.在4 個分類模型上,相比于DeepXplore,DeepSA 生成的衍生測試樣本集的意外覆蓋率DSCv顯著提升,分別提升了23.4%,7.5%,3.9%,33.7%;LSCv意外覆蓋率差值分別提升了35.2%,31.1%,1.3%,13.4%.與DLFuzz 相比,DeepSA 生成的衍生測試樣本集的DSCv意外覆蓋率差值分別提升了9.8%,6.5%,1.6%,26.5%;除ConvNet模型外,LSCv意外覆蓋率差值分別提升了10.6%,9.2%,10.8%.

        本文基于DFuzz 模糊策略和ST-Dper 種子樣本選擇策略,進(jìn)一步分析不同種子樣本數(shù)量對于測試樣本生成的影響.表4 列出了種子樣本數(shù)量分別為100 和50 時,DeepSA 生成的對抗樣本數(shù)量及衍生測試集的意外覆蓋率差值.結(jié)果表明,隨著種子樣本數(shù)量的增加,生成的對抗樣本數(shù)量和意外覆蓋率差值顯著提升.此外,結(jié)合表3 可以觀察到,與DeepXplore相比,DeepSA 使用僅50 個種子樣本即可生成數(shù)量更多、意外覆蓋率更高的衍生測試樣本.在LeNet4,LeNet5,Fashion-LeNet5 模型上,DeepSA 基于50 個種子樣本生成的對抗樣本數(shù)量及衍生測試樣本集意外覆蓋率的提升均優(yōu)于DLFuzz.

        Table 4 Results of Test Samples Generated by DeepSA with Different Numbers of Seeds表4 不同種子樣本數(shù)量下DeepSA 生成的測試樣本結(jié)果

        綜上,DeepSA 能夠有效地生成對抗性測試樣本,生成的測試樣本能夠提升意外覆蓋率.在選取種子樣本時覆蓋原始測試集中包含的所有測試樣本類別,可以有效地提升衍生測試集的多樣性.

        4.2 改進(jìn)的意外充分性的有效性

        圖2~5 分別展示了4 個待測分類模型在基于LSAv值和DSAv值排序的測試樣本子集的準(zhǔn)確率.DeepSA 通過對具有揭錯能力的種子樣本進(jìn)行變異來迭代生成新的測試樣本,種子樣本數(shù)量設(shè)置為100,因此問題2 重點(diǎn)關(guān)注DNN 模型在LSAv值和DSAv值最高的前100 個測試樣本的準(zhǔn)確率.圖2~5 分別展示了m=100 以及其余9 種m取值的最優(yōu)前3 個配置的準(zhǔn)確率結(jié)果.圖2~5 中的實(shí)線表示模型在基于LSAv值排序的測試樣本集上的準(zhǔn)確率變化;虛線表示各模型在基于DSAv值排序的測試樣本集上的準(zhǔn)確率變化.

        Fig.2 Accuracy of LeNet4 model on selected test subsets based on LSAv values and DSAv values圖2 LeNet4 模型在基于LSAv 值和DSAv 值篩選的測試樣本子集上的準(zhǔn)確率

        Fig.3 Accuracy of LeNet5 model on selected test subsets based on LSAv values and DSAv values圖3 LeNet5 模型在基于LSAv 值和DSAv 值篩選的測試樣本子集上的準(zhǔn)確率

        Fig.4 Accuracy of Fashion-LeNet5 model on selected test subsets based on LSAv values and DSAv values圖4 Fashion-LeNet5 模型在基于LSAv 值和DSAv 值篩選的測試樣本子集上的準(zhǔn)確率

        Fig.5 Accuracy of ConvNet model on selected test subsets based on LSAv values and DSAv values圖5 ConvNet 模型在基于LSAv 值和DSAv 值篩選的測試樣本子集上的準(zhǔn)確率

        從捕捉異常測試樣本的角度,改進(jìn)的意外充分性度量指標(biāo)LSAv及DSAv能夠有效提升原始指標(biāo)的效果.通過分析圖2~5 中呈現(xiàn)的準(zhǔn)確率結(jié)果可以看出,LeNet4,LeNet5,Fashion-LeNet5,ConvNet 模型在LSAv值最高的前100 個測試樣本上的最低準(zhǔn)確率分別在m取值為70,80,80,80 時得到.與LSA指標(biāo)相比,LSAv指標(biāo)取得的準(zhǔn)確率分別降低了5 個百分比,2 個百分比,4 個百分比,1 個百分比.例如,LeNet4 模型在LSA值最高的前100 個測試樣本上的最高準(zhǔn)確率為67%,在LSAv值最高的前100 個測試樣本上的最低準(zhǔn)確率為62%,準(zhǔn)確率降低了5 個百分點(diǎn).針對DSAv指標(biāo),LeNet4 和Fashion-LeNet5 模型在DSAv值最高的前100 個測試樣本上的最低準(zhǔn)確率分別在m取值為90 和40 時得到.例如,F(xiàn)ashion-LeNet5 模型在m=100 時的準(zhǔn)確率為45%(模型DSAv值最高的前100 個樣本上的最高準(zhǔn)確率),而在m=40 時的準(zhǔn)確率降低到38.0%,準(zhǔn)確率降低的幅度達(dá)到15.6 個百分點(diǎn).在LeNet5 和ConvNet 模型上,DSA指標(biāo)的準(zhǔn)確率分別為58 個百分點(diǎn)和54%,而在最佳m配置下,DSAv指標(biāo)取得的準(zhǔn)確率為55%和51%,相比DSA指標(biāo)均降低了3 個百分點(diǎn)的準(zhǔn)確率.

        隨著測試樣本數(shù)量的增多,LSAv和DSAv指標(biāo)與原始意外充分性指標(biāo)的結(jié)果趨于接近.當(dāng)測試樣本數(shù)量為4 000,6 000,8 000 時,改進(jìn)的意外充分性指標(biāo)和原始指標(biāo)在LeNet4 和LeNet5 模型上取得了一致的結(jié)果.隨著意外充分性值較低的樣本數(shù)量增多,模型的準(zhǔn)確率有所提升.值得注意的是,LSAv指標(biāo)在4個分 類模 型上更傾向于較大的m取值(m>60).當(dāng)m>70 時,DSAv指標(biāo)在LeNet4,LeNet5,ConvNet 模型上效果較好.后續(xù)還將進(jìn)一步探索m取值的自動化配置方法.

        表5 展示了待測回歸模型Dave_orig 在基于LSAv值排序的多個測試樣本集上的MSE 值.可以看出,m=100 時,Dave_orig 模型在LSA值最高的前100 個測試樣本上的MSE 值為0.363;m=80 時,LSAv指標(biāo)取得的MSE 值為0.370,是所有m配置下的最高值.測試樣本數(shù)量分別為1 000,2 000,4 000,5 000 時,LSAv與LSA指標(biāo)取得的MSE 結(jié)果基本一致.

        Table 5 MSE of Dave_orig Model on Selected Test Samples Based on LSAv Values表5 Dave_orig 模型在基于LSAv 值選擇的測試樣本上的均方誤差

        上述結(jié)果表明,利用重要神經(jīng)元的輸出值作為特征能夠精準(zhǔn)刻畫樣本間的差異,以此捕捉到異常的測試樣本.利用深度神經(jīng)網(wǎng)絡(luò)可解釋性算法LRP篩選出的對于決策結(jié)果影響較大的重要神經(jīng)元能夠刻畫模型的決策邏輯,模型在差異較大的樣本上的決策邏輯不同,則重要神經(jīng)元輸出值向量間的差異也就越大.測試樣本的LSAv值和DSAv值越高,模型越難準(zhǔn)確地預(yù)測,該樣本更有可能是異常樣本.在測試樣本的真實(shí)類別標(biāo)簽未知的情況下,利用LSAv和DSAv指標(biāo)可預(yù)先精準(zhǔn)識別出可能被模型錯誤分類的異常樣本.

        4.3 改進(jìn)的意外充分性的運(yùn)行時間開銷

        圖6 和圖7 分別展示了待測DNN 模型在度量測試集的DSAv值和LSAv值的時間開銷.從圖6~7 中可看出,給定相同的測試數(shù)據(jù)集,LSAv指標(biāo)的運(yùn)行時間開銷更小,性能更好.例如,在m=80 時,DSAv在ConvNet,LeNet5,LeNet4,Fashion-LeNet5 模型上的運(yùn)行時間開銷分別是LSAv指標(biāo)的3.0,3.9,4.4,4.5 倍.其潛在原因在于度量單個測試樣本的DSAv值時需要計(jì)算2 次樣本間的神經(jīng)元輸出值差異,運(yùn)行的時間開銷更高.

        Fig.6 Time cost of measuring DSAv values with selecting different number of important neurons圖6 選取不同數(shù)量的重要神經(jīng)元度量DSAv 值的時間開銷

        Fig.7 Time cost of measuring LSAv values selecting with different number of important neurons圖7 選取不同數(shù)量的重要神經(jīng)元度量LSAv 值的時間開銷

        4.4 有效性威脅

        1)內(nèi)部有效性威脅.其主要體現(xiàn)在DeepSA 方法的實(shí)現(xiàn)、對比方法的實(shí)現(xiàn)以及實(shí)驗(yàn)結(jié)果分析評估的代碼實(shí)現(xiàn).為了有效減少這些威脅,DeepSA 方法在篩選重要神經(jīng)元時采用了Alber 等人[29]開發(fā)的iNNvestigate 庫,該庫集成了多個DNN 模型可解釋性技術(shù),被廣泛應(yīng)用于模型可解釋性相關(guān)的研究中,具備一定的可靠性.DeepSA 方法采用對比方法所貢獻(xiàn)的開源鏈接上的最新版本源代碼.此外,仔細(xì)檢查了用于實(shí)驗(yàn)結(jié)果分析評估的代碼實(shí)現(xiàn),確保結(jié)果無誤.

        2)外部有效性威脅.其主要來源于本文所采用的深度學(xué)習(xí)數(shù)據(jù)集以及待測的DNN 模型.由于DeepSA 設(shè)計(jì)的聯(lián)合優(yōu)化目標(biāo)僅適用于分類模型,本文僅在圖像領(lǐng)域的分類模型上開展了測試樣本生成方面的實(shí)驗(yàn).后續(xù)還將進(jìn)一步研究面向回歸模型的CGF 方法.本文選取4 種公開圖像數(shù)據(jù)集、5 個DNN模型開展實(shí)驗(yàn),涵蓋4 個分類模型和1 個回歸模型,實(shí)驗(yàn)數(shù)據(jù)和被測模型被廣泛應(yīng)用于DNN 模型的測試中.之后的研究中還將選擇任務(wù)更復(fù)雜的圖像領(lǐng)域模型以及其他領(lǐng)域的模型作為實(shí)驗(yàn)對象,開展更廣泛的研究.

        3)結(jié)構(gòu)有效性威脅.其主要來源于實(shí)驗(yàn)中DeepSA方法運(yùn)行時指定的參數(shù).DeepSA 方法運(yùn)行時涉及到的主要參數(shù)包括:篩選的重要神經(jīng)元占神經(jīng)元總數(shù)的比例、樣本生成迭代次數(shù)、學(xué)習(xí)速率、樣本間距離閾值以及目標(biāo)函數(shù)權(quán)值.本文根據(jù)相關(guān)CGF 方法中的參數(shù)推薦,對測試樣本生成方面的參數(shù)進(jìn)行了設(shè)計(jì).在未來工作中,還將繼續(xù)探究不同參數(shù)選擇對方法效果和性能的影響.此外,選擇待測DNN 模型的哪一隱藏層作為目標(biāo)層也會對實(shí)驗(yàn)結(jié)果產(chǎn)生影響.針對不同的DNN 模型,實(shí)驗(yàn)中選取了多個隱藏層作為目標(biāo)層,考慮到層數(shù)較深的隱藏層包含的神經(jīng)元數(shù)量更多,且神經(jīng)元的輸出更能刻畫樣本復(fù)雜且多樣的特征,DeepSA 重點(diǎn)考慮了層數(shù)較深的卷積層和全連接層.

        5 相關(guān)工作

        5.1 DNN 模型測試覆蓋準(zhǔn)則

        軟件的測試充分性是評價(jià)與保障軟件質(zhì)量的關(guān)鍵指標(biāo),傳統(tǒng)軟件測試已形成一套相對成熟的測試充分性度量準(zhǔn)則,如分支覆蓋、條件覆蓋、MC/DC 覆蓋等.然而,DNN 模型的構(gòu)成機(jī)理和運(yùn)行原理不同于傳統(tǒng)軟件,針對傳統(tǒng)軟件的測試覆蓋準(zhǔn)則難以直接運(yùn)用于DNN 模型,研究學(xué)者提出了面向DNN 模型的結(jié)構(gòu)性和非結(jié)構(gòu)性測試覆蓋準(zhǔn)則,用于評估測試的充分性.測試集的覆蓋率越高,越有可能揭露模型中隱藏的錯誤.

        結(jié)構(gòu)性覆蓋準(zhǔn)則用于量化DNN 模型內(nèi)部結(jié)構(gòu)被測試數(shù)據(jù)集覆蓋的程度[15,19,30].Pei 等人[7]提出了首個針對DNN 的白盒測試覆蓋準(zhǔn)則—神經(jīng)元覆蓋,該準(zhǔn)則量化測試樣本激活的神經(jīng)元數(shù)量與DNN 中神經(jīng)元總數(shù)的比例.Ma 等人[15]從神經(jīng)元的輸出分布、活躍神經(jīng)元的序列等角度,定義了神經(jīng)元級和網(wǎng)絡(luò)層級的多粒度覆蓋準(zhǔn)則,包括K多段區(qū)域神經(jīng)元覆蓋、神經(jīng)元邊界覆蓋、Top-K神經(jīng)元覆蓋等.Gerasimou等人[13]設(shè)計(jì)了神經(jīng)元重要性驅(qū)動的測試覆蓋準(zhǔn)則?DC,在訓(xùn)練數(shù)據(jù)集上引入LRP 算法,獲取對于決策結(jié)果貢獻(xiàn)較大的神經(jīng)元;通過聚類算法將每個重要神經(jīng)元的激活值劃分為簇;?DC 準(zhǔn)則分析重要神經(jīng)元的激活值簇構(gòu)成的組合被測試集覆蓋的比例.Xie 等人[14]將DNN 隱藏層中對決策有關(guān)鍵貢獻(xiàn)的神經(jīng)元集合構(gòu)成序列,作為模型的關(guān)鍵決策路徑,分別從決策路徑結(jié)構(gòu)和決策路徑中神經(jīng)元激活值的角度,提出基于結(jié)構(gòu)的神經(jīng)元路徑覆蓋和基于激活值的神經(jīng)元路徑覆蓋.

        當(dāng)前非結(jié)構(gòu)性覆蓋準(zhǔn)則主要是指意外覆蓋,Kim等人[9]從測試樣本多樣性的角度,衡量單個測試樣本與訓(xùn)練集的差異,分析測試集的意外充分性值分布,基于此設(shè)計(jì)意外覆蓋準(zhǔn)則.本文聚焦DNN 模型的非結(jié)構(gòu)性覆蓋,以測試樣本的意外充分性為引導(dǎo),生成能夠提升意外覆蓋率的對抗樣本.

        5.2 測試樣本生成

        目前針對DNN 模型的測試樣本生成方法分為2 類.第1 類是基于覆蓋的測試樣本生成方法,將傳統(tǒng)軟件測試的思路遷移到DNN 模型的測試中,通過對給定的種子樣本進(jìn)行變換,以最大化模型覆蓋率為目標(biāo)生成測試樣本;第2 類是基于對抗的測試樣本生成方法,通過向原始樣本添加微小擾動的方式產(chǎn)生對抗樣本,使DNN 模型產(chǎn)生錯誤分類結(jié)果[31-32].第1 類方法更關(guān)注生成的測試樣本是否對模型內(nèi)部結(jié)構(gòu)實(shí)現(xiàn)了覆蓋;第2 類方法則更關(guān)注生成的測試樣本是否能夠使模型產(chǎn)生錯誤輸出.與對抗樣本生成不同,DeepSA 以測試覆蓋率為指導(dǎo)原則,構(gòu)造變化微小、意外充分性值更高的測試樣本,使得衍生測試樣本集具有更高的測試覆蓋率,旨在實(shí)現(xiàn)測試的充分性.本節(jié)主要介紹基于覆蓋的測試樣本生成的研究現(xiàn)狀.

        在基于覆蓋的測試樣本生成方法中,CGF 是當(dāng)前的主要方法.Pei 等人[7]提出結(jié)合查分測試和神經(jīng)元覆蓋的測試樣本生成方法,旨在最大化不同DNN模型輸出結(jié)果差異和神經(jīng)元覆蓋率.Guo 等人[8]提出DLFuzz 方法,通過不斷應(yīng)用微小的擾動來對測試樣本進(jìn)行變異,最大化神經(jīng)元覆蓋以及原始樣本和變異樣本間的模型預(yù)測差異,同時定義了4 種神經(jīng)元選擇策略來選擇更有可能提高覆蓋率的神經(jīng)元.Lee等人[33]在此基礎(chǔ)上提出自適應(yīng)的神經(jīng)元選擇策略,在測試樣本生成的過程中,利用神經(jīng)元的靜態(tài)和動態(tài)特征,迭代生成神經(jīng)元選擇策略;通過計(jì)算選擇的神經(jīng)元的梯度對種子樣本進(jìn)行變異.Zhang 等人[34]提出CAGFuzz 方法,使用神經(jīng)元覆蓋率作為引導(dǎo),利用對抗樣本生成器生成對抗樣本.代賀鵬等人[6]圍繞測試數(shù)據(jù)生成、測試結(jié)果判定和覆蓋分析3 個方面,對DNN 模型的CGF 方法進(jìn)行了系統(tǒng)性地總結(jié).本文提出的DeepSA 方法將測試樣本生成建模為聯(lián)合優(yōu)化問題.不同之處在于,DeepSA 設(shè)置的2 個優(yōu)化目標(biāo)分別為測試樣本的意外充分性和模型預(yù)測的類別概率向量間的差異.

        6 總結(jié)與展望

        本文將測試樣本生成建模為聯(lián)合優(yōu)化問題求解,提出了一種意外充分性引導(dǎo)的深度神經(jīng)網(wǎng)絡(luò)測試樣本生成方法DeepSA.該方法通過篩選對于決策結(jié)果重要的神經(jīng)元,改進(jìn)意外充分性指標(biāo);并利用該指標(biāo)捕捉異常測試樣本的能力,結(jié)合DNN 模型輸出的類別間預(yù)測概率差異,設(shè)計(jì)聯(lián)合優(yōu)化目標(biāo),通過梯度上升算法產(chǎn)生擾動,對種子測試樣本進(jìn)行變異,迭代生成測試樣本.本文在4 種圖像數(shù)據(jù)集和5 個DNN 模型上對DeepSA 開展了有效性評估.實(shí)驗(yàn)結(jié)果表明,DeepSA 改進(jìn)的意外充分性指標(biāo)能夠有效地捕捉異常的測試樣本,并減少指標(biāo)度量的時間開銷;DeepSA 能夠在生成對抗樣本的同時提升意外覆蓋率,優(yōu)于典型的測試樣本生成方法DeepXplore 和DLFuzz.在后續(xù)研究中,還將進(jìn)一步利用意外充分性度量指標(biāo)拓展至測試集優(yōu)化[16,35]等任務(wù)中,基于意外充分性指標(biāo)篩選測試子集用于模型重訓(xùn)練,以提升模型的準(zhǔn)確率.后續(xù)還將改進(jìn)DeepSA 方法,將其應(yīng)用至回歸模型上.

        作者貢獻(xiàn)聲明:郭虹靜提出方法框架,負(fù)責(zé)完成實(shí)驗(yàn)并撰寫論文;陶傳奇設(shè)計(jì)實(shí)驗(yàn)方案,提出指導(dǎo)意見并修改論文;黃志球提出指導(dǎo)意見.

        猜你喜歡
        方法模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        學(xué)習(xí)方法
        可能是方法不對
        3D打印中的模型分割與打包
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        日本a级一级淫片免费观看| 亚洲精品综合第一国产综合| 亚洲AV无码一区二区一二区色戒| 国产偷拍自拍在线观看| 亚洲精品中文字幕一区二区| 亚洲国产精品无码专区影院| 性夜夜春夜夜爽aa片a| 亚洲va中文字幕欧美不卡| 国产亚洲中文字幕一区| 国产卡一卡二卡3卡4乱码| 国产高潮国产高潮久久久| 国产精品久久久一本精品| 中文字幕日韩精品人妻久久久| 日韩在线永久免费播放| 国产丝袜视频一区二区三区| 天堂中文资源在线地址| 亚洲综合精品一区二区三区 | 中文乱码字幕精品高清国产| 少妇人妻大乳在线视频不卡 | 女人高潮久久久叫人喷水| av天堂久久天堂av色综合| 91网红福利精品区一区二| 亚洲综合在不卡在线国产另类 | 久久日韩精品一区二区 | 亚洲国产精品一区二区久久恐怖片 | 国产内射一级一片内射高清视频1 成人av一区二区三区四区 | 中文字幕国产精品专区| 成人av片在线观看免费| 亚洲精品无码乱码成人| 蜜桃一区二区三区在线看| 亚洲专区路线一路线二网| 曰本女人与公拘交酡| 亚洲男人天堂2019| 日韩精品一二区在线视频| 日本视频一区二区三区一| 在线观看免费人成视频| 国产成人精品麻豆| 久久精品国产9久久综合| 日本特黄特色特爽大片| 亚洲国产美女精品久久| 少妇人妻中文字幕在线|