圖森未來王乃巖:海量資料就是高級別自動駕駛的銀彈嗎?

自今年初開始,自動駕駛這個賽道似乎又迎來了第二春,各路不同背景玩家的入場,加上頭部公司海量的融資新聞不斷重新整理著人們的這個行業的認知和期待。作為一直在這個“浪尖”上技術人,也想來談談在這個行業深入近5年來的一些看法。

首先限定一下這篇文章討論的問題scope。除非特別說明,下面所有的文字都只適用於L4級別自動駕駛,不適用於L2和L3(當然也包括L2。5,L2。75,L2。99,SL4這些概念等級)這些仍是人在環的自動駕駛系統。整個討論的context也是在自動駕駛核心演算法架構,較少涉及到車輛、軟硬體的部分。

01

在談及資料驅動的時候我們在聊什麼

資料驅動這個概念其實在各種不同的context中被提起,大家對於這個詞的理解也不盡相同。其實很多時候大家在談論的資料驅動是指基於大量預先標註資料的監督學習演算法,尤其是深度學習演算法。不可否認,如果沒有自12年開始這一波深度學習的復興,自動駕駛也不可能發展到今天這個狀況。但是資料驅動就是自動駕駛的全部了嗎?

最起碼目前來說,所有基於資料驅動的方法總是會有失敗的場景。

如果恰恰某個重要的功能模組是基於這樣的方法,那無論這個演算法多麼強大,整體系統總會存在不確定性甚至失效的可能。根據之前的一項研究[A],這樣的不確定性主要有兩個來源:

1。來自於資料本身的不確定性。舉個例子,比如對於很多遮擋的物體,即使是人的標註也會存在很多不確定性(見[B])。同樣,自然地對於罕見的資料,只是基於模型本身泛化性的結果也一定不會很好。為了解決這樣的問題只能透過不斷加入大量一致的標註來緩解。

2。由於模型高複雜度,bias-variance tradeoff導致的模型本身不確定性。對於這部分不確定性,機器學習中最有效的解決方案便是ensemble。只不過這樣的設計在兩個模型之間仍然存在了很大的相關性,還是有很大的機率導致演算法失效。

這裡舉異型車的例子,為了解決這樣的問題,我們當然可以去無限採集各種資料去儘可能覆蓋各種道路場景。暫且不說這樣做要消耗的金錢、資源和時間,純基於監督學習和資料驅動的方法仍然不能保障我們可以可靠地檢測到所有異型車。退一步說,就算我們採集了市售所有車型,但是對於歐美這種改裝車市場很發達的地區,我相信沒人能夠拍著胸脯保證下次你見到的車輛一定可以被準確檢測到。更何況隨手找一個新聞,還會有你根本想不到的東西出現在路上:《危險!北海一女子竟帶娃開卡丁車上路,兩人均未佩戴安全頭盔!》《真的發生了!加州一架小型飛機高速公路上迫降時撞上一輛汽車》

如果只是簡單地依賴一個深度學習的物體檢測演算法,我們是永遠不可能實現安全的L4級別公開道路自動駕駛的。換句話說,對於一個純資料驅動的演算法架構,出事故是一個早晚的事情。從技術的角度來講,這也是目前基於統計的機器學習演算法的侷限,資料驅動只是建立起來一個從輸入到輸出的有效對映,而沒有有效的推理(Reasoning),這就導致這些演算法的泛化效能和人比起來仍有很大差距。還是舉車這個例子,人可以去從功能和Affordance的角度拆解這樣的一個概念:

有輪子能承載其他物體運動的一個物體叫做車。更深一步,我們可以再去分解和定義什麼叫做輪子/承載物體/運動。雖然學術界有這樣的一些研究,但是仍然很初級,暫時不具備實用性。不像各種常見的手機娛樂應用甚至是安防應用,這些不確定性和失效,恰恰是我們在L4自動駕駛裡不能迴避的。

另外一個常見誤區就是認為如果不是資料驅動的,那麼就是基於手工規則的。

這其實就走到了另外一個極端,在這中間我們仍然有很多數學工具可以講我們的先驗知識注入到模型中去。比如經典機器學習中的Bayesian方法,最佳化方法,都是一些典型的代表。他們在L4自動駕駛中發揮了重要不可或缺的作用。就像下面在我這幾年對外校招的PPT裡的一頁:我們如果把整個L4自動駕駛的演算法看做是這樣一座冰山,經常被人提起的就是深度學習在各種識別問題中的應用,也就是圖中浮在冰山之上的部分。

然而在海平面之下,就算不提Localization和Planning&Trajectory這些基本一定不是深度學習問題的演算法,支撐整座自動駕駛冰山的還有大量非深度學習甚至非資料驅動非監督學習演算法。這些問題因為非標準化,高度依賴於每一家各自系統的設計和感測器配置,較少有公開的資料集和評測標準,所以相對於火爆的深度學習,也較少被學術界所觸及。但是這些部分恰恰成為了區分系統效能最關鍵的部分。

圖森未來王乃巖:海量資料就是高級別自動駕駛的銀彈嗎?

02

有海量資料L2就能演化成L4嗎?

似乎唯資料至上成為了目前自動駕駛領域中的一個信條。在某些廠商和某些媒體有意或無意的渲染中,自動駕駛中資料就是靈丹妙藥,只要能採集上上億公里的資料,一個L2系統就可以自動“成長”成一個L4系統。但是真的是這樣嗎?下面我們可以先來不嚴謹地看看L2/L3/L4系統在做什麼事情。先說在前面,雖然這個分級定義是從自動化角度來分析,但是實際應用中,我們經常也會將場景納入在內,所以這裡我們討論的範圍都是在公開城市道路中。

L1/L2: 功能定義十分清晰,如ACC,LKA都是可以使用嚴謹的語言描述清晰預期功能和作用範圍。但是在實際場景中,遇到的其他的問題,在Operational Design Domain (ODD)之外的問題,L2系統一概無視,比如經常會出現問題的高速封路,如果駕駛員不及時接管,那一定會出現安全事故。

L3: 功能定義相對清晰,但是對於ODD之外的問題,L3系統需要有完善的預警和接管提醒方案,還是舉封路這個例子,可能L3系統並沒有能力準確識別封路範圍並安全透過,但是可以在一個合理的預警時間內,檢測到封路將控制權交接給人類駕駛員。

L4: 無限接近於道路真實場景,ODD相對於L3系統大幅擴大(例如複雜困難的匯入、各種道路交通參與者的異常駕駛行為),但不同於L5,並非不限ODD,而是在應用場景下能夠保證基本流暢行駛的需求。對於ODD之外的問題,L4系統需要有完整的風險遷移方案。對於不能解決的問題,不僅僅需要檢測到,還需要保障絕對的安全。也就是說,對於ODD之外的場景,L4可以犧牲效率換取安全。只不過這個tradeoff是否能到達一個商業上的平衡點是一個技術需要突破的問題。仍然舉封路的這個例子,可能L4系統要解決的問題就變成了,在正常錐桶封路的時候有著極高的透過成功率,如果遇到少見的用輪胎啊箱子啊標識封路的場景中,仍然能保證安全停下。

總結一下上面的比較,可以發現,L3相對於L2系統最大的區別在於檢測ODD之外場景,L3與L4系統最大的區別在於ODD的極大拓展與ODD之外場景的風險遷移方案。

L2系統根本不需要處理失效,L3系統只需要檢測失效,而L4系統則要妥善處理失效。

如果一個系統的架構是為了L2/L3級別設計(允許單點失效導致的系統失效),那麼就算加入再多的資料,它也不可能自動完成失效檢測和處理,完成級別的跨越。這樣的跨越一定不會是“資料自發”的,而是一定需要自頂向下的全面設計才有可能實現的。如果理解了以上這些分析,下面引入了我下面要講的一個概念——演算法冗餘就很自然了。

03

演算法冗餘設計會成為L4自動駕駛關鍵

有了以上的分析,其實在這裡就可以引出一個我認為很重要的概念“演算法冗餘”。往往我們在自動駕駛領域聽說的都是,車輛執行器冗餘,硬體冗餘。對於一個L4自動駕駛車輛來說,什麼叫做演算法冗餘呢?類比於其他模組,我們可以將演算法冗餘定義為L4自動駕駛演算法架構中關鍵功能的冗餘。其他各種冗餘我們可以天天聽到,但演算法冗餘這一個概念,我至少目前沒有見有人提到過。

從相關性和冗餘的有效性上來看,以下的冗餘設計方式可靠性逐步增加,當然難度也逐步遞增,也更加考驗整個演算法架構設計的能力:

1。相同任務,不同模型;和上述類似,問題的定義(輸入、輸出)和方法的原理是相同的,只不過透過不同的計算模型來完成。這個其實也就是最簡單的ensemble和majority vote。可以一定程度上減輕模型不確定性,但是對於資料不確定性無能為力。在深度學習的語境下,可以簡單認為是兩個結構不同的模型結果融合。

2。達成相同功能,但透過不同假設和演算法完成。例如單目視覺測距,我們可以透過深度學習方法直接預測距離,也可以透過相機引數和對場景的不同假設來測量距離。雖然都是完成測距這個功能,但是不同演算法和任務的假設不同,很大程度上避免了共因失效

3。達成相同功能,但是透過不同的資料來源完成。這個在自動駕駛裡面,最直接的體現就是不同感測器之間的冗餘備份。雖然會有很多聲音challenge說如果出現不一致結果,融合有多不可靠云云。但是:1) 從演算法角度而言,只要保證訓練/測試資料分佈一致,那麼加上更多的資訊,結果一定不會變差。2) 不一致的結果本身就是很好地故障或ODD外檢測的依據 3) 融合和冗餘不應僅僅發生在結果層面,而是在整個演算法的設計中就應該考慮清楚不同演算法輸出的表示形式,以便互補融合。

當然這些方案並沒有絕對的優劣,如何結合實際應用場景合理利用這些方案就是非常考驗演算法架構設計的了。

04

可靠性分析之殤

說了上面這麼多,其實想告訴大家的都是一個道理:一個可靠的L4系統,是需要工程、演算法、硬體、車輛多方面協同配合才有可能創造出來的。千萬不要因為某些商家的營銷行為把高級別自動駕駛當成一個純深度學習問題!具體在演算法方面,我們仍然需要嚴謹的架構設計來保障系統的一個可靠性。

然而,對於這樣一個混雜著各種不確定性的複雜系統而言,我們如何能分析清楚整體的可靠性呢?無論是傳統的ISO26262針對於汽車電子的標準,還是最近提出的ISO21448 SOTIF預期功能安全標準,對於L4系統而言都是無能為力的。當然我們可以透過大量統計資料下的MPI來作為標準,但是我們仍然會遇到為了覆蓋某些corner case,需要天文數字測試里程的問題。在這個方向,我們仍然需要大量的探索、試錯,從第一原理出發,才能探索出一條適合L4自動駕駛可靠性分析之路。

05

其他的一些Open Problem

除了上面說到的可靠性的問題,其實L4自動駕駛裡,還有很多除了技術之外的Open Problem,試舉幾例:

1。前文多次提到了ODD的概念,那什麼是合適於L4級別自動駕駛的ODD劃分方法?照搬L2/L3級別的方法論一定是不行的。

2。如何定義L4級別系統的預期行為?因為影響系統反饋的因素可能有非常非常多,我們可能很難用一個簡單的自然語言去向客戶描述清楚系統的預期行為,那如果不行,我們又該如何定義PRD?

3。在ODD範圍之內如何有效測試L4系統的預期行為?如何在ODD空間中不重不漏劃分測試樣例?

這其實對應到的就是自動駕駛產品部門的工作。我認為這部分工作是和技術同等挑戰的。

06

總結

資料在智慧時代是非常寶貴的資產,這點毋庸置疑。然而,資料也不是自動駕駛的全部。尤其是對高級別自動駕駛,關鍵模組依賴單一的資料驅動演算法不能保證對可靠性的要求。目前階段而言,純資料驅動的演算法必然存在失效的場景,而L4系統不同於L2/L3系統,在單個模組失效的時候仍然要保持系統的健壯性。所以,演算法層面的冗餘設計就成為了關鍵。

最後,想說一句話和各位同行共勉:L4級別的純無人運營是需要非常努力才有可能達到的。如果有一天能實現大規模的無人運營,希望我們靠的是嚴謹的邏輯推理與資料支撐,而不僅僅是魯莽的“勇氣”。

圖森未來王乃巖:海量資料就是高級別自動駕駛的銀彈嗎?

作者王乃巖,圖森未來首席科學家,MXNet核心開發者,深度學習應用於目標追蹤領域的全球第一人。在計算機視覺與機器學習頂級會議與期刊上發表論文40餘篇,論文獲引次數超過8000次。