亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SAC算法的礦山應急救援智能車快速避障控制

        2021-02-22 02:39:28單麒源張智豪張耀心余宗祥
        黑龍江科技大學學報 2021年1期
        關鍵詞:動作智能優(yōu)化

        單麒源,張智豪,張耀心,余宗祥

        (黑龍江科技大學 礦業(yè)工程學院, 哈爾濱 150022)

        0 引 言

        煤礦瓦斯災害的突發(fā)性與繼發(fā)性是事故救援考慮的重要因素。救援隊伍可迅速到達事故礦井,但若冒然救災,易受到二次爆炸等安全威脅?!?.29”事故吉林通化八寶煤礦連續(xù)發(fā)生了6次瓦斯爆炸,造成了21名救護隊員犧牲,帶來慘痛的救援教訓。救護隊員快速救災與救護隊員生命安全已形成明顯矛盾,為提高救援效率和保障人員安全,開展礦山應急救援智能車的相關研究是十分必要的。災后第一時間將救援智能車投入受災礦井,采集災后環(huán)境信息、排查潛在安全隱患。救援智能車需躲避災后井巷內的各種障礙物,如變形的礦車、垮落的巖石等,才能到達事故發(fā)生地點開展工作,這就要求救援智能車具有一定的反應式避障能力。

        反應式避障是指機器人通過如激光雷達、深度攝像頭或者其他傳感器觀測到障礙物的距離,通過對距離的計算,緊急避開障礙物的算法[1]。傳統(tǒng)避障算法,如模糊控制法等,面對動態(tài)且未知環(huán)境時依靠人類專家指定的方案做決策,存在靈活度差以及普適性不足的缺點[2],提出深度強化學習(Deep reinforcement learning)的避障算法。筆者將深度強化學習算法應用在基于阿克曼結構的礦山應急救援智能車(智能體)上,使其在災變礦井多障礙環(huán)境下具有反應式避障能力。

        1 Soft Actor-Critic算法

        1.1 馬爾科夫鏈

        馬爾科夫鏈是一個對現(xiàn)實世界抽象的模型[3],用來描述智能體和環(huán)境互動的過程,馬爾科夫鏈被廣泛使用強化學習領域。馬爾科夫鏈流程如圖1所示。

        圖1 馬爾科夫鏈Fig. 1 Markov chain

        在環(huán)境中,智能體觀察到狀態(tài)s1,后經過計算,選擇動作a1;動作a1使智能體進入另外一個狀態(tài)s1,并返回獎勵r給智能體,依此類推。如果想使智能體避免某個動作,那么當這個動作發(fā)生時就進行懲罰,即負獎勵;如果鼓勵智能體堅持某個動作,那么就進行獎勵;智能體根據獎勵r調整自己的策略,故智能體會不斷朝獎勵最大的方向優(yōu)化,這是SAC算法與環(huán)境交互的核心思想。

        1.2 SAC與最大熵框架

        SAC(Soft actor-critic)深度強化學習算法是第一個將離線策略(Off-policy)、演員評論家算法(Actor-critic methods)和最大熵框架(Maximum entropy)結合的深度強化學習算法[4]。SAC具有穩(wěn)定性高和樣本利用率高的優(yōu)點,相比其他智能算法(DDPG、SVG等)在處理復雜任務上有三個優(yōu)勢:一是可應付更復雜的任務。通過最大熵,智能體可以得到多種解決問題的方法;二是擁有更強的探索能力,智能體更容易在多模態(tài)回報函數下找到更好的策略;三是具有更強的魯棒性,智能體通過不同的方式來探索各種解決問題的方法,在面對干擾的時更易做出調整。

        熵首次在信息論中提出,指獲取信息的不確定程度,熵越大則說明信息越不確定[5]。SAC算法將最大熵框架與強化學習算法結合,要求智能體即追求最大獎勵r,也追求每一次動作熵(Entropy)最大。在迭代期間,算法在獎勵和動作熵之間的不斷取舍,動作熵的增加代表智能體趨于探索更多情況,避免陷入局部最優(yōu)值;獎勵的增加代表智能體趨于最優(yōu)動作,故算法在訓練后期的收斂速度會大幅提高。

        SAC算法由一個Actor(演員)網絡,兩個Critic(評論家)目標網絡和兩個Critic(評論家)網絡組成。評論家網絡對當前狀態(tài)下的動作價值進行評估,而演員網絡根據評論家的評估對自身動作進行修正。SAC算法在推理時僅需Actor網絡輸出,將過程中(st,at,r,st+1)保存在記憶池D中以供后續(xù)網絡更新即可,更新迭代過程較為復雜,由于部分網絡在迭代過程中重復使用,故SAC網絡結構簡述圖如圖2所示,圖中部分參數定義在后文仿真環(huán)境中配有詳細說明。

        在更新迭代過程中,先將首次更新的網絡為Critic網絡,即圖2中流程③,Critic網絡輸出的Q值代表其對原環(huán)境狀態(tài)st下動作at的價值評估;而更新的依據為Critic目標網絡的Q值輸出、Actor網絡的動作熵輸出和獎勵r共同計算得出的Qs,即圖2中流程①和流程②,Qs可類比監(jiān)督學習中的標簽,目的是為了讓Critic網絡的Q值同時考慮動作熵和獎勵r。而對Actor網絡的更新相對簡單,此處使用KL散度來評估Actor網絡動作與Critic網絡價值差距,以進行更新,即圖2中流程④和流程⑤。

        圖2 SAC網絡結構Fig. 2 SAC network structure

        1.3 最大熵框架下各個網絡的更新策略

        1.3.1 動作熵的計算

        由圖2中流程①可知,算法中的動作熵是基于當前的策略與其輸出的動作計算出,在初始動作中同時計算動作熵,計算公式為:

        H(π(·|st+1))=-logπ(at+1|st+1),

        (1)

        式中:at+1——以新環(huán)境狀態(tài)st+1為輸入的Actor網絡動作輸出,如圖2流程①所示;

        π(at+1|st+1) ——在環(huán)境狀態(tài)st+1下輸出動作at+1的概率。

        由圖2中流程②可知,算法中將動作熵作為價值函數的一部分,這樣就可以和由Critic目標網絡估計的動作價值,通過建立貝爾曼方程轉換成狀態(tài)價值V(st+1)。

        推導過程為

        (2)

        式中:V(st+1) ——st+1的狀態(tài)價值;

        r——獎勵值,來源于記憶池D;

        Qπ(st+1,at+1) ——在狀態(tài)st+1下動作at+1的動作價值;

        α——熵的權重;

        φt j——兩個Critic目標網絡的參數;

        1.3.2 Critic網絡的損失值計算

        由圖2中流程③可知,SAC擁有兩個Critic網絡,其結構與Critic目標網絡一致;Critic目標網絡可類比監(jiān)督學習中的標簽,兩者相互配合可以保證Critic網絡的穩(wěn)定更新[6]。

        兩個網絡分別輸出對動作價值at的估計,計算與Qs差距,即Q價值損失函數,并更新,損失函數為:

        L(φi,D)=E(st,r,st+1,at)~D[(Qφi(st,at)-

        Qs(st+1))2],i∈{1,2},

        (3)

        式中:E(st,r,st+1,at)~D——變量(st,r,st+1,at)提取自記憶池D;

        φi—— 第i個Critic網絡的權重,i∈{1,2};

        Qφi(st,at)—— 第i個由φi為權重的Critic網絡輸出,對原環(huán)境狀態(tài)st下動作at的Q值估計。

        1.3.3 Actor網絡的更新

        在對Critic網絡不斷迭代更新后,其對Qs(r,st+1)的價值估計會收斂接近真實值。由圖2中流程⑤可知,此處使用KL散度來評估Actor網絡動作與Critic網絡價值差距。推導后的結果為:

        (4)

        式中:Es~D——變量st提取自記憶池D;

        θ——Actor網絡的權重;

        φj——第j個Critic網絡的權重,j∈{1,2};

        1.3.4 Critic目標網絡的更新

        通過參數ρ按照比例更新各個目標Critic目標網絡,此過程為滑動平均值更新[7]。更新公式為

        φt i←ρφt i+(1-ρ)φi,i∈{1,2}。

        (5)

        算法流程如下:

        初始化SAC參數

        初始化Critic目標網絡以及Critic網絡參數,初始化Actor網絡參數

        初始化記憶池D

        for 訓練場數=1,Xdo

        for 訓練步數=1,Ydo

        根據當前狀態(tài),Actor網絡的輸出選擇動作at~πφ(at|st)

        從環(huán)境中獲得獎勵r和下一狀態(tài)st+1

        將(st,at,r,st+1)保存在記憶池D中

        end for

        if 可以進行更新

        for 迭代次數=1,Zdo

        從記憶池D獲取定量數目的經歷保存到

        B={(st,at,r,st+1)}

        計算Critic目標網絡對Q值的估計:

        αlogπ(at+1|st+1))

        更新Critic網絡參數:

        Qs(r,st+1))2,i∈{1,2}

        更新Critic目標網絡參數:

        φt i←ρφt i+(1-ρ)φi,i∈{1,2}

        end for

        end if

        end for

        2 仿真環(huán)境與訓練參數

        文中采用機器人操作系統(tǒng),在F1tenth-simulator環(huán)境基礎上,選取災后煤礦采區(qū)中部車場和下部車場作為虛擬仿真環(huán)境,分別用來訓練與驗證,通過RVIZ三維仿真軟件實現(xiàn)可視化。

        2.1 車身環(huán)境狀態(tài)與動作定義

        礦山應急救援智能車車身結構為阿克曼結構,通過舵機轉向和速度操控行駛,且車首裝有激光雷達測距裝置。

        良好的輸入及輸出數據處理,可減少神經網絡訓練時間,加速神經網絡收斂。將激光雷達測距數據定義為智能體環(huán)境狀態(tài),將舵機的轉向角度和速度定義為動作。對1 080個激光雷達測距數據進行分組,每組30個取平均值,可在一定程度上減少雷達異常的數據的影響,此時環(huán)境狀態(tài)輸入維度為(36,1)。

        Actor網絡輸出動作的兩個數據,分別對應舵機轉向和速度,由tanh函數處理后,分布在[-1,1]之間。舵機轉向和速度的數據需要進行限制,因此對其再處理,使其分別保持在[-0.418 9,0.418 9]和[0,3]之間,速度過快會導致在轉向時漂移。車身參數設置如表1所示。

        表1 車身參數

        2.2 獎勵策略與訓練參數

        獎勵策略是用于判斷當前狀態(tài)下做出動作的好壞[8]。獎勵函數的獎勵值與該動作下智能體速度呈正相關,當智能體和障礙物發(fā)生碰撞就給予懲罰值,見式(6)?;谏疃葟娀瘜W習算法的趨利性,可預知智能體的速度會越來越快,直到最大速度。

        (6)

        訓練參數如表2所示。其中,UPDATE_ITR表示在每次觸發(fā)更新的條件時,對網絡進行梯度更新的次數。記憶池用于存儲智能體所獲得的經歷,存儲格式為(st,at,r,st+1,done),其中done表示智能體是否躲避障礙物。在初次使用梯度更新網絡時,智能體需要提取多個經歷,PRE_TRAIN_EPISODE設置讓智能體在一定場次自由探索以獲取經歷。

        表2 訓練參數

        2.3 仿真環(huán)境

        煤礦井下巷道環(huán)境復雜,通常是結構化地形環(huán)境和非結構化地形環(huán)境的綜合,災前巷道環(huán)境如圖3所示。災后巷道內常分布著軌道、人行道、機電設備、冒落巖石、掀翻礦車等障礙物。

        圖3 模擬礦井Fig. 3 Simulated mine

        文中訓練環(huán)境模擬礦井中部車場,礦山應急救援智能車在中部車場中,隨機選擇起始位置,如圖4所示。訓練環(huán)境雷達數據等值線圖,如圖5所示。

        圖4 訓練環(huán)境-中部車場Fig. 4 Training environment-middle yard

        圖5 訓練地圖雷達數據等值線Fig. 5 Isoline map of lidar data of training course

        3 實驗與SAC算法優(yōu)化

        實驗環(huán)境:操作系統(tǒng)為ubuntu18.04,ROS版本為Melodic,CPU型號為i7-8750H,GPU型號為RTX2080,編程語言涉及C++和Python,深度學習框架為Tensorflow。

        3.1 SAC算法訓練智能體

        訓練過程中智能體的獎勵值圖6所示,可以發(fā)現(xiàn)在170場左右發(fā)生了劇烈波動,隨后不再穩(wěn)定,故對其進行分析。

        圖6 優(yōu)化前每場訓練的獎勵Fig. 6 Rewards for each training before optimized

        通過對記憶池分析,發(fā)現(xiàn)大量被錯誤標記的經歷被保存在記憶池中,在智能體極度逼近障礙物時,智能體雖然已經做出近似最優(yōu)的動作,如轉向角取最大值,但由于現(xiàn)有速度和慣性及之前一系列的錯誤動作,導致智能體依然會撞上障礙物,此時智能體會將該環(huán)境狀態(tài)和該狀態(tài)下所做出的動作當作負面經歷,而實際上該經歷并非負面經歷。后期此類被錯誤標注的經歷越來越多,神經網絡的多次迭代已無法提升智能體避障性能,導致了后期獎勵值驟降。

        3.2 輸入的優(yōu)化與訓練

        針對上述問題進行分析,并提出優(yōu)化方案。因為錯誤動作來自經過神經網絡處理的環(huán)境狀態(tài),因此,將Actor網絡和記憶池的環(huán)境狀態(tài)維度改為(36,n1),n1表示動作發(fā)生前的環(huán)境狀態(tài)個數,其默認值為3。由于其他四個Critic類網絡同時需要動作和環(huán)境狀態(tài)作為輸入,環(huán)境狀態(tài)數據占比過高可能使得網絡收斂速度降低,故進行如圖7所示的優(yōu)化。

        圖7 對輸入優(yōu)化后的Critic網絡Fig. 7 Critic network after optimized input

        訓練過程中Critic網絡的Q值損失函數的損失值圖8所示,損失值的不斷減少表明智能體在穩(wěn)定提升。

        由圖8可見,訓練前期因為探索時期,且Actor網絡未完全迭代出優(yōu)秀的神經網絡,經常發(fā)生碰撞,所以每場訓練的損失值較高。但隨著不斷的訓練,智能體在經歷50場訓練后,每場訓練的損失值迅速下降;在200場接近極限值,初步具備躲避障礙物能力。

        圖8 訓練過程中Q值函數的損失值Fig. 8 Loss function of Q vaule during training

        訓練過程中智能體的獎勵值圖9所示。因為獎勵函數的設計,Actor網絡對速度不斷優(yōu)化,試圖逼近最大獎勵值,在150場達到獎勵值提升速度有些減緩。優(yōu)化后仍然在150~300場之間出現(xiàn)了少許獎勵值波動,其波動原因:

        (1)獎勵函數與速度成正比,智能體不斷追求高速度,在高速訓練過程中,GPU計算動作和更新網絡時間約為0.12 s,此時GPU計算速度已經無法和智能體的速度匹配。

        (2)速度越來越快,需要對轉向有著精準的控制,而SAC算法在訓練過程中是需要添加噪聲以提升魯棒性,這也在某種程度上導致了波動。

        圖9 優(yōu)化后每場訓練的獎勵Fig. 9 Rewards for each training after optimized

        3.3 算法優(yōu)化前后對比

        優(yōu)化前后每場訓練的獎勵值對比如圖10所示。在25~100場間,由于訓練的數據量相比優(yōu)化后增加,神經網絡擬合速度較慢,故優(yōu)化后的獎勵值上升趨勢較緩和。在對比之下可以發(fā)現(xiàn),擴大環(huán)境狀態(tài)維度的方法,雖然在一定程度上大幅減輕了波動,但并沒有從根本上解決波動問題,不過在250~300場之間,優(yōu)化后智能體所獲的獎勵值不斷趨于穩(wěn)定,改善了先前智能體越訓練獎勵值越低的問題,避障性能有了大幅度提升。

        圖10 優(yōu)化前后每場訓練的獎勵值Fig. 10 Each training optimized for reward before and after

        3.4 智能體驗證

        根據災后煤礦采區(qū)下部車場現(xiàn)場條件建立仿真環(huán)境,如圖11所示。

        圖11 測試環(huán)境-下部車場Fig. 11 Test environment lower yard

        將優(yōu)化后SAC算法訓練出的智能體放入該仿真環(huán)境中,對其避障性能進行驗證測試,如圖12所示。

        在圖12驗證過程中,測得GPU計算動作僅耗時0.08 s,且獎勵值一直大于0,代表智能體在行駛過程中沒有發(fā)生碰撞,大部分時間獎勵值處于0.18附近,代表智能體全程高速行駛,表現(xiàn)十分優(yōu)異。

        圖12 驗證過程中每步的獎勵Fig. 12 Rewards for each step during test

        4 結束語

        提出了一種基于SAC的反應式避障算法,算法中考慮了現(xiàn)實環(huán)境的慣性力、加速度、減速度等因素,在此基礎上合理地對雷達數據和SAC算法做出優(yōu)化,并分析其獎勵值波動原因,最后在RIVZ三維可視化仿真環(huán)境中,驗證了優(yōu)化后智能體的避障性能。

        綜上,優(yōu)化后SAC算法訓練出的智能體避障表現(xiàn)優(yōu)異,但應用到現(xiàn)實環(huán)境中仍需考慮許多變量,如神經網絡預測速度和雷達數據獲取的延遲,其次神經網絡需要救援智能車的更多狀態(tài),如當前速度、舵機角度、方位角等。

        猜你喜歡
        動作智能優(yōu)化
        超限高層建筑結構設計與優(yōu)化思考
        房地產導刊(2022年5期)2022-06-01 06:20:14
        民用建筑防煙排煙設計優(yōu)化探討
        關于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        智能前沿
        文苑(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
        動作描寫要具體
        畫動作
        亚洲中字幕日产av片在线| 人妻少妇精品视频一区二区三区| 亚洲欲色欲香天天综合网| 日韩专区欧美专区| 性色av成人精品久久| 日韩精品一区二区三区人妻在线| 色婷婷五月综合激情中文字幕| 牲欲强的熟妇农村老妇女| 亚洲熟妇色xxxxx欧美老妇| 国产麻豆放荡av激情演绎| 日韩av毛片在线观看| 人妻aⅴ中文字幕| 亚洲人成综合网站在线| 日韩在线精品视频观看| 扒开美女内裤舔出白水| 亚洲精品天堂成人片av在线播放| 国产女人成人精品视频| 精品少妇后入一区二区三区| 国产亚洲av成人噜噜噜他| 亚洲国产精品毛片av不卡在线| 真正免费一级毛片在线播放| 99久久免费精品色老| 中文字幕一区二区人妻秘书| 亚洲综合国产一区二区三区| 国产91吞精一区二区三区| 亚洲av大片在线免费观看| 亚洲综合在线观看一区二区三区 | av二区三区在线观看| 午夜被窝精品国产亚洲av香蕉| 久久99久久99精品中文字幕 | 亚洲av无一区二区三区久久蜜桃| 巨胸喷奶水www视频网站| 久久精品这里只有精品| 热re99久久精品国产66热6| 国产午夜精品视频在线观看| 国产午夜福利精品一区二区三区| 无码国产亚洲日韩国精品视频一区二区三区| 精品国产成人一区二区不卡在线| 开心五月婷婷激情综合网| 艳妇臀荡乳欲伦69调教视频| 97精品伊人久久大香线蕉app|