• 
    

    
    

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

      Fast-PPO:最優(yōu)基線法的近端策略優(yōu)化算法

      2020-07-13 06:15:58陳佳黎劉保生楊郭鑣
      小型微型計算機系統(tǒng) 2020年7期
      關(guān)鍵詞:基線梯度函數(shù)

      肖 竹,謝 寧,陳佳黎,劉保生,姜 峰,楊郭鑣

      (電子科技大學 未來媒體中心 計算機科學與工程學院,成都 611731)

      1 引 言

      最近,針對強化學習(RL)提出了幾種不同的神經(jīng)網(wǎng)絡(luò)函數(shù)逼近算法[1,2].主要的常用算法有深度Q學習[3,4],Vanilla策略梯度(PG)[5],信任區(qū)域策略梯度(TRPO)[6]和近端策略優(yōu)化算法[7].Q學習算法[8,9]可以很好地應(yīng)用在動作離散的學習環(huán)境中,但不能在動作連續(xù)控制的基礎(chǔ)上表現(xiàn)良好.Vanilla策略梯度方法在數(shù)據(jù)效率和魯棒性方面都較差.信任區(qū)域策略梯度算法[6]相對復(fù)雜,與包含噪聲或參數(shù)共享的架構(gòu)不兼容.近端策略優(yōu)化算法使用懲罰來改進過大的優(yōu)化,在信任區(qū)域策略梯度算法方法的基礎(chǔ)上獲得更好的采樣復(fù)雜性[10].

      由于近端策略優(yōu)化算法是一種新的強化學習的策略梯度(PG)方法[11],因此可以采用提高策略梯度方法效率的手段來改進近端策略優(yōu)化算法,包括基于參數(shù)的探索和最佳基線[12],我們選擇使用最佳基線來提高效率.我們的想法啟發(fā)于最先進的策略梯度方法、策略梯度和基于參數(shù)的勘探(PGPE)以及最佳基線減分(將方差正則化技術(shù)與基于參數(shù)的勘探和最佳基線相結(jié)合)[12].在實踐中,在策略梯度方法中使用了最佳基線,從經(jīng)驗上幫助發(fā)現(xiàn)策略更新的正確方向.

      NPC(Non-Player Character)行為的傳統(tǒng)做法是通過腳本或行為樹來操縱的.冗長的規(guī)則表通過分析NPC周圍環(huán)境的信息來確定其下一個行為.然而,隨著游戲的更新、設(shè)計和維護,調(diào)整這些規(guī)則表是非常耗時的.就最近強化學習算法的實際應(yīng)用而言,強化學習與神經(jīng)網(wǎng)絡(luò)的結(jié)合[13]廣泛應(yīng)用于NPC在視頻游戲中的智能決策,通過在NPC達到其預(yù)期目標時提供獎勵來訓練,并非手動定義觀察到的動作圖.例如,Wu和Tian[14]將卷積神經(jīng)網(wǎng)絡(luò)(CNN)部署到A3C中,在部分可觀測的3D環(huán)境中訓練一個智能對象,從最近的四個原始幀和游戲變量中,根據(jù)課程學習[15]的方法,從簡單的任務(wù)開始,逐步過渡到更難的任務(wù),預(yù)測下一步行動和價值函數(shù).

      因此,我們將提出的強化學習算法用來控制NPC在游戲中的行為,以證明我們提出的方法比其他方法更有效.實驗分為三個階段.第一階段,四個強化學習算法(Fast-PPO、PPO[7]、PG[16]、R-PGPEOB[17])都在同一個游戲中使用.我們可以看到,無論環(huán)境是離散空間還是連續(xù)空間,F(xiàn)ast-PPO和PPO算法都是有效的.但PG和PGPE只能用于連續(xù)空間.在第二階段,我們設(shè)計了一個網(wǎng)球賽,F(xiàn)ast-PPO和PPO控制兩個球拍.我們提出的Fast-PPO算法控制的球拍可以獲得比其他算法更高的分數(shù).因為,F(xiàn)ast-PPO比PPO具有更快的收斂速度和更高的回報.第三階段,采用Fast-PPO算法訓練一只狗獲取一根木棍,證明了我們提出的強化學習算法的通用性.

      2 預(yù)備知識

      2.1 策略梯度法

      策略梯度法[11]通過計算策略梯度的估計量并將其插入隨機梯度上升算法來工作.策略梯度(PG)算法可以學習隨機策略,設(shè)計策略的目標函數(shù),通過梯度下降算法對參數(shù)進行優(yōu)化,最后進行獎勵.假設(shè)軌跡為τ=(s0,a0,r0,…,sT-1,aT-1,rT-1),at是當前動作,st是當前狀態(tài),這是一個完整的事件狀態(tài)、行動和獎勵,通常的策略梯度算子形式如下:

      JPG=t[R]

      (1)

      θJPG=t[θlogπθ(at|st)R]

      (2)

      2.2 正則化策略梯度法

      當總回報R較大時,軌跡τ的發(fā)生概率增加,當總回報R較小時,軌跡τ的發(fā)生概率減小.同時為了進一步減小梯度估計的方差,趙婷婷等人[17]提出正則化策略梯度算法R-PGPEOB,策略梯度的形式為:

      (3)

      V(θ)=Varθ[Rθlogπθ(at|st)]

      (4)

      2.3 近端策略優(yōu)化算法

      (5)

      LCPI(θ)=t[min(rt(θ)t,clip(rt(θ),1-ε,1+ε)t)]

      (6)

      其中epsilon是一個超參數(shù).min中的第一項是LCPI.第二項,clip(rt(θ),1-ε,1+ε)t通過削減概率比來修改代理目標,這消除了在區(qū)間[1-ε,1+ε]的影響.最后,取剪切和未剪切目標中的最小值,最終目標函數(shù)是未剪切目標的下限.

      3 提出的快速PPO算法

      如前一節(jié)所述,PPO算法是PG算法的一個變種.雖然PPO算法對策略的更新是有效的,但我們認為PPO算法對策略更新的限制過強,不僅采用rt(θ)來防止策略更新過快,還采用clip函數(shù)進一步控制策略的更新速度.根據(jù)該方法[17],基線減分能夠提高PG算法的效率.因為基線的使用有助于從經(jīng)驗上找到策略更新的正確方向,從而提高PG算法的效率.因此,我們提出了一種具有最佳基線的PPO方法(Fast-PPO),它結(jié)合了PPO算法的優(yōu)點和最佳基線方法的優(yōu)點.

      3.1 基線減法的策略梯度

      Fast-PPO算法中的梯度估計可以通過減去基線bA進一步穩(wěn)定:

      (7)

      根據(jù)方法[6,17]中使用的優(yōu)勢函數(shù),計算出最佳基線如下:

      (8)

      其中Var表示協(xié)方差矩陣的軌跡,即:

      A=(A1,A2,…,Al)T

      Varθ[A]=tr(Eθ[(A-Eθ[A])(A-Eθ[A])T])

      (9)

      3.2 基于最佳基線DPG方法的拓展

      在Zhao的方法中[17],梯度更新使用隨機梯度下降方法.隨機梯度下降算法[21]每次從訓練集中隨機選擇一個樣本來學習.

      隨機梯度下降算法一次只隨機選取一個樣本來更新模型的參數(shù),因此每次運行都非常快速,可以在線更新.最大隨機梯度下降的缺點是,不是每個更新都會朝正確的方向進行,從而產(chǎn)生優(yōu)化方差.

      因此,在快速PPO算法中,我們使用小批量梯度方法[22]來降低小批量梯度,以將批量梯度和隨機梯度結(jié)合起來.在更新速度和更新次數(shù)之間取得平衡.每次更新都從訓練集中隨機選擇m(m

      θ=θ-η·LPG(θ;xi:i+m;yi:i+m)

      (10)

      與隨機梯度下降相比,小批量梯度降低了收斂波動性,降低了參數(shù)更新的方差,使參數(shù)更新更加穩(wěn)定.

      利用小批量的思想,我們可以解出bA的方程(9),給出快速PPO的最佳基線:

      (11)

      其中:

      (12)

      現(xiàn)在我們來簡化公式‖▽θlogπi(θ)‖2:

      令:

      (13)

      于是:

      ▽θlogπi(θ)=E-P

      (*)(14)

      因此,

      ‖▽θlogπi(θ)‖2=trace((*)2)=trace(E-2P+PPT)

      (15)

      然后我們可以將等式(15)簡化為:

      trace((*)2)=trace(E-2P+PPT)

      =trace(E)-2trace(P)+trace(PPT)

      (16)

      3.3 Fast-PPO中A2C的結(jié)構(gòu)

      Actor-Critic(AC)框架算法[23]可用于解決連續(xù)運動空間中的DRL問題.但是AC有兩個網(wǎng)絡(luò)(actor和critic)需要訓練,因此它需要分別優(yōu)化這兩組權(quán)重.Critic網(wǎng)絡(luò)計算當前狀態(tài)下某個操作的得分Q,Actor網(wǎng)絡(luò)使用該Q值更新其自己的策略權(quán)重.然而,基于價值函數(shù)的方法訓練波動較大.

      為了緩解這個問題,A3C定義了一個優(yōu)勢函數(shù),它給出了與當前狀態(tài)相比的平均動作(動作值函數(shù))的優(yōu)勢值.考慮到使用在策略和價值函數(shù)之間共享參數(shù)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的想法,我們提出了一個損失函數(shù),可用于結(jié)合策略替代項和價值函數(shù)誤差項[7].

      如果使用共享策略函數(shù)和價值函數(shù)參數(shù)[7]的神經(jīng)網(wǎng)絡(luò)架構(gòu),損失函數(shù)則可以組合上述目標函數(shù)以及價值函數(shù)的誤差項[24].同時也可以通過添加熵獎勵來確保充分的探索.我們通過結(jié)合這幾項,獲得以下?lián)p失函數(shù)方程,如下所示:

      (17)

      在整個Fast-PPO算法的每次迭代中,通過執(zhí)行當前策略來估計目標函數(shù),然后通過輪流優(yōu)化目標函數(shù)來更新策略參數(shù).

      PG方法中的每一次更新都應(yīng)該增加那些優(yōu)于平均值的操作的概率,同時減少那些低于平均值的操作的概率.但其方差很高,因此提出了AC算法[26],用一個值函數(shù)代替經(jīng)驗收益作為偏差來減少方差.但實際上,John Schulman[20]主要討論了GAE(廣義優(yōu)勢估計)方法,該方法大大減少了方差,確保了控制偏差的前提.使用的GAE估計量是:

      (18)

      其中t在給定的長度T軌跡段內(nèi)以[0,T]指定時間指數(shù).概括這一選擇,使用廣義優(yōu)勢估計的截短版本[20],當λ=1時,可簡化方程(17)為:

      t=δt+(γλ)δt+1+…+…+(γλ)T-t+1δT-1

      (19)

      其中:

      δt=rt+γV(st+1)-V(st)

      (20)

      算法 1.Fast-PPO,Actor-Critic Style

      foriteration=1,2,…do

      foractor=1,2,…,Ndo

      在環(huán)境中,T時間步驟內(nèi),運行策略πθold

      從整體而言,“師傅型”師資的職業(yè)職責有:①了解學徒的發(fā)展規(guī)律;②熟悉合作企業(yè)的典型職業(yè)工作和企業(yè)實際操作流程;③開發(fā)、設(shè)計、制定以工作過程行動導(dǎo)向的培訓計劃;④從事培訓準備、培訓實施、培訓考核指導(dǎo)等工作;⑤促進學徒學習,引領(lǐng)學徒職業(yè)素養(yǎng)形成,傳承企業(yè)文化;⑥為學徒提供職業(yè)發(fā)展咨詢、服務(wù)。具體需要具備以下素質(zhì):

      endfor

      在Kepochs中,令Mini-batchM的大?。篗≤NT,優(yōu)化含θ的L目標函數(shù)

      θold←θ

      endfor

      4 實 驗

      在本節(jié)中,我們通過與原始PPO算法的比較,實驗評估了我們提出的方法的效率.我們使用一個新的開源工具包,使用Unity平臺創(chuàng)建模擬環(huán)境并與之交互:Unity ML-Agents Toolkit.通過將Unity作為仿真平臺,該工具包可以開發(fā)具有豐富的感官和物理復(fù)雜性的學習環(huán)境,提供引人注目的認知挑戰(zhàn)并支持動態(tài)多代理交互.

      基于ML-Agents,NPC通過相機獲取的狀態(tài)信息可以發(fā)送到Python的訓練模型,并且通過圖像識別來提取圖像中的參數(shù)信息.例如,障礙物的分類,到目標的距離,自身和目標的相對位置以及運動方向的判斷,這些信息被發(fā)送到訓練模型,并且模型輸出的命令被發(fā)送回NPC,從而控制NPC在虛擬游戲環(huán)境中的動作.訓練架構(gòu)如圖1所示.

      圖1 訓練架構(gòu)圖

      4.1 任務(wù)中RL算法的比較

      在這一部分,我們將Hallway,Banana和3DBall作為培訓agent的環(huán)境.這三種環(huán)境分為兩類.一個是離散的空間,包括Hallway和Banana,另一個連續(xù)的空間是3DBall.結(jié)果如圖2所示.

      這些任務(wù)的目標如表1所示.它們的訓練參數(shù)設(shè)置如下:

      HallwayBrain:

      序列長度:64; num layers:2; hidden units:128;memory size:256; beta:1.0e-2; gamma:0.99; num epoch:3;

      buffer size:1024; 批量大小:128; 最大步數(shù):5.0e5.

      BananaBrain:

      批量大小:1024; beta:5.0e3; buffer size:10240;最大步數(shù):1.5e5.

      3DBallBrain:

      批量大小:64; buffer size:12000; lambd:0.99; gamma:0.995; beta:0.001.

      表1 任務(wù)及其目標

      Table 1 Tasks and their goals

      任務(wù)空間目 標Hallway離散移動到與房間中方塊的顏色相對應(yīng)的目標Banana離散盡量多吃黃香蕉,同時避免吃到藍香蕉3DBall連續(xù)為了盡可能長時間地保持球在平臺上的平衡

      圖2 任務(wù)場景和獎勵(從左到右、從上到下分別是Hallway、Banana和3DBall)

      從上述任務(wù)的獎勵曲線可以看出,在Hallway任務(wù)中,F(xiàn)ast-PPO在200,000次收斂到0.6,PPO在450,000次收斂到0.4,R-PGPEOB算法甚至無法完成此任務(wù).與PPO算法相比,F(xiàn)ast-PPO可以在此任務(wù)中將速度提高1倍以上,并且Fast-PPO的獎勵也是1.5倍.我們相信更高的獎勵可以讓代理商更好地完成任務(wù).在Banana實驗中,F(xiàn)ast-PPO和PPO具有相同的收斂趨勢,但Fast-PPO收斂的收益率為13,大于PPO收斂的回報率為12.R-PGPEOB早期跌入局部最大值,無法從環(huán)境中學習.在3DBall任務(wù)中,F(xiàn)ast-PPO和PPO也具有相同的收斂趨勢,但仔細觀察,F(xiàn)ast-PPO比PPO更穩(wěn)定,即標準差更小.R-PGPEOB在800,000次達到局部最大值,再也無法繼續(xù)從環(huán)境中學習.根據(jù)這三個實驗的結(jié)果,我們可以得出結(jié)論R-PGPEOB算法可以在連續(xù)的空間中應(yīng)用,但是非常有限并且容易陷入局部最大值.此外,它們在離散空間中表現(xiàn)極其不好.然而,F(xiàn)ast-PPO和PPO不僅可以在連續(xù)空間中有效地應(yīng)用,而且可以在離散空間中有效地應(yīng)用.另外,無論環(huán)境是否離散或者連續(xù),F(xiàn)ast-PPO都有最高的回報.

      4.2 Fast-PPO和PPO在網(wǎng)球中的比較

      Fast-PPO和PPO都可以通過幾場比賽來控制NPC的行為.為了直觀地比較Fast-PPO和PPO的效率,我們使用Unity Machine Learning Agent Toolkit中的網(wǎng)球游戲作為培訓智能代理的環(huán)境.然后我們使用上述方法分別訓練代理的行為.每種方法的表現(xiàn)都是通過超過2萬次運行的回報和損失來衡量的.雖然我們只是展示了網(wǎng)球訓練的結(jié)果(在網(wǎng)球環(huán)境中訓練球拍的過程如圖3所示),但我們還是做了更多的工作來說明我們的方法(Fast-PPO)能夠有效地訓練NPC在各種動作游戲中的行為.

      每種方法的表現(xiàn)都是通過累積獎勵和策略損失來衡量的.對于我們的方法,我們設(shè)置超參數(shù)γ= 0.99,λ= 0.95,c1= 0.5,自學習參數(shù)β使用Tensor流的多項式衰減方法,初始值為0.05.同時,策略參數(shù)在每次迭代中迭代超過200000次.在每次迭代中,我們收集了1024個樣本用于批處理.結(jié)果如圖4所示.

      可以清楚地看到,我們的方法具有更大的累積獎勵.此外,PG和R-PGPEOB已陷入600000次死鎖,不再向環(huán)境中學習.因此,證明了我們提出的方法比PPO方法和其他算法更有效.

      在通過我們提出的方法(Fast-PPO)和其他算法訓練代理之后,我們獲得存儲為.byte文件的策略,該文件可以用作Unity中的大腦來控制代理的行為.為了更直觀地觀察Fast-PPO和其他算法的性能,我們設(shè)計了網(wǎng)球游戲.這兩種方法用于控制兩個網(wǎng)球拍.從上面的實驗中,我們可以看出PPO是唯一可以與Fast-PPO一戰(zhàn)高下的算法.所以我們使用經(jīng)過訓練的PPO算法和Fast-PPO算法來控制各種球拍并執(zhí)行網(wǎng)球比賽.代理人的目標是他們必須在彼此之間反彈球而不丟球或?qū)⑶蛩统鼋缤?

      圖3 網(wǎng)球比賽的過程

      圖4 Fast-PPO和其他算法的獎勵比較

      通過數(shù)千萬次運行,我們獲得了兩個對手的分數(shù),如圖5所示.事實上,這場比賽不符合網(wǎng)球比賽的規(guī)則.因為在這項任務(wù)中,即使一方失去了分數(shù),游戲仍然會繼續(xù).我們只想收集由PPO和Fast-PPO算法控制的AI分數(shù).然而,我們可以保證Fast-PPO的得分總是高于PPO,這意味著用Fast-PPO方法訓練的大腦比用PPO方法訓練的大腦更有效.因此有理由相信我們提出的方法(Fast-PPO)是一種更好的方法來訓練NPC的動作游戲.

      圖5 Fast-PPO和PPO之間的得分比較

      4.3 在Corgi中應(yīng)用Fast-PPO

      為了證明我們提出的Fast-PPO算法的普遍性,本部分進行了更為復(fù)雜的訓練任務(wù).實際上,使用強化學習訓練NPC的過程與訓練幼犬的方式非常相似.我們將向小狗展示一根棍子然后扔出棍子.起初,小狗會四處游蕩,不知道該做什么,直到它最終拿起木棍并將其帶回來,并獲得零食作為獎勵.經(jīng)過幾次訓練后,小狗知道獲得回擊的策略是獲得獎勵的最佳方式,然后繼續(xù)這樣做.這是如何加強NPC行為學習的過程.每當NPC正確完成任務(wù)時,我們都會給NPC一個獎勵.通過多次模擬游戲,NPC構(gòu)建了一個內(nèi)部模型,以最大化獎勵并實現(xiàn)所需的行為.因此,我們不必為每次觀察NPC創(chuàng)建和維持低級別的行動.我們只需要在任務(wù)正確完成時提供高級獎勵,然后NPC就可以學習適當?shù)牡图壭袨?每次Corgi執(zhí)行動作時,我們都會向代理提供獎勵,獎勵設(shè)置為:

      (21)

      圖6 Corgi撿木棍的過程

      訓練Corgi有以下四條規(guī)則:

      ·獲得獎勵:當柯基犬走向目標時,我們會給予獎勵.

      ·時間懲罰:我們將給予Corgi每項行動的定額罰款.通過這種方式,Corgi將學會盡快檢索棍子并避免過多的時間懲罰.

      ·輪換罰分:如果Corgi旋轉(zhuǎn)太多次,將受到懲罰.實際上,如果小狗變得太多,它就會暈眩.為了讓游戲更加逼真,Corgi在轉(zhuǎn)彎過快時會受到懲罰.

      ·目標獎勵:Corgi到達目標位置時會獲得獎勵.

      使用Fast-PPO和其他算法的訓練犬的結(jié)果如圖7所示.訓練之后,byte文件用于控制Corgi的行為.獲取木棍的過程如圖6所示.它顯示了使用Fast-PPO訓練的Corgi完成棺材棒的任務(wù).我們可以清楚地看到,柯基犬正朝著目標穩(wěn)步前進,并且很好地完成了這項任務(wù).

      圖7 柯基犬的獎勵圖

      5 結(jié) 論

      在本文中,我們提出了一種新的方法,即具有最佳基線的Fast-PPO,與PPO算法相比,它有助于提高正確方向的策略更新速度.通過比較獎勵,我們提出的方法(Fast-PPO)通過實驗證明了具有比主流強化學習算法更好的性能.從理論上講,我們提出的方法比其他強化學習算法具有更高的回報和更快的收斂速度.此外,以Unity中的環(huán)境為例,應(yīng)用Fast-PPO算法,無論環(huán)境是連續(xù)的還是離散的,所有結(jié)果都表明了Fast-PPO算法在游戲中控制NPC的良好性能.

      猜你喜歡
      基線梯度函數(shù)
      一個改進的WYL型三項共軛梯度法
      二次函數(shù)
      第3講 “函數(shù)”復(fù)習精講
      適用于MAUV的變基線定位系統(tǒng)
      二次函數(shù)
      航天技術(shù)與甚長基線陣的結(jié)合探索
      科學(2020年5期)2020-11-26 08:19:14
      函數(shù)備考精講
      一種自適應(yīng)Dai-Liao共軛梯度法
      一類扭積形式的梯度近Ricci孤立子
      一種改進的干涉儀測向基線設(shè)計方法
      宁德市| 甘洛县| 黑山县| 资兴市| 永寿县| 胶南市| 巴彦县| 阿巴嘎旗| 汝阳县| 张掖市| 济阳县| 陕西省| 新疆| 英吉沙县| 白山市| 铁力市| 年辖:市辖区| 固镇县| 新河县| 青神县| 喀喇沁旗| 临朐县| 丘北县| 海宁市| 南开区| 德州市| 涟源市| 柏乡县| 上蔡县| 恩施市| 长顺县| 福鼎市| 江永县| 昆明市| 武邑县| 宣威市| 封丘县| 马鞍山市| 龙泉市| 迭部县| 罗平县|