靠 AI 幫助自動駕駛找出演算法中的 Bug,這種方法可堪大任嗎?

作者 | 發布日期 2017 年 11 月 13 日 13:50 | 分類 AI 人工智慧 , 自駕車 , 軟體、系統 follow us in feedly

大多數的軟體故障(Software bug)最多會讓你電腦當機,但絕對不會殺了你。不過,如果把場景換到自動駕駛汽車上,恐怕一旦出錯就是致命的了,畢竟誰也承受不了一輛疾馳的汽車在錯誤的時間做出錯誤的決定。



為了消除人們的擔心,研究人員專門開發了尋找軟體故障的方法,它能有系統地揪出線上服務和自動駕駛汽車上深度學習演算法的錯誤決定。

不過,想揪出 AI 的錯誤,還是得靠 AI。這種名為 DeepXplore 的糾錯方法背後至少有 3 套神經網路(深度學習演算法的基礎架構)。投入使用時,它們會相互進行對照檢查。DeepXplore 由哥倫比亞大學和理海大學共同研發,其主要目標是解決最佳化問題,即在最大化神經網路中神經元的觸發數量和在不同的神經網路中觸發盡可能多的衝突決策中找到最佳平衡。

當然,這種方法也有個前提,那就是假設大多數神經網路在通常狀態下會做出正確選擇。隨後,DeepXplore 會自動對那些懷有異見的神經網路進行「再教育」,讓它們學會「跟隨潮流」。

「這是一個完全不同的測試架構,它能找到自動駕駛系統和類似神經網路系統中出現的數千種錯誤。」裡海大學計算機科學助理教授 Yinzhi Cao 解釋。

據了解,10 月底在上海舉辦的 SOSP 大會上,Cao 和他的同事就憑藉一篇論文技驚四座並拿下大獎。該團隊的獲勝意味著業內對深度學習中潛藏的軟體故障越來越關心,像 DeepXplore 這樣的除錯工具未來將有一番新天地。

一般來說,深度學習演算法在做特定任務時是有人幫助的,技術人員會在大量的訓練數據中標出正確答案幫 AI 進步。這樣的方式讓深度學習演算法在某些測試數據集上準確率突破了 90%,在執行 Facebook 的人臉辨識和 Google 翻譯的句型選擇時能派上大用場。當然,在這種使用場景下,出點小錯根本無傷大雅。

▲ DeepXplore 找出了輝達 DAVE-2 自動駕駛軟體的致命錯誤(右)。(Source:研究論文

如果說以上的應用場景 AI 準確率已經能讓人滿意的話,在高速上行駛​​的大卡車恐怕就達不到要求了,畢竟一個小小的錯誤可能就會釀成大禍。

想讓政府監管者放行自動駕駛汽車,就必須向他們證明自動駕駛汽車能達到非常高的安全水準,或者用隨機測試集考驗它時不會輕易被揪出那些會帶來災難的「極端情況」。

「我認為安全和可靠 AI 的理念與可解釋 AI 如出一轍。」Suman Jana 說,他是哥倫比亞大學的計算機科學助理教授。「透明、可解釋和穩健這三大特點在機器學習系統與人類攜手工作或驅動自動駕駛汽車上路之前,還有許多地方有待提升。」

Jana 和 Cao 所在的團隊有許多研發者是軟體安全和除錯專家,在他們的世界裡,即使是那些準確率高達 99% 的軟體也不安全,因為駭客會找到系統故障的地方並趁虛而入。

不過,在當下的 AI 行業中,深度學習研究者將錯誤當成整個訓練過程中非常自然的一部分。因此,這個團隊非常適合擔起大任,成為 AI 世界中的「Bug 獵人」,幫演算法找到一個除錯的綜合方案。

眼下,在為自動駕駛汽車的神經網路除錯時,會用到一些相當沉悶且隨機的方法。其中就包括研究人員手動創造測試圖片並將它們「餵」給神經網路,直到 AI 做出錯誤的選擇。第二種測試方案名為「敵對測試」,AI 會自動生成一系列測試圖片,透過調整其中細節發揮欺騙神經網路的作用。

DeepXplore 的方法與以上兩種有所不同,它自動創造的圖片會讓 3 個或更多的神經網路做出相互矛盾的決定。舉例來說,DeepXplore 會在一張圖片中找到幾盞燈光,其中兩個神經網路會將它看作汽車,而第 3 個則會將它看作人臉。

與此同時,在測試中 DeepXplore 還會透過觸發神經元和不同的神經網路通路來提高神經元的覆蓋率。Cao 表示,這種方法取材於傳統的軟體測試方法──代碼覆蓋率。整個過程能讓神經網路 100% 的活躍起來,或者說比上面提到的兩種測試方法活躍度提高 30%。

據了解,為了證明 DeepXplore 的實力,它找了 15 個頂級神經網路練習。

果然,DeepXplore 直接揪出了數千個之前從未發現過的錯誤。測試所用的數據集涵蓋了自動駕駛汽車、自動目標辨識和惡意軟體偽裝普通軟體等複雜的應用場景。

當然,現在的 DeepXplore 可不敢保證它已經找到了系統中的每一個 Bug,不過在測試大規模神經網路上,它已經比之前的方案先進多了。

史丹佛大學也在專心研究 AI 除錯,它的方法和 DeepXplore 完全背道而馳,史丹佛更重視如何讓一小簇的神經元不受軟體故障的影響。眼下,兩種方案都處在未完成狀態,但在深度學習演算法的除錯上,它們都是關鍵且潛力巨大的一步。

(本文由 雷鋒網 授權轉載;首圖來源:shutterstock)