隨著機(jī)器學(xué)習(xí)的發(fā)展,出現(xiàn)了很多基于深度學(xué)習(xí)的避障方案。在無人機(jī)領(lǐng)域,與無監(jiān)督學(xué)習(xí)相關(guān)的研究主要傾向于輔助有監(jiān)督學(xué)習(xí)的模型自動化數(shù)據(jù)集的生產(chǎn),以減少標(biāo)注數(shù)據(jù)的人力。另一方面,深度強(qiáng)化學(xué)習(xí)(DRL)方法可以通過讓無人機(jī)在訓(xùn)練環(huán)境中自行收集數(shù)據(jù)來解決創(chuàng)建數(shù)據(jù)集的問題。我們使用SAC算法來實現(xiàn)基于連續(xù)的無人機(jī)避障方案動作空間,讓無人機(jī)做出更準(zhǔn)確流暢的動作選擇。我們使用深度圖作為輸入,將SAC與變分自動編碼器 (VAE) 相結(jié)合,訓(xùn)練無人機(jī)在由多個墻壁障礙物組成的模擬環(huán)境中完成避障任務(wù)。
模擬環(huán)境
Airsim是微軟推出的一款開源無人機(jī)和無人車模擬器。它支持 Unity 3D 和 Unreal 4 圖形引擎。在本次研究中,我們選擇了Unreal 4,它擁有多種繪圖工具庫。研究人員可以毫不費力地構(gòu)建詳細(xì)的場景和障礙物。本研究利用虛幻引擎搭建的矩形封閉走廊作為無人機(jī)的飛行環(huán)境。
SAC算法框架
整個強(qiáng)化學(xué)習(xí)系統(tǒng)的工作流程如圖1所示。我們同時訓(xùn)練一個 VAE 來生成與輸入深度圖相同的深度圖。然后,我們使用VAE的編碼網(wǎng)絡(luò)將深度圖轉(zhuǎn)換為潛在代碼以作為狀態(tài)參與訓(xùn)練。與DDPG不同,SAC也使用兩組評論網(wǎng)絡(luò)來估計Q值。
圖1 整個系統(tǒng)的訓(xùn)練流程圖
變分自動編碼器
我們使用的VAE的結(jié)構(gòu)如圖2所示。輸入深度圖為128×72的灰度圖像,通道數(shù)為1。encode網(wǎng)絡(luò)由四層卷積神經(jīng)網(wǎng)絡(luò)組成,每個卷積層使用一個(4×4)卷積核。在解碼之前,我們將潛在代碼展開為大小為1024 × 1 × 3的數(shù)據(jù)。為了成功地將數(shù)據(jù)恢復(fù)到原始大小,我們使用大小為(5 × 7)、(6 × 8)的卷積核,(7 × 8) 和 (8 × 6)在解碼部分。
圖2 VAE 的結(jié)構(gòu)
Actor網(wǎng)絡(luò)和Critic網(wǎng)絡(luò)的結(jié)構(gòu)
Actor和Critic網(wǎng)絡(luò)的結(jié)構(gòu)如圖3所示。Actor網(wǎng)絡(luò)是一個由四個全連接層組成的神經(jīng)網(wǎng)絡(luò)。由 VAE 生成的32長的潛碼作為狀態(tài)輸入到Actor網(wǎng)絡(luò)中。Actor網(wǎng)絡(luò)的輸出有兩個值,范圍從-1到1,分別代表無人機(jī)在y方向(左右方向)和z方向(上下方向)的速度。
圖3 Actor和Critic網(wǎng)絡(luò)的結(jié)構(gòu)
獎勵功能
在每一步結(jié)束時,系統(tǒng)會根據(jù)是否碰撞、是否升級、是否到達(dá)目的地,給予相應(yīng)的獎勵或懲罰。如果動作獎勵為正,則證明無人機(jī)正在遠(yuǎn)離障礙物,即避開障礙物,此時有獎勵。如果避障獎勵為負(fù)數(shù),則表示無人機(jī)正在接近障礙物并受到一定的懲罰。動作獎勵的求解過程如圖4所示。
圖4 動作獎勵的計算過程
延遲學(xué)習(xí)
原始的actor-critic類型算法在學(xué)習(xí)過程中經(jīng)常使用直接更新方案,其中critic和actor網(wǎng)絡(luò)在每個時間步更新。理論上,直接更新會產(chǎn)生更多的訓(xùn)練步數(shù),從而加速收斂。然而,在實際應(yīng)用中,我們發(fā)現(xiàn)這種方法在訓(xùn)練過程中頻繁地改變策略選擇計劃,從而使代理在學(xué)習(xí)過程中對策略選擇產(chǎn)生混淆,導(dǎo)致策略抖動。為了解決這個缺點,我們設(shè)計了一個延遲學(xué)習(xí)方案,我們將網(wǎng)絡(luò)的更新延遲到每個epoch結(jié)束之后。這確保了無人機(jī)的每一次完整飛行都遵循相同的策略。這種方法在一定程度上穩(wěn)定了訓(xùn)練過程。為了比較兩種算法之間的差異,我們在相同的環(huán)境中對這兩種算法進(jìn)行了4000個epoch的訓(xùn)練,并記錄了它們在最后50個epoch中的平均避障時間。從圖5可以看出,雖然結(jié)果差異不大,但傳統(tǒng)SAC在我們的任務(wù)中比具有延遲學(xué)習(xí)的 SAC具有更大的波動性。
圖5 SAC 和延遲學(xué)習(xí)SAC在我們的實驗任務(wù)下訓(xùn)練了4000個epoch
實驗環(huán)境
我們使用虛幻引擎搭建了一個長60m、寬6m、高7m的封閉走廊作為無人機(jī)的飛行環(huán)境。走廊每隔十米,就有一堵不同開口位置的墻作為障礙物,如圖6所示。我們使用這些障礙物將走廊劃分為5個級別的區(qū)域。每次無人機(jī)在單次測試中越過障礙物時,都被視為升級。我們認(rèn)為無人機(jī)從走廊的一端起飛并避開所有障礙物(穿過墻壁上的所有開口)作為通過測試。
圖6 具有不同開口位置的五面墻作為實驗環(huán)境中的障礙物
測試過程
在測試過程中,無人機(jī)僅在初始起點起飛,并嘗試在沒有任何噪音的情況下避開障礙物。無人機(jī)安全通過五個障礙物并觸及端壁視為通過測試。為了驗證無人機(jī)是否能夠適應(yīng)某些環(huán)境變化,我們反復(fù)改變墻壁的順序進(jìn)行測試,如圖7所示。
圖7 測試環(huán)境。測試環(huán)境包含三個按順序排列的不同障礙物。它們是一個訓(xùn)練環(huán)境(a),障礙順序是 12345 和兩個重新配置的環(huán)境(b,c),障礙順序是 34125 和 53412。
為了進(jìn)一步驗證訓(xùn)練好的智能體對新環(huán)境的適應(yīng)性,我們構(gòu)建了一個由五個非矩形門組成的測試環(huán)境。本次測試環(huán)境中5個障礙物按照圖8所示的編號依次排列,走廊的長寬高與訓(xùn)練環(huán)境相同。
圖 8. 新重建的測試環(huán)境中的五個非矩形障礙物
結(jié)果
在我們的實驗中,網(wǎng)絡(luò)在每個epoch后更新。圖9顯示了水平軸上的訓(xùn)練時期和垂直軸上的情節(jié)獎勵的圖表。從圖9可以看出在大約 200個epoch之后,epoch獎勵開始逐漸增長。
圖9 epoch獎勵圖
每個圖中的水平虛線代表起點和終點,其中y軸上的0
在理想狀態(tài)下,如果無人機(jī)在50個epoch內(nèi)完成所有避障且無碰撞,則平均避障次數(shù)應(yīng)為3。如圖10 所示,隨著訓(xùn)練的進(jìn)行,經(jīng)過4000個epochs的訓(xùn)練,平均避障次數(shù)可以逐漸穩(wěn)定在1以上并接近2。
圖10 50個epoch 的平均避障時間
SAC 是一種成熟的算法,不依賴超參數(shù),但獎勵函數(shù)的好壞對其學(xué)習(xí)效率影響很大。
源自:Xue, Z.; Gonsalves, T. Vision Based Drone Obstacle Avoidance by Deep Reinforcement Learning. AI 2021, 2, 366–380. https://doi.org/10.3390/ai2030023
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至2161241530@qq.com 舉報,一經(jīng)查實,本站將立刻刪除。如若轉(zhuǎn)載,請注明出處:http://www.dubailvyou.com/wurenjibaike/52930/