• 
    

    
    

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

      ?

      面向Unity3D的深度增強學習訓練框架研究

      2022-01-07 01:59:02王霞
      信陽農(nóng)林學院學報 2021年4期
      關(guān)鍵詞:代理框架大腦

      王霞

      (福建船政交通職業(yè)學院 信息與智慧交通學院,福建 福州 350007)

      Unity3D是一個廣為人知的專業(yè)游戲開發(fā)平臺,而將機器學習技術(shù)與Unity3D相結(jié)合則可以提高游戲研發(fā)效率[1-2]。機器學習技術(shù)(尤其是深度增強學習)適用于復雜任務的學習和控制,通過采用Unity Machine Learning Agents(ML-Agents)等工具包,可以實現(xiàn)Unity3D與深度學習平臺Tensorflow之間的通信[3]。近端策略優(yōu)化(Proximal Policy Optimization,PPO)是一種能用于連續(xù)控制的強化學習算法,是目前性能較好的策略算法[4]。本研究在Unity3D平臺中實現(xiàn)了PPO算法的訓練框架,并使用這個框架來試驗不同的訓練設(shè)置。

      1 深度增強學習訓練框架

      PPO算法易于實現(xiàn),能在連續(xù)的狀態(tài)和動作空間中取得非常好的效果。PPO的目標函數(shù)具有以下的形式[5]:

      L(θ)=Et[min(rt(θ)Advt,clip(rt(θ),1-ε,1+ε)Advt]

      (1)

      這個目標函數(shù)取前一個目標值和clip函數(shù)值之間的最小值,其中ε是超參數(shù)。Adv的值大于0意味著算法所采取的行動具有優(yōu)勢。如果01說明新策略更傾向于選擇具有劣勢的動作,因此目標函數(shù)將使用負梯度來調(diào)整概率。

      在ML框架中,Agent負責接收觀察的結(jié)果(狀態(tài)),大腦根據(jù)這些狀態(tài)決定選擇動作以最大化當前的獎勵。大腦與不同的Agent相連,負責決定Agent所需要采取的行動。由此決定需要使用哪種類型的大腦以及要處理的狀態(tài)空間和動作空間的類型及其大小。在學習的過程中,大腦將被設(shè)置為外部類型意味著通過TensorFlow來做出動作和決定;而內(nèi)部類型的大腦可以在ML模型的內(nèi)部做出決策。

      在進行訓練之前,需要選擇模型的超參數(shù)。這些參數(shù)是用來調(diào)整訓練的設(shè)置,所使用的超參數(shù)設(shè)置及其定義如下表1所示:

      表1 超參數(shù)取值和含義

      表1(續(xù))

      2 場景實現(xiàn)

      2.1 一維簡單場景

      首先實現(xiàn)一個簡單的游戲場景來了解工作原理。該場景由一個玩家和一個目標組成,游戲的目的是讓玩家到達目標。對于學院,將使用通用的學院設(shè)置,將大腦設(shè)置為具有1個觀察和1個動作,并且狀態(tài)和動作空間都將設(shè)置為連續(xù)的。當代理達到最大步數(shù)或接觸目標時,會調(diào)用代理重置算法。該算法將代理和目標隨機放置在一些預定義的位置上,并保存了代理和目標之間的初始距離。接下來,代理采用觀察收集算法收集觀察。在得到一個觀察結(jié)果后,代理將其傳遞給大腦以決定選擇哪個動作,使用兩個物體之間的距離作為觀察結(jié)果。盡量保持觀察次數(shù)盡可能少,同時讓代理有足夠的信息來完成任務,代理使用動作選擇算法來選擇動作和計算相應的回報。由大腦決定的動作存儲在數(shù)組中,由于只有一個動作,因此該動作的值會被存儲在該數(shù)組的第一個條目中。動作的取值范圍是-1和1之間,代理最大的移動步長為SAgent。如果代理和目標之間的距離足夠小,將獎勵設(shè)置為1,并將完成標志標記為 true。 為了加快學習進度,當代理和目標之間的距離過大時,將設(shè)置額外的懲罰。此時獎勵被設(shè)置為-0.1。

      圖1展示了在訓練過程中累積回報的變化情況。此處的最大步數(shù)是5 000 000。從圖中可以看到,在訓練迭代了2 500 000步之后算法開始穩(wěn)定。

      由于僅使用一個代理進行訓練需要較長的收斂時間,為了提高訓練效率,可以考慮使用多個代理。與一個代理相比,多個代理可以收集更多的經(jīng)驗來更新本策略和價值函數(shù)。圖2展示了多個代理的訓練收斂過程。與圖1相比,多個代理的累計回報大約在25 000步后就穩(wěn)定,說明采用多個代理能更快地收斂。

      2.2 三維場景

      接下來考慮一個三維(3D)的場景,此時代理需要至少兩個動作才能在三維空間中移動,而且觀察次數(shù)的增加導致訓練時間更長。對于該場景,使用球坐標,并按照以下方程將其轉(zhuǎn)換為笛卡爾坐標:

      x=rsinθcosφ

      y=rsinθsinφ

      (2)

      z==rcosφ

      為代理設(shè)置了2個動作,6個觀察值。代理收集的觀察不僅有橫、縱坐標,還有豎坐標。代理使用動作選擇算法(如算法1所示)選擇動作和計算回報。在該算法中,大腦需要選擇2個動作。與前一種場景不同的是,該算法沒有使用固定的懲罰值-0.1,而是根據(jù)與代理與目標的距離來設(shè)置可變的懲罰值,即當代理與目標的距離越大,懲罰值就會變大。算法通過設(shè)置邊界來避免代理遠離目標,當代理超過預設(shè)的邊界時,算法將懲罰值設(shè)置為一個較大的負數(shù)。

      算法1 三維場景的動作選擇算法1: the←GetThe(actVector);2: phi←GetPhi(actVector);3: mag←UpdateMag(mf *sin(the)*cos(phi), 4: mf *sin(the)*sin(phi),5: cos(the));6: moveAgent(mag);7: dist←CalDist(agent.pos, target.pos);8: r←-dist/(inidist×maxStep);9: if agent.x > rB and agent.y cB and agent.z > dB do10: r←-1;11: return;12: end if13: if dist < thre do14: r←maxStep - curStep;15: return;16: end if17: return;

      在訓練期間,代理可能會學習到次優(yōu)行為,例如緩慢地移動向目標。針對這個問題,可以設(shè)置更大的獎勵。當代理靠近或者達到目標時,算法設(shè)置一個較大的獎勵,以縮短代理的學習過程,使代理盡可能快地到達目標。

      圖3展示了三維場景中累計回報隨著迭代次數(shù)增加的變化情況。由圖可知,累計回報大約在1 500 000次迭代后趨向穩(wěn)定,此時算法收斂。

      2.3 汽車避障場景

      接下來,考慮一個更為復雜的汽車避障場景。汽車的后輪負責驅(qū)動車輛,前輪用于轉(zhuǎn)向。需要使用2個動作來使汽車移動:一個動作負責驅(qū)動前進,另一個負責轉(zhuǎn)向。代理的觀察值不僅包括汽車的移動速度和汽車與目標的距離,還包括扭矩和前輪的轉(zhuǎn)向角。

      代理使用算法2來選擇動作和計算相應的回報值。

      算法2 無障礙汽車動作選擇算法1: tor←GetTor(actVector);2: tor← tor * 200;3: ang←GetAngle(actVector);4: SetTor(tor);5: SetAngle(ang);6: dist←CalDist(agent.pos, target.pos);7: r ←-dist/(inidist×maxStep);8: if dist < thre do9: r←10;10: return;11: end if12: return;

      使用隨機生成的目標來訓練汽車。從圖4所示的結(jié)果可知,在訓練開始時,汽車的學習速度非??欤塾嫽貓蟛粩嘣黾?。但隨著迭代次數(shù)的增加,累計回報逐漸下降,并趨于穩(wěn)定。這是因為當目標在代理前面時,代理能更快地達到目標。但是當目標在后方時,代理一開始的表現(xiàn)會變得不穩(wěn)定,隨后才慢慢穩(wěn)定了自己的速度,追趕后面的目標。

      接下來在隨機生成的目標旁邊設(shè)置一個障礙物,考察強化學習算法在該場景下的性能。將目標隨機放置在障礙物的一側(cè)。在每一個episode中,障礙物都會出現(xiàn)在汽車前面的位置。在該場景中,觀察的數(shù)量顯著增加,這是因為需要一些關(guān)于汽車周圍的信息。使用了11條長度為15個單位、從汽車出發(fā)的射線來感知汽車周圍的信息。當汽車與障礙物接近時,將即時回報設(shè)置為-10。當射線與目標接觸時,該射線的編碼將被設(shè)置為rdist/15。當射線沒有與目標接觸時,將射線編碼為-1。

      在訓練開始時,智能體會隨機走到障礙物的一側(cè),以盡快找到目標。在多次迭代之后,智能體學習到了與目標接觸射線的距離和智能體與目標之間的距離關(guān)系,因此收斂速度變快了(如圖5所示)。

      3 結(jié)論

      本文在Unity3D的環(huán)境中研究了深度增強學習訓練框架的實現(xiàn)。首先在一維的簡單場景中實現(xiàn)了深度增強學習模型的訓練框架。然后,逐步增加場景的復雜性:從一維到三維,最后到汽車避障問題,并為這些問題實現(xiàn)了相應的訓練框架,考察了深度增強學習模型的收斂性能。未來的研究將實現(xiàn)自動化的模型訓練,以減少繁瑣的人工操作。

      猜你喜歡
      代理框架大腦
      框架
      廣義框架的不相交性
      代理圣誕老人
      代理手金寶 生意特別好
      WTO框架下
      法大研究生(2017年1期)2017-04-10 08:55:06
      最強大腦
      最強大腦
      最強大腦
      最強大腦
      復仇代理烏龜君
      學生天地(2016年23期)2016-05-17 05:47:15
      固原市| 海淀区| 台前县| 京山县| 青龙| 隆林| 峨山| 临沭县| 古浪县| 和田县| 贡觉县| 咸宁市| 闵行区| 灌阳县| 长沙市| 宁安市| 隆尧县| 乃东县| 彰武县| 潜山县| 蕉岭县| 巴青县| 惠水县| 东莞市| 吉水县| 河东区| 辽源市| 石泉县| 渝中区| 吴堡县| 洛隆县| 牡丹江市| 徐州市| 屏东市| 泗阳县| 阿拉尔市| 中西区| 马关县| 铅山县| 永吉县| 阳春市|