寧一璇
(浙江理工大學 信息學院,杭州311121)
近年來,人工智能與機器學習技術已經越來越成熟,已經滲透到人們生活的方方面面。例如,圖像識別、無人駕駛等領域。伴隨著智能技術的發展,人們對于機器學習程序高質量的需求日益增加,但現階段對機器學習算法的分析與理解不足,并且傳統的軟件測試方法和評價標準也并不適用機器學習算法[1]。如何分析機器學習算法,已成為亟待解決的問題。
目前對機器學習進行質量分析,主要集中在以下幾種方法:
(1)提高數據集質量。如Chakarov等人[2]提出PSI工具。認為對于分類任務,訓練集中的錯誤會導致大量的分類錯誤。
(2)測試訓練好的模型。如Groce等[3]提出了WYSIWYT/ML框架,幫助終端用戶測試機器學習系統。
(3)利用蛻變測試方法,來測試機器學習程序代碼。如Xie等人[4]嘗試用蛻變測試來進行機器學習程序的測試。但從算法上對機器學習進行質量分析的研究甚少。
程序不變量常被用于追蹤軟件缺陷[5]、硬件錯誤[6]和軟件評估[7]。在程序運行時,能夠反映程序代碼在整個運行過程中,具有不變性質的邏輯斷言。不僅如此,還可以反映程序數據結構等各方面的信息,在程序的設計、測試等各方面都發揮著巨大的作用[8]。因此,可以將程序不變量用于機器學習算法的質量分析。
基于此,本文提出了基于不變量的機器學習算法分析。該分析方法將程序不變量與關鍵變量篩選提取方法相結合,通過對不同參數輸入下的機器學習算法進行程序不變量的生成,然后對生成得到的不變量集合進行關鍵變量的提取,進而對機器學習算法進行分析。……