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

?

面向可解釋性的軟件缺陷預(yù)測(cè)主動(dòng)學(xué)習(xí)方法

2024-10-17 00:00:00王越李勇張文靜
現(xiàn)代電子技術(shù) 2024年20期
關(guān)鍵詞:主動(dòng)學(xué)習(xí)深度學(xué)習(xí)

摘" 要: 針對(duì)軟件缺陷預(yù)測(cè)中數(shù)據(jù)標(biāo)注代價(jià)較高及深度學(xué)習(xí)模型缺乏可解釋性的問題,提出一種面向可解釋性的軟件缺陷預(yù)測(cè)主動(dòng)學(xué)習(xí)方法。首先,基于主動(dòng)學(xué)習(xí)技術(shù),通過樣本選擇策略從目標(biāo)項(xiàng)目中篩選出不確定性高的樣本進(jìn)行專家標(biāo)注,并將這些標(biāo)注樣本放入源項(xiàng)目中以訓(xùn)練預(yù)測(cè)器。其次,利用領(lǐng)域知識(shí)對(duì)選定樣本進(jìn)行擾動(dòng),構(gòu)建局部數(shù)據(jù)集,并通過線性模型在該數(shù)據(jù)集上模擬數(shù)據(jù)選擇策略的行為,以實(shí)現(xiàn)模型的可解釋性。實(shí)驗(yàn)結(jié)果顯示:該方法在數(shù)據(jù)標(biāo)注方面的指標(biāo)性能要優(yōu)于傳統(tǒng)的主動(dòng)學(xué)習(xí)基準(zhǔn)方法;同時(shí),在可解釋性方面,該方法的RMSE指標(biāo)也均低于LIME、全局代理模型以及RuleFit,能較好地解釋“黑盒”模型。該方法不僅可以有效提高軟件缺陷數(shù)據(jù)的標(biāo)注效率,還可以實(shí)現(xiàn)模型的可解釋性。

關(guān)鍵詞: 軟件缺陷預(yù)測(cè); 主動(dòng)學(xué)習(xí); 可解釋性; 數(shù)據(jù)標(biāo)注; 數(shù)據(jù)選擇策略; 深度學(xué)習(xí)

中圖分類號(hào): TN919?34" " " " " " " " " " " " " " "文獻(xiàn)標(biāo)識(shí)碼: A" " " " " " " " " " " 文章編號(hào): 1004?373X(2024)20?0101?08

Interpretability?oriented active learning approach for software defect prediction

WANG Yue1, LI Yong1, 2, ZHANG Wenjing1

(1. College of Computer Science and Technology, Xinjiang Normal University, Urumqi 830054, China;

2. Key Laboratory of Safety?Critical Software of Ministry and Information Technology, Nanjing University of Aeronautics and Astronautics, Nanjing 211106, China)

Abstract: In allusion to the problems of high cost of data annotation and lack of interpretability of deep learning model in software defect prediction, an interpretability?oriented active learning approach for software defect prediction is proposed. Based on the active learning technology, samples with high uncertainty are filtered from the target project by means of sample selection strategy for expert annotation, and these annotated samples are put into the source project to train the predictor. The selected samples are perturbed by means of domain knowledge to construct a local dataset, and the behavior of the data selection strategy is simulated on this dataset by means of the linear model to achieve the interpretability of the model. The experimental results show that this approach has better performance than the traditional active learning benchmark approach in data annotation. Meanwhile, the RMSE metrics of the method are also lower than those of LIME, Global Agent Model, and RuleFit in terms of interpretability, which can better explain the black?box model. This approach can not only effectively improve the annotation efficiency of software defect data, but also achieve the interpretability of the model.

Keywords: software defect prediction; active learning; interpretability; data annotation; data selection strategy; deep learning

0" 引" 言

軟件缺陷預(yù)測(cè)技術(shù)可以提高軟件測(cè)試效率,是保證軟件可靠性的重要途徑之一。構(gòu)建性能優(yōu)越的軟件缺陷預(yù)測(cè)模型需要足夠多的歷史標(biāo)注數(shù)據(jù)[1],因此,軟件缺陷數(shù)據(jù)集的質(zhì)量至關(guān)重要。但對(duì)軟件缺陷數(shù)據(jù)進(jìn)行標(biāo)注時(shí)需要投入大量的人力、時(shí)間以及專業(yè)知識(shí),代價(jià)高昂。如何在成本較低的情況下對(duì)軟件缺陷數(shù)據(jù)進(jìn)行標(biāo)注是一個(gè)具有挑戰(zhàn)性的問題。

主動(dòng)學(xué)習(xí)可以從未標(biāo)記樣本池中選擇最有價(jià)值且對(duì)模型貢獻(xiàn)度較高的樣本交給專家進(jìn)行標(biāo)注,從而在保持性能的前提下盡可能地降低標(biāo)注成本[2],有效解決軟件缺陷數(shù)據(jù)標(biāo)注代價(jià)高的問題。主動(dòng)學(xué)習(xí)可以有效降低標(biāo)注成本,而深度學(xué)習(xí)在處理高維數(shù)據(jù)和提取自動(dòng)特征方面具有很強(qiáng)的學(xué)習(xí)能力。為了極大地?cái)U(kuò)展主動(dòng)學(xué)習(xí)的應(yīng)用潛力,研究者們將深度學(xué)習(xí)與主動(dòng)學(xué)習(xí)結(jié)合起來,稱為深度主動(dòng)學(xué)習(xí)。但在深度主動(dòng)學(xué)習(xí)中,大多數(shù)的數(shù)據(jù)選擇策略都采用了深度學(xué)習(xí)技術(shù),其模型具有較高的復(fù)雜性,存在缺乏可解釋性的問題,從而會(huì)導(dǎo)致用戶無法了解模型內(nèi)部的決策依據(jù),嚴(yán)重限制了主動(dòng)學(xué)習(xí)在軟件缺陷預(yù)測(cè)這個(gè)高風(fēng)險(xiǎn)領(lǐng)域的應(yīng)用。

針對(duì)上述問題,本文提出一種面向可解釋性的軟件缺陷預(yù)測(cè)主動(dòng)學(xué)習(xí)方法(Interpretability?oriented Active Learning Approach for Software Defect Prediction, IAL4SD)。首先基于跨項(xiàng)目技術(shù),使用主動(dòng)學(xué)習(xí)從目標(biāo)項(xiàng)目中選擇一批不確定性樣本,交給專家進(jìn)行標(biāo)注并放到源項(xiàng)目中;再使用源項(xiàng)目作為訓(xùn)練集訓(xùn)練預(yù)測(cè)器,將其用于目標(biāo)項(xiàng)目的數(shù)據(jù)標(biāo)注;之后,使用RuleFit生成該領(lǐng)域的決策規(guī)則,并在符合特定實(shí)例決策規(guī)則的特征限定條件下對(duì)該樣本進(jìn)行擾動(dòng),得到一個(gè)局部數(shù)據(jù)集;最后,使用線性模型在局部數(shù)據(jù)集上近似模擬黑盒模型的行為。通過在真實(shí)公開的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),驗(yàn)證主動(dòng)學(xué)習(xí)的有效性,并和主流的可解釋模型進(jìn)行比較。實(shí)驗(yàn)結(jié)果顯示,本文提出的方法可以有效提高軟件缺陷數(shù)據(jù)標(biāo)注的效率,并在降低成本的同時(shí),提高模型的可解釋性。

1" 相關(guān)工作

1.1" 軟件缺陷預(yù)測(cè)主動(dòng)學(xué)習(xí)

主動(dòng)學(xué)習(xí)的目的是通過迭代抽樣來優(yōu)化模型性能,構(gòu)建有價(jià)值的訓(xùn)練集,是處理樣本不足問題的一種實(shí)踐方式[3];同時(shí),主動(dòng)學(xué)習(xí)也是提高分類器[4]泛化能力的有效途徑。近年來,主動(dòng)學(xué)習(xí)已被引入軟件缺陷預(yù)測(cè)領(lǐng)域,并逐漸在軟件缺陷預(yù)測(cè)領(lǐng)域嶄露頭角,成為一個(gè)備受關(guān)注的研究方向。

文獻(xiàn)[5]為了便于主動(dòng)采樣,提出一種基于主動(dòng)半監(jiān)督學(xué)習(xí)的方法ACoForest,該方法能夠選擇出對(duì)模型貢獻(xiàn)度高的模塊。文獻(xiàn)[6]引入元主動(dòng)學(xué)習(xí),利用隨機(jī)森林對(duì)歷史數(shù)據(jù)集進(jìn)行主動(dòng)學(xué)習(xí),學(xué)習(xí)目標(biāo)數(shù)據(jù)集的分布;應(yīng)用回歸模型學(xué)習(xí)自高斯分布的非平衡數(shù)據(jù)集,來解決軟件缺陷預(yù)測(cè)中的類不平衡問題。文獻(xiàn)[7]提出了一種混合主動(dòng)學(xué)習(xí)查詢策略,對(duì)于信息熵最低的樣本,QBC(Query By Committee)將再次使用投票熵對(duì)其進(jìn)行分析。結(jié)果顯示,該方法優(yōu)于當(dāng)前最先進(jìn)的幾種主動(dòng)學(xué)習(xí)方法。文獻(xiàn)[8]提出一個(gè)結(jié)合混合主動(dòng)學(xué)習(xí)和核主成分分析的兩階段框架。在第一階段,采用混合主動(dòng)學(xué)習(xí)方法,從當(dāng)前版本中選擇具有代表性的未標(biāo)記模塊進(jìn)行查詢,再合并到之前版本的已標(biāo)記模塊中,形成增強(qiáng)訓(xùn)練集;在第二階段,使用核主成分分析方法將兩個(gè)版本的原始數(shù)據(jù)送到高維空間,提取具有代表性的特征,有效解決了不同版本之間的數(shù)據(jù)分布差異問題。文獻(xiàn)[9]將主動(dòng)學(xué)習(xí)作為一種自動(dòng)化模型開發(fā)的方法,以提高連續(xù)版本間缺陷預(yù)測(cè)的性能。文獻(xiàn)[10]利用主動(dòng)學(xué)習(xí)和TrAdaBoost來緩解不同項(xiàng)目間數(shù)據(jù)分布差異大的問題。

為了極大地?cái)U(kuò)展主動(dòng)學(xué)習(xí)的應(yīng)用潛力,大多數(shù)研究者都將深度學(xué)習(xí)和主動(dòng)學(xué)習(xí)結(jié)合起來,通過模型自身的能力來指導(dǎo)主動(dòng)學(xué)習(xí)的過程,從而更有效地利用有限的標(biāo)記數(shù)據(jù)來訓(xùn)練模型。但也由于采用了深度學(xué)習(xí)技術(shù),存在模型缺乏可解釋性的問題。機(jī)器學(xué)習(xí)可解釋性可以幫助人們理解黑盒模型的決策過程,建立用戶與預(yù)測(cè)模型之間的信任關(guān)系。

1.2" 可解釋主動(dòng)學(xué)習(xí)

由于深度主動(dòng)學(xué)習(xí)的數(shù)據(jù)選擇策略采用了深度學(xué)習(xí)技術(shù),具有非常復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),且訓(xùn)練過程不透明,故本質(zhì)上可以看作是一個(gè)“黑盒”模型??山忉寵C(jī)器學(xué)習(xí)可以讓人們理解“黑盒”模型的決策依據(jù)和推理過程,從而讓人們可以更加信任“黑盒”模型并相信“黑盒”模型做出的預(yù)測(cè)。

可解釋主動(dòng)學(xué)習(xí)分為事前解釋和事后解釋兩個(gè)方面。在事前解釋方面,文獻(xiàn)[11]受深度神經(jīng)網(wǎng)絡(luò)中分段線性可解釋性的啟發(fā),提出了一種基于模型可解釋性的深度主動(dòng)學(xué)習(xí)方法,將樣本的線性可分區(qū)域引入主動(dòng)學(xué)習(xí)問題。文獻(xiàn)[12]提出可解釋性驅(qū)動(dòng)的樣本選擇方法,該方法在主動(dòng)學(xué)習(xí)系統(tǒng)中使用可解釋性信息進(jìn)行樣本選擇。文獻(xiàn)[13]提出一種可視化的可解釋主動(dòng)學(xué)習(xí)方法,該方法在每次主動(dòng)學(xué)習(xí)迭代時(shí),通過詢問、解釋、推薦和回應(yīng)四個(gè)動(dòng)作促進(jìn)人們與AI的合作,并在解釋階段使用語義圖可視化解釋機(jī)器的當(dāng)前狀態(tài)。在事后解釋方面,文獻(xiàn)[14]在主動(dòng)學(xué)習(xí)的過程中,迭代選擇代理和“黑箱”模型在預(yù)測(cè)其響應(yīng)變量方面分歧最大的數(shù)據(jù)實(shí)例。這個(gè)過程能迭代地調(diào)整代理模型,以便更好地適應(yīng)“黑盒”模型。文獻(xiàn)[15]擴(kuò)展了局部可解釋模型不可知論解釋框架(LIME),為主動(dòng)學(xué)習(xí)建議提供了解釋。LIME[16]是一種局部可解釋模型,屬于基于擾動(dòng)的方法,通過對(duì)單個(gè)實(shí)例進(jìn)行擾動(dòng)形成一個(gè)局部數(shù)據(jù)集,然后訓(xùn)練一個(gè)線性模型局部逼近復(fù)雜模型,從局部的角度來解釋預(yù)測(cè)結(jié)果。

LIME模型設(shè)計(jì)訓(xùn)練過程簡(jiǎn)單,但是對(duì)實(shí)例進(jìn)行擾動(dòng)時(shí)具有隨機(jī)性,可能會(huì)生成不符合領(lǐng)域知識(shí)的樣本,訓(xùn)練出來的線性解釋模型是不穩(wěn)定的,極易造成對(duì)于相似的輸入實(shí)例解釋不一致的問題,從而影響到解釋性能。因此,本文提出一種面向可解釋性的軟件缺陷預(yù)測(cè)主動(dòng)學(xué)習(xí)方法。該方法基于跨項(xiàng)目技術(shù),采用主動(dòng)學(xué)習(xí)獲取少量有價(jià)值的高不確定性樣本,并引入領(lǐng)域知識(shí)對(duì)樣本進(jìn)行擾動(dòng),從局部的角度對(duì)模型進(jìn)行解釋,在提高模型解釋性能的同時(shí)降低標(biāo)注成本。

2" 面向可解釋性的軟件缺陷預(yù)測(cè)主動(dòng)學(xué)習(xí)

在一個(gè)大數(shù)據(jù)集中,應(yīng)該標(biāo)注哪些樣本是主動(dòng)學(xué)習(xí)訓(xùn)練中最重要的問題之一。IAL4SD提供了一種面向可解釋性的主動(dòng)學(xué)習(xí)數(shù)據(jù)選擇策略,基于跨項(xiàng)目技術(shù),選擇一批不確定性樣本并將其交給專家進(jìn)行標(biāo)注,減少標(biāo)注成本;并依據(jù)領(lǐng)域知識(shí)的樣本進(jìn)行擾動(dòng)形成局部數(shù)據(jù)集,使用線性模型從局部的角度對(duì)數(shù)據(jù)選擇策略這個(gè)“黑盒”模型進(jìn)行模擬。IAL4SD整體流程如圖1所示。

在IAL4SD方法中,首先使用主動(dòng)學(xué)習(xí)從目標(biāo)項(xiàng)目(T)中挑選出不確定性樣本,并交給專家標(biāo)注;再將標(biāo)注后的不確定性樣本放入源項(xiàng)目(S)中,使用更新后的源項(xiàng)目訓(xùn)練預(yù)測(cè)器,使用預(yù)測(cè)器對(duì)未標(biāo)注的數(shù)據(jù)(即目標(biāo)項(xiàng)目中的樣本)進(jìn)行標(biāo)注。之后,使用RuleFit生成該領(lǐng)域的決策規(guī)則,并在符合特定實(shí)例決策規(guī)則的特征限定條件下對(duì)該樣本進(jìn)行擾動(dòng),得到具有局部標(biāo)簽一致性的局部數(shù)據(jù)集。最后,在新的數(shù)據(jù)集上訓(xùn)練線性模型,由此生成“黑盒”模型局部預(yù)測(cè)(在所選實(shí)例附近)的良好近似。

2.1" 基于主動(dòng)學(xué)習(xí)的即時(shí)缺陷數(shù)據(jù)選擇策略

IAL4SD采用數(shù)據(jù)驅(qū)動(dòng)的不確定性采樣,使用判別器和損失預(yù)測(cè)模塊從目標(biāo)項(xiàng)目中挑選出不確定性樣本。不確定性樣本的選擇過程如圖2所示。

跨項(xiàng)目技術(shù)使用源項(xiàng)目的數(shù)據(jù)訓(xùn)練模型,然后使用該模型對(duì)目標(biāo)項(xiàng)目中的樣本進(jìn)行預(yù)測(cè)。在這個(gè)過程中,會(huì)面臨源項(xiàng)目與目標(biāo)項(xiàng)目之間數(shù)據(jù)分布存在差異的問題,這種數(shù)據(jù)分布的差異可能導(dǎo)致模型在目標(biāo)項(xiàng)目上的性能下降,因?yàn)槟P驮谠错?xiàng)目上訓(xùn)練時(shí)所學(xué)到的特征可能不適用于目標(biāo)項(xiàng)目。

判別器[17]通過從目標(biāo)項(xiàng)目中選擇出與源項(xiàng)目在數(shù)據(jù)分布上不同的樣本并進(jìn)行標(biāo)注,從而達(dá)到減小源項(xiàng)目和目標(biāo)項(xiàng)目之間的數(shù)據(jù)分布差異的目的。判別器的主要任務(wù)是對(duì)每個(gè)樣本進(jìn)行預(yù)測(cè),以確定該樣本是否來自目標(biāo)項(xiàng)目。假設(shè)目標(biāo)項(xiàng)目的數(shù)據(jù)規(guī)模足夠大,并且能夠代表真實(shí)的數(shù)據(jù)分布,判別器會(huì)對(duì)每個(gè)樣本進(jìn)行判斷,當(dāng)一個(gè)未標(biāo)記的樣本很有可能來自目標(biāo)項(xiàng)目,說明該樣本在數(shù)據(jù)分布上與源項(xiàng)目中的樣本是不同的。通過標(biāo)注該樣本并放入源項(xiàng)目中可以有效降低源項(xiàng)目和目標(biāo)項(xiàng)目之間的數(shù)據(jù)分布差異,讓模型更好地適應(yīng)目標(biāo)項(xiàng)目的特征,對(duì)模型是有益的。

判別器通常會(huì)根據(jù)數(shù)據(jù)分布的不確定性來選擇樣本,即那些在源項(xiàng)目和目標(biāo)項(xiàng)目之間差異較大的樣本,然而,選擇出來的樣本中也會(huì)包含一些預(yù)測(cè)錯(cuò)誤的樣本,導(dǎo)致標(biāo)注過程不準(zhǔn)確。

為了避免判別器可能出現(xiàn)的錯(cuò)誤預(yù)測(cè),本文為判別器附加一個(gè)小的損失預(yù)測(cè)模塊[18]Loss。該模塊的主要功能是預(yù)測(cè)判別器的損失值,從而識(shí)別可能被分錯(cuò)類的樣本。損失預(yù)測(cè)模塊與判別器的每一層相連接,以獲取每一層的特征值,通過融合多個(gè)層次的特征并映射到一個(gè)標(biāo)量值,可以得到預(yù)測(cè)的損失值。損失預(yù)測(cè)模塊輸出的預(yù)測(cè)損失值越大,說明該樣本在預(yù)測(cè)時(shí)很有可能被分錯(cuò)類。標(biāo)注可能被分錯(cuò)類的樣本,可以有效處理判別器出現(xiàn)的錯(cuò)誤預(yù)測(cè)情況,從而提高模型的穩(wěn)定性和性能,對(duì)模型也是有益的。

不確定性樣本選擇算法的偽代碼如下所示。

輸入:源項(xiàng)目S,目標(biāo)項(xiàng)目T

輸出:不確定性樣本[x]

1.初始化[x]

2.P,f←trainClassifier(S,T)

//得到判別器P及判別器每一層的特征值f

3.Loss←trainLossPrediction(f)" " " " " " " //得到損失預(yù)測(cè)模塊

4.for i = 1 to n do

[x1], f ←[argmaxx∈UP(y=uψ(x))]

//得到不確定性樣本及每一層的特征值

[x2]←Loss(f)" " " " " " " " " " " " " " " " " "http://得到不確定性樣本

[x]←[x?x1?x2]" " " " " " " " " " " " " " " " " " " " " //樣本合并

5.return [x]

2.2" 基于領(lǐng)域知識(shí)的缺陷數(shù)據(jù)選擇策略可解釋性模型

在可解釋性模型中,理解模型在特定實(shí)例附近的行為是至關(guān)重要的。因此,為了減少局部擾動(dòng)的隨機(jī)性,本文提出一種基于領(lǐng)域知識(shí)的數(shù)據(jù)選擇策略可解釋模型,引入領(lǐng)域知識(shí),有效減少局部擾動(dòng)的隨機(jī)性,從而更準(zhǔn)確地理解模型在特定實(shí)例附近的行為,具體過程如圖3所示。

當(dāng)對(duì)一個(gè)實(shí)例進(jìn)行擾動(dòng)時(shí),假設(shè)擾動(dòng)的范圍足夠小,則擾動(dòng)后的樣本標(biāo)簽應(yīng)該與原始實(shí)例的標(biāo)簽保持一致。這意味著擾動(dòng)后的樣本應(yīng)該與原樣本仍然屬于同一類別,即具有局部標(biāo)簽一致性。

通過確保局部數(shù)據(jù)集具有標(biāo)簽一致性,可以更可靠地研究模型對(duì)特定實(shí)例的行為和預(yù)測(cè)結(jié)果,從而提高模型的解釋性和可靠性。

為了得到具有局部標(biāo)簽一致性的局部數(shù)據(jù)集,本文在滿足特定實(shí)例決策規(guī)則的特征限定條件下進(jìn)行擾動(dòng)。決策規(guī)則是一組條件語句,它們基于輸入數(shù)據(jù)的特征進(jìn)行決策。每個(gè)條件語句都包含一個(gè)特征限定條件,用于確定數(shù)據(jù)點(diǎn)是否滿足該條件。因此,符合某個(gè)特定的決策規(guī)則意味著數(shù)據(jù)點(diǎn)的標(biāo)簽是一致的。首先,使用RuleFit得到如圖4所示的決策規(guī)則示例。

圖4中第1列rule代表規(guī)則;第2列是其類型,一般該值為規(guī)則或者是線性變量;第3列是系數(shù);第4列是支持度,代表有多少比例的樣本滿足該規(guī)則。

給定一個(gè)實(shí)例,首先從RuleFit模型生成的規(guī)則中篩選出類型為rule的規(guī)則;之后,對(duì)這些規(guī)則進(jìn)行詳細(xì)分析,找到該實(shí)例符合且具有較多限定條件的n個(gè)決策規(guī)則;最后,對(duì)這n個(gè)規(guī)則進(jìn)行歸納總結(jié),以最小的取值范圍作為符合該實(shí)例決策規(guī)則的特征限定條件,并使用產(chǎn)生式規(guī)則表示法進(jìn)行表示。符合特定實(shí)例決策規(guī)則的特征限定條件具體形式如圖5所示。

圖5中,if部分給出了條件,即某個(gè)實(shí)例具體的各個(gè)特征值;相對(duì)應(yīng)地,then部分描述了行為,即特定實(shí)例決策規(guī)則的特征限定條件。

領(lǐng)域知識(shí)生成算法的偽代碼如下所示。

輸入:特定實(shí)例x,數(shù)據(jù)集dataset

輸出:特征的閾值條件value_ranges

1. rule←RuleFit(dataset)

2. rules_satisfies←most_satisfies_rule(x, rule)

3. min_max_values←find_min_max_values(dataset)

4. value_ranges←find_value_ranges(rules_satisfies,

min_max_ values)

5. return value_ranges

給定一個(gè)樣本x并依據(jù)特征限定條件對(duì)樣本進(jìn)行擾動(dòng),生成具有局部標(biāo)簽一致性的局部數(shù)據(jù)集inverse;之后,對(duì)局部數(shù)據(jù)集的連續(xù)特征進(jìn)行離散化處理,將其轉(zhuǎn)換為分類特征,生成一個(gè)離散數(shù)據(jù)集Z;然后,利用“黑盒”模型f對(duì)離散數(shù)據(jù)集Z進(jìn)行預(yù)測(cè),得到其輸出f(Z);最后,將f(Z)作為解釋模型g的標(biāo)簽,這個(gè)標(biāo)簽用于反映模型對(duì)擾動(dòng)后樣本的預(yù)測(cè)結(jié)果,從而提供關(guān)于模型在局部數(shù)據(jù)集上行為的信息。

3" 實(shí)驗(yàn)設(shè)置

3.1" 數(shù)據(jù)集

為驗(yàn)證IAL4SD的有效性,本文使用文獻(xiàn)[19]提供的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。該數(shù)據(jù)集共包含6個(gè)開源項(xiàng)目,涵蓋了C/C++和Java兩種最流行的編程語言。本文主要選用了該數(shù)據(jù)集中規(guī)模較大的3個(gè)項(xiàng)目,數(shù)據(jù)集的詳細(xì)信息如表1所示。表中顯示了每個(gè)代碼變更的特征維數(shù)、代碼變更的總數(shù)以及導(dǎo)致缺陷的變更占所有變更的百分比。

3.2" 實(shí)驗(yàn)評(píng)估

3.2.1" 即時(shí)缺陷評(píng)估指標(biāo)

即時(shí)軟件缺陷預(yù)測(cè)是一個(gè)二分類問題,假設(shè)模型預(yù)測(cè)的結(jié)果為正例(有缺陷變更),記為1;預(yù)測(cè)的結(jié)果為負(fù)例(無缺陷變更)記為0,則可以得到如表2所示的混淆矩陣。其中,TP表示正確預(yù)測(cè)有缺陷變更的數(shù)量,F(xiàn)P表示將無缺陷變更預(yù)測(cè)為引入缺陷變更的數(shù)量,F(xiàn)N表示將有缺陷變更預(yù)測(cè)為無缺陷變更的數(shù)量,TN表示正確預(yù)測(cè)無缺陷變更的數(shù)量。

實(shí)驗(yàn)主要采用F1和AUC兩個(gè)指標(biāo)來評(píng)估本文所提出的IAL4SD方法是否有效。

F1是結(jié)合了精確率和召回率的綜合性能指標(biāo),是精確率和召回率的調(diào)和平均,計(jì)算公式如下:

[F1=2×Precision×RecallPrecision+Recall] (1)

式中:Precision代表精確率;Recall代表召回率。

AUC指受試者工作曲線(ROC Curve)下的面積,反映了模型在不同閾值下真正例率(True Positive Rate, TPR)和假正例率(False Positive Rate, FPR)之間的綜合性能。AUC的值越高,分類器將正例排在負(fù)例前面的能力越強(qiáng),即分類器的性能越好。

3.2.2" 可解釋性評(píng)估指標(biāo)

為驗(yàn)證IAL4SD能否有效提高模型的解釋性能,本文主要使用解釋的一致性[20]、解釋的保真度[21]兩個(gè)定量評(píng)估方法對(duì)可解釋性模型進(jìn)行評(píng)估。

一致性是指對(duì)于2個(gè)相似的數(shù)據(jù)點(diǎn)x和x′,其預(yù)測(cè)解釋也應(yīng)該是接近相等的。文獻(xiàn)[22]使用余弦相似度來衡量解釋的一致性,余弦相似度越大,表明解釋的一致性越好。

解釋的保真度是指利用解釋方法給出的預(yù)測(cè)結(jié)果與待解釋模型預(yù)測(cè)結(jié)果之間的均方根誤差[23],主要描述解釋模型在何種程度上準(zhǔn)確模仿原模型。解釋的保真度計(jì)算公式如下:

[RMSE=i=1n(pi-pi)n] (2)

式中:[pi]代表從“黑盒”模型中獲得的單個(gè)預(yù)測(cè);[pi]代表從解釋方法獲得的近似預(yù)測(cè);n是測(cè)試數(shù)據(jù)樣本的總數(shù)。RMSE的值越小,說明解釋模型的預(yù)測(cè)結(jié)果越接近“黑盒”模型的預(yù)測(cè)結(jié)果,即解釋的保真度更高。

3.3" 實(shí)驗(yàn)設(shè)置

為驗(yàn)證主動(dòng)學(xué)習(xí)的有效性,本文將選取不使用主動(dòng)學(xué)習(xí)的方法,并與Uncertainty、QBC(Query By Committee)以及Random這三個(gè)使用主動(dòng)學(xué)習(xí)的方法進(jìn)行對(duì)比。在使用主動(dòng)學(xué)習(xí)的方法中,采用CNN作為判別器,ResNet18作為標(biāo)注模型,將Epoch設(shè)置為200,在每次進(jìn)行主動(dòng)學(xué)習(xí)的迭代時(shí),都從目標(biāo)項(xiàng)目中挑選出1 280個(gè)樣本,對(duì)其進(jìn)行標(biāo)注后放入源項(xiàng)目中。相對(duì)地,對(duì)于不使用主動(dòng)學(xué)習(xí)的方法(Burak?SD),本文將采用Burak過濾方法,計(jì)算目標(biāo)項(xiàng)目中每個(gè)實(shí)例與源項(xiàng)目實(shí)例之間的歐氏距離,然后選擇距離最近的10個(gè)實(shí)例作為訓(xùn)練集,從而達(dá)到減小跨項(xiàng)目之間的分布差異的目的。

為驗(yàn)證IAL4SD是否能較好地解釋數(shù)據(jù)選擇策略這一“黑盒”模型,本文將選取LIME、全局代理模型以及RuleFit模型進(jìn)行對(duì)比。在IAL4SD和LIME模型中,當(dāng)對(duì)特定實(shí)例進(jìn)行擾動(dòng)時(shí),生成5 000個(gè)樣本作為局部數(shù)據(jù)集。全局代理模型從全局的角度建立一個(gè)簡(jiǎn)化的決策樹模型來近似“黑盒”模型的行為,并提供更容易理解的解釋。RuleFit方法是一種結(jié)合決策樹和線性模型的算法,在決策樹的基礎(chǔ)上生成規(guī)則,并將這些規(guī)則作為特征輸入到線性模型中,從而構(gòu)建一個(gè)同時(shí)具有高預(yù)測(cè)性能和可解釋性的模型。

3.4" 實(shí)驗(yàn)結(jié)果

3.4.1" 主動(dòng)學(xué)習(xí)有效性實(shí)驗(yàn)結(jié)果分析

為驗(yàn)證主動(dòng)學(xué)習(xí)的有效性,選取不使用主動(dòng)學(xué)習(xí)(Burak?SD)以及Uncertainty、QBC(Query By Committee)、Random三個(gè)不同的主動(dòng)學(xué)習(xí)樣本選擇策略進(jìn)行對(duì)比,F(xiàn)1指標(biāo)和AUC指標(biāo)實(shí)驗(yàn)結(jié)果分別如表3、表4所示。

從表3中可以看出:在Eclipse JDT數(shù)據(jù)集上, IAL4SD的F1值比Burak?SD提高了0.175,比Uncertainty提高了0.11,比QBC提高了0.12,比Random提高了0.115;在Mozilla數(shù)據(jù)集上,IAL4SD的F1值比Burak?SD提高了0.275,比Uncertainty提高了0.05,比QBC提高了0.06,比Random提高了0.065。這表明,在Eclipse JDT和Mozilla數(shù)據(jù)集上,IAL4SD均能在Precision和Recall之間取得較好的平衡。在PostgreSQL數(shù)據(jù)集上,IAL4SD的F1值比Burak?SD提高了0.095,比Uncertainty提高了0.15,比QBC提高了0.11,比Random略低了0.04。這表明PostgreSQL這個(gè)特定數(shù)據(jù)集上,IAL4SD的性能介于Burak?SD、Uncertainty、QBC和Random之間。同時(shí),IAL4SD的平均F1值比Burak?SD提高了0.182,比Uncertainty提高了0.104,比QBC提高了0.097,比Random提高了0.047。這表明從整體上看,IAL4SD也可以在Precision值和Recall值之間取得了較好的平衡,即同時(shí)具有較高的精確性和覆蓋率。

從表4中可以看出,在Eclipse JDT數(shù)據(jù)集上, IAL4SD的AUC值比Burak?SD提高了0.076,比Uncertainty提高了0.081,比QBC提高了0.063,比Random提高了0.036。在Mozilla數(shù)據(jù)集上,IAL4SD的AUC值比Burak?SD提高了0.037,比Uncertainty提高了0.029,比QBC提高了0.067,比Random提高了0.085。這表明,在Eclipse JDT和Mozilla數(shù)據(jù)集上,IAL4SD均可以更好地區(qū)分正例樣本和負(fù)例樣本。在PostgreSQL數(shù)據(jù)集上,IAL4SD的AUC值比Burak?SD提高了0.074,比Uncertainty提高了0.082,比QBC提高了0.081,比Random略低了0.052。這表明PostgreSQL這個(gè)特定數(shù)據(jù)集上,IAL4SD的性能介于Burak?SD、Uncertainty、QBC和Random之間。同時(shí),IAL4SD的平均AUC值比Burak?SD提高了0.063,比Uncertainty提高了0.064,比QBC提高了0.071,比Random提高了0.023。這代表著IAL4SD可以更好地區(qū)分正類別和負(fù)類別樣本,整體分類效果更優(yōu)秀。

綜上所述,無論是F1指標(biāo)還是AUC指標(biāo),IAL4SD的性能均高于其他四種方法。因此,IAL4SD在該標(biāo)注問題上具有更好的性能,也展示了主動(dòng)學(xué)習(xí)方法的潛力和有效性,為解決標(biāo)注問題提供了一種有效的解決途徑。

3.4.2" 與主流可解釋模型的比較

為了測(cè)試算法的性能,選取了LIME、全局代理模型和RuleFit三個(gè)不同的可解釋模型作為對(duì)比,一致性指標(biāo)和RMSE指標(biāo)實(shí)驗(yàn)結(jié)果分別如表5、表6所示。

從表5中可以看出,在Eclipse JDT數(shù)據(jù)集上,IAL4SD的一致性指標(biāo)比LIME低了0.193 3,比全局代理模型高了0.319 5,比RuleFit高了0.221 6。在PostgreSQL數(shù)據(jù)集上,IAL4SD的一致性指標(biāo)比LIME低了0.04,比全局代理模型高了0.459 6,比RuleFit高了0.327 6。這表明在Eclipse JDT和PostgreSQL數(shù)據(jù)集上,IAL4SD的性能介于全局代理模型、RuleFit和LIME之間。在Mozilla數(shù)據(jù)集上,IAL4SD的一致性指標(biāo)比LIME高了0.026 7,比全局代理模型高了0.519 7,比RuleFit高了0.402。這表明在該數(shù)據(jù)集上,IAL4SD模型在解釋相似數(shù)據(jù)點(diǎn)時(shí)具有更好的一致性,即生成的解釋結(jié)果在相似數(shù)據(jù)點(diǎn)之間更加穩(wěn)定和一致。同時(shí),IAL4SD模型的平均一致性指標(biāo)比LIME低了0.068 9,比全局代理模型增加了0.432 9,比RuleFit增加了0.317。這意味著IAL4SD模型在解釋相似數(shù)據(jù)點(diǎn)時(shí)的一致性較差。這可能是因?yàn)槭褂肦uleFit生成決策規(guī)則并不能全面反映數(shù)據(jù)集的特征分布和模型的行為。

從表6中可以看出,在Eclipse JDT數(shù)據(jù)集上,IAL4SD的RMSE指標(biāo)比LIME低了8.774 1,比全局代理模型低了768.059 9,比RuleFit低了30.320 8。這意味著在該數(shù)據(jù)集上,IAL4SD的保真度均比LIME、全局代理模型和RuleFit這三個(gè)模型高。在Mozilla數(shù)據(jù)集上,IAL4SD的RMSE指標(biāo)比LIME低了363.546 3,比全局代理模型高了102.359 3,比RuleFit低了633.592 2。這意味著在Mozilla這個(gè)特定的數(shù)據(jù)集上,IAL4SD的保真度低于全局代理模型,卻高于LIME、RuleFit模型。在PostgreSQL數(shù)據(jù)集上,IAL4SD的RMSE指標(biāo)比LIME高了147.336 5,比全局代理模型低了49.377 1,比RuleFit高了115.711 6。這意味著在PostgreSQL這個(gè)特定的數(shù)據(jù)集上,IAL4SD模型的保真度高于全局代理模型,但相對(duì)于LIME、RuleFit模型卻具有較低的保真度。同時(shí),IAL4SD的平均RMSE指標(biāo)比LIME低了74.994 6,比全局代理模型減少了238.359 2,比RuleFit減少了182.733 8。由于RMSE值越低,代表著模型解釋的保真度更高,這意味著IAL4SD模型的保真度均高于其他三種方法,即該模型預(yù)測(cè)結(jié)果更接近于“黑盒”模型的預(yù)測(cè)結(jié)果,相比之下,IAL4SD模型更準(zhǔn)確地模擬了原模型的行為。

綜上所述,IAL4SD模型雖然在解釋相似數(shù)據(jù)點(diǎn)時(shí)稍顯不足,但在模型解釋的保真度方面具有更低的RMSE指標(biāo),說明其預(yù)測(cè)結(jié)果更接近于“黑盒”模型的預(yù)測(cè)結(jié)果。因此,IAL4SD模型能更準(zhǔn)確地模擬“黑盒”模型的行為,提高可解釋模型的性能。

4" 結(jié)" 語

本文提出了一種面向可解釋性的軟件缺陷預(yù)測(cè)主動(dòng)學(xué)習(xí)方法IAL4SD,通過主動(dòng)學(xué)習(xí)挑選出一批不確定樣本并交給專家進(jìn)行標(biāo)注,解決了數(shù)據(jù)標(biāo)注成本過高的問題。通過使用領(lǐng)域知識(shí)對(duì)給定實(shí)例進(jìn)行擾動(dòng)生成局部數(shù)據(jù)集,并使用線性模型在局部數(shù)據(jù)集上模擬數(shù)據(jù)選擇策略這一“黑盒”模型的行為,解決了主動(dòng)學(xué)習(xí)數(shù)據(jù)選擇策略缺乏可解釋性的問題。

本文首先分析了軟件缺陷數(shù)據(jù)標(biāo)注方法代價(jià)高以及主動(dòng)學(xué)習(xí)數(shù)據(jù)選擇策略缺乏可解釋性的問題;其次詳細(xì)介紹了的原理和算法;最后在公開數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),驗(yàn)證了主動(dòng)學(xué)習(xí)的有效性,且和主流的可解釋模型進(jìn)行比較。實(shí)驗(yàn)結(jié)果表明,本文提出的方法可以有效提高軟件缺陷數(shù)據(jù)標(biāo)注的效率,并在降低成本的同時(shí)提高模型的可解釋性。

IAL4SD采用了近似的方法來模擬模型的決策行為,從局部的角度解釋模型的單個(gè)決策結(jié)果。但I(xiàn)AL4SD模型只能捕獲“黑盒”模型的局部特征,無法解釋模型的整體決策行為。因此如何將局部解釋性方法與全局解釋性方法相結(jié)合,從而實(shí)現(xiàn)對(duì)模型整體決策行為的解釋,是未來的研究方向。

注:本文通訊作者為李勇。

參考文獻(xiàn)

[1] 田笑,常繼友,張弛,等.開源軟件缺陷預(yù)測(cè)方法綜述[J].計(jì)算機(jī)研究與發(fā)展,2023,60(7):1467?1488.

[2] MOSKOVITCH R, NISSIM N, STOPEL D, et al. Improving the detection of unknown computer worms activity using active learning [C]// KI 2007: Advances in Artificial Intelligence. Osnabrück, Germany: Springer, 2007: 489?493.

[3] LIU P, WANG L, HE G, et al. A survey on active deep learning: from model driven to data driven [EB/OL]. [2023?07?12]. https://www.xueshufan.com/publication/3164803610.

[4] COHN D, ATLAS L, LADNER R. Improving generalization with active learning [J]. Machine learning, 1994, 15: 201?221.

[5] LI M, ZHANG H, WU R, et al. Sample?based software defect prediction with active and semi?supervised learning [J]. Automated software engineering, 2012, 19(2): 201?230.

[6] QU Y, LI F, CHEN X. LAL: Meta?active learning?based software defect prediction [J]. International journal of performability engineering, 2020, 16(2): 203.

[7] QU Y, CHEN X, CHEN R, et al. Active learning using uncertainty sampling and query?by?committee for software defect prediction [J]. International journal of performability engineering, 2019, 15(10): 2701.

[8] XU Z, LIU J, LUO X, et al. Cross?version defect prediction via hybrid active learning with kernel principal component analysis [C]// 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER). [S.l.]: IEEE, 2018: 209?220.

[9] LU H, KOCAGUNELI E, CUKIC B. Defect prediction between software versions with active learning and dimensionality reduction [C]// 2014 IEEE 25th International Symposium on Software Reliability Engineering. [S.l.]: IEEE, 2014: 312?322.

[10] YUAN Z, CHEN X, CUI Z, et al. ALTRA: cross?project software defect prediction via active learning and tradaboost [J]. IEEE access, 2020, 8: 30037?30049.

[11] LIU Q, LIU Z, ZHU X, et al. Deep active learning by model interpretability [EB/OL]. [2023?04?12]. http://arxiv.org/abs/2007.12100v3.

[12] MAHAPATRA D, POELLINGER A, SHAO L, et al. Interpre?tability?driven sample selection using self supervised learning for disease classification and segmentation [J]. IEEE transactions on medical imaging, 2021, 40(10): 2548?2562.

[13] JIA S, LI Z, CHEN N, et al. Towards visual explainable active learning for zero?shot classification [J]. IEEE transactions on visualization and computer graphics, 2021, 28(1): 791?801.

[14] SAADALLAH A, MORIK K. Active sampling for learning interpretable surrogate machine learning models [C]// 2020 IEEE 7th International Conference on Data Science and Advanced Analytics. [S.l.]: IEEE, 2020: 264?272.

[15] PHILLIPS R, CHANG K H, FRIEDLER S A. Interpretable active learning [C]// Conference on Fairness, Accountability and Transparency. [S.l.]: PMLR, 2018: 49?61.

[16] RIBEIRO M T, SINGH S, GUESTRIN C. Why should i trust you?\" Explaining the predictions of any classifier [C]// Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Francisco, California, USA: ACM, 2016: 1135?1144.

[17] GISSIN D, SHALEV?SHWARTZ S. Discriminative active lear?ning [EB/OL]. [2023?11?27]. http://arxiv.org/abs/1907.06347v1.

[18] DONGGEUN Y, KWEON I S. Learning loss for active lear?ning [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, CA, USA: IEEE, 2019: 93?102.

[19] YASUTAKA K, EMAD S, BRAM A, et al. A large?scale empirical study of just?in?time quality assurance [J]. IEEE transactions on software engineering, 2012(39): 757?773.

[20] 陳珂銳,孟小峰.機(jī)器學(xué)習(xí)的可解釋性[J].計(jì)算機(jī)研究與發(fā)展,2020,57(9):1971?1986.

[21] 紀(jì)守領(lǐng),李進(jìn)鋒,杜天宇,等.機(jī)器學(xué)習(xí)模型可解釋性方法、應(yīng)用與安全研究綜述[J].計(jì)算機(jī)研究與發(fā)展,2019,56(10):2071?2096.

[22] CHU L Y, HU X, HU J H, et al. Exact and consistent interpretation for piecewise linear neural networks: a closed form solution [C]// Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, USA: ACM, 2018: 124?125.

[23] GUO W B, MU D L, XU J, et al. LEMNA: explaining deep learning based security applications [C]// Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security New York, USA: ACM, 2018: 364?379.

作者簡(jiǎn)介:王" 越(1998—),女,山西運(yùn)城人,碩士研究生,主要研究方向?yàn)闄C(jī)器學(xué)習(xí)可解釋性。

李" 勇(1983—),男,山西晉中人,博士后,副教授,主要研究方向?yàn)榭尚艡C(jī)器學(xué)習(xí)與智能軟件工程。

張文靜(1995—),女,甘肅蘭州人,碩士研究生,主要研究方向?yàn)樵隽款A(yù)測(cè)與可解釋性學(xué)習(xí)。

DOI:10.16652/j.issn.1004?373x.2024.20.016

引用格式:王越,李勇,張文靜.面向可解釋性的軟件缺陷預(yù)測(cè)主動(dòng)學(xué)習(xí)方法[J].現(xiàn)代電子技術(shù),2024,47(20):101?108.

收稿日期:2024?04?02" " " " " "修回日期:2024?05?06

基金項(xiàng)目:新疆自治區(qū)自然科學(xué)基金項(xiàng)目(2022D01A225);新疆自治區(qū)重點(diǎn)研發(fā)計(jì)劃項(xiàng)目(2022B01007?1)

猜你喜歡
主動(dòng)學(xué)習(xí)深度學(xué)習(xí)
有體驗(yàn)的學(xué)習(xí)才是有意義的學(xué)習(xí)
電子商務(wù)中基于深度學(xué)習(xí)的虛假交易識(shí)別研究
MOOC與翻轉(zhuǎn)課堂融合的深度學(xué)習(xí)場(chǎng)域建構(gòu)
大數(shù)據(jù)技術(shù)在反恐怖主義中的應(yīng)用展望
淺談音樂課堂中的教與學(xué)做到合一
東方教育(2016年16期)2016-11-25 03:06:31
化學(xué)教與學(xué)(2016年10期)2016-11-16 13:29:16
高中生物教學(xué)中學(xué)生主動(dòng)學(xué)習(xí)策略研究
人間(2016年28期)2016-11-10 22:12:11
數(shù)字電路課程的翻轉(zhuǎn)課堂教學(xué)及調(diào)研
深度學(xué)習(xí)算法應(yīng)用于巖石圖像處理的可行性研究
基于深度卷積網(wǎng)絡(luò)的人臉年齡分析算法與實(shí)現(xiàn)
軟件工程(2016年8期)2016-10-25 15:47:34
庆安县| 贺兰县| 老河口市| 虞城县| 呼玛县| 潞西市| 东乡县| 巴马| 喀喇沁旗| 叙永县| 巴里| 濉溪县| 视频| 仙居县| 会昌县| 四平市| 呼玛县| 临安市| 鸡西市| 江源县| 柏乡县| 屏东市| 沙洋县| 惠安县| 应用必备| 理塘县| 隆回县| 襄汾县| 惠州市| 甘德县| 淮北市| 大邑县| 乌拉特后旗| 镇康县| 苏州市| 盐边县| 泾川县| 商洛市| 桑日县| 电白县| 绍兴市|