機器學習模型中的 bug 太難找?DeepMind 呈上了三種好方法
雷鋒網 AI 科技評論按:計算機編程發展至今,bug 和軟體就一直如影隨形。多年來,軟體開發人員已經創建了一套在部署之前進行測試和調試的最佳方法,但這些方法並不適用於如今的深度學習系統。現在,機器學習的主流方法是基於訓練數據集來訓練系統,然後在另一組數據集上對其進行測試。雖然這樣能夠顯示模型的平均性能,但即使在最壞的情況下,保證穩健或可被接受的高性能也是至關重要的。對此,DeepMind 發布文章介紹了能夠嚴格識別和消除學習預測模型中的 bug 的三種方法:對抗測試(adversarial testing)、魯棒學習(robust learning)和形式化驗證(formal verification)。雷鋒網 AI 科技評論編譯如下。
機器學習系統默認設置的魯棒性較差。一旦引入細微誤差,那麼即使在特定領域中表現優於人類的系統,可能連簡單問題都解決不了。例如,考慮圖像擾動的問題:如果在輸入圖像中加入少量經仔細計算的雜訊,那麼一個比人類更擅長做圖像分類任務的神經網路就很容易將樹懶誤分類為賽車。
覆蓋在典型圖像上的對抗輸入可能導致分類器將樹懶錯誤地分類為賽車。兩個圖像在每個像素中最多相差 0.0078。第一張圖像被歸類為三趾樹懶,置信度> 99%。第二張概率>99% 的圖像被歸類為賽車。
這不是一個全新的問題。計算機程序一直都存在 bug。幾十年來,軟體工程師從單元測試到形式化驗證上裝了很多技術工具包。這些方法在傳統軟體上運行良好,但是由於這些模型的規模問題和結構不完整(可能包含數億個參數),因此採用這些方法來嚴格測試神經網路等機器學習模型是非常具有挑戰性的。這就需要開發用於確保機器學習系統部署更可靠的新方法。
從程序員的角度來看,bug 就是所有不符合系統規範(即預期功能)的行為。作為「智能化」任務的一部分,我們需要對評估一致性的技術進行研究,即機器學習系統不僅要與訓練集和測試集一致,還要與描述系統期望屬性的規範列表一致。這些屬性可能包括對輸入中微小擾動的魯棒性,避免災難性故障的安全限制,或產生符合物理定律的預測。
我們共同致力於嚴格開發和部署與所需規格可靠一致的機器學習系統,在本文中,我們將討論機器學習領域面臨的三個重要技術挑戰。
1、有效地測試與規範的一致性。我們探索有效的方法來測試機器學習系統是否與設計者和系統用戶所期望的屬性(例如不變性或魯棒性)一致。這是用於顯示模型可能與期望行為不一致的情況的一種方法,即在評估期間系統地搜索最壞情況的結果。
2、訓練與規範一致的機器學習模型。即使有大量的訓練數據,標準的機器學習演算法訓練出的預測模型也可以得出與具有魯棒性和公平性的期望規範不一致的預測結果,這就要求我們重新考慮訓練演算法,要求這些演算法不僅能夠很好地擬合訓練數據,還要能夠符合預期規範。
3、形式化驗證機器學習模型與規範的一致性。這需要這樣一種演算法,即對於所有有可能的輸入,該演算法都能證明模型的預測結果與規範之間是一致且可被證明的。雖然形式化驗證領域幾十年來一直在研究這種演算法,儘管進展不錯,但該方法並不能輕易地擴展到當今的深度學習系統。
測試與規格的一致性對抗樣本的魯棒性是深度學習中研究相對較好的一項工作。從這項工作中引申出的一個主要任務是評估強對抗樣本的重要性,以及設計可以做有效分析的透明模型。在和業界其他研究者合作時,我們發現許多模型在面對弱對抗樣本時看起來很穩健,然而,在面臨更強的對抗因子時,模型顯示出的對抗精確度基本為 0%(Athalye et al,2018,Uesato et al,2018,Carlini and Wagner,2017)。
雖然在監督學習下,大多數工作都關注一些罕見錯誤(其中以圖片分類任務居多),但是將這些方法擴展到其他場景中也是一件需要關注的事情。在最近關於發現重大錯誤的對抗方法的研究中,我們將這些方法應用於測試強化學習的智能體,這些智能體主要被應用在對安全性要求很高的場景中。開發自主系統的一個挑戰是,由於小錯誤可能會導致很嚴重的後果,因此我們容不得出現一點失誤。
我們的目標是設計一個「攻擊者」,以便我們提前檢測到一些錯誤(例如,在受控環境中)。如果「攻擊者」可以有效地識別給定模型的最壞情況輸入,則能夠讓我們在部署模型之前捕捉到一些罕見失誤。與圖像分類器一樣,面對一個弱的「攻擊者」進行評估會在部署期間造成一種錯覺,即這是安全的。這類似於「紅隊研判法(red teaming)的軟體實踐」,不過對惡意攻擊者造成的失誤進行了延展,同時還包括了自然出現的失誤,例如泛化不足造成的失誤。
針對於強化學習智能體的對抗測試,我們開發了兩種互補的方法。首先,我們使用無導數優化來直接最小化智能體的預期回報。在第二部分中,我們學習了一種對抗價值函數,該函數根據經驗預測哪些情況最有可能導致智能體失誤。然後,我們使用學習好的函數進行優化,將評估重點放在最有問題的輸入上。這些方法只構成了某個豐富且正在增長的潛在演算法空間的一小部分,同時,對於嚴格評估智能體方面未來的發展,我們也感到非常激動。
相比於隨機測試,這兩種方法已經實現了很大的改善。使用我們的方法,可以在幾分鐘內檢測到原需要花費數天才能發現甚至根本無法發現的失誤(Uesato et al,2018b)。我們還發現,對抗測試會定性地發現我們智能體的行為和在隨機測試集評估的預測結果之間存在的差異。特別是,使用對抗性環境構造,我們發現智能體在執行 3D 導航任務上的平均水平可與人類在同一任務上的表現相媲美,不過,它在十分簡單的迷宮上卻任務上,還不能夠完整地找到目標(Ruderman et al,2018)。此外,這項工作還強調,我們需要設計的系統除了要能對抗「攻擊者」,還要能夠抵禦自然失誤。
使用隨機抽樣,我們幾乎從不觀察具有高失敗概率的地圖,但是對抗測試表明這樣的地圖確實存在。即使在移除了許多牆壁,變成比原始地圖更簡單的地圖後,這些地圖上的失敗概率依然很高。
訓練與規範一致的模型
對抗測試旨在找到違反規範的反例。因此,它往往會高估模型與這些規範的一致性。在數學上,規範是必須在神經網路的輸入和輸出之間保持的某種關係。這可以採用某些鍵輸入和輸出參數的上限和下限的形式。
受此觀察的啟發,一些研究人員(Raghunathan et al,2018;Wong et al,2018;Mirman et al,2018;Wang et al,2018),包括我們在 DeepMind 的團隊(Dvijotham et al,2018;Gowal et al.,2018),研究了與對抗測試程序無關的演算法(用於評估與規範的一致性)。這可以從幾何學上理解,我們可以通過約束一組給定輸入情況下的輸出空間來約束與規範相差最大的情況(例如,使用間隔邊界傳播; Ehlers 2017,Katz et al,2017,Mirman et al,2018)。如果此區間相對於網路參數是可微分的並且可以快速計算,則可以在訓練期間使用它。然後可以通過網路的每個層傳播原始邊界框。
我們證明了「間隔邊界傳播」(interval bound propagation )是快速且有效的方法,並且與先前的信念相反,這種方法可以獲得更加強大的結果(Gowal et al,2018)。特別地,我們證明它可以降低在 MNIST 和 CIFAR-10 數據集上的用於圖像分類的現有技術的可證明的錯誤率(即,任何「攻擊者」可實現的最大錯誤率)。
該領域未來的下一步,將會是學習正確的幾何抽象以計算更嚴格的輸出空間過度概率。我們還希望訓練出能夠與更複雜的規範一致的網路,從而捕捉到理想的行為,例如上面提到的不變性和與物理定律的一致性。
形式化驗證嚴格的測試和訓練非常有助於構建強大的機器學習系統。但是,沒有多少測試可以形式化地確保系統的行為符合我們的要求。在大規模的模型中,由於輸入擾動有無窮多種,因此我們很難列舉出給定輸入集(例如,對圖像的無窮小擾動)所有可能的輸出。但是,與在訓練中的情況一樣,我們可以通過在輸出集上設置幾何區域來找到更有效的方法。形式化驗證是 DeepMind 正在進行的研究主題。
關於如何計算網路輸出空間上的精確幾何區域,機器學習研究界已經提出了幾個的有趣的 idea(Katz et al,2017,Weng et al,2018;Singh et al,2018)。我們的方法(Dvijotham et al,2018),則基於優化和二元性,包括將驗證問題表述為一個試圖找到被驗證的屬性中最大的違規行為的優化問題。同時,該問題通過在優化中使用二元性的思想而變得更易於計算。這就會帶來了額外的約束,其使用所謂的「切割平面」來細化經「間隔邊界傳播」計算得來的邊界框。這種方法雖然合理但不完整:可能存在興趣屬性為真,但此演算法計算的區域範圍不足以證明該屬性的情況。但是,一旦我們得到了區域範圍,這就形式化的保證了不會有違反屬性的行為。下圖以圖形方式說明了該方法。
這種方法使我們能夠將驗證演算法的適用性擴展到更廣泛的網路(激活函數,體系結構)、一般規範和更複雜的深度學習模型(例如生成模型、神經過程等)以及對抗魯棒性以外的規範(Qin,2018)。
總結在高風險情況下部署機器學習帶來了獨特的挑戰,並且需要開發相應的能夠可靠地檢測故障模式的評估手技術。更具體而言就是,我們認為,相比於僅僅從訓練數據中隱含地生成規範的方法而言,學習與規範的一致性的方法能夠帶來更有效的改進。我們對於正在進行的對抗評估、魯棒性模型學習和形式化規範驗證的研究,都感到非常興奮。
為了確保現實世界中的 AI 系統能夠做出「正確的事情」,我們還需要做更多的工作來創建自動化工具。我們對以下方向的進展特別感興趣:
1、學習對抗性評估和驗證:隨著 AI 系統的擴展和複雜程度不斷增加,設計能很好擬合 AI 模型的對抗性評估和驗證演算法將變得越來越困難。如果我們可以利用 AI 的強大功能來促進評估和驗證,那麼將大大加速這項研究的進展。
2、開發用於對抗性評估和驗證的工具並對外開放:為 AI 工程師和從業者提供易於使用的工具非常重要,這些工具可以在 AI 系統導致廣泛的負面影響之前,就讓研究者知道其可能的故障模式。這需要對對抗性評估和驗證演算法實現某種程度上的標準化。
3、擴大對抗樣本的範圍:到目前為止,大多數關於對抗樣本的工作都集中在對小擾動(通常是圖像)的模型不變性上。這為開發對抗性評估、魯棒學習和驗證方法提供了極好的測試平台。我們已經開始探索與現實世界直接相關屬性的替代規範,並對未來在這方面的研究感到興奮。
4、學習規範:在 AI 系統中捕獲「正確」行為的規範通常難以進行精準陳述。當我們可以構建能夠展示複雜行為並在非結構化環境中行動的更加智能的智能體時,我們將能夠創建能夠使用部分人類規劃的系統,但這些系統還需要從可評估的反饋中更加深入地學習規範。
DeepMind 通過負責任地進行機器學習系統開發和部署,致力於對社會產生積極的影響。為了確保開發人員的貢獻是有積極意義的,我們還需要應對許多技術挑戰。我們致力於參與這項工作,並很高興能夠與更多人合作解決這些挑戰。
via:https://deepmind.com/blog/robust-and-verified-ai/雷鋒網 AI 科技評論報道
※2019 到目前為止的深度學習研究進展匯總
※Arm 機器學習處理器的獨特之處
TAG:雷鋒網 |