基於蛻變測試原理對基於機器學習的圖片識別器進行實現錯誤的識別

基於蛻變測試原理對基於機器學習的圖片識別器進行實現錯誤的識別

論 文:Dwarakanath A, Ahuja M, Sikand S, et al. Identifying implementation bugs in machine learning based image classifiers using metamorphic testing[C]//Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, 2018: 118-128.

摘 要:

在如今的時代,我們見證了機器學習在實踐應用中的巨大成功。在計算機視覺、語音識別和語言翻譯等方面機器學習甚至都已達到了類人的水平。作者們認為在不久的將來,多數的業務應用軟件程序也都會應用到機器學習的實踐。然而測試機器學習程序是一件非常具有挑戰性的任務,如果遵循傳統的測試方法,耗費的成本也比較高。作者就測試機器學習程序的挑戰在本文中提出了一種基於蛻變測試概念的測試方法,並在基於機器學習的圖像識別器中進行了對實現錯誤的識別。作者們對基於機器學習的應用系統(如SVM和深度學習)提出了一系列的蛻變關係,實驗表明本文提出的方法能夠捕獲到71%的機器學習系統的實現錯誤。

背 景:

軟件驗證是測試程序是否正確的對輸入的測試用例做出符合其規範的響應,傳統的驗證技術會構造一組測試用例,通過“輸入-輸出”元組的形式給出,這種技術在傳統軟件測試中很常見並廣泛應用與白盒和黑盒測試中,但是這種驗證方式對機器學習的應用來說卻是不可行的,原因如下:

1. 預計要大量的輸入,圖像分類器可以將任何圖像作為其輸入,生成所有場景來涵蓋所有的測試情景,消耗時間成本太高。

2. 在很多情況下,輸入的預期輸出是未知的,或者成本過高(人工標記,專家知識等)

3. 同傳統軟件不同的是,即使深度學習存在出現分類錯誤問題,也不明白表明就是錯誤,因為機器學習本身無法做到百分之百準確,就算認定為出錯,也無法確認問題究竟出在哪兒,因此也就沒有辦法給出bug報告等文檔。

當機器學習算法表現出不正確的輸出時,可以有多個原因,如缺乏或偏頗的訓練數據,選取了不合適的機器學習架構,機器學習算法學習函數出錯,或存在實現錯誤。當前在實踐階段,幾乎總是將錯誤歸因於數據問題,但是本文作者認為,實現錯誤也是一個很重要的緣由,因為即使獲得再多再高質量的數據,如果存在實現錯誤,這也是無用功罷了。

方法介紹:

基於蛻變測試原理對基於機器學習的圖片識別器進行實現錯誤的識別


1. 基於線性內核和非線性內核的SVM的手寫圖片識別問題。為了證明MR的有效性,作者在每組的蛻變關係描述中均提供了數學方面的證明和驗證,具體不在此展開,論文中給出很詳細的論證。在該場景下給出了四組蛻變關係:

MR-1: 重新組合訓練集和測試集的特徵(Permutation of Training & Test Feature),即將訓練集和測試集的特徵(像素)做同種規律的變換(Permutation),變換前的訓練集訓練的模型在測試集(無論特定一張還是全部)與變換後的測試集訓練的模型在測試集上的表現應該保持一致。

MR-2: 對訓練集數據的順序進行變化(Permutation of Order of Training Instances),即訓練集合的順序在同種設置的模型下訓練,性能表現等的結果應該是一致的。

MR-3: 對訓練集和測試集的數據進行固定大小的移動(Shifting of Training & Test Features by a Constant),即對訓練集和測試集的數據進行同樣像素及方向的移動操作(shifting),前後訓練的結果應該應該保持一致。本MR僅適用於RBF的內核。

MR-4: 測試特徵的線性放縮(Linear Scaling of the Test Features),本蛻變僅適用於線性內核,即對應放縮某測試樣本的特徵(像素),在訓練結果中內核函數的值也會對應倍數的放縮。

基於蛻變測試原理對基於機器學習的圖片識別器進行實現錯誤的識別

2. 基於殘差網絡的圖像分類問題,本文中選取的殘差網絡是ResNet,其結構圖如上圖所示,ResNet在不同的運行環境中均能獲得良好的性能,當前在很大程度上被認為是圖像分類的默認選擇,本場景選用的數據集是Cifar-10,同時也提出了四個蛻變關係MRs:

MR-1: 更改訓練數據和測試數據的像素通道順序(Permutation of input channels (i.e. RGB channels) for training and test data),即將訓練集和測試集像素通道做相同的順序變換,變換前的訓練集訓練的模型在測試集(無論特定一張還是全部)與變換後的測試集訓練的模型在測試集上的表現應該保持一致。本MR與SVM的MR1的原理相似。變換通道後的示意圖如下。

基於蛻變測試原理對基於機器學習的圖片識別器進行實現錯誤的識別


MR-2: 對訓練集和測試集數據卷積操作的順序變化(Permutation of the Convolution Operation Order for Training and Test Data),即對訓練集合和測試集合的卷積角度進行變化,於MR1同理,示意圖如下。

基於蛻變測試原理對基於機器學習的圖片識別器進行實現錯誤的識別

MR-3: 對測試數據進行正則化(Normalizing the Test Data),即對訓練集和測試集進行常見的深度學習領域的預處理,如歸一化和均值化,這樣做的好處是為了降低方差並使得訓練過程更快的收斂,該蛻變關係表明對測試數據進行正則化應不影響模型對其的判斷。效果圖如下。

基於蛻變測試原理對基於機器學習的圖片識別器進行實現錯誤的識別

MR-4: 測試數據的線性放縮(Scaling the Test Data by a Constant),本蛻變測試同SVM的MR4,即對測試數據的像素進行固定常數的放縮在模型中重新測試,分類結果和損失值loss應該是一致的。

本文貢獻:

本文的突出特點就是在試驗中進行多種形式的蛻變測試:

1. 作者首次研究了具有非線性內核的SVM模型,給出新型的線性與非線性內核的蛻變關係。

2. 基於SVM的數序公式首次給出了正式的蛻變關係的證明。

3. 首次提出針對深度學習圖像分類器領域的蛻變關係進行驗證。

4. 通過實驗驗證了方法的有效性和合理性,實驗結果及源碼已開源。

致謝:

本文由南京大學軟件學院2018級碩士生王棟翻譯轉述

相關推薦

推薦中...