国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2024-04-29 05:35:50郭虹靜陶傳奇黃志球
關(guān)鍵詞:充分性覆蓋率神經(jīng)元

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

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

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

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

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

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

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

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

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

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

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

1 背景知識(shí)

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

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

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

1.2 意外充分性與意外覆蓋

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

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

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

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

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

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

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

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

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

2.1 方法框架

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

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

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

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

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

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

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

2.3.2 種子測(cè)試樣本選擇

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

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

算法1.種子測(cè)試樣本選擇算法.

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

2.3.3 測(cè)試樣本生成

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

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

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

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

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

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

3.1 研究問(wèn)題

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

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

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

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

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

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

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

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

3.2 實(shí)驗(yàn)對(duì)象和評(píng)測(cè)指標(biāo)

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

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

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

3.2.2 評(píng)估指標(biāo)

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

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

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

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

4.1 測(cè)試樣本生成的有效性

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

表5 展示了待測(cè)回歸模型Dave_orig 在基于LSAv值排序的多個(gè)測(cè)試樣本集上的MSE 值.可以看出,m=100 時(shí),Dave_orig 模型在LSA值最高的前100 個(gè)測(cè)試樣本上的MSE 值為0.363;m=80 時(shí),LSAv指標(biāo)取得的MSE 值為0.370,是所有m配置下的最高值.測(cè)試樣本數(shù)量分別為1 000,2 000,4 000,5 000 時(shí),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 值選擇的測(cè)試樣本上的均方誤差

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

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

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

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

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

4.4 有效性威脅

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

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

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

5 相關(guān)工作

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

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

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

5.2 測(cè)試樣本生成

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

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

6 總結(jié)與展望

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

猜你喜歡
充分性覆蓋率神經(jīng)元
2023 年高考充要條件問(wèn)題聚焦
民政部等16部門:到2025年村級(jí)綜合服務(wù)設(shè)施覆蓋率超80%
《從光子到神經(jīng)元》書評(píng)
自然雜志(2021年6期)2021-12-23 08:24:46
我國(guó)全面實(shí)施種業(yè)振興行動(dòng) 農(nóng)作物良種覆蓋率超過(guò)96%
解析簇上非孤立奇點(diǎn)的C0-Rv-V(f)-充分性
維持性血液透析患者透析充分性相關(guān)因素分析
躍動(dòng)的神經(jīng)元——波蘭Brain Embassy聯(lián)合辦公
基于噴丸隨機(jī)模型的表面覆蓋率計(jì)算方法
基于二次型單神經(jīng)元PID的MPPT控制
毫米波導(dǎo)引頭預(yù)定回路改進(jìn)單神經(jīng)元控制
木兰县| 简阳市| 望江县| 乐昌市| 内江市| 永修县| 香河县| 天峻县| 安乡县| 乌兰浩特市| 阿坝| 万载县| 盐池县| 诏安县| 青川县| 温泉县| 四平市| 北票市| 彰武县| 瓦房店市| 绍兴县| 榆树市| 南开区| 巴彦淖尔市| 武宁县| 昌图县| 鸡泽县| 乌什县| 保靖县| 伊通| 许昌县| 固阳县| 永福县| 财经| 临颍县| 宜兰县| 许昌县| 凤山县| 乡城县| 原平市| 梨树县|