DeepGini: Prioritizing Massive Tests to Enhance the Robustness of Deep Neural Networks
論文:https://arxiv.org/abs/1903.00661
細(xì)節(jié): https://github.com/deepgini/deepgini.
摘要
給定輸入定義正確輸出的測(cè)試oracle在自動(dòng)化測(cè)試中通常是不可用的腌零。為了獲得oracle信息,基于DNN的系統(tǒng)的測(cè)試任務(wù)通常需要花費(fèi)大量的人力來標(biāo)記測(cè)試數(shù)據(jù)饰躲,這大大降低了質(zhì)量保證的過程嘹裂。
為了緩解這個(gè)問題寄狼,作者提出了DeepGini,一種基于DNN統(tǒng)計(jì)觀點(diǎn)設(shè)計(jì)的測(cè)試優(yōu)先化技術(shù)泊愧。這樣的統(tǒng)計(jì)視角允許我們將測(cè)量誤分類概率的問題簡(jiǎn)化為測(cè)量集合雜質(zhì)的問題伊磺,這允許我們快速識(shí)別可能誤分類的測(cè)試。
介紹
深度學(xué)習(xí)的能力盡管很高删咱,但可靠和質(zhì)量方面仍存在重大問題屑埋。DNN軟件測(cè)試與傳統(tǒng)軟件測(cè)試完全不同,因?yàn)镈NN是基于數(shù)據(jù)驅(qū)動(dòng)所構(gòu)建的痰滋,因此摘能,有效的測(cè)試數(shù)據(jù)+oracle信息,對(duì)于發(fā)掘DNN軟件的不當(dāng)表現(xiàn)至關(guān)重要敲街。不幸的是团搞,類似于傳統(tǒng)軟件的測(cè)試技術(shù),DNN測(cè)試也面臨著自動(dòng)化測(cè)試技術(shù)oracle通常不可用的問題逻恐。
特別的昏名,在測(cè)試基于DNN的系統(tǒng)中,測(cè)試者通常關(guān)注于造成系統(tǒng)表現(xiàn)錯(cuò)誤的測(cè)試,因?yàn)檫@些錯(cuò)誤可以帶來對(duì)于程序不同問題的洞察。這一事實(shí)很自然的促使我們?nèi)ヌ岢鲆环N技術(shù)俱济,來幫助區(qū)分測(cè)試的優(yōu)先級(jí)辖源,從而可以在測(cè)試之前標(biāo)記和分析導(dǎo)致錯(cuò)誤的測(cè)試。從而,我們可以從人工的努力中獲得最大的效益奈偏。
以往的兩類覆蓋技術(shù):1. 總覆蓋率:傾向于喜歡覆蓋了更多程序元素的用例 2. 覆蓋附加:傾向于喜歡能覆蓋更多以前沒有的元素的用例
但是這類基于覆蓋的技術(shù)并沒有那么有效:
- 首先,這類標(biāo)準(zhǔn)是為了衡量測(cè)試充分性,但實(shí)際上,我們尚不清楚如何用它來提高DNN的質(zhì)量。
- 一些覆蓋標(biāo)準(zhǔn)無法區(qū)分不同測(cè)試的故障檢測(cè)能力。因而無法使用覆蓋-總優(yōu)先級(jí)方法,來為測(cè)試用例進(jìn)行有效的優(yōu)先級(jí)排序痊项。
- 第三塞弊,對(duì)于現(xiàn)有的大多數(shù)神經(jīng)元覆蓋準(zhǔn)則饰抒,只有一個(gè)測(cè)試集中的幾個(gè)測(cè)試能夠達(dá)到該集合的做大覆蓋率枣宫。例如翅娶,top-k神經(jīng)元覆蓋率蜕提,我們只需1%的測(cè)試就可以達(dá)到最大覆蓋率它浅。在這種情況下,我們對(duì)于測(cè)試進(jìn)行的優(yōu)先級(jí)排序恨胚,也只能進(jìn)行1%就停止俄烁。
- 通常覆蓋-附加方法的時(shí)間復(fù)雜度過高
辰企,其中m是元素個(gè)數(shù)(神經(jīng)元個(gè)數(shù)),n是測(cè)試用例數(shù)。這兩個(gè)值通常都比較龐大昔园,這也就導(dǎo)致了模型過于龐大荤西。
為了克服以上問題勉躺,并有效的提高DNN的質(zhì)量糖赔,本文種,我們提出了DeepGini方法径缅,主要針對(duì)于圖像分類類的DNN搏明。DeepGini主要基于DNN的統(tǒng)計(jì)特性样傍,而非卷積覆蓋率炕檩。這種方法使得我們將誤分類問題簡(jiǎn)化為一個(gè)衡量測(cè)試集合雜質(zhì)的問題敲霍。
該測(cè)量基于的直覺是夫偶,如果一個(gè)DNN為每類輸出相同的概率時(shí)疾牲,測(cè)試會(huì)很容易被DNN錯(cuò)誤分類。因此召夹,當(dāng)DNN為每個(gè)類輸出相同的概率時(shí),該度量產(chǎn)生最大值赞警。
<0.5,0.5>對(duì)應(yīng)的度量值 大于 <0.9,0.1>對(duì)應(yīng)的度量值
這一方法有如下好處:
- 利用該方法進(jìn)行度量比基于神經(jīng)元覆蓋率的度量要更有區(qū)分度惠况,因?yàn)闇y(cè)試用例通常都有著不同的輸出向量龙屉,但卻很可能擁有相同的覆蓋率
- 該度量不用記錄中間信息來計(jì)算覆蓋率事哭。而只需要對(duì)測(cè)試進(jìn)行優(yōu)先排序,所以更為安全,易用结蟋。
- DeepGini的時(shí)間復(fù)雜度于總覆蓋率類似尼夺,但遠(yuǎn)低于覆蓋附加方法竞端。同時(shí)和總覆蓋方法一樣可擴(kuò)展流部。
- DeepGini在前的測(cè)試集,優(yōu)于該度量在后的測(cè)試集枝冀,也優(yōu)于使用覆蓋范圍度量在前的測(cè)試集舞丛。
該方法需要運(yùn)行所有測(cè)試來獲得輸出。但實(shí)際上運(yùn)行DNN的時(shí)間要遠(yuǎn)小于訓(xùn)練DNN果漾。
作者從兩個(gè)方面來論證的方法的有效性球切。
首先,計(jì)算了故障檢測(cè)的平均百分比值(APFD)绒障,這是評(píng)估優(yōu)先排序技術(shù)的標(biāo)準(zhǔn)方法吨凑。
其次,為了評(píng)估該技術(shù)能否有效提高DNN質(zhì)量户辱,將排序靠前的測(cè)試集重訓(xùn)練鸵钝,并對(duì)比準(zhǔn)確性。
貢獻(xiàn)如下:
- 提出了一種有效且高效的方法焕妙,以排序DNN測(cè)試集蒋伦。
- 證明該度量較大的測(cè)試集能更有效的提高DNN質(zhì)量。
- 證明了基于神經(jīng)元覆蓋率的方法焚鹊,在測(cè)試優(yōu)先級(jí)和DNN優(yōu)化上的不足痕届。
方法
分類純度
大致思想:右側(cè)比左側(cè)更容易被分類,左側(cè)更容易被混淆末患。
計(jì)算方法 前者為0.25+0.25=0.5研叫,后者為0.81+0.01=0.82
這種想法于基尼指數(shù)的含義十分接近。因此作者考慮引入基尼系數(shù)來進(jìn)行度量璧针。
DeepGini
定義:給定一個(gè)測(cè)試t和它在DNN下的輸出(
)嚷炉,定義
來度量t可能被錯(cuò)誤分類的概率。
之后作者證明了這一度量的極值也是最值探橱,在各分類概率相等時(shí)取到
利用每個(gè)測(cè)試所對(duì)應(yīng)的度量申屹,我們可以直接用快排來給它進(jìn)行排序绘证,以較低的時(shí)間效率來完成。
同時(shí)由于度量計(jì)算只需要輸出向量哗讥,因此該方法基本不會(huì)對(duì)原有的DNN進(jìn)行干涉
利用DeepGini增強(qiáng)DNN
DeepGini 的有效性背后的原則實(shí)際上是遵循主動(dòng)機(jī)器學(xué)習(xí)理論嚷那,該理論更喜歡決策邊界附近的測(cè)試。
因此杆煞,作者認(rèn)為DeepGini不僅提供了一種測(cè)試優(yōu)先級(jí)的辦法魏宽,同時(shí)還提供了一種在有限時(shí)間預(yù)算內(nèi)增強(qiáng)DNN穩(wěn)健性的技術(shù)。
實(shí)驗(yàn)設(shè)計(jì)
數(shù)據(jù)集和模型選擇
數(shù)據(jù)集:MNIST,CIFAR-10,Fashion,SVHN
模型:不同神經(jīng)元數(shù)量的模型决乎,以展現(xiàn)對(duì)于不同層次模型的效果
對(duì)抗測(cè)試生成
除了對(duì)于數(shù)據(jù)集中的原始數(shù)據(jù)進(jìn)行優(yōu)先排序队询,本文還對(duì)對(duì)抗性測(cè)試進(jìn)行了一個(gè)優(yōu)先級(jí)排序。分別選擇了四種SOTA方法生成對(duì)抗測(cè)試數(shù)據(jù)构诚,F(xiàn)GSM,BIM,JSMA,CW.
Q: 按照基尼系數(shù)的含義蚌斩,良好分類的數(shù)據(jù)集,也能夠得到很高的分?jǐn)?shù)唤反。如何分辨:全都分錯(cuò)凳寺,錯(cuò)的徹底;不太對(duì)也錯(cuò)的不徹底彤侍;全都分對(duì)肠缨,對(duì)的徹底。
基線方法
通過將本文的度量與基于覆蓋的11種方法進(jìn)行對(duì)比盏阶。
主要基于四種模式晒奕,兩個(gè)方面來計(jì)算:
- 利用CTM或CAM來進(jìn)行測(cè)試優(yōu)先級(jí)排序
- 對(duì)原始數(shù)據(jù)集中的測(cè)試進(jìn)行優(yōu)先排序,或?qū)υ?對(duì)抗測(cè)試數(shù)據(jù)集進(jìn)行優(yōu)先級(jí)排序
研究問題
RQ1 有效性
DeepGini能否找到比基于神經(jīng)元覆蓋的方法更好的測(cè)試排序么名斟?
通過比較不同方法的APFD(平均錯(cuò)誤發(fā)現(xiàn)率)來論證脑慧。
- APFD值不夠接近于1,并不意味著優(yōu)先級(jí)排序不夠有效砰盐。因?yàn)槔碚撋厦铺唬撝低ǔR?小得多。
對(duì)于一系列測(cè)試n個(gè)岩梳,其中有k個(gè)會(huì)被誤分類囊骤,設(shè)表示第i個(gè)誤分類測(cè)試的下標(biāo)。APFD表示為:
更準(zhǔn)確的來說冀值,假設(shè)APFD理論最大最小值為和
也物,我們將APFD值歸一化排序后,值越接近1列疗,就說明排序方法越好滑蚯。
RQ2 效率
DeepGini是否比基于神經(jīng)元覆蓋的方法更有效?
通過記錄時(shí)間花銷來回答這一問題。排序方法通常都更耗時(shí)告材,因?yàn)闇y(cè)試集數(shù)量通常很大坤次。基于我們的分析创葡,一些優(yōu)化排序方法甚至要花費(fèi)數(shù)個(gè)小時(shí)浙踢,這在工業(yè)中是難以接受的。
RQ3 指導(dǎo)性
DeepGini是否能夠指導(dǎo)DNN的重訓(xùn)練以幫助提升其準(zhǔn)確性灿渴?
一般的DNN網(wǎng)絡(luò)通常準(zhǔn)確性都足夠強(qiáng),因此本文是通過引入對(duì)抗測(cè)試來回答該問題胰舆。對(duì)每個(gè)模型骚露,向測(cè)試集T中加入相同數(shù)量的對(duì)抗測(cè)試樣本,并構(gòu)造一個(gè)驗(yàn)證集V用于以下實(shí)驗(yàn)缚窿。
在對(duì)T進(jìn)行優(yōu)先級(jí)排序后棘幸,將前1%,2%,...,10%的測(cè)試數(shù)據(jù)代回訓(xùn)練集,并訓(xùn)練一個(gè)新的DNN倦零。(不加入更多是因?yàn)槲笮嗟臏y(cè)試數(shù)據(jù),無法再帶來模型明顯的變化扫茅。)然后利用驗(yàn)證集V蹋嵌,度量新DNN的準(zhǔn)確性。利用不同的度量葫隙,來判斷重訓(xùn)練的DNN的準(zhǔn)確率栽烂。基于實(shí)驗(yàn)結(jié)果恋脚,我們可以回答腺办,DeepGini能夠更有效的指導(dǎo)重訓(xùn)練。
結(jié)果分析
RQ1&RQ2 效率和有效性
與NAC,NBC,SNAC比較
關(guān)于DeepGini的結(jié)論:速度快糟描,且APFD得分高怀喉。
關(guān)于覆蓋率的結(jié)論:0.5%的測(cè)試就足以達(dá)到這三類方法的覆蓋率上限了。
以隨機(jī)分類為基線船响,有些覆蓋方法的效果甚至?xí)入S機(jī)還要差躬拢。而其中DeepGini能夠最快的達(dá)到最高的錯(cuò)誤檢出率。
與TKNC,LSC,DSC,KMNC對(duì)比
- 難以良好進(jìn)行排序:CTM無效灿意,CAM很快達(dá)到最大后估灿,也無效。
- 這幾種方法的效率普遍比DeepGini要慢20倍以上缤剧,再工業(yè)中基本都屬于無法接受的速度馅袁。
RQ3指導(dǎo)性
其中KMNC的運(yùn)算速度過慢無法完成實(shí)驗(yàn)。對(duì)比其他方法荒辕,可以發(fā)現(xiàn)DeepGini在生成優(yōu)先級(jí)序列提高DNN準(zhǔn)確性方面更為有效汗销。
表六:10%的優(yōu)先數(shù)據(jù)代回犹褒。基線效果大致在0.83-0.85弛针,DeepGini可以達(dá)到0.9以上叠骑。
討論
額外的提了安全性,和可擴(kuò)展性削茁。