當前位置:
首頁 > 知識 > DeepXplore:首個系統性測試現實深度學習的白箱框架

DeepXplore:首個系統性測試現實深度學習的白箱框架


選自arXiv


機器之心編譯


作者:Kexin Pei等


參與:吳攀、李亞洲


對於自動駕駛系統等事關人身安全的深度學習應用,了解其在極端情況下的表現是非常重要的。近日,來自哥倫比亞大學和理海大學的幾位研究者提出了一種深度學習系統的自動白箱測試方法 DeepXplore,據稱該方法是首個系統性測試現實深度學習系統的白箱框架。機器之心對這項研究的論文進行了摘要編譯介紹。

論文鏈接:https://arxiv.org/abs/1705.06640


深度學習(DL)系統在自動駕駛汽車、惡意代碼檢測等安全性非常重要的領域有了越來越多的部署,系統在極端情況下的準確率和預測能力極為重要。然而,對所有極端情況下含有數百萬個參數、數千個神經元的大規模深度學習系統進行系統性的測試極為困難。已有的深度學習測試極為依賴手動標記數據,也因此不能揭露模型對罕見輸入的不同錯誤行為。


我們提出了 DeepXplore:首個系統性測試現實深度學習系統的白箱框架(whitebox framework)。該框架解決兩個難題:(1)生成輸入,促發深度學習系統邏輯的不同部分;(2)在沒有手動涉入的情況下,識別深度學習系統的不正確行為。首先,我們引入了神經元覆蓋率(neuron coverage)來評估由一系列測試輸入練習的深度學習系統部位。然後,利用多個有類似功能的深度學習系統作為交叉引證,因此避免了對錯誤行為的手動檢查。我們表明了可以如何將在實現深度學習演算法高神經元覆蓋率時找到觸發不同行為的輸入的過程表示為一個聯合優化問題,然後使用基於梯度的優化技術有效地解決。


DeepXplore 在 5 個流行的數據集上訓練的當前最佳的深度學習模型中找到了數千個不正確的極端行為。對於所有這些被測試的深度學習模型,平均而言,DeepXplore 可以在一台商品筆記本電腦上在 1 秒之內生成一個代表不正確行為的測試輸入。由 DeepXplore 生成的輸入比已有的測試方法在神經元覆蓋率上平均高 33.2%。我們進一步表明由 DeepXplore 生成的測試輸入也可以被用於重新訓練對應的深度學習模型,以提升分類準確度或識別被污染的訓練數據。



DeepXplore:首個系統性測試現實深度學習的白箱框架



圖 1:由 DeepXplore 找到的 Nvidia DAVE-2 自動駕駛汽車平台上一個錯誤行為的示例。


圖 a:這個基於 DNN 的自動駕駛汽車正確決定左轉;圖 b:相反,這輛車決定右轉撞向護欄。b 圖的場景比 a 的更加灰暗。


1 引言


我們的主要貢獻是:

我們引入了神經元覆蓋率作為深度學習系統的首個白箱測試標準,以用於估計由測試輸入集探索的邏輯的量。


我們給出了尋找相似深度學習系統之間的大量行為差異的問題,同時最大化神經元覆蓋率可以被闡釋為一個聯合優化問題。我們提出了一種基於梯度的演算法來有效地解決這種問題。


我們實現了所有這些技術,並將其作為了 DeepXplore 的一部分,這是第一個白箱深度學習測試框架,揭示了 15 種當前最佳的深度學習模型的數千個不同的不正確的極端情況(比如,自動駕駛汽車撞到護欄,如圖 1 所示),這些模型總共有 132, 057 個神經元,在包含了 162 GB 數據的 5 個流行數據集上進行了訓練。


我們展示了可以如何將 DeepXplore 生成的測試用於重新訓練對應的深度學習系統,以提升分類準確度或識別被污染的訓練數據。


2 深度學習背景知識



DeepXplore:首個系統性測試現實深度學習的白箱框架



圖 2:一個簡單的 DNN 和由其每個神經元執行的計算


3 已有 DNN 測試的局限性


成本高昂的標記工作

低程度的測試覆蓋率



DeepXplore:首個系統性測試現實深度學習的白箱框架



圖 3:傳統程序和神經網路程序流程的比較。灰色節點表示在處理輸入時參與的對應基本模塊或神經元


4 DeepXplore 概述



DeepXplore:首個系統性測試現實深度學習的白箱框架



圖 4:DeepXplore 工作流程



DeepXplore:首個系統性測試現實深度學習的白箱框架


圖 5:在兩個相似的 DNN 中,輸入誘導出不同的行為



DeepXplore:首個系統性測試現實深度學習的白箱框架



圖 6:從一個種子輸入開始的梯度上升,然後逐漸找到差異誘導測試輸入


5 方法


在這一節,我們提供了對我們的演算法的詳細技術描述。首先,我們定義和解釋了 DNN 的神經元覆蓋率(neuron coverage)和梯度(gradient)的概念。接下來,我們描述了其測試問題可以被如何構建為聯合優化問題(joint optimization problem)。最後,我們提供了使用梯度的用於聯合優化的演算法。


5.1 定義


5.2 DeepXplore 演算法



DeepXplore:首個系統性測試現實深度學習的白箱框架


演算法 1:通過聯合優化測試輸入生成


6 實現


7 實驗設置


7.1 測試數據集和 DNN


7.2 特定領域的限制


8 結果



DeepXplore:首個系統性測試現實深度學習的白箱框架



表 1:用於評估 DeepXplore 的 DNN 和數據集的細節



DeepXplore:首個系統性測試現實深度學習的白箱框架


圖 7:奇數行展示了種子測試輸入,偶數行展示了由 DeepXplore 生成的差異誘導測試輸入。左邊 3 列展示了用於自動駕駛汽車的輸入,中間 3 行是用於 MNIST,右邊 3 行用於 ImageNet



DeepXplore:首個系統性測試現實深度學習的白箱框架



圖 9:當訓練數據集使用了同樣數量的輸入(分別通過隨機選擇、對抗測試和 DeepXplore 生成)進行增強時,三種 LeNet DNN 的準確度的提升


討論、相關工作、結論和參考文獻(略)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

生成人臉修復模型解讀:同時使用兩個鑒別器,直接合成逼真人臉
阿拉斯加國際神經聯合會議(IJCNN)中很酷的東西
反超GPU:微軟提出在CPU上高效解碼的神經機器翻譯模型
湯曉鷗談深度學習三大核心要素:演算法設計、高性能計算以及大數據
Bengio TED演講:無監督學習是深度學習突破的關鍵

TAG:機器之心 |

您可能感興趣

Matlab對深度學習工具包DeepLearnToolbox的例子實現
阿里首次開源深度學習框架X-Deep Learning
Aqara Apple HomKit系列套裝深度體驗
《Tensorflow:實戰Google深度學習框架》
Google Pixel 3 XL 深度體驗
Keras還是TensorFlow?深度學習框架選型實操分享
最硬核體驗與技術分析,深度對比Magic Leap One和HoloLens
計算機圖形學遇上深度學習,針對3D圖像的TensorFlowGraphics面世
計算機圖形學遇上深度學習,針對3D圖像的TensorFlowGraphics面世
用PyTorch做深度學習實驗!Facebook新框架Ax和BoTorch雙雙開源
Keras vs PyTorch:誰是「第一」深度學習框架?
ArXiv最火深度學習框架:TensorFlow第一,PyTorch第二!
Occipital推深度感測器,深度數據媲美HoloLens
Artilux發布全新ToF深度感測產品Explore Series
TensorFlow與PyTorch之爭,哪個框架最適合深度學習
Pieter Abbeel:深度強化學習加速方法
TensorFlow Fold:用動態計算圖實現深度學習
基於 Jetson在Aerial 系統內進行深度學習
Facebook 開源深度學習推薦模型 DLRM,可直接用 PyTorch 和 Caffe2 實現
雲從科技 OCR 新突破:端到端的深度學習文本檢測框架 Pixel-Anchor