傳統的軟件測試和debug方法很難適用于現代的機器學習系統,DeepMind希望解決這一問題,開發面向預測模型的可靠驗證工具。這篇博客描述了能嚴格識別并排除學習預測模型中的錯誤的三種方法:對抗性測試,穩健性學習和形式驗證。
自計算機編程誕生以來,軟件開發中就一直沒有離開過bug。隨著時間的推移,軟件開發人員已經建立了一套在軟件實際發布前進行測試和debug的最佳方式,但這些方式并不適合現代的深度學習系統。
今天,機器學習的主流方法是在訓練數據集上訓練系統,然后在另一組數據集上進行測試。即使在最壞的情況下,確保系統穩健性或高性能也是至關重要的。本文描述了能夠嚴格識別并排除學習預測模型中的錯誤的三種方法:對抗性測試,穩健性學習和形式驗證。
機器學習系統一般是不穩健的。即使在特定領域中表現優于人類的系統,具體情況稍微改變,往往就可能導致無法解決簡單問題。比如圖像擾動的問題:如果在輸入圖像中添加少量精心計算的噪聲,那么本來在圖像分類任務中表現超過人類的的神經網絡,很容易將一只樹獺錯認成一輛跑車。
在圖片上加上一個對抗性輸入,可能導致分類器將一只樹懶錯誤識別為一輛跑車。兩個圖像在每個像素上的差異最多只有0.0078。結果第一張被歸類為三趾樹懶,置信度> 99%。第二個被歸類為一輛跑車,概率> 99%。
其實這不是什么新問題。計算機程序總是有bug。幾十年來,軟件工程師開發了種類繁多的技術工具包,從單元測試到形式驗證。這些方法在傳統軟件上運行良好,但是由于這些模型的規模和缺乏結構性(可能包含數億個參數),想用這些方法來嚴格測試神經網絡等機器學習模型是非常困難的。開發能夠確保機器學習系統在部署時穩健性的新方法勢在必行。
從程序員的角度來看,與系統的規范(即預期功能)不一致的任何行為都屬于bug。DeepMind不僅評估了機器學習系統的技術是否與訓練集和測試集一致,還評估了這些技術的作用與系統的期望屬性的規范描述中是否一致。這些屬性可能包括對輸入中足夠小的擾動的穩健性,避免災難性故障的安全約束,或產生符合物理定律的預測能力等。
本文討論機器學習社區面臨的三個重要技術挑戰,因為我們共同致力于嚴格開發和部署與所需規格可靠一致的機器學習系統:
高效測試實際功能與屬性規范的一致性。我們探索有效的方法,來測試機器學習系統是否與設計者和系統用戶所期望的屬性相一致。揭示二者差異的一種方法是在評估期間系統地搜索最壞情況下的結果。
訓練機器學習模型,使其產生屬性一致的預測。即使有了大量的訓練數據,標準的機器學習算法也可以產生與理想屬性不一致的預測模型。這要求我們重新考慮訓練算法,這些算法不僅能夠很好地擬合訓練數據,而且要與屬性列表上的要求保持一致。
正式證明機器學習模型是規范性一致的。雖然形式驗證領域幾十年來一直在研究這種算法,也取得了令人矚目的進展,但很難輕易擴展到現代深度學習領域。
測試規范一致性
面對對抗性實例下的穩健性問題,是深度學習中研究相對充分的問題。這項工作的一個主要主題是評估模型在強對抗性攻擊下的穩健性,以及設計可有效分析的透明模型。我們發現許多模型在弱對抗下進行評估時看上去很穩健。但遇見針對更強的對抗時,精度幾乎下降為零。
目前大多數研究都集中在監督學習(主要是圖像分類)的背景下,但是需要將這些想法擴展到其他條件。在最近關于對抗災難性故障方法的研究中,我們將這些想法用于測試確保關鍵設置的強化學習智能體上。開發這類自主系統的挑戰之一是,由于一個錯誤就可能產生嚴重后果,因此即使非常小的失敗概率也是不可接受的。
我們的目標是設計一個“對手”,能讓我們提前檢測這些故障。與圖像分類器一樣,針對弱攻擊進行評估,很容易產生錯誤的安全感。我們為強化學習對抗性測試開發了兩種互補的方法。首先,使用無衍生優化來對智能體的預期回報進行最小化。接著,學習一種對抗值函數,該函數根據經驗預測哪種情況最有可能導致智能體的失敗。然后使用此學習函數進行優化,將評估重點放在最有問題的輸入上。這些方法只構成了豐富且不斷增長的潛在算法空間的一小部分,我們對能夠對智能體的未來發展進行嚴格評估感到興奮。
這兩種方法已經比隨機測試產生了很大的改進,可以在幾分鐘內檢測到過去需要花費數天才能發現(甚至完全無法發現)的問題。我們還發現,對抗性測試可能會發現我們的智能體出現了與隨機測試集的評估結果性質不同的行為。
在對抗性環境下,我們發現執行3D導航任務的智能體仍然無法在十分簡單的迷宮中完全找到目標,即使它們在非對抗性環境下的平均表現已經和人類相當。此外,我們需要設計能夠抵御自然故障的系統。
在隨機抽樣中,我們幾乎從來沒觀察到具有高失敗概率的地圖,但是在對抗性測試下,這樣的地圖確實存在。即使在去掉了許多墻壁之后,智能體在這些地圖下的失敗概率仍然很高。
訓練規范一致性的模型
對抗性測試是為了找到違背規范的反例。因此往往會高估模型與這些規范的一致性。在數學上,規范是必須在神經網絡的輸入和輸出之間保持的某種關系。這種關系可以通過某些關鍵輸入和輸出參數的上限和下限的形式來體現。
受此啟發,DeepMind的團隊和其他團隊研究了與對抗性測試程序無關的算法(用于評估規范一致性。這可以從幾何學上理解 - 我們可以約束給定的一組輸入的情況下,限制輸出空間來最嚴重地違反規范。如果此界限范圍相對于網絡參數是可微分的并且可以快速計算,則可以在訓練期間使用,通過網絡的每個層傳播原始邊界框。
結果表明,區間界限傳播是快速有效的,并且可以獲得強有力的結果。尤其是能夠降低MNIST和CIFAR-10數據集上的圖像分類中的現有技術的錯誤率。
未來的下一個前沿領域將是學習正確的幾何抽象,計算更嚴格的輸出空間過度概率。我們還希望訓練網絡與更復雜的規范一致,捕獲理想的行為,比如上文提到的不變性和與物理定律的一致性。
形式驗證
嚴格的測試和訓練有助于構建強大的機器學習系統。但是,沒有多少測試可以完全保證系統的行為符合我們的要求。在大模型中,由于輸入擾動的選擇極為龐大,因此列舉給定輸入集的所有可能輸出(例如對圖像的無窮小的擾動)是難以處理。但是,與訓練一樣,我們可以通過在輸出集上設置幾何邊界來找到更有效的方法。正式驗證是DeepMind正在進行的研究的主題。
機器學習社區已經有了幾個關于如何計算網絡輸出空間上的精確幾何邊界的有趣思路。我們的方法基于優化和二元性,將驗證問題轉化為優化問題。。下圖以圖形方式說明了該方法。
這種方法使我們能夠將驗證算法的適用性擴展到更一般的網絡(激活函數,體系結構),更一般性的規范和更復雜的深度學習模型(生成模型,神經過程等)
未來方向
我們需要做更多的工作來構建自動化工具,以確保現實世界中的AI系統做出“正確的事情”,為實現這個目標,未來需要在這些方向上發力:
學習對抗性評估和驗證:隨著AI系統的擴展和復雜度的提升,設計適合AI模型的對抗性評估和驗證算法將變得越來越困難。如果我們可以利用AI的強大功能來推進評估和驗證,那么這個過程可以大大加快,并實現擴展。
開發用于對抗性評估和驗證的公開工具:為AI工程師和從業者提供易于使用的工具是非常重要的,可以在AI系統造成廣泛的負面影響之前闡明其可能的故障模式。這需要一定程度的對抗性評估和驗證算法的標準化。
擴大對抗性實例的應用范圍:到目前為止,大多數關于對抗性實例的研究都集中在對小擾動(通常是圖像)的模型不變性上。這為開發對抗性評估,穩健性學習和驗證方法提供了極好的測試平臺。我們已經開始探索與現實世界直接相關的屬性的替代規范,并對未來在這方面的研究感到興奮。
學習規范:在AI系統中獲得“正確”行為的規范通常難以精確表述。當我們構建能夠展示復雜行為并在非結構化環境中行動的越來越智能的代理時,將需要構建可以使用部分人類規范并從評估反饋中學習進一步規范的系統。
-
機器學習
+關注
關注
66文章
8382瀏覽量
132444 -
DEBUG
+關注
關注
3文章
90瀏覽量
19888 -
深度學習
+關注
關注
73文章
5493瀏覽量
120998
原文標題:DeepMind新研究:三招解決機器學習模型debug難題
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論