周怡,袁傳平,謝海成,羊箭鋒
蘇州大學 電子信息學院, 江蘇 蘇州 215006
本文主要研究周莊水域的船舶航行安全。由于該水域急水港航道由4級升為3級,通行的各類貨船無論是數(shù)量還是噸位都有明顯的增加,而游船進出港穿越航道并與貨船共線航行會增加游船的碰撞風險,人為駕駛因素也會引發(fā)碰撞事故,進而造成嚴重的經(jīng)濟損失和人員傷亡[1-2]。因此,開展船舶避碰研究,對推動水運行業(yè)安全發(fā)展具有積極意義。
現(xiàn)有的船舶避碰算法,例如遺傳算法[3-4]、粒子群算法以及蟻群算法[5-6]等,都存在實時性差的問題,因為無法預先從樣本數(shù)據(jù)中建立模型,所以在應用過程中需要重復進行路徑優(yōu)化搜索過程,造成大量無用的計算,且其依賴的評價函數(shù)較簡單,在不同水域應用環(huán)境下的魯棒性較差。所以,船舶避碰算法需能夠從大量經(jīng)驗數(shù)據(jù)中學習避碰策略,同時保證在未知環(huán)境下依然可以保證避碰策略的準確性[7-10]。DDPG算法具有多維特征提取能力,能從大量樣本中學習避碰模型及評價函數(shù),而且具備良好的泛化應用能力[11-14],其采用的DQN(deep Q network)算法可根據(jù)不同應用環(huán)境選擇合適的避碰策略[15-16],較現(xiàn)有的避碰算法有明顯的優(yōu)勢。但DDPG訓練收斂速度慢[17],訓練過程所采用的經(jīng)驗池隨機采樣方式一定程度上降低了有效樣本數(shù)據(jù)的利用率。針對此問題,陳希亮等[18]優(yōu)化了優(yōu)先緩存經(jīng)驗回放機制,提高了有效數(shù)據(jù)在學習時被選中的概率,提升了算法的學習效率。但上述對經(jīng)驗池回放機制的改進大都集中在提高樣本的利用率方面,而忽略了智能體盲目探索時造成有效數(shù)據(jù)不足的問題。
鑒于以上存在的不足之處,本文將提出基于失敗區(qū)域重點學習的DDPG算法改進策略,在訓練過程中的失敗區(qū)域擴大探索的隨機性,有針對性地收集該區(qū)域的學習樣本,提高避碰學習效率。同時,提出根據(jù)游船特征改進的船舶領域模型參數(shù)等方法,保障領域模型的正確性,進一步提高路徑預測的準確性。
船舶領域模型被廣泛應用于船舶的避碰分析中。上世紀60~70年代,F(xiàn)ujii等[19-20]提出了船舶領域的概念,將其定義為“絕大部分后續(xù)船舶駕駛?cè)藛T避免侵入前一艘船舶周圍的領域”。
我國內(nèi)河流域水道狹窄彎曲,藤井(Fujii)提出的狹窄水域船舶領域模型對內(nèi)河貨船有著較好的適用性。本文的研究內(nèi)容主要應用于周莊客貨混合航道,航道長約1.5 km,寬約130 m。周莊水域中貨船平均長寬為43和7 m,游船平均長寬為24和6 m(圖1)。由于游船與貨船在長寬比、尺度以及駕駛規(guī)范方面存在的差異,藤井狹窄船舶領域模型難以準確適用于游船。
圖1 貨船、游船尺度對比Fig.1 Comparison of cargo ship and tourist ship
為進一步提高游船避碰路徑規(guī)劃的精度,本文在藤井狹窄船舶領域模型的基礎上采用數(shù)據(jù)統(tǒng)計方式建立了游船的船舶領域改進模型。傳統(tǒng)的數(shù)據(jù)統(tǒng)計主要依賴于船舶自動識別(AIS)系統(tǒng),AIS系統(tǒng)雖能提供大量的船舶數(shù)據(jù),但也存在覆蓋率不足的問題,例如在游船水域存在大量未安裝AIS系統(tǒng)的漁船。為提高船舶領域的精度,本文采用AIS與激光測距相結(jié)合的方式改進游船的船舶領域模型。以游船為參考坐標系,圖2(a)所示為由AIS獲取的周圍船舶航行軌跡及確定的相對分布關系,圖2(b)所示為運用激光測距方法對周圍船舶進行方位角及距離測量及確定的相對分布關系。通過以上2種方法,收集得到大量游船的船舶領域周圍船舶的真實分布數(shù)據(jù)。圖3所示為游船船舶領域的建立過程圖。其中,左側(cè)圖為游船的船舶分布數(shù)據(jù)疊加圖,圖中黑點為通過AIS獲取的船舶分布信息,紅色三角形為通過觀察法獲取的船舶分布信息;右側(cè)圖顯示了通過最大密度法確定的游船船舶領域邊界,圖中藍色點為游船周圍船舶的分布邊界,由其確定的橢圓區(qū)域為游船的船舶領域范圍,橢圓船舶領域的長半軸為60.3 m,短半軸為25.2 m。
圖2 不同方法計算的船舶領域Fig.2 The ship domain calculated by different methods
圖3 游船船舶領域建立過程Fig.3 Establishment process of a tourist ship domain
藤井狹窄水域船舶領域的長軸為船長的6倍,短軸為船長的1.6倍,如圖4所示,基于藤井模型的游船領域長軸為144 m,短軸為38.4 m,相較于傳統(tǒng)藤井船舶領域模型,改進后的游船領域模型長軸更短,長寬比更小,體現(xiàn)出游船慣性小、駕駛更加靈活的特性,所以基于最大密度法改進的游船領域模型更符合游船航行的特征。
圖4 修正后的船舶領域?qū)Ρ菷ig.4 The comparison of Fujii model and revised model
DDPG是基于Actor-Critic框架的深度確定性策略梯度(deep deterministic policy gradient)算法,其可有效解決復雜物理系統(tǒng)的控制和決策問題。如圖5所示,強化學習智能體與系統(tǒng)環(huán)境交互的過程中,智能體根據(jù)當前狀態(tài)st和環(huán)境獎勵值rt選擇下一步動作at, 達到新的狀態(tài)st+1以及獲取環(huán)境獎勵值rt+1;而智能體根據(jù)當前狀態(tài),以最大化獎勵期望值為目標,在與實際環(huán)境交互過程中不斷學習并改進動作策略,其中DDPG使用深度神經(jīng)網(wǎng)絡擬合策略和價值函數(shù),運用經(jīng)驗回放和目標網(wǎng)絡技術提高算法的收斂性與穩(wěn)定性。
圖5 強化學習決策過程中智能體與環(huán)境交互Fig.5 The interaction between the agent and the environment in the reinforcement learning decision process
本文的防碰撞系統(tǒng)通過AIS系統(tǒng)實時讀取水域內(nèi)所有船舶的真實經(jīng)緯度信息,并同步到電子海圖中。游船智能體依據(jù)當前周圍船舶的分布及航道走向、長寬等信息來規(guī)劃航線。當游船智能體規(guī)劃的未來航線不可避免地與其他船舶發(fā)生碰撞時,防碰撞系統(tǒng)將給出告警提示,指揮中心調(diào)度員將對目標船舶進行緊急調(diào)度,通過預測航線實現(xiàn)船舶碰撞提前預警、緊急調(diào)度的功能,從而進一步保障游船的航行安全。本文模擬的船舶智能體主要通過DDPG算法對周圍水域環(huán)境數(shù)據(jù)進行處理,輸出船舶未來最佳行駛路徑。如圖6所示,DDPG算法的設計主要包括在船舶避碰路徑規(guī)劃過程中的狀態(tài)設計、船舶動作設計和所獲獎勵值的設計。
圖6 DDPG算法設計框圖Fig.6 Block diagram of DDPG algorithm design
1)DDPG算法的狀態(tài)設計。
強化學習中智能體在決策時需要參考當前智能體自身狀態(tài)及環(huán)境因素。船舶要從當前位置駛向目標點,避碰算法模型需考慮船舶當前的位置、速度、航向、目標點位置以及與周圍障礙物之間的距離和方位等信息。
在船舶避碰仿真環(huán)境中,船舶的位置、速度及航向通過AIS系統(tǒng)獲得;目標點位置的選取依賴于航行水域的環(huán)境信息;對于障礙物和其他船的船舶方位、距離等信息,采用模擬雷達的方式掃描周圍環(huán)境獲得。圖7所示為模擬雷達的掃描障礙物圖。圖中,白色區(qū)域為水域,灰色區(qū)域為陸地,藍色三角形為船舶,藍色三角形附近橢圓區(qū)域為船舶領域范圍。
圖7 船舶模擬雷達掃描障礙物Fig.7 Scanning obstacles of ship simulation radar
2)DDPG算法的動作設計。
在航行過程中遇到其他船舶或障礙物時,駕駛員通常采取改變航向的方式以避碰。船舶需要在舵的控制下才能改變航向。本文在仿真環(huán)境中設定船舶單位時間航向變化量在?θ到 +θ之間。通過對船舶進行直角轉(zhuǎn)彎過程的實測數(shù)據(jù)分析,航向角變化約為1°/s。因此,本文將 θ設置為1°,使船舶智能體的轉(zhuǎn)向輸出更貼近實際情況。
3)DDPG算法的獎勵值設計。
船舶避碰路徑規(guī)劃過程可以分為2個部分:一是船舶周圍無危險障礙物時駛向目標點;二是船舶存在碰撞危險時進行避碰路徑規(guī)劃。本文使用的DDPG算法的獎勵函數(shù)設計分別圍繞以上內(nèi)容展開。
圖8所示為船舶在無碰撞危險時駛向目標點的學習過程。本文通過比較船舶與航標點形成的角度θ1和 船舶航向θ2來設置獎勵函數(shù)。
圖8 船舶與航標點位置圖Fig.8 Map of ships and navigation points
船舶航向θ2可以通過AIS系統(tǒng)獲得,船舶與航標點形成的角度θ1可以通過船舶和目標點的相對位置獲得。本文設定θ2和θ1的偏差為
船舶駛向航標點任務的獎勵函數(shù)設置為r1。經(jīng)過對大量船舶偏航角的記錄統(tǒng)計,發(fā)現(xiàn)在該水域正常船舶的偏航角在20°以內(nèi)。據(jù)此,本文設定的偏航角小于20°將給出正獎勵值,偏航角大于20°將給出負獎勵值。設置船舶r1的值如式(2)所示:
圖9所示為船舶完成避碰任務的學習過程。本文通過對模擬雷達掃描獲得的測量距離與本船船舶領域的范圍進行比較來設計獎勵函數(shù),且適應不同的船舶領域模型。圖中,線0~17為虛擬雷達探測線。
圖9 模擬雷達與船舶領域的范圍圖Fig.9 Range map of simulated radar and ship domain
獎勵函數(shù)r2根據(jù)船舶領域范圍設置,表達式如式(3)所示:
式中:di為圖9中模擬雷達線第i條線掃描到障礙物距本船的距離;Di為第i條模擬雷達掃描線與船舶領域的交點距船中心的距離;R1為靜態(tài)障礙物或他船船舶領域侵入本船船舶領域獲得的獎勵值。本文設置R1=?5+2min(di/Di),R2為船舶發(fā)生碰撞時的獎勵值,R2=?50。當發(fā)生碰撞時,本回合結(jié)束;當無障礙物進入本船船舶領域時,獎勵值為0。
(1)當靜態(tài)障礙物或其他船舶距離本船舶超過2倍船舶領域距離時,代表航行安全,設置獎勵值為1。
(3)當靜態(tài)障礙物或他船舶距離等于0時,代表該與本船舶邊緣發(fā)生接觸,即發(fā)生碰撞,設置R2=?50。
由上述的獎勵函數(shù)設置,再結(jié)合對船舶避碰狀態(tài)的設計,可構建用于DDPG訓練的狀態(tài)s。狀態(tài)s為{Type,v, θ1?θ2,L,d0,d1,···,d17}。其中:Type為訓練船舶的類型,當Type為0時,表示訓練船舶為貨船;當Type為1時,表示訓練船舶為游船:v為本船船速; θ1?θ2為航向偏差:L為本船船長:d0,d1,···,d17為模擬雷達掃描到障礙物距本船的距離。
受人類學習過程的啟發(fā),針對智能體盲目探索時造成有效數(shù)據(jù)不足的問題,有學者提出了失敗區(qū)域重點學習方法,該方法有以下幾個要點:
1)失敗區(qū)域的反復試錯學習。
前期DDPG探索中,通過在行為的確定性策略上添加高斯噪聲來使算法實現(xiàn)探索的隨機性,如式(4)所示:
式中:at為 轉(zhuǎn)向輸出;EN為探索隨機因子;a′t為具備隨機探索性的轉(zhuǎn)向輸出。為了更好地得到高質(zhì)量的訓練數(shù)據(jù),在DDPG訓練過程中添加探索噪聲為小幅度噪聲,本文所采用的探索噪聲如式(5)所示:
國有企業(yè)社會保險經(jīng)濟業(yè)務集約化管控系統(tǒng)是根據(jù)當下我國國有企業(yè)的實際需要,通過對單位信息,人員情況以及各個社會保險業(yè)務的產(chǎn)生背景的概述,不僅有數(shù)據(jù)的采集,還有控制業(yè)務流程以及分析綜述合為一體的管理信息系統(tǒng)。
式中,N為隨機探索噪聲的概率密度函數(shù),其中μ為隨機探索噪聲高斯分布的期望,δ為方差。
然而,實驗顯示DDPG算法在失敗區(qū)域通常反復觸發(fā)訓練結(jié)束條件,使得無法獲取有效的正樣本數(shù)據(jù)。而且,因網(wǎng)絡參數(shù)更新的局限性和隨機探索幅度小,導致無法跳出失敗區(qū)域,導致訓練停滯。
為提高算法的學習效率,本文在失敗區(qū)域提高了探索的隨機性。在探索過程中,若某個區(qū)域重復觸發(fā)訓練結(jié)束條件,則增加該區(qū)域探索隨機性的幅度。鑒于本文采取的動作區(qū)間為(?1°,1°),為加大隨機探索幅度,將新的探索噪聲設計為混合高斯模型,如式(6)所示:
如圖10所示,與原噪聲相比,混合高斯隨機探索幅度區(qū)間從[?0.5, 0.5]區(qū)間向兩側(cè)偏移到[?1.5, ?0.5]和[0.5, 1.5],提高隨機探索幅度,以加快跳出失敗區(qū)域,從而獲得充足的正樣本數(shù)據(jù)。圖中,x表示隨機探索幅度,p(x)表示隨機探索幅度x的概率密度,
圖10 不同區(qū)域探索噪聲Fig.10 Explore noise for failure areas
在智能體跳出失敗區(qū)域后,再繼續(xù)對失敗區(qū)域進行多次重復探索學習,以積累大量關鍵節(jié)點的成功和失敗數(shù)據(jù),以及增加經(jīng)驗池中該區(qū)域數(shù)據(jù)的多樣性,保持在失敗區(qū)域正、負樣本數(shù)量的平衡,進而提高該區(qū)域的學習速度。圖11為失敗區(qū)域反復探索學習框圖。
圖11 失敗區(qū)域反復探索學習框圖Fig.11 Block diagram of repeated exploration and learning of failure areas
當智能體觸碰即訓練結(jié)束條件時,智能體將回退到前k步位置,在本文中根據(jù)船舶智能體行駛步進長度等參數(shù)設置k值為300,等效于回退5倍個船舶領域長度。智能體從回退的位置開始,進行失敗區(qū)域反復試錯學習過程,且采用幅度更大的隨機探索策略以積累豐富的試錯經(jīng)驗,并對此過程產(chǎn)生的數(shù)據(jù)建立單獨的經(jīng)驗池,實現(xiàn)具有針對性的網(wǎng)絡參數(shù)調(diào)整,加快失敗區(qū)域策略的學習速度。
2)經(jīng)驗池分類。
為進一步增強算法對學習樣本中有用數(shù)據(jù)的利用效率,本文采用了經(jīng)驗池分類的方法將主經(jīng)驗池A的樣本數(shù)據(jù)分為2類:常規(guī)樣本經(jīng)驗池和重點區(qū)域樣本經(jīng)驗池。其中,常規(guī)樣本經(jīng)驗池為正常探索時獲得的樣本數(shù)據(jù),重點區(qū)域樣本經(jīng)驗池為單獨經(jīng)驗池B復制過來的反復試錯的樣本數(shù)據(jù)。圖12所示為經(jīng)驗池分類采樣圖。
圖12 經(jīng)驗池分類采樣圖Fig.12 Sample map of experience pool classification
船舶在航行中會存在與其他船舶航線會遇的情況,這會增加碰撞風險。本文通過DDPG算法建立船舶會遇避碰路徑規(guī)劃模型,實現(xiàn)了船舶在會遇時的避碰路徑規(guī)劃,從而可以保障船舶航行安全。
船舶的會遇態(tài)勢主要分為3種情況:追越、會遇和交叉相遇。船舶會遇態(tài)勢圖如圖13所示。
圖13 船舶會遇態(tài)勢圖Fig.13 Illustration of ship encountering scenerio
本文的主要應用環(huán)境多為狹窄水域,在狹窄水域中會遇和追越的會遇情景居多,故本節(jié)主要展示在狹窄水域中船舶會遇和追越的仿真結(jié)果。
圖14為在水域中船舶會遇、追越、交叉相遇情況下的仿真圖,圖中的仿真環(huán)境建立在16級瓦片地圖上。圖中,藍船為仿真船舶,黑船為模擬的會遇船舶,虛線表示航線軌跡,船舶虛影表示其他時刻船舶位置。本次實驗為藍船在會遇、追越、交叉相遇情景下的路徑規(guī)劃,圖中數(shù)字代表不同時間點,其中1為開始時間點。
圖14 船舶避碰路徑規(guī)劃仿真結(jié)果Fig.14 Simulation results of ship collision avoidance path planning
由圖14(a)可知,在狹窄水域仿真環(huán)境中,船舶智能體可在追越他船的過程中實現(xiàn)避碰路徑規(guī)劃。圖中,船舶智能體在時間點1和2之間開始轉(zhuǎn)向避碰;在時間點3~5時與他船在不同航道中并向航行;在時間點6開始駛回原航道,完成追越情況下的路徑規(guī)劃。在時間點2,智能體與他船相距3.24倍船舶領域長半軸距離;在時間點4,智能體與他船舶相距1.35倍船舶領域短半軸距離,未發(fā)生侵入船舶領域的情況,追越避碰路徑規(guī)劃符合船舶航行安全要求。由圖14(b)可知,在會遇情況下,船舶智能體在會遇的其他船舶未改變航向的情況下進行避碰路徑規(guī)劃。圖中,船舶智能體在時間點1~2就開始右轉(zhuǎn)避碰,在2時間點避碰完成后開始駛向航標點,實現(xiàn)對遇情況下的避碰路徑規(guī)劃。在時間點1,智能體與他船相距3.85倍船舶領域長半軸距離;在時間點2,智能體與他船舶相距1.12倍船舶領域短半軸距離,未發(fā)生侵入船舶領域的情況,對遇避碰路徑規(guī)劃符合船舶航行安全要求。由圖14(c)可知,在交叉情況下,當船舶智能體在時間點3~4時,船舶智能體開始右轉(zhuǎn)避碰;在時間點5時,船舶智能體開始轉(zhuǎn)向并駛向目標點,完成在交叉情況下的船舶避碰路徑規(guī)劃。在時間點3,智能體與他船相距2.68倍船舶領域長半軸距離;在時間點4,智能體與他船舶相距1.45倍船舶領域短半軸距離,未發(fā)生侵入船舶領域的情況,交叉避碰路徑規(guī)劃符合船舶航行安全要求。
為驗證改進算法的有效性,本文分別從學習速率和學習效果這兩個方面對原始算法和改進算法進行比較。其中,對學習速率的比較主要依據(jù)計算達到相同正確率的訓練迭代次數(shù);對學習效果的比較主要通過每步平均獎勵值,每步平均獎勵值越大表示學習效果越好。
圖15所示為不同會遇情景下船舶避碰的成功率比較,圖中,成功率表示的是每10 000次樣本學習后在無噪聲條件下測試的成功率。
由圖15(a),原始DDPG算法經(jīng)過14萬步學習后才成功學會在不同會遇情景下的船舶避碰;由圖15(b),改進DDPG算法在12萬步時完全學會避碰策略。改進算法學習速度快于原始算法。
圖16所示為每步平均獎勵值的對比,從圖中可以看出,在算法未完全學會避碰策略時,算法的每步平均獎勵值隨著訓練步數(shù)的增加而增大;當算法已基本學會避碰策略時,算法的每步平均獎勵值趨于穩(wěn)定。對比改進DDPG算法與原始DDPG算法每步平均獎勵值,容易看出,穩(wěn)定后的改進算法的每步平均獎勵值大于原始算法,即改進算法學習效果優(yōu)于原始DDPG算法。
由圖15和圖16可知,改進算法無論是學習速率還是學習效果都優(yōu)于原始算法。表1為原始算法與改進算法的仿真數(shù)據(jù)和真實數(shù)據(jù)對比。
圖15 不同會遇情景下船舶避碰成功率圖Fig.15 The success rate of ship collision avoidance under different encounter scenarios
圖16 算法的每步平均獎勵值對比Fig.16 Comparison of the average reward value of each step of the algorithm
由表1可知,兩種算法都能實現(xiàn)避碰路徑規(guī)劃,但相較于原始算法,改進算法的轉(zhuǎn)向正確率提高了4.8%,航跡點的平均距離偏差降低了15.1%。圖17所示為兩種算法預測路徑的對比。由圖中可知,改進算法規(guī)劃的避碰路徑更接近于真實的避碰路徑,符合一般船舶避碰路徑規(guī)劃場景的要求。
圖17 原始算法與改進DDPG算法預測路徑對比Fig.17 Comparison of prediction path between original and improved DDPG algorithm
表1 原始與改進DDPG算法的仿真數(shù)據(jù)對比Table1 Comparison of simulation data between original and improved DDPG algorithms
本文將深度強化學習的DDPG算法與船舶領域模型相結(jié)合,利用改進的游船船舶領域模型,提出了基于失敗區(qū)域重點學習的DDPG算法改進策略。通過仿真實驗表明,基于失敗區(qū)域重點學習的改進DDPG算法無論是在學習速率,還是在學習效果方面都優(yōu)于原始的DDPG算法。通過對改進的算法預測路徑與真實航跡的比較,結(jié)果顯示,改進算法獲得的航跡點平均距離偏差降低了15.1%,轉(zhuǎn)向正確率提高了4.8%。將改進DDPG算法和游船船舶領域模型運用于周莊水域,實現(xiàn)了對游船的避碰路徑規(guī)劃,驗證了改進算法在真實水域環(huán)境下的可行性。