自動駕駛系統中AI的安全問題討論

道路車輛功能安全的ISO 26262標準提供了一整套確保系統功能安全的要求,但機器學習(包括深度學習)方法自身的一些特點會影響安全或安全評估:

• 識別危險(Identifying hazards)。 機器學習的使用可能產生新的危險類型,這些並不是組件的故障(malfunctioning)帶來的。特別是,人類與機器學習實施的高級功能之間複雜行爲交互會產生危險的狀況,應在系統設計中予以緩解。

• ML使用水平。通過使用端到端方法,機器學習可在體系結構層面廣泛使用,或者僅限於在組件級別使用。不過端到端(E2E)方法挑戰了這樣的假設,即複雜系統被定義成一個有自己的功能的、分層的的組件分解。

• 所需的軟件技術。 ISO 26262要求在軟件開發生命週期的各個階段使用許多特定技術。雖然其中一些仍然適用於機器學習組件而其他組件可以很容易地進行調整,但許多仍然特別偏向於使用命令式編程語言實現代碼的假設。

• 非透明。所有類型的ML模型都包含編碼的知識,但這種編碼對人來說在某些類型中比其他類型更難以解釋。例如,用於天氣預報的貝葉斯網絡更容易解釋,因爲節點是表示人類定義的概念的隨機變量,例如“降水類型”,“溫度”等。相比之下,神經網絡模型被認爲是不透明的。增加ML模型表達能力通常以犧牲透明度爲代價。不透明是安全保障的障礙,因爲評估員更難以建立模型按預期運行的信心。

• 錯誤率。 ML模型通常不能完美地運行並且出現錯誤。因此,即使對於測試數據,ML組件的“正確性”也很少實現,並且必須假定它週期性地出錯。此外,雖然錯誤率的估計也是ML開發過程的任務,但只有其可靠性的統計保證。最後,即使誤差的估計是準確的,也可能無法反映系統在有限輸入集的誤差率,要知道真實誤差是基於無限樣本集。在使用ML組件設計安全系統時必須考慮這些特性。

• 基於訓練。用可能遇到的輸入子集來訓練基於監督和無監督學習的ML模型。因此,訓練集必然是不完整的,並且不能保證甚至代表可能的輸入空間。此外,可能通過捕獲訓練集附帶的細節而不是一般輸入的學習過程會出現過度擬合(overfitting)。 強化學習(RL)受到類似的限制,它通常僅在訓練期間探索行爲的子集。這種ML組件性能的不確定性是對安全的威脅。另一個因素是,即使訓練集具有代表性,也不足以代表安全危機案例(safety-critical cases),因爲這些案例在輸入空間通常是較少的。

• 不穩定。通常使用局部優化算法訓練更強大的ML模型(例如NN),並且可能存在多個最優。因此,即使訓練集保持不變,訓練過程也可能產生不同的結果。但是,更改訓練集也可能會改變最佳狀態。一般說,不同的最優結構可能在架構上相距甚遠,即使它們在性能上相似。這樣,難以調試模型或重複使用已經安全評估的部分。

一種解決方案—貝葉斯深度學習(BDL)

在自動駕駛軟件中,不存在隔離的單個組件。通過減少單個組件錯誤來提高安全性對於安全的AV軟件是必要的 - 但還不夠。即使每個組件獨立地滿足可接受的容錯,誤差的累積也會帶來災難性的後果。相反,瞭解錯誤如何通過組件流水線傳播是至關重要的。例如,在圖1中,感知組件 - 檢測另一車輛的指示燈 - 影響預測組件如何預測車輛的運動,最終影響駕駛決策。由於流水線中上游(upstream)組件的分類錯誤會影響下游(downstream)組件,至少每個組件都應該傳遞下游其輸出的侷限性和不確定性。相應地,每個組件應該能夠接受流水線上遊組件的不確定性作爲輸入。此外,這些組件的不確定性必須以一種原則方式組合在一起,產生有意義的整個系統不確定性度量,並根據這些度量做出安全決策。

不確定性指知識有限的狀態,這時候無法準確描述現有狀態、未來結果或不止一種可能的結果。 由於它涉及深度學習和分類,不確定性還包括模糊性; 它是關於人類定義和概念的不確定性,而不是自然界的客觀事實。

實際上存在不同類型的不確定性,我們需要了解不同應用所需的類型。這裏將討論兩個最重要的類型 - 認知(epistemic)和任意(aleatoric)不確定性。

認知的不確定性反映了對哪個模型生成收集數據的無知(ignorance)。給定足夠的數據可以解釋這種不確定性,並且通常稱爲模型(model)不確定性。認知不確定性對於模型非常重要:
• 安全危急(safety critical)應用,因爲需要來理解與訓練數據不同的例子;• 訓練數據稀疏的小數據集。

觀察認知不確定性的一種簡單方法是用25%的數據集訓練一個模型,並用整個數據集訓練第二個模型。僅在25%數據集上訓練的模型比在整個數據集上訓練的模型具有更高的平均認知不確定性,因爲它看到的例子更少。

對於數據無法解釋的信息,任意不確定性解釋了這種不確定性。例如,圖像中的任意不確定性可歸因於遮擋(因爲相機無法穿過物體)或缺乏視覺特徵或圖像的過度曝光區域等。只要通過提高觀察所有可解釋變量(explanatory variables)的精度就能解釋這些不確定性。對於以下情況,任意不確定性建模非常重要:

• 大數據情況,其中認知不確定性大多被解釋;• 實時應用,無需採用昂貴的蒙特卡羅採樣(Monte Carlo sampling),因爲可以將任意模型(aleatoric models)形成輸入數據的確定性函數。

實際上可以將任意不確定性分爲兩個類別:

• 數據相關或異方差不確定性(Homoscedastic uncertainty)取決於輸入數據並預測爲模型輸出;• 任務相關或同方差不確定性(Homoscedastic uncertainty)不依賴於輸入數據。它不是模型輸出,而是一個對輸入數據保持不變的常數並在不同任務之間變化。因此,它可以被描述爲任務相關不確定性。

任意不確定性是輸入數據的函數。因此,深度學習模型可以用修改的損失函數來學習預測任意不確定性。對於分類任務,貝葉斯深度學習模型有兩個輸出,即softmax值和輸入方差,而不是僅預測softmax值。教模型預測任意方差是無監督學習的一個例子,因爲該模型沒有可供學習的方差標籤。

可以通過改變損失函數來模擬異方差任意不確定性。由於這種不確定性是輸入數據的函數,就可以學習從輸入到模型輸出的確定性映射來預測。對於迴歸任務,通常使用歐幾里德/ L2損失進行訓練:損失= || y-ŷ|| 2。要學習異方差不確定性模型,可以用以下方法代替損失函數:
Loss = 0.5||y−ŷ ||2/σ2 + 0.5logσ2

同方差不確定性的損失函數類似。

對認知不確定性建模的一種方法是在測試時使用蒙特卡洛退出採樣(dropout sampling),一種變分推理。注:退出是一種避免在簡單網絡中過擬合的技術,即模型無法從其訓練數據到測試數據的泛化。在實踐中,蒙特卡洛退出採樣意味着模型包括退出並且模型測試時打開退出多次運行得到結果分佈。然後,可以計算預測熵(預測分佈的平均信息量)。

建模不確定性的原則方法是貝葉斯概率理論(事實上,一個理性的代理,其置信必須是貝葉斯方式)。貝葉斯方法使用概率來表示不確定性,並且用於每個單獨組件表示其輸出的主觀置信度。然後,可以通過流水線向前傳播這種置信度。爲此,每個組件必須能夠輸入和輸出概率分佈(distribution)而不是僅僅數字(numbers)。組件輸出到下游成爲上游預測不確定性的函數,使決策層能夠考慮上游錯誤分類的後果,並採取相應的行動。在該領域存在其他傳達不確定性的方法,例如集合(ensembling)。但是,這些技術的不確定性不一定能以有意義的方式組合在一起(對於複雜的軟件流水線而言)。此外,這些方法捕獲的不確定性類型不一定適用於安全分析。傳統的自動駕駛研究使用貝葉斯工具來捕捉不確定性。但是,此類系統向深度學習轉變時帶來了困難。深度學習系統如何捕捉不確定性?

圖1 DL和BDL的比較

雖然存在許多貝葉斯模型,但深度學習獲得了細節和複雜關係的最佳感知性能。因此,貝葉斯深度學習(BDL)成爲選擇。貝葉斯統計(Bayesian statistics)是統計學領域的一種理論,其中關於世界真實狀態的證據用置信程度(degrees of belief)來表達。貝葉斯統計學與實踐中的深度學習相結合意味着在深度學習模型預測中加入不確定性。早在1991年就有了神經網絡中引入不確定性的想法。簡而言之,貝葉斯深度學習在典型神經網絡模型中發現的每個權重和偏差參數上增加了先驗分佈(prior distribution)。過去,貝葉斯深度學習模型並不經常使用,因爲它們需要更多參數進行優化,這會使模型難以使用。然而,最近貝葉斯深度學習變得越來越流行,並且正在開發新技術在模型中引入不確定性,同時參數量與傳統模型相同。

圖1是一個在整個流水線中不確定性傳播但能防止災難的示例,其中標準DL與BDL進行對比。在這種情況下,標準的DL艱難地做出預測,而BDL則輸出概率預測來說明每個模型對世界的無知。這時候,自動駕駛車正在接近一個交叉路口,一個車輛迎面而來,其意圖是轉彎穿過我們自動駕駛車的道路。考慮到模型檢測到另一輛車,但未能檢測到它是在轉彎車道還是否正在閃爍指示燈。通過深度學習,經模型架構傳遞硬分類的結果,系統無法預測到來的汽車可能會轉向。相比之下,BDL系統可能在迎面而來車輛的位置和指標出錯,但它能夠將其不確定性傳播到下一層。在第二階段,考慮到其他車輛存在的概率、指示燈和轉彎車道的位置,預測組件可以計算迎面而來車輛阻礙自動駕駛車的概率。在第三階段,決策部分對其他車輛預測的運動範圍做出反應,產生完全不同的結果並避免碰撞。

圖2和圖3顯示了一個場景理解系統這些不確定性的示例。圖2是貝葉斯深度學習用於語義分割。通常,深度學習模型在不考慮不確定性的情況下(c)進行預測(b)。建議從每層估計不確定性(c)傳遞貝葉斯流水線。(b)顯示語義分割,其中類單獨着色。(c)顯示不確定性,其中深藍色以外的顏色表示像素更不確定。該模型對類邊界、遠距離和不熟悉的目標缺乏信心。

圖2 語義分割,圖片源自黃浴的知乎

圖3 是貝葉斯深度學習用於立體視覺深度估計。此示例說明了立體視覺的常見故障情況,可觀察到該算法錯誤地處理了紅色汽車上的反射和透明窗口。重要的是,觀察到BDL算法還預測了這種錯誤輸出(b)的高不確定性(c)。

圖3 深度估計,圖片源自黃浴的知乎

接下來討論三個組件組成的架構流水線:感知層、預測層和決策層。

• 感知層
感知系統應解決三個重要的任務:估計周圍場景的語義,理解幾何形狀,並估計車輛本身的位置。

先說語義。語義場景理解系統的作用是根據環境的外觀對環境的類別和狀態進行分類。視覺圖像具有很高的信息量,但讓算法去理解並不重要。語義分割是一項常見任務,它根據一組預定義的類標籤對像素進行分割並對每個分割段進行分類。例如,給定視覺輸入(圖2a),圖像被分割成道路,路徑,樹木,天空和建築物(圖2b)。大多數算法都會進行硬分類,但是使用貝葉斯深度學習的語義分割算法可以捕獲不確定性。

再說幾何。除了語義之外,感知系統還必須推斷場景的幾何形狀。這對於確定障礙物和路面位置很重要。可以使用諸如超聲波或激光雷達等距離傳感器來解決該問題。然而,已經有監督和無監督深度學習的方法(見圖3)證明了視覺解決方案。

最後是定位。感知系統必須估計車輛的位置和運動。在不熟悉的環境中,這通常是SLAM的任務。有益的事是把車輛和全局地圖,特別是某些場景特徵(例如車道位置和到交叉路口的距離)校準。自動駕駛車必須推斷所在的車道以及相對於前方十字路口的位置。這同樣也有貝葉斯深度學習的計算機視覺方法。

但是感知中也存在其他問題,而不確定性在這些問題中起着核心作用。機器人專家長期以來一直在研究機器人感知的不確定性。對運動規劃、濾波和跟蹤等方面,幾何特徵的不確定性已經在考慮。另一種常見的用途是給定每個傳感器的概率模型(似然函數)情況下,解決傳感器融合問題。傳感器融合結合了多個傳感器輸出,使用貝葉斯規則(Bayes rule)來構建一個比任何一個傳感器都更有信心的場景視角。這種好處是一種結合所有可用信息、減少地圖和定位(mapping & localization)錯誤的原則性方法。這種不同類型傳感器組合的方式,特別是激光雷達、雷達、視覺和紅外傳感器,有助於克服其中任何一個傳感器的物理限制。

感知組件通常放置在流水線的起始處,並且必須處理原始傳感器輸入。感知組件的輸出應包括預測和不確定性,這對於輸出更精確的目標檢測(通過濾波和跟蹤)和更準確的狀態估計(通過改進的地圖和定位)非常有用。不應在感知組件的輸出處評估一個硬判決(hard decision)。相反,應該將不確定性明確地傳播到預測層。大多數研究都沒有考慮超出這點的不確定性,但它是後續預測和決策層的關鍵輸入(見圖1)。例如,不確定性可以是來自感知系統輸出分佈的一組樣本來傳播。但是,這種方法在實時系統使用時受到限制。決定一個有效獲得感知系統認知不確定性(epistemic uncertainty)的表示法,是一個懸而未決的問題。

• 預測層

儘管場景感知組件可以識別障礙物位置,但許多障礙物是動態因素,例如行人和車輛。場景預測有助於自動駕駛車估計代理的運動,以避免危險的情況,例如前方車輛可能突然制動,或行人可能進入車路。鑑於典型的激光雷達範圍(~100m)和法定速度限制(~30m / s),預測通常不會提前超過~3.3s。

給定外部代理的行爲模型,場景預測可以被構建爲部分可觀察的馬爾可夫決策過程(POMDP,partially observable Markov decision process)。在沒有模型的情況下,可以使用逆強化學習(IRL)。IRL是從觀察中推斷另一個代理的潛在獎勵函數的問題。然後,可以在決策層中使用推斷的獎勵函數來模擬人類駕駛的示例,比如,一種學徒學習(apprenticeship learning),或者僅僅是爲了預測外部代理的動作。該方法學習一個獎勵函數,給出特定場景的特徵,旨在將其推廣到新的場景。 IRL的變體,如採用高斯過程的貝葉斯IRL 、使用神經網絡的深度IRL,也是一樣操作。最近引入概率深度方法,行人或車輛的概率輸出預測容易可視化,這對於調試和可解釋性是有利的。例如,狀態佔用(state occupancy)概率的熱圖可以使用。其他預測方法試圖構建一個自迴歸模型,這個模型根據感知層給出的視覺片段預測未來的分割。這種方法在視覺上也是可以解釋的,但由於缺乏幾何知識,預測的不準確超過0.5秒。

然而,似乎尚未針對場景預測調查輸入的不確定性。在目標存在和位置感知層輸出的輸入不確定性有利於複雜流水線中的預測。但實時地實現這一點非常困難。如果預測層的輸出是佔用概率(occupancy probabilities)圖,每個被跟蹤的對象的貢獻則被存在概率加權,例如,與其位置的概率分佈函數卷積。這是一個示例開放問題。

• 決策層

決策層通常包括路線規劃(route planning)、運動規劃和反饋控制組件來控制自動駕駛車。對於每個組成部分,貝葉斯決策理論是一種決定最大化給定效用函數(utility function)行爲的原則方法。此外,貝葉斯決策理論提供了一種反饋機制,可以採取行動來減少代理的不確定性。此反饋用於在以後做出更明智的決策(例如,移動以獲得更好的視圖)。這依賴於在POMDP領域的工具。

決策部分的兩個主要任務是路線規劃和運動規劃。

• 路線規劃

該任務涉及根據道路網絡先驗圖結構(graphical structure)的導航,用諸如A *的算法解決最小成本路徑問題。存在幾種比A *更適合大型網絡的算法。對許多任務來說,路線規劃是大多已解決的問題。

• 運動規劃

給定要走的街道,運動規劃(MP)根據自動駕駛傳感器觀察到的當前道路狀況如交通燈狀態、行人和車輛等進行導航。大多數MP方法都是基於採樣的路徑規劃器或圖搜索算法。經典路徑規劃考慮自動駕駛車的狀態空間,分爲 “自由空間”和“障礙” 二類。定位和製圖的不確定性使這種自由障礙的區分模糊,這是一些基於採樣的規劃者所考慮的。
爲了在動態不確定性下很好地規劃運動,精確的概率動力學模型(probabilistic dynamics model)是至關重要的。雖然運動學模型適用於低慣性(low-inertia)無滑動(non-slip)情況,但需要更復雜的模型來模擬慣性,並且需要概率模型來模擬打滑(slip)。動力學不確定性建模尤其是在泥土或礫石道路上安全駕駛特別相關,其中滑動(slipping)是常見的並且應該是預期的。最近,BDL動力學模型已被用於控制器的設計,應該會擴展到MP。

端到端學習範式

端到端的學習範式,共同訓練系統的所有組成部分,從感知、預測到決策結束。這是一個有吸引力的範例,因爲它允許每個組件相對於期望的最終任務形成一個最佳的表示。或者,不提供終端任務的信號或知識情況下單獨訓練單個組件。例如,單獨訓練感知系統,可能會導致一種表示有利對自動駕駛車上方雲彩的準確分割,而不是識別前方車輛。端到端訓練使感知系統學習對最終任務最有用的場景。

但是,端到端訓練信號需要大量數據。這是因爲傳感器輸入到驅動命令的映射是複雜的。爲了更快學習,在每個組件的任務中使用輔助損失(auxiliary losses)的模型約束法是有用的。在實踐中,可能先訓練單個組件(例如語義分割和預測等),然後採用具有輔助損失的端到端訓練對它們微調。

對串行預測-決策流水線架構的批評來自於是假設外部世界演變獨立於自動駕駛車的決策。然而,周圍的行人和車輛肯定會根據自動駕駛車的決定來決定行動,反之亦然。例如,需要多智能體規劃(multi-agent planning)的駕駛情況包括車道合併、四種停車標誌、追尾碰撞避讓、讓路以及避免另一個盲點。這種多智能體規劃可以將預測和決策組件耦合以共同預測外部世界狀態和條件自動駕駛車的決策。這樣的架構避免了今後關於未來外部場景狀態的邊際分佈的決策(邊際概率分佈可以覆蓋整個道路,具有不可忽略的佔用概率)。總而言之,聯合推理多智能體場景的方法是基於概率模型的強化學習,已經擴展到BDL。

參考文獻

  1. R Salay et al. “An Analysis of ISO 26262: Using Machine Learning Safely in Automotive Software”,arXiv 1709.02435, 2017

  2. Google WayMo Safety Report, “On the road to fully self-driving”, 2017

  3. R McAllister et al.“Concrete Problems for Autonomous Vehicle Safety: Advantages of Bayesian Deep Learning”,IJCAI,2017

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章