自動駕駛汽車是一種對安全性有極高要求的人工智能應(yīng)用,但軟件都有漏洞,尋找那些可能導(dǎo)致致命危險(xiǎn)的漏洞是至關(guān)重要的。來自弗吉尼亞大學(xué)和哥倫比亞大學(xué)的幾位研究者提出了一種自動測試深度神經(jīng)網(wǎng)絡(luò)自動駕駛汽車的方法 DeepTest,可以對自動駕駛系統(tǒng)進(jìn)行更加全面的測試評估。
深度神經(jīng)網(wǎng)絡(luò)(DNN)近來的進(jìn)展推動了 DNN 驅(qū)動的自動汽車的發(fā)展,這些汽車使用了相機(jī)、激光雷達(dá)等傳感器,無需人類干預(yù)也能自己駕駛。包括特斯拉、通用、福特、寶馬和 Waymo/谷歌在內(nèi)的最主要的制造商都正在研發(fā)和測試不同類型的自動汽車。包括加利福尼亞、德克薩斯和紐約在內(nèi)的美國多個州的立法者已經(jīng)通過了新的法規(guī),以便加速在他們的道路上測試和部署自動汽車的進(jìn)程。
但是,盡管 DNN 成績斐然,但就像傳統(tǒng)的軟件一樣,往往會表現(xiàn)出不正確的或非預(yù)期的極端案例行為,這些行為可能會導(dǎo)致潛在的致命撞車?,F(xiàn)在已經(jīng)出現(xiàn)了一些涉及到自動駕駛汽車的車禍,包括一起出現(xiàn)了死亡的事故。對 DNN 驅(qū)動的汽車的大多數(shù)已有的測試技術(shù)都嚴(yán)重依賴于人工收集的不同駕駛條件下的測試數(shù)據(jù),隨著測試條件的增多,這種收集方法的成本也會變得非常高昂。
在這篇論文中,我們設(shè)計(jì)、實(shí)現(xiàn)和評估了 DeepTest。這是一個系統(tǒng)性的測試工具,可用于自動檢測 DNN 驅(qū)動的汽車可能導(dǎo)致致命碰撞的錯誤行為。首先,我們的工具經(jīng)過設(shè)計(jì)可以自動生成測試案例,這種生成利用了駕駛環(huán)境的真實(shí)變化,比如雨、霧、光照條件等。通過生成能最大化激活神經(jīng)元數(shù)量的測試輸入,DeepTest 系統(tǒng)性地對 DNN 邏輯的不同部分進(jìn)行了探索。在 Udacity 自動駕駛汽車挑戰(zhàn)賽中三個表現(xiàn)最好的 DNN 上,DeepTest 發(fā)現(xiàn)了不同現(xiàn)實(shí)駕駛條件(比如模糊、雨、霧等)下的數(shù)千種錯誤行為,其中很多都可能導(dǎo)致致命碰撞。
表 1:涉及自動汽車的真實(shí)事故案例
圖 1:DeepTest 在 Chauffeur DNN 中找到的一個危險(xiǎn)的錯誤行為
圖 2:一個基本的自動駕駛汽車 DNN 以相機(jī)、光檢測和測距傳感器(激光雷達(dá))、紅外傳感器為輸入,然后輸出轉(zhuǎn)向角度、剎車決策和加減速決策。這里給出的 DNN 本質(zhì)上是對的功能的建模,其中 θ 表示邊的權(quán)重,而 σ 是激活函數(shù)。右邊給出的是單個神經(jīng)元所執(zhí)行的計(jì)算的詳情。
圖 3:(上圖)一個簡化的 CNN 架構(gòu),其中輸入圖像的左上部分是一個卷積核。然后同樣的過濾器(帶有相同權(quán)重的邊)會在整個輸入空間上移動,然后計(jì)算邊的權(quán)重和互連的神經(jīng)元的輸出之間的點(diǎn)積。(下圖)一個簡化的 RNN 架構(gòu),它的隱藏層中存在循環(huán)。右邊展開的版本展示了這種循環(huán)可以如何讓該 RNN 在處理了一個輸入序列(即圖像)之后,根據(jù)這些圖像預(yù)測出要轉(zhuǎn)向的角度。
算法 1:用于結(jié)合圖像轉(zhuǎn)換的貪婪搜索,以增加神經(jīng)元覆蓋率
表 3:(左圖)用于評估 DeepTest 的 DNN 的細(xì)節(jié)。(右圖)這個 DNN 的輸出是調(diào)整自動駕駛汽車向前行駛的轉(zhuǎn)向角度。Udacity 自動駕駛汽車的最大轉(zhuǎn)向角度為 +/- 25 度。