• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于強化學習的兩輪模型車控制仿真分析

      2020-01-08 02:06:28
      測控技術 2019年12期
      關鍵詞:復雜度狀態(tài)動作

      (東南大學 儀器科學與工程學院,江蘇 南京 210096)

      自20世紀80年代以來,強化學習已經(jīng)廣泛應用于各大領域。例如,在智能駕駛技術領域中,強化學習為車輛駕駛行為學習提供了框架,使得車輛能夠模仿人類學習所使用的反復試錯方法,采取所需要的行動。通過機器人與環(huán)境的交互學習,為其行動作用設置不同的獎勵和懲罰,以獲取最大的累計獎勵為目標,這一啟發(fā)式學習方法廣泛應用于各種場景。例如,Yau[1]等人提出利用強化學習算法使交通信號控制器通過觀察和學習選擇出最優(yōu)的交通控制方案,如確定交通信號燈的信號周期、綠信比,提高系統(tǒng)性能。DeepMind團隊使用深度強化學習算法訓練AlphaGo[2],連勝數(shù)十位圍棋高手,棋力已經(jīng)超過人類職業(yè)圍棋頂尖水平。

      強化學習算法中,Q-Learning、Sarsa算法是強化學習領域中代表性的算法。默凡凡[3]利用Q-Learning算法進行了仿真實驗中的動態(tài)避障。劉衛(wèi)朋[4]等人提出了基于Sarsa算法的未知干擾因素補償方法,提高了機械臂軌跡跟蹤的控制性能。Q-Learning算法在面對選擇時會考慮到之前試錯的Q值,并傾向于選擇具有冒險性的動作。Sarsa算法與Q-Learning算法相比更為保守,傾向于選擇之前試錯中Q值更大的動作。DQN算法是近年來提出的一種基于深度神經(jīng)網(wǎng)絡和Q-Learning的方法,具有更強的學習能力。劉志榮[5]等人提出了一種基于DQN的復雜狀態(tài)環(huán)境下進行良好路徑規(guī)劃的方法。狀態(tài)和動作作為神經(jīng)網(wǎng)絡的輸入,經(jīng)神經(jīng)網(wǎng)絡處理后得到動作的Q值。

      基于強化學習的控制方法可以優(yōu)化機器人的運動控制。然而,強化學習在實際使用中存在著高成本的問題,包括試錯帶來的經(jīng)濟成本以及執(zhí)行學習操作帶來的時間成本。本文通過將Gym、ROS和Gazebo有機結合,搭建了用于不同環(huán)境下的強化學習算法仿真的小車平臺,以提供一種利用仿真環(huán)境模擬實物運動控制的方案;并最終使用其對經(jīng)典的三種強化學習算法在兩輪模型車的行走控制訓練中進行測試驗證,根據(jù)在復雜度遞增的地圖中獎勵曲線圖的表現(xiàn),對算法的收斂性和魯棒性進行分析。

      1 相關工作

      在強化學習和仿真結合方面,Zamora[6]等人提出了基于ROS和Gazebo的OpenAI Gym擴展。OpenAI Gym是強化學習研究的工具包[7],其專注于對強化學習的訓練設置,旨在最大限度地提高每次訓練的總獎勵的期望并盡可能快地獲得結果。Gazebo模擬器是一個3D建模渲染工具[8],ROS是一種機器人操作系統(tǒng)[9],將Gym與Gazebo結合,以幫助軟件開發(fā)人員創(chuàng)建機器人應用程序。

      在強化學習實際應用中,Sutton[10]等人在懸崖行走問題中使用了Q-Learning算法和Sarsa算法。此外,Wang[11]等人在Q-Learning和Sarsa的基礎上提出了一種Backward Q-learning算法。Shen[12]等人提出了基于DRL的多船自動避碰方法。Peters[13]等人則使用策略梯度方法(Policy Gradient Methods)將強化學習方法擴展到高維機器人領域(如機械手,腿式或人形機器人)。Wang[14]等人將強化學習與遺傳算法結合起來,提出了一種用于解決多機器人協(xié)調問題的二層多智能體結構。Sharma[15]等人提出了模糊馬爾可夫對策作為模糊Q-Learning算法 (FQL)的一種改編。該方法利用增強信號對機械手的模糊馬爾可夫博弈控制器的在線結論部分進行了調優(yōu)。Abdi[16]等人提出了一種用于交通流量預測的情緒時間差分學習算法。近年來,Wiering[17]在強化學習方面中還提出了一種集成算法。他們的思想結合了Q-learning、Sarsa算法、Sutton[18]提出的actor-critics (AC)算法、Q和V函數(shù)(QV-learning)。Wiering[17]提出的AC學習自動機(ACLA)結合了不同強化算法價值函數(shù)導出的策略,但由于需要集成不同強化學習算法,需要對許多參數(shù)進行調優(yōu),消耗了大量的計算時間。針對Q-Learning算法的開發(fā)-探索平衡性問題,Guo[19]等人提出了一種基于metropolis準則的模擬退火算法(SA-Q-Learning)以改進Q-Learning算法。與Q-Learning算法和玻爾茲曼探索相比,SA-Q-Learning算法的收斂速度將更快。將自適應學習率和模糊均衡器集成到模糊Sarsa學習算法(FSL)中,Derhami[20]等人提出了一種增強的模糊Sarsa學習算法(EFSL),利用自適應學習率防止高訪問狀態(tài)的參數(shù)過擬合,利用模糊均衡器實現(xiàn)了合理的開發(fā)-探索平衡管理。

      綜上所述,強化學習算法領域已有多方面研究,各種強化學習算法在不同環(huán)境中的控制效果存在差異,通過仿真平臺,利用強化學習算法對模型進行仿真控制驗證,是理解強化學習以合理選擇算法的快捷方式。

      2 軟件架構及測試框架

      軟件框架由3個部分組成:OpenAI Gym、ROS和Gazebo,如圖1所示。OpenAI Gym作為強化學習的工具包,與ROS環(huán)境交互。ROS是一個機器人操作系統(tǒng)平臺,用于系統(tǒng)開發(fā),構建兩輪模型車和控制算法等仿真模型。Gazebo仿真平臺提供強大的物理引擎、高質量的圖像處理以及作圖的界面。ROS作為Gym與Gazebo仿真平臺連接的橋梁,以便在實際環(huán)境中驗證和標準化強化學習算法。

      圖1 整體框架

      設置兩輪模型車無碰撞繞地圖行駛兩圈為訓練成功的標志,對強化學習各方法的測試驗證框架分為以下3個部分:① 測試三種算法在3張地圖中的訓練成功概率;② 在3張地圖中依次測試驗證同一種算法的訓練效果;③ 在同一張地圖中依次測試驗證三種算法的訓練效果。

      3 強化學習算法

      3.1 強化學習

      強化學習系統(tǒng)由智能體和環(huán)境兩部分組成,目的是通過試錯的方法進行從環(huán)境到行為映射的學習,尋找使獎勵值函數(shù)達到最大時的動作方案。建立基于強化學習的兩輪模型車控制仿真分析時,需要對強化學習算法中的狀態(tài)集合S、動作集合A以及獎勵矩陣R進行合理定義。為驗證平臺的有效性,選取Q-Learning、Sarsa和DQN三大主流強化學習算法進行有效性與魯棒性的測試驗證。

      3.2 算法原理

      3.2.1 基于Q-table

      Q-Learning算法與Sarsa算法采用Q表的形式?jīng)Q策,通過不斷更新Q-table里的值,根據(jù)新的值來判斷在某個狀態(tài)S下模型該采取的動作A。

      Q-Learning算法基于Q值函數(shù)估計[22]。Q值函數(shù)表示智能體在當前狀態(tài)下采取下一個動作的值函數(shù),一般初始化為0。

      Q(st,at)←Q(st,at)+α(rt+1+γmaxQ(st+1,at+1)-Q(st,at))

      整體算法流程如下。

      算法1:Q-Learning算法

      初始化所有狀態(tài)和Q值函數(shù)Q(s,a)

      重復(每一輪次)

      選擇隨機狀態(tài)st或初始化狀態(tài)st

      重復(輪次中的每一步)

      用ε-貪婪法選出在當前狀態(tài)st的動作at

      執(zhí)行動作at,得到新狀態(tài)st+1和獎勵rt+1

      計算新Q值函數(shù)Q(st,at):

      st←st+1

      直至st為終止狀態(tài)

      直至搜索到所需輪次的數(shù)量

      Sarsa算法與Q-Learning算法類似,同樣基于Q值函數(shù)估計[23]。然其區(qū)別在于:Q-Learning算法是一種離線算法,在選擇Q(st,at)時使用了greedy方法,而計算Q(st+1,at+1)時使用max方法,實際做決定時,選擇的不一定是max的動作; Sarsa算法則是在線算法,它在行動中進行學習,因此選擇Q(st,at)與Q(st+1,at+1)時都采用貪心方法,其Q值函數(shù)更新公式可以表示為

      Q(st,at)←Q(st,at)+α(rt+1+γQ(st+1,at+1)-Q(st,at))

      整體算法流程如下。

      算法2:Sarsa算法

      初始化所有狀態(tài)和Q值函數(shù)Q(s,a);

      重復(每一輪次)

      選擇隨機狀態(tài)st或初始化狀態(tài)st

      用ε-貪婪法選擇出在當前狀態(tài)st的動作at

      重復(輪次中的每一步)

      執(zhí)行動作at,得到新狀態(tài)st+1和獎勵rt+1

      用ε-貪婪法選出在當前狀態(tài)st+1的動作at+1

      計算新Q值函數(shù)Q(st,at):

      Q(st,at)←Q(st,at)+α(rt+1+γQ(st+1,at+1)-Q(st,at))st←st+1;at←at+1

      直至st為終止狀態(tài)

      直至搜索到所需輪次的數(shù)量

      3.2.2 基于Q-network

      DQN算法的基本思路來源于Q-Learning[24],區(qū)別于Q-Learning用狀態(tài)S和動作A計算Q值,DQN算法中利用Q網(wǎng)絡進行Q值計算。Q網(wǎng)絡為卷積神經(jīng)網(wǎng)絡,DQN算法采用經(jīng)驗回放的方法,構建一個系統(tǒng)存儲樣本,通過隨機抽取以往記憶庫中的數(shù)據(jù),對抽取數(shù)據(jù)進行學習,打破經(jīng)歷之間的相關性,使神經(jīng)網(wǎng)絡的更新高效,解決結果難以收斂的問題。Q網(wǎng)絡訓練的損失函數(shù)為

      L(θ)=E[(TargetQ-Q(s,a;θ))2]
      TargetQ=r+γmaxa′Q(s′,a′;θ)

      DQN算法的基本流程如下。

      算法3:DQN算法

      初始化Q網(wǎng)絡的所有參數(shù)ω,基于ω初始化所有的狀態(tài)和動作對應的Q值。清空經(jīng)驗回放集合D

      開始迭代:

      初始化S為當前狀態(tài)序列的第一個狀態(tài),獲得其特征向量Φ(S)

      在Q網(wǎng)絡中將Φ(S)作為輸入,得到Q網(wǎng)絡對應的所有Q值輸出。用ε-貪婪法在當前Q值輸出中選擇對應動作A

      在狀態(tài)S執(zhí)行動作A得到新狀態(tài)S′對應的特征向量Φ(S′),獎勵R(S)和是否終止is_end

      S←S′

      使用均方差損失函數(shù):

      通過神經(jīng)網(wǎng)絡梯度反向傳播更新Q網(wǎng)絡的參數(shù)ω;

      如果S′是終止狀態(tài),則當前輪次迭代結束,進行下一輪迭代。

      4 研究過程

      4.1 實驗平臺

      實驗平臺基于ROS操作系統(tǒng),利用OpenAI Gym進行強化學習的研究和測試驗證,利用Gazebo對實驗進行仿真。兩輪模型車(如圖2所示)裝有Hokuyo激光雷達,精度為±40 mm,測量距離為0.06~10 m,測量角度范圍為270°。分別利用Q-Learning、Sarsa和DQN,利用模型車的激光雷達數(shù)據(jù)進行訓練,測試驗證算法在不同地圖下的有效性與魯棒性。

      圖2 兩輪模型車

      4.2 實驗環(huán)境

      實驗場景設置3個不同復雜程度的12 m×12 m的3D仿真環(huán)境,3張地圖依次設為MAP1、MAP2、MAP3,墻壁高度1 m、通道寬度1.35 m、通道總長度42 m。每個地圖的復雜度由轉角數(shù)量決定,轉角數(shù)越多,相應地圖復雜度越高。具體模型如圖3所示。

      圖3 尺寸相等的3種地圖

      4.3 實驗模型

      在實驗中,模型車的最終目的是通過訓練以實現(xiàn)穩(wěn)定繞地圖通道行駛且不會撞到墻壁等障礙物。設置模型車無障礙繞地圖行駛兩圈為訓練成功的標志。

      實驗以雷達為主要傳感器進行訓練。雷達居于模型車中心位置,當雷達檢測到距障礙物的最小距離小于0.2 m時,即認為模型車撞到了障礙物,該回合立即結束并進行下一回合;否則,模型車將根據(jù)所用算法,選取不同策略來選擇下一動作。參數(shù)設置如表1所示。

      表1 動作離散化及其參數(shù)設置

      模型車的動作集共有3種:前進、左轉、右轉。根據(jù)所涉及的地圖環(huán)境和先驗知識,分別進行設置,具體獎勵值如表2所示。

      表2 動作設置獎勵

      4.4 實驗參數(shù)

      分別采用Q-Learning算法、Sarsa算法及DQN算法對模型車進行訓練,以2400個回合后模型車的訓練情況以及需要多少個回合能夠順利行駛兩圈作為測試驗證的主要依據(jù)。模型車的學習周期為2400個回合,每個回合結束的標志是模型車撞到障礙物,周期結束后,統(tǒng)計模型車所得獎勵,進入下一個回合的學習。

      Q-Learning算法與Sarsa 算法中的學習速率的參數(shù)設置如表3所示。

      表3 算法參數(shù)設置

      4.5 結果分析

      按照算法對應的參數(shù)及模型車的獎懲規(guī)則進行實驗,每一回合記錄一次模型車獎勵值,對三種強化學習算法在3種地圖下的獎勵值進行數(shù)據(jù)分析。由于回合數(shù)較多,用平均值替代每10個回合數(shù)的獎勵值。模型車無碰撞行駛超過兩圈的次數(shù)在總訓練次數(shù)中所占的比例稱為訓練成功率,如表4所示。

      表4 不同算法在3個地圖下的訓練成功率

      由表4可知,隨著地圖復雜度的提高,三種強化算法的訓練成功概率都會下降,且DQN算法訓練成功率下降得更快。在復雜度較低的MAP1中,DQN算法的訓練成功率明顯高于Q-Learning和Sarsa算法,但在最復雜的MAP3中,Q-Learning和Sarsa兩種算法訓練成功率相差很小,DQN訓練成功率最低。因此,在復雜地圖中Sarsa算法的穩(wěn)定性與自適應性更佳。

      為了研究Q-Learning算法在不同地圖中的表現(xiàn),在3張地圖中分別測量了模型車的訓練回合數(shù)和獎勵值(如圖4所示)。圖中黑線代表模型車可以無障礙繞地圖行駛兩圈所獲得的獎勵值1600。

      圖4 Q-Learning算法在3張地圖下的訓練結果

      MAP1到MAP3地圖復雜度遞增。分析圖4可以得出,使用Q-Learning算法時,模型車在MAP1中的獎勵值最高,能順利行駛兩圈的次數(shù)最多。而在MAP3中的獎勵值最低,且平均獎勵值未達到行駛兩圈所需獎勵值。這種現(xiàn)象與獎懲設置有緊密聯(lián)系,直行的獎勵值為5,大于左右轉的獎勵值1,故直行通道越多的地圖獲得的獎勵值應該越高。實驗現(xiàn)象與預期假設基本符合,得出如下結論:在直行獎勵值大于左右轉獎勵值的情況下,Q-Learning算法往往在較為簡單的地圖中可以使模型車獲得較高的獎勵值。

      Sarsa算法在不同地圖中的表現(xiàn)如圖5所示。與Q-Learning算法相比,使用Sarsa算法時模型車在不同地圖中獎勵值的區(qū)分度更低,其行為更加平穩(wěn),訓練完成后,獎勵值保持在較高水平。在復雜度最高的MAP3中,平均獎勵值也能達到行駛兩圈的獎勵值。實驗表明Sarsa算法在復雜度較高的地圖中表現(xiàn)更好。

      Q-Learning算法及Sarsa算法等傳統(tǒng)的強化學習算法都需要一張由狀態(tài)S以及行為A組成的Q值表,當場景的狀態(tài)過多即Q值表行數(shù)過多時,將導致Q值表難以維護?;诖耍骄苛薉QN算法在不同地圖中的表現(xiàn),如圖6所示。與前兩種算法相比,使用DQN算法時模型車在同地圖中的訓練輪次與獎勵有較大區(qū)別。DQN算法采用存儲并隨機采樣經(jīng)驗來打破樣本之間的相關性,避免優(yōu)化目標隨優(yōu)化過程改變的問題。

      圖5 Sarsa算法在3張地圖下的訓練結果

      圖6 DQN算法在3張地圖下的訓練結果

      但是隨著地圖復雜度的提升,DQN算法的訓練性能下降,訓練輪次增加,其原因在于:地圖越復雜,對運算處理能力要求越高,需要的訓練量越大。但訓練量足夠大時,DQN算法在MAP3中也可以呈現(xiàn)出很強的收斂性與穩(wěn)定性。

      為了研究三種強化學習算法在同一環(huán)境中的表現(xiàn),在同一地圖中測量模型車的訓練回合數(shù)和獎勵值,并繪制相應圖表(如圖7、圖8、圖9所示)??梢缘贸?,以模型車行駛兩圈作為其訓練成功的標志,Q-Learning算法可以更早地實現(xiàn)目標。

      圖7 MAP1中模型車的訓練結果

      圖8 MAP2中模型車的訓練結果

      圖9 MAP3中模型車的訓練結果

      這種現(xiàn)象是由于Q-Learning算法可以學習策略,同時更趨于冒險,即下一個狀態(tài)的獎勵值不一定用來更新Q值。即使在Q-Learning算法訓練后期,也仍有一定幾率去探索,因此訓練后期仍有獎勵值較低的情況發(fā)生。

      由于Sarsa算法是一種在線學習算法,使用漸近貪心無限探索策略來更新Q值函數(shù),因此任意時間模型車總有一定概率選擇非最優(yōu)的動作。其中碰撞墻壁的動作也始終有一定的概率被選中,并在Q值函數(shù)更新時被記錄下來,Q值函數(shù)變成了越靠近墻壁,值越小的分布,最終實現(xiàn)Sarsa選擇安全路徑。將MAP1、MAP2、MAP3三幅地圖的Q-Learning算法與Sarsa算法獎勵值進行對比,在1400回合數(shù)之前Sarsa算法獲得的平均獎勵值要低于Q-Learning算法,1400回合數(shù)之后Sarsa算法獲得平均獎勵值要高于Q-Learning算法。Sarsa算法訓練的速度要比Q-Learning算法速度快,訓練完成后,比Q-Learning算法訓練效果更好。這也驗證了Sarsa算法在控制方面要優(yōu)于Q-Learning算法。

      DQN算法通過經(jīng)驗回放的方式,在過去多個狀態(tài)下平均化數(shù)據(jù)分布,提高了訓練過程的平滑度,避免了訓練發(fā)散,提高了收斂性。因而在MAP1中DQN算法在330次訓練回合后可以實現(xiàn)模型車無碰撞行駛地圖兩圈,收斂性遠高于Q-Learning以及Sarsa算法。在經(jīng)驗回放中DQN算法采取隨機均勻采樣,每一步的數(shù)據(jù)都可以被多次采樣,并且隨機采樣打破了樣本之間的相關性,降低了參數(shù)更新的方差,提高了算法的穩(wěn)定性。因而在MAP1、MAP2中一次訓練成功后,模型車就可以在之后的訓練中有更大的幾率訓練合格,穩(wěn)定性也高于Q-Learning和Sarsa算法。

      本文選取了三種基于價值的強化學習算法進行研究,相比于基于概率的算法,基于價值的算法決策部分更明確,總是選擇價值最高的,收斂速度更快。在明確某個狀態(tài)執(zhí)行某個動作價值更高的情況下,尤其是出于對時間的要求,將直行的獎勵設置為高于轉彎時,使用基于價值的算法更為合適。同時,本實驗狀態(tài)設置較多,使用單步更新的算法更節(jié)省計算資源。因此,本文將該三種基于價值的算法在不同環(huán)境下的效果作為測試驗證對象,以驗證平臺的有效性。

      5 結束語

      本文搭建了用于不同環(huán)境下的強化學習算法仿真的小車平臺,提供了一種快捷的平臺環(huán)境仿真解決方案。對Q-Learning、Sarsa和DQN三大主流算法的有效性與魯棒性進行了測試驗證。得出以下結論:

      ① 在傳統(tǒng)的強化學習方法中,Sarsa算法的穩(wěn)定性與自適應性更佳,隨著地圖復雜度的提高,Sarsa算法仍可以取得較好的結果;而Q-Learning算法往往在較為簡單的地圖中可以使模型車獲得較高的獎勵值。

      ② Sarsa算法訓練的速度要比Q-Learning算法快,訓練完成后比Q-Learning算法訓練效果更好。這驗證了Sarsa算法在控制方面優(yōu)于Q-Learning算法。

      ③ DQN算法的收斂性與魯棒性優(yōu)于Q-Learning和Sarsa算法。

      猜你喜歡
      復雜度狀態(tài)動作
      狀態(tài)聯(lián)想
      一種低復雜度的慣性/GNSS矢量深組合方法
      動作描寫要具體
      生命的另一種狀態(tài)
      求圖上廣探樹的時間復雜度
      畫動作
      動作描寫不可少
      熱圖
      家庭百事通(2016年3期)2016-03-14 08:07:17
      堅持是成功前的狀態(tài)
      山東青年(2016年3期)2016-02-28 14:25:52
      某雷達導51 頭中心控制軟件圈復雜度分析與改進
      荔浦县| 阿拉善左旗| 元朗区| 化隆| 石家庄市| 汤阴县| 大连市| 孟津县| 灵武市| 漳浦县| 武乡县| 乐至县| 新津县| 图木舒克市| 汝南县| 泌阳县| 临海市| 四子王旗| 耿马| 武隆县| 会东县| 德令哈市| 左贡县| 宜君县| 罗平县| 旅游| 贡嘎县| 安溪县| 大冶市| 类乌齐县| 噶尔县| 江源县| 渝北区| 宁安市| 内乡县| 体育| 平度市| 通江县| 潮安县| 保定市| 福州市|