吳歡歡 謝瑞麟 喬塬心 陳 翔 崔展齊
1 (北京信息科技大學計算機學院 北京 100101)
2 (南通大學信息科學技術學院 江蘇南通 226019)
(wuhuanhuan@bistu.edu.cn)
近年來,深度神經網絡(deep neural network,DNN)被成功應用于計算機視覺[1]、語音識別[2]、自然語言處理[3]等領域. 在自動駕駛[4]和智慧醫療[5]等場景下,DNN 甚至可以代替人類完成決策. 例如汽車制造商的自動駕駛技術[4]、監控系統常用的人臉識別技術[6]、工業制造使用的缺陷檢測技術[7]等. 隨著DNN 應用領域的不斷擴大,人們對DNN 的質量提出了更高要求. 尤其在一些安全攸關領域,如果DNN 的質量達不到要求,或將引發災難性后果. 據NHTSA 統計[8],在2016—2021 年,僅與特斯拉自動駕駛系統有關的8 起交通事故中就導致了10 人死亡. 因此,如何有效保障DNN 的質量已成為智能軟件領域的一個重要研究課題.
與傳統軟件類似,DNN 也不可避免地含有缺陷.對于傳統軟件的質量保障問題,已有大量工作圍繞缺陷檢測[9]、缺陷定位[10]、增量調試[11]和自動錯誤修復[12]等技術展開研究,并取得了良好的效果. 但上述質量保障技術無法直接適用于DNN. 傳統軟件通常根據軟件需求設計編寫程序的內部邏輯,DNN 則是在定義好模型結構后使用數據集對模型進行訓練,使其學習輸入數據到預測輸出的高維映射關系.DNN 的內部行為邏輯取決于其結構、訓練數據及訓練得出的神經元權重等[13]. 因此,需要根據DNN 的特點研究有針對性的質量保障方法.
在DNN 質量保障研究工作中,通常認為準確率低于理想值就稱為DNN 存在缺陷[14]. 目前已有許多工作對DNN 缺陷檢測技術進行研究[15]. 例如Pei 等人[16]根據DNN 的結構特點提出了一種白盒差分測試技術,在測試用例生成過程中將系統行為差異和高神經元覆蓋率作為優化目標,取得了較高的神經元覆蓋率,并在Udacity 自動駕駛汽車挑戰賽數據集中發現了撞擊護欄等數千個錯誤行為. Zhang 等人[17]提出了基于對抗式生成網絡(generative adversarial network,GAN)的測試數據生成方法DeepRoad,通過生成不同天氣條件下的駕駛場景來檢測基于DNN 的自動駕駛系統的不一致行為.
在檢測到DNN 中存在的缺陷后,更為重要的是針對所發現的缺陷優化DNN,以提升其性能. 現有的DNN 優化工作主要通過擴增訓練數據和優化DNN參數2 種方式進行. 擴增訓練數據是對訓練數據進行擴增,使用擴增后的數據訓練DNN 以提升性能. 例如Ma 等人[14]提出了一種基于狀態差分分析和輸入選擇的自動神經網絡調試技術MODE,該方法可幫助識別有缺陷的神經元,測量它們的重要性并使用GAN 指導生成具有較高真實性的訓練數據,以提高模型性能. 優化DNN 參數則直接調整DNN 中的權重等參數以提升DNN 性能. 例如,Zhang 等人[18]提出了一種DNN 修復方法Apricot,其思想是使用部分原始數據集訓練生成一組簡化的DNN,然后利用它們提供搜索方向,以調整待修復DNN 的權重值. 上述2 種方法均達到了較好的優化效果,如Apricot 方法在所有模型上的準確率平均提升了1.08 個百分點,提升的范圍是1.00~2.15 個百分點. MODE 方法的過程較為復雜且需要較高的訓練成本,而Apricot 方法的修復過程需要構建訓練多個DNN 來提供搜索方向,這將提高修復成本,且修復過程不具有可解釋性.
針對上述問題,本文提出了一種基于可解釋性分析的DNN 優化方法(optimizing DNN based on interpretability analysis,OptDIA). 首先,利用DNN 解釋方法計算不同區域對DNN 預測結果的貢獻值,獲取不同區域對DNN 預測結果產生影響的重要程度.然后,對重要區域以不同概率使用遮擋、變異等方式進行數據變換以擴增訓練數據集. 其中,重要程度越低的區域進行數據變換的概率越高. 最后,使用擴增后訓練數據集再訓練DNN 以進行優化. 實驗結果表明,OptDIA 可以將DNN 的準確率提升0.39~2.15 個百分點,F1-score提升0.11~2.03 個百分點.
本文的主要貢獻有2 個方面:
1) 提出了一種基于可解釋性分析的DNN 優化方法OptDIA,使用DNN 解釋方法指導擴增訓練數據,并通過再訓練優化DNN,以達到提升其性能的目的.
2) 為驗證OptDIA 的有效性,本文實現了原型工具,對9 個DNN 模型在3 個開源數據集上進行實驗,并對OptDIA 優化模型性能的能力進行驗證.
目前,缺乏可解釋性已經成為制約機器學習算法研究、開發和實現的一個關鍵問題. 隨著DNN 模型越來越多地用于自動駕駛、智慧醫療等安全攸關領域,人們對使用解釋方法分析DNN 的需求越來越大. 雖然已經提出了許多DNN 解釋方法,但使用解釋方法分析DNN 是否達到預期效果及提升DNN 性能的研究相對較少. 由于訓練數據會影響DNN 性能,若使用解釋方法對DNN 預測過程進行分析,以理解其預測正確或錯誤的原因,可獲取每條訓練數據不同區域對DNN 預測結果的影響;并進行有針對性的數據變換,可增加訓練數據的多樣性,提升模型性能.為此,本文提出了基于可解釋性分析的DNN 優化方法OptDIA.
OptDIA 的框架圖如圖1 所示,主要包括2 個部分. 首先使用解釋方法對DNN 的訓練過程和決策行為進行分析以生成梯度加權類激活圖[19],梯度加權類激活圖可顯示原始數據中不同區域對DNN 預測結果的重要程度. 若某塊區域重要程度越高,則表示該區域所對應原始數據中的特征對預測結果影響越大(將在1.2 節中詳細介紹);隨后是基于可解釋性分析的訓練數據生成階段,該階段按一定概率選取訓練數據,根據梯度加權類激活圖進行數據變換操作生成新訓練數據,對DNN 再訓練并記錄訓練過程中的性能,在達到停止條件時輸出性能最佳的DNN,并將其作為優化后的DNN(將在1.3 節中詳細介紹).

Fig.1 The framework of OptDIA圖1 基于可解釋性分析的DNN 優化方法框架
由于DNN 具有復雜的多層非線性網絡結構,難以全面理解其預測機制,因此常被當作黑盒使用,這也導致難以確認DNN 產生缺陷的原因. 對DNN 預測過程的內部工作機制進行深入分析,度量不同特征對預測結果的影響程度,才能有針對性地優化DNN.因此,OptDIA 中的一個關鍵步驟是對DNN 的預測過程進行解釋分析,以了解訓練數據不同區域影響DNN 行為的重要性差異.
目前,已有多種解釋方法可用于理解DNN 的內部工作機制,例如基于反向傳播的Grad[20]、基于特征反演的Guide Inversion[21]、基于類激活映射的CAM(class activation mapping)[22]和基于梯度加權類激活映射的Grad-CAM(gradient-weighted CAM)[19]等. 相比于其他DNN 解釋方法,將梯度信息與特征映射相結合的Grad-CAM 無需修改網絡架構或重訓練模型,可避免導致DNN 準確率下降,并適用于不同任務以及多種結構的DNN 模型. 因此,OptDIA 采用Grad-CAM方法對DNN 進行解釋分析和可視化.
OptDIA 首先會對訓練數據進行解釋分析. 具體地:在DNN 的正向傳播過程中,將最后一個卷積層作為Grad-CAM 的目標層,并得到預測結果未經過Softmax 激活之前的預測值,再通過反向傳播計算目標層所輸出的各個特征圖對于預測值的梯度,將梯度全局平均池化后得到特征圖對于預測結果類別的貢獻值. 目標層特征圖對于預測值的貢獻值計算方法如式(1)[19]:
其中,c表示類別,yc是在經過Softmax 激活之前DNN 對類別c的預測值,Ak表示目標層的第k個特征圖,i,j分別為特征圖Ak的單個像素值在橫軸和縱軸的索引,Z為特征圖Ak的長和寬的乘積.即第k個特征圖對于類別c的貢獻值.
接下來,將特征圖對于預測類別的貢獻值作為權重,對目標層的所有特征圖進行加權求和,并通過函數ReLU將所有負值取0,消除一些與目標類別無關的干擾,從而獲得一個粗粒度的梯度加權類激活圖,以用于定位每條訓練數據中具有類判別性的重要區域. 其中,類判別性指的是訓練數據中對DNN預測提供重要依據的特征. 類別c的梯度加權類激活圖計算方法如式(2)所示[19]:
在獲取梯度加權類激活圖后,可將其與原始數據疊加生成熱力圖,以更加直觀地了解不同區域對DNN預測結果的重要性差異. 圖2 為解釋方法Grad-CAM生成的梯度加權類激活圖,以及與原始數據疊加生成的熱力圖示例. 圖2 中每一行的圖片分別為來自CIFAR-10,CIFAR-100[23],Fashion-MNIST[24]數據集中的訓練數據,標簽分別為“bird”“man”“t-shirt”. 圖2中第1 列為原始數據;第2 列為使用Grad-CAM 所生成的梯度加權類激活圖;第3 列為將梯度加權類激活圖與原始數據疊加生成的熱力圖,其中顏色越深的區域對DNN 分類結果影響越大. 從圖2 可以看出;對于圖片“bird”,對DNN 分類結果起重要作用的部分為其紡錘形的體型特征;對于圖片“man”,對DNN分類結果起重要作用的部分為其身體特征;對于圖片“t-shirt”,對DNN 分類結果起重要作用的部分為衣服袖口.

Fig.2 Example of gradient-weighted class activation map and heat map on different datasets圖2 不同數據集的梯度加權類激活圖和熱力圖示例
DNN 性能受模型結構、超參數和訓練數據等因素影響,在模型結構和超參數確定的情況下,訓練數據的質量和多樣性等因素也會影響DNN 性能. 因此如何提高訓練數據的質量及多樣性是OptDIA 的關鍵. 目前,幾何變換[25]、顏色空間增強[26]、核濾波器[27]、隨機擦除[28]、對抗訓練[29]和神經風格轉移[30]等數據增強方法常用于優化訓練數據. 但是這些增強訓練數據方法通常被研究者用來解決小樣本訓練問題.OptDIA 將基于解釋分析結果應用數據增強方法提高訓練數據質量,以優化DNN,進而提升其性能.
基于可解釋性分析的訓練數據生成步驟如算法1所示.
算法1.基于可解釋性分析的訓練數據生成.
輸入:訓練集trainSet,測試集testSet,原始數據索引imgId,待優化DNNM;
輸出:優化后DNNM'.
① for eachiinimgId
②camMap=GradCAM(M,trainSet[i]);
③areaRank=getImportantArea(camMap);
④trainSet[i] =Augment(areaRank,trainSet[i]);
⑤ end for
⑥models = reTrain(trainSet,testSet,M);
⑦bestAcc= 0;
⑧ for eachminmodels
⑨acc=validate(testSet,m);
⑩ ifacc>bestAcc
?bestAcc = acc;
?M'=m;
? end if
? end for
? returnM'.
算法1 中,首先將訓練數據輸入到DNN 進行解釋分析,以生成梯度加權類激活圖camMap(行①②).然后,根據camMap統計固定大小區域的熱力值以獲取原始數據中對預測結果影響重要性程度區域排序araRank(行③),其中,熱力值指訓練數據中不同區域對DNN 預測結果的重要性程度,值越大越重要. 接著,根據原始數據中的重要性程度區域排序areaRank使用數據增強方法Augment對原始數據中的一個區域進行數據變換(其中重要程度排序越低的區域被選擇進行數據變換的概率越高),并將所生成的數據替換訓練數據集中的原始數據(行④),其中變換數據方法可以采用隨機擦除[28]等數據增強技術. 訓練數據替換完成后,對DNN 進行重訓練并驗證每個訓練輪次中DNN 的準確率(行⑧⑨). 最后,在達到預設定的重訓練輪數后停止優化,并從中選擇準確率最高的DNNM'作為優化后的DNN 輸出(行⑩~?).此算法的最壞時間復雜度為O(n),其中n為數據集規模.
基于算法1,通過使用數據增強方法對梯度加權類激活圖中的不同區域按重要程度和不同概率選擇進行變換生成新的訓練數據,以提高訓練數據的質量及多樣性,并使用生成的數據再次訓練DNN 以提升其性能完成優化. 圖3 為OptDIA 方法生成新數據示例. 其中,第1 列為對來自CIFAR-10,CIFAR-100,Fashion-MNIST 數據集中的原始數據使用Grad-CAM所生成的梯度加權類激活圖,標簽分別為“bird”“man”“t-shirt”. 第2 列為根據梯度加權類激活圖生成的新數據,用于再訓練. 梯度加權類激活圖用作變換數據范圍的依據以生成新數據,將對DNN 預測起重要作用的區域以較小的概率變換,而其他對DNN預測結果不重要的區域以較大的概率進行數據變換,來讓DNN 學習更多重要區域的特征. 例如對于“bird”,讓DNN 學習更多身體部位特征;對于“man”,讓DNN學習更多人體形態特征;對于“t-shirt”,讓DNN 學習更多衣服特征. OptDIA 通過解釋分析對預測結果不重要的特征進行變換,來讓DNN 學習更多的重要特征,從而正確分類測試數據.

Fig.3 Example of training data generated based on interpretability analysis on different datasets圖3 不同數據集基于可解釋性分析的訓練數據生成示例
我們基于所提出的OptDIA 方法,實現了DNN優化原型工具. 在原型工具中,通過解釋分析對原始數據中的區域進行重要性排序,排序越高的區域被選擇使用隨機擦除方法[28]進行數據變換的概率越低.其中,隨機擦除指的是對被選擇進行數據變換的區域用隨機值像素替換以生成具有不同遮擋程度的訓練圖像,每條數據被選擇擦除的概率沿用文獻[28]中的0.1. 為確定實驗所用的擦除區域大小,分別將圖片區域的分割方式設置為64,16,4 個大小相等的矩形區域,初步實驗結果表明,不同區域大小對OptDIA的優化效果并無顯著影響. 在實驗中我們選擇將圖像等分為16 個大小相等的矩形區域,CIFAR-10 和CIFAR-100 數據集的矩形大小為8×8,Fashion-MNIST數據集的矩形大小為7×7. 原型工具的開發和運行環境為Python3.6 和Pytorch1.12.
本文通過3 個研究問題來驗證OptDIA 的有效性.
問題1. OptDIA 是否能優化DNN 以提升DNN 性能.OptDIA 是一種基于可解釋性分析的DNN 優化方法,為了評估OptDIA 的有效性,設計了問題1 驗證OptDIA 在不同數據集訓練的不同DNN 模型上提升DNN 性能的有效性.
問題2. 解釋方法的引入是否提高了OptDIA 優化DNN 的有效性.
解釋方法的引入是OptDIA 區別于其他DNN 優化方法的重要步驟,為了評估解釋方法的引入對DNN 優化能力的影響,設計了問題2 驗證OptDIA 在DNN 優化過程中,使用解釋方法選擇數據變換區域和使用隨機方法選擇數據變換區域對優化效果的影響.
問題3.OptDIA 能否在已使用數據增強方法進行訓練的模型上繼續提升DNN 性能.
目前,數據增強方法已經能有效地在訓練過程中對訓練數據進行擴增,以提高模型的泛化能力并達到較高的性能. 問題3 驗證OptDIA 是否能進一步提升應用了數據增強方法進行訓練的DNN 性能.
2.2.1 數據集
為回答2.1 節的3 個問題,實驗將OptDIA 在使用CIFAR-10,CIFAR-100,Fashion-MNIST 數據集訓練的DNN 上進行驗證和分析. 所使用的數據集被廣泛應用于提升DNN 性能的工作中[14,18,28]. 其中,CIFAR-10 數據集由10 類共60 000 張尺寸為32×32 的3 通道彩色圖像組成,其中包含50 000 張訓練圖像和10 000張測試圖像. CIFAR-100 具有和CIFAR-10 相同的數據格式和規模,2 個數據集的區別在于類別數不同,CIFAR-10 具有10 種分類類別,而CIFAR-100 具有100 種分類類別. Fashion-MNIST 由10 類共70 000 張尺寸為28×28 的單通道灰度圖像組成,其中包含60 000張訓練圖像和10 000 張測試圖像. 數據集的詳細信息如表1 所示. 數據集已經被劃分好訓練集及測試集,實驗使用其中的訓練集訓練,測試集用來測試及評估優化效果.

Table 1 The Statistics of Datasets表1 數據集信息
2.2.2 實驗對象
我們使用CIFAR-10,CIFAR-100,Fashion-MNIST數據集訓練了3 種模型:分別使用18 層、34 層和50層結構的ResNet[31]. 優化器學習率從0.01 開始每訓練20 輪下降3 倍,在第50 輪停止訓練. 將這些完成訓練的DNN 作為待優化模型. 為減少隨機性的影響,所有實驗均重復運行3 次后取平均值.
2.2.3 評價標準
在實驗中使用準確率Accuracy和F1-score來評價優化效果,以反映DNN 的擬合能力和預測未知樣本的能力.
對于二分類問題,其中正樣本被正確預測稱為TP,負樣本被錯誤預測稱為FP,負樣本被正確預測稱為TN,正樣本被錯誤預測稱為FN. 式(3)為準確率Accuracy的計算方式,即所有樣本中正確預測為正樣本占所有樣本的比例;式(4)為精確率Precision的定義,即預測的正樣本中實際是正樣本的個數占被預測為正樣本的比例;式(5)為召回率Recall的定義,即所有樣本中被預測為正樣本占所有正樣本的比例;式(6)為F1-score的定義,同時考慮精確率和召回率.實驗中使用的CIFAR-10,CIFAR-100,Fashion-MNIST數據分別有10,100,10 個類別. 對于多分類問題,可將每個數據集中的類兩兩組合,分別計算每個類和其他類之間的Accuracy和F1-score,再計算平均值即可.
2.3.1 針對問題1 的結果分析與討論
為了評估OptDIA 的有效性,在實驗中使用固定大小的滑動窗口掃描原始數據,對每個矩形區域統計其在加權梯度類激活圖中的貢獻值,并根據貢獻值排序,貢獻值越低的區域進行數據變換的概率越高. 實驗將分別在3 個數據集上預訓練50 輪的9 個DNN 模型作為待優化模型,再使用OptDIA 重訓練50 輪進行優化,并將預訓練300 輪的DNN 模型的準確率與優化后DNN 模型的準確率進行對比.
實驗結果如表2 所示,其中Org50和Org300分別表示優化前預訓練50 輪和300 輪DNN 的準確率,OptDIA 表示優化后DNN 的準確率. 實驗結果表明,OptDIA 可提升使用3 個數據集訓練的9 個DNN 的準確率以進行優化. 其中,對于使用CIFAR-10 訓練的ResNet-50 模型,OptDIA 將準確率提升了1.23 個百分點;對于使用CIFAR-100 訓練的ResNet-50 模型,OptDIA將準確率提升了2.15 個百分點;對于使用Fashion-MNIST訓練的ResNet-50 模型,OptDIA 將準確率提升了1.32個百分點. 實驗結果表明,在3 個數據集上訓練的9個模型中,有7 個使用OptDIA 優化50 輪后所提升的準確率比直接預訓練300 輪模型的準確率高. 其中,對于使用CIFAR-10 訓練的ResNet-50 模型,優化50輪后的準確率要比預訓練300 輪模型準確率高1.02個百分點;對于使用CIFAR-100 訓練的ResNet-50 模型,優化50 輪后的準確率要比預訓練300 輪模型準確率高1.79 個百分點;對于使用Fashion-MNIST 訓練的ResNet-18 模型,優化50 輪后的準確率要比預訓練300 輪模型準確率高0.39 個百分點. 其中,對于初始準確率較低的模型,準確率提升空間比較大,OptDIA提升準確率的幅度也相對較大. 如使用CIFAR-100 訓練的ResNet-50 模型,初始準確率55.66%,OptDIA 將其準確率提升了2.15 個百分點;對于初始準確率較高的模型,其準確率提升空間較小,OptDIA 提升準確率的幅度也相對較小. 如使用Fashion-MNIST 訓練的ResNet-34 模型,初始準確率已達92.98%,OptDIA 僅將其準確率提升了0.53 個百分點.

Table 2 Accuracy Comparison of Different DNNs Before and After Optimization by OptDIA表2 不同DNN 使用OptDIA 優化前后的準確率比較 %
從表2 可以看出,對于3 種DNN 模型,使用OptDIA均可提升其準確率,甚至相比較預訓練300 輪的DNN 模型,預訓練50 輪后使用OptDIA 優化的DNN模型準確率更高. 對實驗結果進行分析發現,這是因為OptDIA 使用解釋方法對DNN 的預測過程進行分析,獲取每條訓練數據中不同區域特征對DNN 結果預測的重要程度,并對越不重要的區域以越大的概率進行變換生成新數據,增加訓練數據的多樣性,從而提升DNN 模型的性能.
對問題1 的回答:對于使用不同數據集和結構訓練的DNN,OptDIA 均可有效提升其準確率,提升幅度為0.39~2.15 個百分點,所有模型的準確率平均提升了1.04 個百分點,即使與訓練300 輪的DNN 模型相比,使用OptDIA 優化的模型準確率也更高.
2.3.2 針對問題2 的結果分析與討論
為分析OptDIA 中解釋方法對DNN 模型優化效果的影響,實驗在不同結構的DNN 和數據集上分別使用OptDIA-和OptDIA 優化方法,并對所提升的性能進行比較. 其中,OptDIA-指沒有使用Grad-CAM 對數據進行解釋分析,而是直接對訓練數據進行隨機擦除操作以擴增訓練數據. 實驗在預訓練50 輪的待優化DNN 基礎上,分別用OptDIA-和OptDIA 再訓練50 輪,并對比所提升性能的差異.
表3 給出了OptDIA-和OptDIA 使用3 個數據集訓練的9 個DNN 模型上提升性能的情況. 如表3 所示,除ResNet-50 模型在CIFAR-100 數據集上使用OptDIA-的優化效果優于OptDIA 外,其他模型使用OptDIA 的優化效果均優于比OptDIA-,準確率提升了0.39~2.15 個百分點,F1-score提升了0.11~2.03 個百分點. 其中,對于使用CIFAR-10 訓練的ResNet-18,OptDIA 可以提升0.53 個百分點的準確率和0.41 個百分點的F1-score,而OptDIA-只能提升0.20 個百分點的準確率和0.17 個百分點的F1-score,OptDIA所提升的準確率和F1-score分別為OptDIA-的2.65倍和2.41 倍;對于使用CIFAR-10 訓練的ResNet-34,OptDIA 可以提升0.80 個百分點的準確率和0.87 個百分點的F1-score,而OptDIA-只能提升0.15 個百分點的準確率和0.78 個百分點的F1-score,OptDIA 所提升的準確率和F1-score分別為OptDIA-的5.33 倍和1.12 倍.

Table 3 Performance Improvements of Optimizing Different DNNs by OptDIA- and OptDIA 表3 不同DNN 使用OptDIA-和OptDIA 優化性能提升比較
就所有模型的平均優化效果而言,對使用CIFAR-10 數據集訓練的DNN,OptDIA 和OptDIA-平均提升的準確率為0.85 個百分點和0.54 個百分點,提升的F1-score為0.90 個百分點和0.85 個百分點,OptDIA平均提升的準確率和F1-score分別是OptDIA-的1.57倍和1.06 倍;對使用CIFAR-100 數據集訓練的DNN,OptDIA 和OptDIA-平均提升的準確率分別為1.36 個百分點和1.21 個百分點,提升的F1-score分別為0.90個百分點和1.24 個百分點,OptDIA 平均提升的準確率是OptDIA-的1.12 倍,平均提升的F1-score與OptDIA-相近;對使用Fashion-MNIST 數據集訓練的DNN,OptDIA 和OptDIA-平均提升的準確率為0.77 個百分點和0.69 個百分點,提升的F1-score為1.24 個百分點和0.82 個百分點,OptDIA 平均提升的準確率和F1-score分別是OptDIA-的1.12 倍和1.47 倍.
從表3 可以看出,使用解釋方法指導變換數據再訓練DNN 所提升的性能高于未使用解釋方法指導變換數據再訓練DNN 所提升的性能. 對實驗結果進行分析發現,這是因為解釋方法可更好地幫助理解DNN 模型的預測過程. 使用解釋方法將DNN 訓練過程透明化,以掌握訓練數據中部分區域特征的重要程度,并將此作為變換數據以增加其多樣性的依據.而未使用解釋方法指導數據變換則有較強隨機性,難以使DNN 模型學習多樣化的特征.
OptDIA 使用解釋方法分析DNN 的預測行為,并根據分析結果對原始數據進行數據變換以生成新數據. 解釋方法的引入將消耗更高的時間成本,過高的額外時間成本將影響OptDIA 在現實場景中的實用性. 為研究OptDIA 在有效提高DNN 準確率的前提下額外消耗的時間成本,在計算表3 中的實驗數據時,我們還統計了對不同結構的DNN 和數據集分別使用OptDIA-和OptDIA 生成新數據所消耗的時間成本,如表4 所示.

Table 4 Time Costs Comparison of Different DNNs by Using OptDIA- and OptDIA to Generate Training Data表4 不同DNN 使用OptDIA-和OptDIA 生成訓練數據的時間消耗比較
如表4 所示,使用解釋方法Grad-CAM 選擇擦除區域的OptDIA,與直接對訓練數據進行隨機擦除的OptDIA-相比,解釋方法的引入平均額外消耗了1 min 34 s,即平均每生成一張新訓練數據額外消耗約0.016 s(以擦除概率為0.1,每個數據集生成約6 000 條新數據計算). OptDIA 只對被選擇進行數據變換的數據進行解釋分析,算法的時間復雜度為O(n),且分析和數據變換區域的選擇均可由GPU 執行,具有較高的執行效率. 與DNN 動輒數小時的訓練耗時相比,OptDIA 額外消耗的時間成本并不會明顯降低其實用性.
對問題2 的回答:與隨機選擇數據變換區域的方法相比,OptDIA 能更有效優化DNN 以提升其性能,且消耗額外時間較少.
2.3.3 針對問題3 的結果分析與討論
為驗證OptDIA 是否能在應用現有數據增強方法進行訓練的DNN 上進行優化,首先將Zhong 等人[28]提出的數據增強方法,即隨機擦除(random erasing,RE),應用于DNN 訓練,然后再對使用RE 訓練的DNN 嘗試使用OptDIA 進行優化. 實驗使用RE 方法在3 個數據集上分別訓練了300 輪的9 個DNN 模型,并在其基礎上再使用OptDIA 繼續訓練50 輪.
實驗結果如表5 所示,其中RE 表示不同結構的DNN 使用隨機擦除方法進行數據增強訓練所得到DNN 的準確率,OptDIA 表示在使用RE 方法訓練的基礎上再使用OptDIA 繼續訓練所得到DNN 的準確率. 實驗結果表明,與直接訓練相比,RE 訓練的模型準確率提升了0.51~3.24 個百分點,OptDIA 則進一步提升使用RE 訓練的6 個模型的準確率和7 個模型的F1-score. 其中,對使用CIFAR-10 數據集訓練的模型,OptDIA 將RE 訓練的ResNet-50 模型的準確率和F1-score分別進一步提升了0.32 個百分點和0.97 個百分點,對使用CIFAR-100 數據集訓練的模型,OptDIA將RE 訓練模型的ResNet-50 模型的準確率和F1-score進一步提升了2.72 個百分點和2.35 個百分點,對使用Fashion-MNIST 數據集訓練的模型,其準確率和F1-score已較高,OptDIA 將RE 訓練的ResNet-50 模型的準確率和F1-score分別進一步提升了0.25 個百分點和0.15 個百分點.

Table 5 Performance Comparison of Different DNNs Trained by Using RE and Before and After Optimization by OptDIA表5 不同DNN 使用RE 和OptDIA 優化前后性能比較
從表5 可以看出,對于經使用數據增強方法預訓練的DNN 模型,OptDIA 仍可進一步提升其準確率,即達到優化DNN 的效果. 對實驗結果進行分析發現,因為利用DNN 的解釋方法指導進行數據變換能有效增加訓練樣本的多樣性,使DNN 學到更多的特征.
對問題3 的回答:OptDIA 可進一步提升使用數據增強方法訓練的DNN 模型的準確率和F1-score,提升幅度分別為0.11~2.72 個百分點和0.13~2.35 個百分點.
2.4.1 內部有效性
本文方法的內部有效性分析主要在于確實影響實驗正確性的因素. 首先,實驗中使用的DNN 解釋方法為Grad-CAM 的開源項目pytorch-grad-cam[32],該開源項目也被其他相關工作使用[33];其次,我們參考開源項目Random-Erasing 的源代碼[34]實現了實驗所用的數據增強方法;最后,實驗構建和訓練DNN 模型的代碼來自Torchvision[35]的開源實現,此外,還對代碼進行了多次內部交叉檢查,以盡量確保實現的正確性.
2.4.2 外部有效性
基于可解釋性分析的深度神經網絡優化方法的外部有效性主要在于實驗中所用的DNN 模型和數據集是否具有代表性以及OptDIA 是否具有可擴展性. 首先,本文實驗所使用的ResNet 模型以及CIFAR-10,CIFAR-100,Fashion-MNIST 數據集在優化DNN 的工作中被廣泛使用[14,18,28],具有一定代表性,但不能確保OptDIA 在其他待優化DNN 和數據集上的有效性.其次,在實驗中只使用了擦除方法對數據進行擴增,不能確保OptDIA 能在裁剪等其他數據擴增方法上的有效性. 此外,雖然任何準確率的提升都是對模型有意義的優化[14],但由于DNN 模型具有內在不確定性,因此無法保證準確率的提升幅度.
2.4.3 構造有效性
本文方法的構造有效性影響主要在于優化DNN的評價指標. 實驗中使用測試集的準確率和F1-score來評價實驗效果,這2 項指標常被用于評價DNN 性能[14]. 此外,為避免實驗結果的隨機性,我們使用相同參數進行多次實驗求得平均值作為實驗結果.
傳統軟件缺陷修復方法通過基于啟發式搜索[9]、人工模板[36]、語義約束[37]和統計分析[38]等技術自動生成針對特定缺陷的程序補丁,并將補丁自動添加到軟件以修復缺陷,或將補丁作為提示信息來幫助開發者繼續優化軟件[12]. 與傳統軟件不同,OptDIA 主要關注基于DNN 的智能軟件,其內部具體權重參數通過訓練獲取且結構較為復雜,這使其輸出結果缺乏傳統軟件的解釋性,因此傳統方法難以直接應用于優化DNN. 目前對DNN 進行優化的研究主要從訓練集和模型參數2 個切入點進行,本節將對這2 類方法分別進行介紹.
一類方法是通過擴增訓練集優化DNN 以提升其性能. Ma 等人[14]提出了DNN 調試方法MODE,該方法首先通過分析神經網絡狀態生成差分熱圖(differential heat map),并結合DNN 模型找出對于分類影響較大的神經元,分別對在訓練過程中存在欠擬合或過擬合的DNN 進行調試,然后指導GAN 生成具有較高真實性的訓練數據,從而提升模型的性能以優化DNN. Gao 等人[39]提出了一種基于模糊測試的數據擴充方法,該方法結合模糊測試和遺傳算法擴增數據,將優化問題轉化為搜索問題,以提高模型的健壯性,從而達到優化DNN 的目的. Liu 等人[40]提出了一個面向數據的變異框架Styx,該框架首先通過對原始數據進行輕微變異生成新的訓練集,并將其用于重新訓練DNN,以提高模型健壯性,從而達到優化的目的. 文獻[14, 39-40]所述的方法可在一定程度上優化DNN,然而依然存在擴充數據集的過程缺乏針對性,需要引入新的DNN,增加數據多樣性的能力有限且過程難以理解等問題.
另一類方法是通過修改模型參數優化DNN 以提升其性能. Zhang 等人[18]提出了一種權重調整方法Apricot,該方法通過在原始訓練集的許多不同子集上進行訓練得到簡化深度學習模型(reduced deep learning model,rDLM),使用其權重來輔助修改原始模型中的權重,從而提升模型的準確率以優化DNN.隨后他們又提出一種超啟發式方法Plum[41],該方法通過應用不同的修復策略生成一組候選DNN 模型,然后根據候選修復策略的整體優化效果對修復策略進行評估和排序,并使用最佳優化策略生成優化后的DNN. 基于變異的DNN 優化方法GenMuNN[42]量化神經元權重對DNN 預測結果的影響,并根據量化結果對各層神經元權重進行排序,然后使用遺傳算法對權重進行變異以生成變異體,直到出現準確率較高的DNN,即可達到優化的目的. Zhang 等人[43]提出了一種DNN 訓練監控與自動修復方法AUTOTRAINER,該方法可檢測梯度消失、梯度爆炸、損失振蕩和收斂緩慢等常見訓練問題,并自動采用如替換激活函數等內置修復方案提高DNN 性能,以達到優化DNN的目的. Sun 等人[44]提出了基于因果關系的神經網絡修復方法CARE,該方法通過最小限度地調整給定DNN 的權重參數,通過執行基于因果關系的缺陷定位以識別并優化“有罪(guilty)”神經元,通過構建一個滿足目標屬性(如公平性、無后門等)的神經網絡來提高其性能. 然而,直接對DNN 參數進行優化也會有一定風險,例如在調整權重時,直接調整參數難以控制修改幅度,甚至可能會影響模型準確地擬合訓練數據.
文獻[18, 41-44]所述的工作主要通過擴增數據集或修改模型參數的方式優化DNN,由于缺乏解釋性導致其修復過程大多難以理解. 本文所提出的基于可解釋性分析的深度神經網絡優化方法OptDIA使用DNN 解釋方法獲取訓練數據中對預測結果影響較大的區域,并通過對其進行數據變換生成新的數據再訓練DNN,以提升DNN 性能,從而達到優化DNN 的目的. 相較之前的工作,OptDIA 引入了DNN解釋方法,提高了數據擴增的針對性,使優化DNN的過程更容易被理解.
為優化DNN 以提升其性能,本文提出了一種基于可解釋性分析的DNN 優化方法OptDIA. 使用解釋方法獲取原始數據中對DNN 決策具有較高重要性的區域,并將其作為變換數據生成新數據的依據,再重新訓練DNN 以提升其性能,從而達到優化DNN的目的. 在使用3 個數據集訓練的9 個DNN 模型上進行的實驗結果表明,OptDIA 可以有效提升DNN 性能以進行優化,并可進一步優化使用現有數據增強方法訓練的DNN. 在下一步工作中,我們計劃在更大規模數據集上引入更多數據增強方法驗證OptDIA的優化效果,并計劃嘗試將本文方法引入語音、文本處理等領域,如利用解釋方法獲取詞語對情感分析結果的重要性程度,將其作為變換數據的依據,使用變換后的數據重新訓練模型,以提高其性能.
作者貢獻聲明:吳歡歡負責相關工作調研、論文撰寫及修訂等工作;謝瑞麟完成實驗并修改論文;喬塬心協助完成實驗;陳翔提出指導意見并修改論文;崔展齊指導論文選題、確定論文整體框架設計并修改論文.