999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于分布式強化學習的車輛控制算法研究 *

2023-10-12 02:16:16劉衛國項志宇劉偉平齊道新王子旭
汽車工程 2023年9期
關鍵詞:智能策略方法

劉衛國,項志宇,劉偉平,齊道新,王子旭

(1. 浙江大學信息與電子工程學院,杭州 310058;2. 國家智能網聯汽車創新中心,北京 100160)

前言

自動駕駛框架大多遵循模塊化設計原則,然而單個模塊的設計、調試和后期維護成本非常高,且模塊間需要不斷調試才能保證數據和邏輯的準確性[1]。因此,提高自動駕駛開發及調試效率、降低模塊化程度將成為當前研究的熱點。隨著技術與理論的進步,基于規則的自動駕駛算法逐步過渡到基于數據驅動的算法,但仍存在訓練數據依賴性強、感知和定位模塊數據錯誤的問題,因此具備可擴展性的學習驅動方法將逐漸成為未來發展趨勢[2]。

由于仿真與真實環境間的差異性,導致沒有一種成熟的基于仿真訓練算法的量產解決方案,并且算法不能較好地應用在實車環境[3],無法通過OTA更新車輛軟件,提高車輛的性能與操控性。故本文將基于強化學習的規劃控制部分的輸入限定為目標物列表級別,而感知部分可以使用真實RAW 級別數據進行訓練和測試。因此,這種方法可以有效保證強化學習訓練的安全性和環境感知的真實性。

在仿真階段,自動駕駛模擬器Carla 被廣泛應用于自動駕駛算法開發中[4],其雖然能規避實車開發中學習驅動的安全性問題,但因仿真和強化學習的效率低下,在線強化學習算法很少被用于自動駕駛算法的開發[5]。自動駕駛具有寬范圍的連續動作空間、復雜的交通場景,且環境中存在其他動態交通參與者,將都導致強化學習算法的研究和開發更復雜化,這些極大地限制了Carla 在自動駕駛領域的應用。

為解決上述問題,本文引入在線強化學習的大規模并行化分布式框架加速模擬環境中智能體的訓練過程。這要求既需要考慮計算資源的利用率與智能體間的異質性問題,又需要設計仿真模擬器的GPU資源差異分配[6]。

在Carla 上實施并行化在線強化學習時,首先,需要以分布式結構框架實現跨機器運行[7]。其次,單個智能體并未充分利用單步仿真環境渲染結果,絕大多數渲染范圍超出了智能體的觀測范圍,存在大量計算資源浪費。所以為防止計算資源浪費,在線強化學習算法應在同一仿真時間步中并行化多個智能體。最后,作為目標導航問題自動駕駛具有很高的可變性,任務持續時間和難度等級交替出現,故還要設計異步策略實現多智能體更新迭代。

基于上述問題,本文提出了一種異步分布式多智能體強化學習算法,構建了獎勵函數,實現了以Carla NoCrash[8]為基準的最佳性能,此外還利用多智能體并行SAC 算法顯著加快了Carla 模擬器上在線強化學習的訓練,避免了單點故障,提高了Carla 實例的利用率,有效解決了自動駕駛在密集場景下運行的難題;建立并實現了一個基于ROS 的Autoware和Carla 聯合集成開發工具鏈,通過ROS 建立Carla仿真世界和控制系統之間的連接,提高模型可重用性,該框架用于模型快速部署。

1 系統模型建立

為更符合實際工程應用,加速迭代升級,本研究采用部分模塊化方法,將視覺感知與基于深度強化學習的控制策略分離,使其能夠從仿真訓練直接遷移應用到真實世界的測試。同時,系統故障排除變得更簡單。如圖1 所示,基于Cloud-OTA 的分布式模型快速訓練和部署系統架構主要由云端分布式模型訓練框架和車輛端到端規劃控制模塊組成,其中強化學習分布式訓練框架部署在云端,而基于ROS的自動駕駛軟件框架部署在車端。車輛采集數據可以上傳至云端完成更新,由分布式訓練框架完成最新模型快速訓練,并推送至待升級車輛,車端收到推送升級模型包后在車載計算平臺上快速完成模型部署和適配。這樣,通過該系統可以在線修復或升級車輛控制算法,用戶只須將車輛連入網絡便可進行OTA升級,從而降低召回成本和提升便利性,使得模型隨著歷史數據和實驗里程的累計不斷自我升級優化。

圖1 基于Cloud-OTA的分布式模型快速訓練和部署系統架構框圖

1.1 模型定義與輸入

強化學習訓練階段中的數據準備包括數據的采集、上傳、下載以及在大量駕駛數據中提取特征數據等過程。因特征數據的定義是任務導向的,從優化決策規劃的角度看,既需要獲得影響路徑規劃的靜態障礙物信息、動態障礙物及道路限速信息,又需要提供決策的交通標識等信息。需要采集的數據包含靜態障礙物、動態障礙物、自車狀態、道路信息、交通標識,由圖1 可知,上述數據可以通過自動駕駛系統中的感知模塊、定位模塊、總線模塊和高精地圖模塊獲取,而在仿真訓練過程中則是直接從仿真軟件的動態場景中獲取。

因低維輸入和輸出僅須較少的參數便可覆蓋大多數可行狀態,故強化學習多傾向于低維特征和動作。因此,本文利用Carla 模擬器的導航傳感器輸入、交通標志信息制定強化學習任務的低維向量表示規則。

矢量化狀態空間S可以擴展為7 維向量[9],表示為

為簡化車輛控制問題,定義矢量化行為空間A,該空間由目標速度以及預測轉向角θ組成。-為自車完全制動,因本實驗中不能設置為倒車,實驗中限制在[-0.5, 0.5]。

1.2 獎勵函數設計

獎勵函數不僅可以使智能體學到的策略更合理,也會使收斂速度更快,加速實現系統最優性能。為使車輛沿道路中軸線快速通行,本文從通行效率、安全性和舒適性[10]3 方面進行設計,主要包含如下函數。

(1)車輛速度與設定速度的偏差

式中:v和vref分別為實際車速與參考車速;Rv為車速獎勵項,且αv<1/vref。

(2) 車輛轉向盤轉向角幅度

為使智能體過彎道及避障等行為時轉向角更平滑,考慮轉向盤轉角δ的幅度。

式中:轉向盤轉角范圍為[-1,1];Rθ為車輛方向轉向角獎勵項。

(3) 車輛當前位置與道路中軸線偏差

作為對車輛偏離參考線的獎懲,采用當前位置與道路中軸線之間偏差的絕對值。

式 中:de為 距 離 中 心 線 的 絕 對 值;Rδ為 車 道 中 心偏差。

(4) 車輛違規行為檢測

此項是對車輛發生碰撞后的懲罰。

式中collision_flag為違規行為觸發標志位。綜上可得智能體最終獎勵函數為

式中αv、αθ、αδ、αI分別為車速獎勵系數、轉向角懲罰系數、車道中心偏差懲罰系數和違規行為懲罰系數。

2 系統框架與關鍵算法

本文所設計的分布式并行SAC框架是以參數服務器結構與分布式訓練框架為基礎,在訓練框架中為每個智能體提供決策控制的 SAC 算法[11]。本文的分布式訓練中有3 個重要角色:worker、server 和agent。其中:worker是分布式訓練的執行單元,在分布式訓練每個batch 時,worker 會從server 處拉取最新的權重,其次worker 在每個batch 訓練結束后將梯度發送至server 處;server 是服務器單元,用于存儲模型參數并和各個worker 進行通信;而agent 則是被訓練的算法或模型。

在Carla 上訓練基于強化學習智能體的瓶頸之一是需要較長的周期渲染每個時間步。整體框架如圖2所示,worker與Carla 兩者均處于高度忙碌狀態,而server則處于較空閑狀態,同時worker通過反向傳播生成梯度。

由圖2可知,本文使用server 維護全局經驗緩沖區,利用單智能體SAC 算法獲得批量狀態轉換,worker 通過訪問模擬環境收集狀態轉換,并定期將狀態轉換推送到server 上托管的集中緩沖區,最終執行策略更新。

2.1 分布式結構框架

分布式深度學習算法框架的層次結構采用專門為Carla 自動駕駛設計的功能定義接口和標準參數服務器架構[12],且內部還包含兩個級別的并行化,即異步運行的進程間和進程內級別。如圖3 所示,參數服務器被分配到同一個或多個工作組中,worker托管多個智能體,這些數據之間保持異步性;server采用value/Q 函數的全局緩沖區更新全局策略,并采用智能體按順序執行的策略。

圖3 不同級別數據并行化

在Carla 上訓練多并行SAC 的另一個瓶頸是如何最大限度地利用每個Carla 模擬器實例上的資源。盡管已通過參數服務器框架創建了進程內的并行化,然而并沒有解決單獨worker的進程內效率問題。此時自車在每個時間步只與附近的環境交互,渲染的大部分場景被忽略,浪費了大量算力和GPU資源。

基于多并行SAC 算法,參數服務器聚合 worker的更新權重,如圖4 所示。圖4 (a)中,迭代開始時,worker 獲取最新的全局權重W,并從參數服務器更新局部權重。而當worker 1和3完成計算時,worker 2仍在迭代,但參數服務器只有在收到所有機器更新的權重后,才能開始聚合計算全局權重。

圖4 數據訓練迭代過程示意圖

圖4(b) 為異步數據并行模式,可提高進程內運行效率。此模式中,worker 完成一次迭代后立即從參數服務器中拉取全局權重,且無須等待所有其他worker,但因每臺機器的運行迭代可能不相同,實際操作中要考慮各系統效率和算法的收斂性。

為計算最優迭代時長下智能體個數,在Carla 中進行了模擬仿真實驗,結果如圖5 所示。當模擬器中有一個智能體時,Carla 渲染單個時間步長(即同一環境中的所有智能體與環境交互一次)大約需要0.08 s。單個Carla 環境中有8 個智能體時,盡管每一步的仿真時長增加到0.20 s 左右,但在Carla 單一仿真步長中進行的交互總數為8。平均而言,單個智能體與環境交互一次只需大約0.025 s,顯著提高了每個Carla實例的利用率。

圖5 Carla每個時間步渲染耗時與智能體個數之間的關系

由圖5 可知,隨著更多的智能體添加到環境中,Carla 渲染幀的時間在增加,但每個智能體的平均步進時間(即交互一次)在減少。在智能體為10 個時,渲染時間增加到0.32 s,所以單個Carla 模擬環境中的最佳智能體數為7~9 個。故基于遞減回報規則,worker中有8個智能體時將充分利用進程內并行化。為評估多智能體的性能以及訓練算法的有效性,進行了模擬仿真實驗,這里選取了其中4 個智能體的錯誤率表現,結果如圖6所示。

圖6 多智能體在每回合中的錯誤率曲線

2.2 SAC 算法

作為自動駕駛軌跡優化的核心算法之一,SAC算法要定期更新worker 全局策略,異步處理各worker 的信息。在訓練過程中,可能會有多種SAC策略并存[13],并通過比較它們的性能來選擇最優的策略,如圖7所示。

圖7 SAC算法示意圖

為表示多策略學習框架,將策略集定義為(πθ,≤) ={π(θ0),π(θ1),π(θ2),…}。此集合包含在訓練過程中生成的所有策略,(i)代指每個策略的順序時間戳,只有一個元素π(θ0)與初始化策略相關,server始終保持最新全局策略,為每次server 策略更新后,都會創建新策略π(θ|πθ|)元素并附加到不斷增加的πΘ集。

對于智能體集合W={ω1,ω2,ω3, …,ωn},其作用是為全局經驗緩沖區D提供狀態轉換(si,a(ij),ri,s′i,di),包括當前狀態si、策略相關動作a(ij)、獎勵ri、下一個狀態s′i和最終狀態指示符di,其中a(j)~π(j)θ(·|s), 0 ≤j≤|πθ|,下標i∈W,表示此轉換隸屬哪個智能體。

因此,將全局緩沖區D表示為

在SAC 更新后,在D中采樣一批次轉換B,通過以下方式計算Q函數:

由式(9)可知,優化發生在最新策略及其Q 函數上,并在此基礎上生成下一個策略因此,從理論上保證了軌跡優化始終是向前迭代的,但只能把策略更新從worker轉移到server上來實現,而按標準參數服務器運行時,舊策略計算的梯度并不一定會優化全局策略。

3 仿真與結果分析

3.1 實驗環境及方案設計

實驗在集群4-GPU 節點上運行,在Carla-Tensorflow 中完成智能體的訓練過程,采用Town 01地圖進行仿真。

一般將仿真環境下訓練的模型進行軟件在環測試驗證或者部署在真實車輛中時需要額外的開發成本。為此,本文使用 ROS 將仿真環境與自動駕駛系統或框架分開,從而可以更輕松地遷移到自動駕駛軟件框架或真實車輛。這使得在相同條件下評估基于模型的方法和現有的基于學習的端到端方法成為可能。

圖8 展示了從訓練、驗證到部署的快速框架,協同使用 Carla、Autoware、TensorFlow 開發工具鏈并基于 ROS 工具橋接,可用于虛實交替驗證、模型訓練或模型快速部署,其中一些模塊在相同的步驟和階段之間共享,從而降低了模型的開發成本。ROS 允許共享模塊,并使用 ROS 橋來統一數據格式。在使用Carla 評估模型時,可使用 ROS-bridge 連接到Carla,它能夠通過攝像頭、激光雷達模型等獲取傳感器信息,ROS接收車輛攝像頭各幀圖像,將其發送到YOLO 微型節點,處理完后將矩陣發送到Agent節點,獲取環境狀態空間相關信息后,再向Autoware發送適當的動作空間。通過使用ROS,模型可以獨立于模擬器運行,并且只須連接它們就可以將使用Carla 獲得的信息轉移到真實環境中,因此遷移成本較低。

圖8 基于ROS的Carla-Autoware 集成驗證框架

3.2 實施細節

由SAC 規則可知,actor 網絡(策略網絡)具有ReLU 和Tanh 激活的兩層MLP,而critic 網絡(Q 網絡)帶有ReLU 激活的3 層MLP。本文將策略網絡和兩組Q 網絡實例化,把server 上的Q 網絡裁剪成double-Q模塊,并于每25個全局時間步內更新一次。

多并行SAC 將actor 和learner 分為兩部分,故worker 不需要訪問Q 網絡便可實現系統實例化。為提升系統靈活性,每個worker 托管多個策略網絡且分給不同智能體,因單獨與server 同步,可能使同一環境中運行的智能體行為有所差異,并且可學習的熵策略會使訓練更不穩定,所以本文固定熵系數α。

實驗訓練過程中使用的超參數如表1 所示,為使 NoCrash 準生成最佳模型,表2 列出與多并行SAC具體方法相關的超參數。

表1 一般超參數

表2 多智能體并行SAC超參數

為測試設計方法的可行性與性能,將本文方法與3 種主流的自動駕駛方法進行比較,即模塊化方法、模仿學習和強化學習。對于強化學習方法,將本文方法與在線強化學習方法、離線強化學習方法進行比較。

盡管每種方法所涉及的運行環境、模擬器版本不同,可能存在渲染引擎、紋理細節等細節問題,但因不使用任何高維視覺輸入,所以不會影響測試方法的使用。

為驗證兩種算法的可行性與運行速度,將本文方法與關聯規則學習算法(ARL)[7]比較,兩者共享相似的狀態空間,這里只粗略地估計訓練速度,完成兩者速度的優劣對比。

3.3 NoCrash結果分析

本文首先分析了不同交通條件下以NoCrash[8]為基準的成功率。典型交通場景是指車輛相對較少、車速較快、間距較大的場景,更容易執行加速、制動和轉向等基本操作;密集交通場景是指車輛相對較多、車速相對較慢、間距相對較小的場景,還可能有行人及其他障礙物,需要更復雜的決策和動作執行能力;表3 列出了常見方法和本文方法的運行數據結果。

表3 不同交通流條件下的NoCrash定量結果 %

表3為25次測試中的平均成功率(百分比)。多智能體并行SAC 代表本文方法,多智能體并行SAC(1)是指單智能體SAC,多智能體并行SAC(std 64)是指使用標準參數服務器設置的64 智能體SAC,其中局部計算的梯度用于全局更新。

多智能體并行SAC(std64)是一個具有標準參數服務器工作流的64 智能體訓練系統,因車輛沒有學習駕駛功能,導致3 種場景下均以失敗告終,由此可知局部梯度具有很高的噪聲和偏差,無法優化全局策略。而多智能體并行SAC(64)是在訓練中采用64個并行的智能體,共同更新模型參數。從表中可得出,在最具挑戰的密集場景上,本文的方法實現了較高的自動駕駛成功率及良好的性能。梯度使用局部目標計算,無法使用梯度靈敏地更新全局策略,也從側面突出了修改原始參數服務器工作流以支持分布式強化學習方法的重要性。

由實驗得出,當在測試環境中更改動態參與者的數量時,智能體的成功率沒有太大差異。這與連續積分學習算法(CIL)[14]、跨域自適應學習算法(CAL)[15]不同,當駕駛環境變得更加復雜和混亂時,這些傳統方法的性能會急劇下降,可能因為這些智能體在遇到障礙物或交通信號燈時不能做出反應;本文構建的智能體使用與ARL[5]類似的狀態空間,在避障和遵守交通規則方面做得更好。此外,實驗發現多智能體運行的失敗案例幾乎都因超時產生,由此導致智能體靜止不動,因低維狀態空間和動作空間容易受到特殊鎖死情況的影響。因此SAC在測試時是確定性的,相同的觀察結果會導致智能體繼續出現相同的錯誤。

文中還對不同并行智能體SAC(1)、SAC(std64)與SAC(64)進行了深入的分析,得出worker 的平均獎勵及成功率曲線,結果如圖9 與圖10 所示。結果表明SAC(64)在處理異常情況時更具優勢,具有更好的穩定性以及魯棒性。而SAC(std64) 由于局部梯度具有較高的偏差,無法優化全局策略,導致成功率變化范圍較大且極不穩定。

圖9 worker 平均獎勵曲線

圖10 worker 成功率曲線

文中還列出了不同方法下每1 h 的近似模擬時間步長,結果和設置見表4。 因兩者在強化學習設置方面有諸多相似之處,所以將本文方法與ARL[5]進行比較。本文不將總訓練時間作為定量分析的可靠指標,盡管本方法可以在7 h 內完成整個訓練過程,比ARL[5]的典型訓練減少幾天甚至幾周的訓練時間,但總訓練時間在強化學習訓練過程中仍是高度隨機和不穩定的[16],故本文將專注于每1 h的模擬時間步,以證明分布式訓練的有效性。

表4 不同設置下每1 h近似模擬時間步長

“Std. param. Server”[17]指使用標準參數服務器工作流,即智能體計算梯度。一個訓練系統中的agent 總數等于worker 總數乘以每個worker 的agent數量。因強化學習的隨機性,一種方法達到其峰值性能所需時間步是高度不可預測的。即使對于相同的方法,多次運行的總訓練時間(定義為一種方法達到其峰值性能所需的時間)也有很大不同。因此,文中著眼于每1 h內深度學習算法完成時間步數,實驗的結果在很大程度上仍取決于集群狀態。

通過實驗發現多智能體并行SAC(64)與單智能體SAC(1)相比,顯著加快了20 倍以上的訓練速度,結合表4 結果可得此加速方式并不以犧牲性能為代價。此外,即使訓練系統中有大量智能體,server 的數量也不會影響訓練速度,這表明訓練的瓶頸仍然在模擬器的worker 端,而不是server 的通信或計算,理論上說明通過擴大worker規模進一步加快仿真速度是可行的。結果也表明,與一個 worker 中只有一個智能體相比,一個模擬器中有多個智能體可以更好地利用虛擬環境,提高訓練效率,側面也驗證本文的多級并行化設計的有效性。

通過改進方案的消融實驗,與多智能體并行SAC(64)相比,使用Std 的64 智能體多智能體并行SAC 的訓練速度慢得多,訓練快速的原因是多智能體并行SAC將局部緩沖區推送到server,避免了局部梯度計算。

4 結論

本文提出了一種異步分布式多智能體強化學習算法,以及基于Cloud-OTA 的分布式模型快速訓練和部署系統架構,并以此為基礎建立了基于ROS 的Autoware 和Carla 聯合集成開發工具鏈。實驗表明,該方法能有效地提高自動駕駛算法的開發效率和適應性,解決了強化學習算法訓練過程中低效性和高復雜度的問題,具有很高的實際應用價值。

猜你喜歡
智能策略方法
例談未知角三角函數值的求解策略
我說你做講策略
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
高中數學復習的具體策略
數學大世界(2018年1期)2018-04-12 05:39:14
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 亚洲无码高清免费视频亚洲| 久久伊人操| 久久91精品牛牛| 亚洲成人动漫在线观看| 亚洲精品国偷自产在线91正片| 国产精品免费入口视频| 六月婷婷激情综合| 色视频久久| 亚洲无卡视频| 无码专区在线观看| 九九视频在线免费观看| 亚洲人成网站在线观看播放不卡| 色哟哟精品无码网站在线播放视频| 色综合婷婷| 91午夜福利在线观看精品| 99久久亚洲综合精品TS| 欧美α片免费观看| 精品无码国产一区二区三区AV| 大学生久久香蕉国产线观看| 小说区 亚洲 自拍 另类| 精品無碼一區在線觀看 | 中文字幕人成人乱码亚洲电影| 巨熟乳波霸若妻中文观看免费| 日韩欧美91| 白浆视频在线观看| 第九色区aⅴ天堂久久香| 伊人成色综合网| 99精品福利视频| 人妻出轨无码中文一区二区| 欧美成一级| 色婷婷亚洲综合五月| 国产69精品久久| 99这里精品| 91久久性奴调教国产免费| 国产小视频网站| 青青青亚洲精品国产| 日韩欧美国产综合| av色爱 天堂网| 在线观看网站国产| 全部免费特黄特色大片视频| 欧美午夜网站| 2021天堂在线亚洲精品专区| 大陆国产精品视频| 2021天堂在线亚洲精品专区| 成人午夜免费观看| 免费看一级毛片波多结衣| 毛片在线看网站| 欧美精品不卡| 国产91精品久久| 亚洲日本www| 欧美三级日韩三级| 91精品专区| 专干老肥熟女视频网站| 国产精品xxx| www.91在线播放| 91色在线观看| 国产高清在线观看| 最新亚洲人成无码网站欣赏网 | 超碰精品无码一区二区| 亚洲一区二区三区在线视频| 亚洲中久无码永久在线观看软件 | 国产69囗曝护士吞精在线视频| 狠狠色婷婷丁香综合久久韩国| 国产在线欧美| 亚洲国产精品不卡在线| 日本高清免费不卡视频| 亚瑟天堂久久一区二区影院| 国产精品视频免费网站| 综合色亚洲| 日韩国产黄色网站| 亚洲天堂视频在线免费观看| 91成人免费观看在线观看| 亚洲日本www| 在线不卡免费视频| 女人18毛片一级毛片在线| 国产免费一级精品视频| 久久人搡人人玩人妻精品一| 国产视频 第一页| 欧美午夜在线播放| 国产精品一区在线麻豆| a毛片免费在线观看| 97久久免费视频|