首頁  >  文章  >  科技週邊  >  萬字解讀深度學習演算法在自動駕駛規控的應用

萬字解讀深度學習演算法在自動駕駛規控的應用

WBOY
WBOY轉載
2023-04-04 12:55:01822瀏覽

儘管「數據驅動」早成為自動駕駛產業的基本共識,但事實上,直到現在,數據驅動的深度學習演算法仍主要應用在感知模組,而在規控中應用的卻很少

進入文章正題之前,我們需要先簡單講清楚本文所提到的「規控」究竟是什麼。

相信凡是自動駕駛行業的人,一定都知道感知、定位、決策、規劃、控制這幾大模組——儘管大家日常溝通時如此區分,但具體工作中如果還這麼分類就有點問題了。

這裡的問題出在決策上,廣義地說,決策包含預測,而預測的劃分非常值得-預測本身與感知高度相關,但預測又是決策的前置階段,只有先預測之後才能進行決策。

所有已經發生的既定事實我們可以稱之為T0 ,感知就是已經發生過的既定事實。例如車輛未來該怎麼走、別人可能會怎麼等都屬於未來將要發生的事情,我們可以稱之為T0-。

以T0為分水嶺劃分會有一個好處:感知環節只需關心路面上已經發生的既定事實即可,此後基於這個既定事實的任何推斷都可以直接放到決策部分。

如此分類可以將預測的結果與決策部分更加緊密地結合,從而人為「弱化」預測與感知的關係,「增強」預測與決策的關係。反映到實際工作中,這樣劃分就可以更好地確定到底該預測哪些內容、如何更好地用預測的結果服務於決策。 (以上內容是筆者在跟領駿科技CEO楊文利博士交流後總結的)

基於以上邏輯,自動駕駛公司內部通常都會有一個PNC組,PNC組的主要任務就是負責規控方面的工作。大家在PNC組幹時間長了就會把預測、決策、規劃、控制統一稱呼為「規控」。

那麼此“規控”,即為本文中所稱的“規控”。

接下來,我們再將「資料驅動」與「規控」結合起來講。

儘管「數據驅動」早成為自動駕駛產業的基本共識,但事實上,直到現在,數據驅動的深度學習演算法仍主要應用在感知模組,而在規控中應用的卻很少——目前,業界的規控相關演算法主要還是基於規則驅動。

雖然目前公開的自動駕駛規控演算法相關資料大都是針對基於規則的演算法的,但筆者打開招募軟體卻經常能看到自動駕駛企業招募規控演算法工程師時會要求候選人懂深度學習演算法,這在某種程度上也說明了目前許多企業也正在向混合決策演算法「進軍」。

萬字解讀深度學習演算法在自動駕駛規控的應用

圖片來自某自動駕駛公司的招募要求

目前還鮮有文章完整細緻地闡述過深度學習演算法在自動駕駛規控中的應用情況。因此,本文將從規則的限制與深度學習演算法的潛在優勢、為何現階段深度學習演算法尚不能被大規模應用於規控演算法、未來的規控演算法以規則為主還是以深度學習為主這三個方面來詳述。

01 規則的限制與深度學習演算法的潛在優勢

1.基於規則的演算法有限制

目前,規則控制相關演算法主要還是基於規則,但隨著自動駕駛等級的提升及應用場景的不斷拓展,基於規則的規控演算法在實際測試中就會暴露出它的局限性。

使基於規則的規控演算法暴露出短板的,主要是非確定性場景、強交互場景、強主觀場景這三個大類的corner case:

(1)非確定性場景

非確定性場景是相對於確定性場景而言的,最簡單的確定性場景就是紅燈停綠燈行、可以在白色虛線變換車道、不能在白色實線變換車道,除此類的場景都可視為「非確定性場景」。

例如,大部分情況下車都在有車道線的道路開,但有一種情況是當前的道路是三條幹道加一條輔路,而輔路與幹道間只有車道線沒有綠帶,這也意味著輔路的車輛在任何情況下都有可能並線進入主路,這就是一個典型的非確定性場景。因為大多數司機根本不會管實線虛線,你根本不知道周邊什麼時候會突然出現一輛車,它有多大的機率會直接變換車道。

因為道路中其他車輛的軌跡帶有機率,基於規則的演算法很難處理。

(2)強交互場景

最典型的場景就是十字路口,多個物件在一個場景下的路線會發生互動而互相影響,所以交互的時候是有一定博弈在裡面。

在非常複雜的一個道路場景裡,不斷地對周圍車做預測,然後基於互動的結果去調規劃,這不是能夠用人的規則描述清楚的。

(3)強主觀場景

簡單說就是在不同路況下,人會無意識地根據環境去調節自車跟前車的距離。因為人腦中可能有一套規則在驅動,但這些規則又很抽象、不能明確,只可意會不可言傳的,例如變換車道的時機、路口對其他車輛的反應等等。

有的場景下,雖然可以用規則演算法來模仿車主的一些行為和駕駛風格,但人的主觀習慣很難用規則解決,即使能解決也需要大量的人力。

用基於規則的演算法來應對corner case,最難的是預測環節。因為,除了要預測自車軌跡外,自動駕駛車輛還需要預測“其他道路使用者”的軌跡,而道路中往往不只有一個“其他道路使用者”,他們彼此間會產生交互,所以預測他們的軌跡很難。

人類駕駛員在做預測時會透過觀察車的歷史軌跡、駕駛者的駕駛風格,根據「經驗」和「直覺」來做決策,即可以根據其他車輛是否保守來選擇自車的策略,然而,基於規則的演算法很難達到和人類類似的預測效果。

此外,當車輛遇到一些corner case需要煞車時,基於規則的規則控制系統很難保證曲線時刻平滑。

舉個例子,如果前方有輛車正以很低的速度行駛,此時自動駕駛系統下達「向右變換車道超車」的指令,但剛變換車道至一半突然旁邊有一輛車子正在向右側車道飛速超車,決策系統隨即取消變換車道決策,並重新產生一條平滑曲線讓車輛回到原來的車道中。

這裡的困難在於,如何平衡舒適性、安全性、效率、動力模型的可實現性等元素,並保證此時產生的軌跡規劃路徑是光滑的?

依舊以上文為例,如果無法保證此時生成的路徑是平滑的,那麼車輛開起來會很“硬”,行駛途中會變得很不舒適。如果駕駛/乘客此時能看到周圍出現緊急情況,而係統及時幫他避免了事故,他就會認為系統很靠譜,即使是急剎車乘客也會認為自動駕駛系統「幫我避免了一次事故」。

但現實情況卻是,多數情況下,系統早就發現了問題並做出了決策,直接「防患於未然」。可問題在於,大多數駕駛員/乘客不會知道一次“看起來很普通”的變換車道在剛剛“差點釀成事故”,甚至可能都沒發現後方有來車。所以,如果此時規控系統無法生成一條光滑的曲線,駕駛員/乘客不會非但不會認為系統“幫我避免了一次事故”,反而會怪系統“太生硬”,變道“甩來甩去」的。

這類問題雖然也可以用基於規則的演算法來解決,但解決的過程卻非常麻煩。

除此之外,儘管從理論上講,有一些長尾場景也可以用基於規則的演算法來解決,但在實際工作中,工程師很難保證這些複雜的程式碼在解決問題的同時還能不佔用太多運算資源。這些代碼放在離線系統上可以很輕鬆地跑起來,但上車後,車載晶片是否能支撐起這麼龐大的算力消耗?解決這些問題非常考驗工程師的程式碼等級和工程能力。

而且,可能有的工程師寫了幾千行程式碼,他自己都忘記自己寫過什麼了。規則越來越多、邏輯越來越亂,當「未來」某個時刻又新加了一個需求的時候,系統也會變得難以維護。

2.深度學習演算法可以在適當的場景提升系統的擬人性

上文說了很多規則演算法的局限性,但實際上規則演算法的局限性不止於此。如果把所有問題綜合來看,我們可以統稱為規則演算法的「擬人性低」。

所謂擬人性,就是系統在行駛過程中像不像「老司機」。毫末智行的一位規控演算法專家說:「擬人化老司機的核心能力是隨機應變,而用基於規則的系統就得設定一大堆規則來區分場景,設定大量的環境參數和代價函數,不停地尋找最優解,從數學上很難做到實時。”

目前,能夠上路測試的自動駕駛車輛在多數情況下更像一個“新手司機”,而“老司機”與「新手駕駛」最大的差別是:「老司機」的預測能力更強,並且對長尾場景隨機應變的能力更強。

兩相比較,多數“新手司機”雖然也很安全,但“新手司機”在路上開車會很“傻”,而“老司機”則可以在保證安全的前提下各種操作都會更加順滑、效率更高。這個差別叫做「假釋經驗」。

本質上,“新手司機”在路上更多依靠的是“基於駕校的教材”,決策規劃方式更像if else(規則算法),而“老司機”決策時依靠的是經驗和主觀判斷,決策規劃的方式相對抽象,更像是「深度學習演算法」。

綜上,在規則環節引入深度學習演算法,盡可能學習人類駕駛的經驗,自動提煉特徵找規律,就可以提升規控演算法的「擬人性」。

特斯拉在本屆 AI Day 上提到的資料引擎,就是將透過將資料輸入到神經網絡,提高確定性,以便更好地解決現實世界的預測問題。

輕舟智航規控演算法負責人認為,預測(判斷其他車輛的未來軌跡)是最適合也是率先大規模應用深度學習演算法的環節。他說:「輕舟智航的預測演算法就使用了深度學習。」

具體到場景方面,他認為,那些高度依賴人的主觀判斷的場景,更需要用深度學習演算法做指導。

「例如可以用傳統分類AI模型(可以是深度學習,也可以是傳統的機器學習分類模型)來做decision making,用深度學習做軌跡生成來指導path planning,用端到端強化學習給予目前應該執行的action來指導motion planning(最終軌蹟的規劃)。」 

這位專家也認為,結構化的高速場景可能更容易由傳統演算法解決,而非結構化的城區場景則可能有更大空間發揮AI模型的優勢。

而摯途則是高速匝道口場景的決策環節用到了強化學習演算法。

領駿科技CEO楊文利博士認為,在自動駕駛的不同模組上,深度學習演算法的重要性及適用性不完全相同。

「從感知-融合-預測-決策-規劃-控制,這個流程來看,越前面的部分,深度學習演算法的效果越好。」

楊文利博士說: 「感知系統資料處理量大,但允許出錯,對準確率和召回率有一定容忍度(因為後續的融合和決策可以對感知糾錯),所以,深度學習方法比較合適。

「決策這部分,規則和學習各有所長,所以我們用的混合架構,用深度學習方法提升效能,用規則方法保證安全。

「控制系統資料量小,對可靠性要求強,絕對不允許出錯,而使用深度學習演算法非但無法提升效能,還有可能引入不確定性和不可靠因素,因此不適合採用深度學習演算法。而且,控制這種底層技術,已經有200年歷史了,數學證明上很完美了,也沒必要再用深度學習。」

況且,在規劃演算法出錯的情況下,控制演算法還需要為安全兜底。在經典控制演算法的PID中,控制層為了確保安全,就可以拒絕執行規劃層發出的「錯誤指令」。例如,規劃下達指令讓車輛開到120公里/小時,但車輛本身的硬體並不能支援120公里/小時的車速,這個時候,控制演算法就可以做一個校驗,直接拒絕執行指令,保證車輛能正常行駛,不會開翻。

而控制演算法要想為一切失誤兜底,就必須要用基於規則的演算法來保證可靠性。

據此看,通常在提到“深度學習演算法應用於規控”時,大家所說的“規控”,其實主要指預測、決策和規劃,而不包括控制。

除去解決實際技術難題外,深度學習演算法還有一個不可忽視的巨大優勢,就是充分利用GPU或神經網路專用處理器,降低CPU算力消耗。

為了實現某些功能,自動駕駛發展初期使用的複雜規則代碼會消耗大量CPU算力,但車用晶片的設計一般傾向於提高深度學習算力,而CPU部分的算力有限,工程師必須想辦法節省。而透過深度學習演算法取代大量複雜的基於規則的演算法,便可以節省不少CPU算力。

輕舟智航規控演算法專家認為,城區NOA量產車上一般使用嵌入式晶片,CPU都是基於ARM架構,CPU算力資源沒法跟基於X86架構的L4 Demo車比,因此,如果要實現接近L4的駕駛體驗,供應商有必要嘗試在規控環節引入深度學習演算法,把計算負載放到深度學習專用處理器上去。

02 現階段,深度學習演算法還不能大規模應用於規控演算法

既然深度學習演算法聽起來這麼“牛”,那為什麼實踐中的規控演算法仍以規則為主,而不是深度學習演算法呢?

這是因為,深度學習演算法同樣有不少短板,正是這些短板導致,在短期內,深度學習演算法的效果還不如規則。

1.很難斷定人類駕駛的駕駛行為是否「值得學習」

在理想的情況下,用於訓練的資料越多,深度學習演算法的效果就越好,但在某些情況下,隨著資料量的增加,演算法的效果卻可能下降。這是為何?

深度學習演算法首先要學習大量人類駕駛者的駕駛行為,然後才有可能被應用於規控演算法,但問題在於,不同駕駛者的駕駛風格不一樣,同一個駕駛者在不同情況下的駕駛風格也不完全一致,那麼如何確保人類駕駛者的駕駛行為就是值得學習的良好數據?

比如說在路口裡面的一些變換車道行為,我們在正常行駛的時候不能壓實線變換車道,但經常很多司機特別喜歡壓實線去變。

小馬智行的規控演算法專家說:「人類駕駛駕駛也有很多壞習慣,如果只是盲目追求擬人性而忽略了安全、舒適和高效這三個自動駕駛系統的主要優化目標,那就本末倒置了。實際上,即便用AI模型來彌補傳統演算法方面的不足,也應該是圍繞著這3個維度來改進的。」

#因此,在許多情況下,只有預先對資料做個“清洗”,深度學習演算法的效果才會好。然而,大規模的即時資料清洗,效率和品質如何保證?這是個問題。

針對這個問題,有一些公司的做法是,人為地去設定一些規則,評價司機開得好還是不好,然後把看起來不好都得過濾掉,但這便是用規則來“約束”深度學習了;並且,這種做法過於簡單粗暴,有可能是“倒洗澡水的時候連孩子一起倒掉”,把一些有用的駕駛行為數據給誤刪。

2.深度學習演算法比規則更難應對需求變更

某家自動駕駛企業的演算法規定,在路上行駛時與前車的安全距離應不小於五米。某一天,產品經理提出了一個新需求:在路上正常行駛時與前車的安全距離從不小於五公尺更改到不小於十公尺。

這種情況就會暴露深度學習演算法的一個問題:工程師如果想根據需求更改模型,則需要對模型重新訓練,成本很高。但如果用的是基於規則的演算法,此時就非常簡單,幾行程式碼即可解決問題。

並且,如果發生事故,深度學習演算法很難像規則演算法一樣在最短的時間內快速排查出問題究竟出在哪裡。

3.深度學習演算法的效果可能不如規則

輕舟智航規控演算法專家說:如果在各項資料基礎設施不完善的情況下就引入AI模型,AI模型的表現很難達到預期。

例如,透過簡單的測試標定就可以確定的ACC跟車距離,透過AI模型卻可能很難達到相同效果。其主要原因是,許多公司的數據基礎設施不完善,沒有辦法找到不同跟車場景下的多樣的數據,導致很難訓練出一個達到或超過規則表現的模型。

毫末智行的規控演算法專家也說:「現在AI模型效果還沒有完全打敗規則,試圖擬人但效果還不夠好,因為這類認知網路的模型架構、輸入輸出定義、,資料準備都還沒完全做好,並沒有達到感知模型的程度,大家還在探索(但我覺得一年之內就會有重大突破)。」

4.深度學習演算法仍需要規則來兜底

在車輛上路行駛的過程中,決策演算法出錯其實是無法徹底避免的。因為即使是人在開車,再厲害的老司機也不可能保證自己的決策永遠完全正確,基於深度學習模型的決策演算法也是如此。

因此,在系統設計時,開發者應考慮到「決策演算法會出錯」這一可能性,並做好「接受」決策出錯這一潛在事實的「心理準備」。

對此,領駿科技採用了混合決策架構,該公司CEO楊文利博士的說法是「深度學習演算法由於善於學習人類的駕駛經驗,因此主要用於提升性能,而由程式設計師設計的規則已進行過充分測試論證的,用來保證安全,擁有更高的優先級。」

再往下層看,規劃層也能拒絕來自決策的「錯誤指令」。例如,輸入的障礙物速度及尺寸應該在某一個範圍之內(比如不能出現時速100m/s如同“起飛”的小轎車);再比如,決策層給出指令“向左換道”,但此時左邊都是車,因為此時變換車道則空間規劃無完全解,此時,規劃就可以直接「拒絕執行指令」。

這裡提到的拒絕來自上一環的「錯誤指令」的規劃演算法,只能是基於規則的。

根據以上,我們可以看到,在那些可以使用深度學習演算法的場景中,扮演「兜底」角色的規則依舊是必不可少的。

5.引入深度學習演算法,表示大量程式碼需要被取代

還有一個非常考驗自動駕駛公司的問題:如果要用混合式規控演算法,就必然面臨大量程式碼需要被替換的問題,而這麼做又必然需要「堆人」。

輕舟規控演算法專家說,傳統基於規則的系統在設計的時候沒有考慮加入與深度學習相關接口,而且代碼庫經過多年發展已經相對固化,為引入深度學習而對代碼進行重構成本很高,

「但輕舟智航在2019年開始建構決策規劃演算法堆疊時就考慮到了AI的廣泛使用,並在各個介面層面都事先考慮到了模型引入後的情況,針對性地做了架構調整」。

據一位曾在某頭Robotaxi公司擔任規控演算法負責人的資深專家說,在規控中引入深度學習後,程式碼重寫的工作量非常大,因為涉及線上、離線、模擬等多個系統的改造。

筆者曾經在網路產業多次聽過使用者抱怨,為什麼某某軟體的程式設計師面對臃腫的系統一直選擇打補丁而不是重構。這個例子在某種程度上與以混合式規控演算法取代基於規則的規控演算法時所面臨的問題相同——重構的效益很低。

你重寫了,系統運作水準的改進是有限的,但你卻要為此付出巨大的成本,這種「吃力不一定討好」的事情對任何一家企業都是「無法承受之重」。這項顧慮也讓自動駕駛公司對混合式規控演算法內心產生「只想遠觀,不願褻玩」的心理。

事實上,筆者在跟多家自動駕駛公司的規控演算法負責人/工程師交流後發現,不同於2014—2015年深度學習神經網路被應用於感知時的“場面”,目前,大家普遍對深度學習演算法在規控環節的應用「不急」。

可以說,大家更多還是以一種「可有可無」的心態來進行預研和實際應用。

更具體一點說,自動駕駛公司知道在採用規則深度學習演算法的「混合式規控演算法」是未來,但目前能用到混合式規控演算法的場景也不多,那乾脆招幾個人「讓他們自己慢慢預研去」。

所以,現階段,多數自動駕駛公司對混合式規控演算法的態度是:只在應對匝道、十字路口等極少數場景時採用混合式規控演算法;而過去用基於規則的演算法已經解決的corner case,只要沒發現「令人無法容忍」的問題就「不動」。

還有規控演算法專家很直白地說,具體用不用混合式規控演算法還得看需求,這是個工程性的問題。

根據上述邏輯,目前自動駕駛公司對混合式規控演算法的態度是“可有可無”,而未來混合式規控演算法的應用範圍也需要“打一個問號”。

03 規則為主or 深度學習演算法為主?

我們接著上一節的邏輯繼續探討。

有不少專家都認為,無論深度學習演算法、混合框架發展的多成熟,規控演算法永遠是規則碼佔多數,深度學習演算法只扮演輔助角色。

他們給出的關鍵理由是:深度學習演算法具有「不可解釋性」的特點,用深度學習演算法去做預測和決策,遵循的是機率,而不是嚴格意義上的因果關係,因此,讓它去承擔規控的“第一責任人”,難免讓人“不放心”。

如領駿科技CEO楊文利博士說:「深度學習是黑箱,人理解的『場景』和深度學習理解的『場景』可能不一樣。之前有個diss人工智慧的例子,在影像上改幾個像素,人工智慧就認錯了;在交通標記上貼幾個黑膠布,特斯拉就認不出來了。除非是像素級的'一致',否則人們認為的'同一場景',在深度學習看來,極有可能是『不同場景』。

「深度學習演算法是基於輸入輸出的擬合,從輸入輸出特性可以獲得更好的擬人性,但其實它很難理解駕駛的內部邏輯關係。 「針對用深度學習演算法做決策出錯的可能性,我們採用了混合決策架構。」

某商用車無人駕駛公司CTO和某造車新勢力規控演算法專家也持類似觀點。

在9月底的一場技術交流活動上,地平線CTO黃暢博士也談到了這個問題,但黃暢認為,在混合式規控演算法中,深度學習將是主流,而規則僅作為「必要的輔助」-以免出現明顯的、在語意上都可以解釋的錯誤。 」  

黃暢解釋說,根據他的經驗,對於一個已經雕琢了很多年、調得很好的一套基於規則的系統,僅在某一個局部模組引入深度學習,改善是非常有限的,甚至沒有改善。「因為其他的模組還是基於規則去設計,在這種大框架下,你用深度學習演算法替換一個模組,那其他模組跟這邊個新模組適配的成本很高。整個驗證的週期很長,長到你沒有耐心完成。 」

某Robotaxi公司規控演算法負責人和輕舟規控演算法專家同樣認為,未來的規控演算法是以深度學習為主,規則為輔。

輕舟規控演算法專家說,在輕舟智航,目前在預測環節,深度學習演算法相關運算(包括前處理,模型推理和後處理)佔整體模組運行時間的比例已接近95%,在決策和規劃環節,深度學習演算法運算佔比也達到了30%左右。

「不太容易量化,但總的算下來,在規控演算法中,深度學習演算法佔比應該有50%-60%。」

他認為,最終,規控演算法80%-90%的運算時間會花在深度學習演算法上。並且,不同於楊文利博士在前面提到的“底層控制演算法中沒必要用到AI”,他認為,控制演算法是以規則為主,但也可以使用深度學習模型優化控制的參數,增加演算法的適應性。

他指出:「如果說之前產業裡對『AI為主』還是『規則為主』存在爭議,是可以理解的,但特斯拉最近一次AI DAY上公佈出的信息已經顯示,特斯拉大量使用深度學習的規控演算法表現非常亮眼,這從側面反映了馬斯克的'第一原理'在某種意義上也可以適用於基於深度學習的規控演算法:如果人類的大腦作為一個複雜的神經網絡,能夠透過大量的經驗學會駕駛,那規控演算法也可以利用深度學習去獲得更好的性能和表現。」

深度學習演算法存在著一個很大的爭議即它的“不可解釋性”,那麼,如果某個場景從“未知”變成“已知”了,我們是否需要再在演算法裡面加一個規則把它“確定下來”?

對筆者的這個問題,某Robotaxi公司規控演算法專家認為,透過規則將AI對場景辯識的不確定性確定化,「具有可行性」;但黃暢和輕舟規控演算法專家則認為「不可行」「也沒必要」。

黃暢說:「我們不能強求這個系統一定要『可解釋』——因為,所謂『可解釋』就是拿規則去約束它,甚至完全依賴規則,像專家系統一樣,結果就是,在A城市跑得很溜的系統,到B城市去跑時還需要大量的工程師做調試才行;並且,它會讓那些複雜的、無法用人為規則描述的corner case'無解'了。 ”

可見,強求系統一定要“可解釋”,這就又回到了本文第一節所提到的“規則的局限性”上了。

黃暢認為,在將深度學習演算法引入規則控制時,我們不必過分糾結於系統是否「可解釋」。

「我跟你交流,我們之間,我能夠充分理解你,並能推理你的整套邏輯,但對你底層的一些直覺、一些隱藏的特質,我卻是不知道的(甚至你自己也未必知道),但這並不影響我們能建立起信任感、能順暢地交流。同理,我們也不必用是否'可解釋'去限制去探索深度學習演算法的應用邊界。

「我前段時間看了一篇帖子,說深度學習和經典的統計學之間的區別在於經典統計學仍然嘗試用規則模型的方式讓整個系統變得'可解釋',但深度學習突破了這一點,它甚至非常極端去優化最終的目標。

「人會犯錯,規則系統會犯錯,數據系統也會犯錯,但是如果在廣泛統計學意義上,當數據規模足夠大的時候,深度學習演算法會比規則系統強一個數量級,因此,我們可以放心地使用它。

「在這個基礎上,把環境模型這樣的東西可視化,讓人可以理解,再在規劃的最後一個階段引入少量的必要的規則去約束深度學習演算法,這樣就夠了。 ”

黃暢認為,在演算法2.0時代,AI有能力去完成自適應,因此,自動駕駛公司可能要設計一些“在演算法之上的演算法”,使得它能夠幫助基礎的演算法更好地在應用場景中去迭代、去適應。

輕舟規控演算法專家認為,筆者提到的「當一個場景從未知變成已知的時候,就用規則把應對方案給'確定'下來」的設想在實踐中很難行得通,因為,現實中的場景往往是動態調整的——起初可能是清晰的,但變壞,就「模糊不清」了,因而很難用規則將其描述清楚。

關於深度學習演算法的“不可解釋性”,他的回應是:“有很多人會說深度學習'不可解釋',但其實如果你仔細地去設計你的深度學習演算法,它可也以實現'可解釋性'的效果,甚至,這種可解釋性可能會比規則還強。 ”

他舉了這樣一個例子:自動駕駛車輛在十字路口右轉彎,需要避讓直行而來的車,這個時候,很難用規則窮舉在直行車輛的車速是多少、兩車之間的距離是多少時自動駕駛系統應該採取什麼措施,但如果是用深度學習演算法,只要給出自車和潛在障礙物(直行車輛)的位置和狀態,以及一些相關的環境和歷史信息,經過訓練的神經網絡能夠就能夠算出「你讓我」或「我讓你」的機率分別是多少,這跟人開車做決策的思路是一樣的。 「機率,比規則更容易解釋。」

說到這裡,筆者想到一個看似跟本文主題不直接相關、但又有很深的關聯的話題——什麼是人的「直覺” ?

之前經常看到一些做企業管理研究的人說,創業家在重大事項決策的關鍵時刻,依賴的往往不是研究,而是直覺。很少有人能解釋清楚這個直覺究竟是什麼,但筆者覺得,這個“直覺”,其實就是數據驅動的“深度學習演算法”。

所謂的“直覺準”,並不是什麼天分,其背後都是日積月累的訊息及在此基礎上形成的認知。類似於大數據分析,結論和資訊之間有相關性,但沒有因果關係,或者是因果關係不夠直接、不夠明顯,人很難用邏輯解釋清楚,便說這是「直覺」。

就這個意義上來說,我們確實不必強求深度學習演算法一定要「可解釋」。

不過,毫末智行的規控演算法專家認為,即使上了大量AI模型做認知,那也一定是場景化的,必須有顯式的、可解釋的“意圖和意義”, 「這是我們的原則」。

這位專家說:「深度學習的強項在於可以隨機應變,各種複雜環境都能快速給出一個解,但它的黑盒特質導致有時候給的解會出錯,而基於規則的演算法其實都是'我知道我知道'以及'我知道我不知道',它對'未知'的複雜場景給出一個正確解的可能性比深度學習方法要低,但'我做不出正確答案並不影響我在看到答案之後評判它是對是錯啊'。因此,AI為做題主力,規則負責校驗是我們使用的方式。」

小馬智行的規控演算法專家認為,現階段,深度學習演算法很難保證安全,所以在,未來很長一段時間都一定是傳統演算法和深度學習結合。

這位規控演算法專家說:「我們認為,L2很可能可以達到AI為主的狀態,因為AI不需要應付好所有的corner case——畢竟還有司機可以做最後的安全保證,特斯拉在AI Day上的分享也說明了這一點。

「但L4的演算法在未來很長一段時間內都不太可能做到以AI為主,主要原因還是它的可解釋性和對有安全風險的corner case處理能力的問題;不過,隨著技術的進步,我們相信演算法中AI的部分會越來越多。

「事實上,傳統規控演算法絕不是規則的堆砌,好的傳統規控演算法更多是對場景歸納總結後抽像出來的數學模型——借助不同的數學工具對規劃問題建模並透過最佳化方式求解,它有能力刻畫問題的本質,從根本上保證理論範圍內的安全性。

「因此,所以引入深度學習,並不會涉及到大量的程式碼重寫,更多應該是如何結合好傳統演算法和深度學習,用傳統演算法確保行車的安全性。可以說,傳統規控演算法和AI模型並不是一個簡單的替代關係,演算法研發也是逐步迭代的,不存在要花很大成本一下子把規則碼替換成AI模型的需求,而是循序漸進的。 」

而一位主機廠的架構師則提出這樣一個建議:在主系統裡跑基於規則的演算法,在影子模式裡跑深度學習演算法,等深度學習演算法的訓練效果超過規則的時候,再將深度學習演算法部署到主系統中去。

附. 兩個關於深度學習演算法應用於自動駕駛規控中的案例

1.智加:透過深度學習演算法降低油耗

智加對數據驅動的決策的應用,也經歷了以規則為主過度到規則數據混合決策的過程。智加科技首席科學家崔迪瀟曾說,他們認為換道時機很適合用深度學習演算法來做輔助做決策。

因為乾線物流對時效和油耗要求非常高,一方面不合適的換道時機會導致司機使用自動換道功能比例降低,另一方面以規則為主的換道演算法偏保守,如果僅在前車車速過低時才觸發「換道」指令,會導致更多的後續煞車,進而帶來整個時效和油耗的損耗。為了降低油耗,自動駕駛系統透過收集數據來觀察司機如何做決策,再去研究更類人的換道決策。

這一方案經歷過兩個階段。

第一階段為換道決策由駕駛者「自觸發」形式變成「系統建議」。在這個階段,工程師會不斷去研究為什麼司機在某個點會做出換道決策,進而形成換道建議的規則。在系統給予換道建議後,如果司機允許換道,則系統認為此時的決策是合適的,如果司機認為此時不應該換道,則司機可不採納換道建議。

第二階段是,工程師也會在不同場景中擷取人工換道的數據,並結合第一階段收集的系統換道決策和駕駛人換道決策不一致場景的數據(如駕駛觸發換道,系統未觸發;或系統觸發換道,但司機未採納)進行標註和模型訓練,得到換道決策模型,改進系統原本的規控演算法,進一步提高節油性能。

2.輕舟智航:用深度學習演算法提升系統的「擬人性」

據輕舟智航預測和規控專家也介紹,現階段,輕舟規控演算法為深度學習預留了大量的接口,並積極研發深度學習規控演算法。輕舟智航的整體規控演算法架構的最終目標是實現AI First(深度學習演算法優先),讓模型做大部分行為的輸出,然後再用規則去做互補(規則主要處理安全相關的問題)。

輕舟智航認為,規控能力將是城市NOA功能差異化的重要體現。目前,輕舟智航已開始嘗試在城市NOA方案的規控環節盡可能多運用AI來處理,讓系統在多數情況下的決策「接近人」、在極端情況下的決策「超越人」。

例如,對變換車道時機選擇、匝道merge時機選擇、路口博弈等在使用城市NOA會遇到的某些規劃關鍵場景,輕舟已經有專門的深度學習演算法來處理。

為確保深度學習演算法的可預見性和可控性,輕舟智航會透過對輸入和輸出設定校驗的方式,來確保輸入資料是否符合目前設計的需求。在輸入層面會使用規則的方式來選擇深度學習演算法適用的場景,確保模型的輸入的合理性,限定模型運行在設計的問題範圍之內,在輸出層面也會使用規則進行輸出的校驗,保證輸出達到預設的效果。同時,如果遇到模型處理不好的場景,也可以自動記錄時間點和場景相關訊息,後續透過資料閉環來更新模型,讓模型泛化能力更強,適應更多場景。

目前,在輕舟智航,透過深度學習(例如模仿學習或強化學習)來產生自車「未來可能的軌跡」這項技術已經比較成熟,透過收集大量專家駕駛的軌跡來訓練模型,現在模型產生的軌跡在90%情況下都不需要做後續的修飾;但在10%的情況下,深度學習產生的軌跡效果可能不好,甚至有安全風險,這時候就需要一個框架能夠去修正/修改它。輕舟使用其國內在首創的時空聯合演算法(一種基於數值最佳化的演算法)對深度學習產生的軌跡進行微調。

輕舟規控演算法專家說,時空聯合規劃演算法相比傳統的橫向縱向分離更適合與深度學習演算法協同使用。因為,用深度學習演算法產生的軌跡本身其實就是一個時空聯合的軌跡,這個軌跡上面不僅有位置、速度、方向訊息,還有時間資訊。因此,時空聯合規劃演算法就能較好地跟著模型出來的結果結合在一起,進而能夠無縫地為深度學習演算法加上安全防護。

以上是萬字解讀深度學習演算法在自動駕駛規控的應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除