季 挺,張 華
(南昌大學(xué) 江西省機(jī)器人與焊接自動化重點實驗室,南昌 330031)
近似策略迭代強化學(xué)習(xí)通過近似計算更新當(dāng)前的值函數(shù)評估策略,并采用貪心方法來改進(jìn)策略,其是解決傳統(tǒng)強化學(xué)習(xí)“維數(shù)災(zāi)難”問題的主要方法之一。文獻(xiàn)[1]證明近似策略迭代方法的收斂性,并提出LSPI算法,但該算法為離線算法,計算量較大、收斂速度較慢。文獻(xiàn)[2]提出online LSPI算法,以解決LSPI的在線計算問題。文獻(xiàn)[3]在online LSPI的基礎(chǔ)上提出BLSPI算法,該算法進(jìn)一步提高了樣本利用率,并在一定程度上降低了計算量,但其依然未能徹底解決在線近似策略迭代強化學(xué)習(xí)收斂速度較慢的問題。此外,在以上算法中,強化學(xué)習(xí)的結(jié)構(gòu)、參數(shù)均依賴先驗知識或通過反復(fù)試湊來確定,使算法不具備自動構(gòu)建的能力。
并行強化學(xué)習(xí)是解決經(jīng)典強化學(xué)習(xí)算法收斂速度較慢問題的途徑之一。本文將并行強化學(xué)習(xí)與近似策略迭代強化學(xué)習(xí)相結(jié)合,提出一種非參數(shù)化近似策略迭代并行強化學(xué)習(xí)算法NPAPI-P。將NPAPI-P 算法應(yīng)用于一級倒立擺平衡控制問題,并通過仿真驗證該算法的有效性和快速收斂能力。
并行強化學(xué)習(xí)與多智能體強化學(xué)習(xí)對目標(biāo)任務(wù)分而治之,通過強化學(xué)習(xí)單元(以下簡稱為學(xué)習(xí)單元)相互協(xié)作提升學(xué)習(xí)性能的思路不同,其學(xué)習(xí)單元之間互不影響、各自獨立地在整個狀態(tài)空間進(jìn)行學(xué)習(xí)[4-5],通過對各單元經(jīng)驗地融合來加快學(xué)習(xí)的收斂速度。
文獻(xiàn)[4]對并行強化學(xué)習(xí)進(jìn)行了開創(chuàng)性的研究,其采用delta規(guī)則實現(xiàn)單個學(xué)習(xí)單元,采用經(jīng)驗加權(quán)法進(jìn)行各單元的融合及融合信息的反饋,它的研究成果被用于解決多臂老虎機(jī)問題。文獻(xiàn)[6]遵循文獻(xiàn)[4]的研究思路,將并行強化學(xué)習(xí)用于解決海星機(jī)器人沿單軸前進(jìn)的問題,所不同的是,其采用異步更新的方式實現(xiàn)各學(xué)習(xí)單元的融合以及融合信息反饋。文獻(xiàn)[7]依舊采用文獻(xiàn)[4]的思路,將并行強化學(xué)習(xí)用于解決網(wǎng)格尋徑問題,所不同的是,其學(xué)習(xí)單元采用貝葉斯強化學(xué)習(xí)算法實現(xiàn)。文獻(xiàn)[8]提出的并行強化學(xué)習(xí)方法采用Q學(xué)習(xí)算法實現(xiàn)單個學(xué)習(xí)單元,采用D-S證據(jù)理論對各單元進(jìn)行融合,融合信息直接反饋成為各單元的策略,同時提出加速比和效率的概念作為評價并行強化學(xué)習(xí)方法性能的指標(biāo),其研究成果被用于解決網(wǎng)格尋徑和機(jī)器人避障問題。文獻(xiàn)[9]提出的并行強化學(xué)習(xí)方法采用Q學(xué)習(xí)算法實現(xiàn)單個學(xué)習(xí)單元,采用全局Q表融合各單元的信息,且融合信息不反饋至單個單元,該算法被用來解決交通控制問題并取得了較好的效果。文獻(xiàn)[10-11]提出的并行強化學(xué)習(xí)方法采用近似SARSA(λ)算法實現(xiàn)單個學(xué)習(xí)單元,采用部分參數(shù)異步更新的方式實現(xiàn)各單元的融合以及融合信息的反饋,其研究成果用于解決網(wǎng)格尋徑、Mountain Car和倒立擺控制問題。 文獻(xiàn)[12]提出的并行強化學(xué)習(xí)方法采用BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)單個Q學(xué)習(xí)單元,采用D-S證據(jù)理論對各單元進(jìn)行融合,其研究成果被用于解決路徑規(guī)劃問題。
綜上所述,近年來,對并行強化學(xué)習(xí)的研究較少,多數(shù)只用于解決小規(guī)模、離散狀態(tài)和動作空間中的問題,且并行學(xué)習(xí)單元數(shù)量均需人工確定。
NPAPI-P算法網(wǎng)絡(luò)結(jié)構(gòu)由狀態(tài)輸入層、學(xué)習(xí)單元層、票箱層和動作輸出層構(gòu)成,如圖1所示。
圖1 NPAPI-P算法網(wǎng)絡(luò)結(jié)構(gòu)
Σk=ΣPOk
(1)
動作輸出層輸出當(dāng)前狀態(tài)S′下應(yīng)執(zhí)行的動作A′,A′采用貪心策略定義為:
(2)
NPAPI-P算法運行時,所有單元獨立地在整個狀態(tài)動作空間中進(jìn)行學(xué)習(xí),且各單元在每次嘗試結(jié)束后進(jìn)行一次聯(lián)合嘗試,以加快強化學(xué)習(xí)的收斂速度。NPAPI-P算法具體步驟如下:
步驟1設(shè)置強化學(xué)習(xí)的允許誤差率ε。
步驟2通過學(xué)習(xí)單元構(gòu)建樣本采集過程,以確定單元數(shù)量,通過學(xué)習(xí)單元自動構(gòu)建過程來生成所有學(xué)習(xí)單元。
步驟3各單元通過學(xué)習(xí)單元自主學(xué)習(xí)過程分別進(jìn)行一次嘗試,若有單元嘗試成功,則該單元策略為算法整體策略,算法結(jié)束。否則執(zhí)行步驟4。
步驟4所有單元進(jìn)行一次聯(lián)合嘗試。聯(lián)合嘗試通過式(1)融合所有學(xué)習(xí)單元的策略,通過式(2)選擇算法在當(dāng)前狀態(tài)S′下應(yīng)執(zhí)行的動作A′,但并不更新各學(xué)習(xí)單元的參數(shù)。若聯(lián)合嘗試成功,則各單元聯(lián)合策略為算法整體策略,算法結(jié)束。否則執(zhí)行步驟3。
在并行算法中,并行單元數(shù)量決定了算法的加速比和效率,若并行單元數(shù)量較少會使得加速比較低,若數(shù)量過多則容易導(dǎo)致算法效率下降,因此,選擇合適的學(xué)習(xí)單元數(shù)量是并行強化學(xué)習(xí)的關(guān)鍵。本文依據(jù)強化學(xué)習(xí)的允許誤差率ε,通過學(xué)習(xí)單元構(gòu)建樣本采集過程以確定強化學(xué)習(xí)單元的數(shù)量。學(xué)習(xí)單元構(gòu)建樣本采集過程分為局部過程和總體過程2個方面。
局部過程依據(jù)預(yù)先設(shè)置的ε為單個單元自動采集用于單元構(gòu)建的狀態(tài)樣本,其步驟如下:
步驟1采用隨機(jī)策略運行一次目標(biāo)系統(tǒng)。設(shè)置采樣次數(shù)tm=1,目標(biāo)系統(tǒng)運行次數(shù)tr=1,采樣緩存長度L=step,其中,step為目標(biāo)系統(tǒng)本次運行持續(xù)的時間步數(shù)。將本次采樣得到的樣本集合記為samtm,通過式(3)和式(4)分別計算其均值meantm及其在各維分量上的平均絕對離差向量madtm。
(3)
(4)
其中,ns為samtm中樣本的數(shù)量,abs()用于計算向量在各維分量上的絕對值。
步驟2開始單次采樣。tm=tm+1,初始化單次采樣,新增非重復(fù)樣本數(shù)量ln=0,使temp=samtm-1。
步驟3采用隨機(jī)策略運行一次目標(biāo)系統(tǒng)。tr=tr+1,收集本次運行采集到的樣本集合Tsam,同時更新step和rep的值,其中,rep為Tsam與temp中重復(fù)樣本的數(shù)量。
步驟4使temp=temp∪Tsam,更新ln與L的值。
ln=ln+step-rep
(5)
(6)
若ln 步驟5通過式(3)和式(4)計算meantm和madtm。 步驟6通過式(7)計算samtm相對samtm-1的變化率rate,rate隨samtm對樣本空間覆蓋率的提升而逐漸減小。 rate=‖(rate1,rate2,…,ratei,…,raten)‖2 (7) fbcl={fci,bci,fli,bli} fc=meantm-madtm bc=meantm+madtm fl=meantm-1-madtm-1 bl=meantm-1+madtm-1 步驟7若rate<ε,獲得一個單元的構(gòu)建樣本集sam=samtm,局部過程結(jié)束。否則,執(zhí)行步驟2。 總體過程依據(jù)ε來確定學(xué)習(xí)單元數(shù)量,其步驟如下: 步驟1新增一個學(xué)習(xí)單元,使單元數(shù)NU=1。通過局部過程獲取其構(gòu)建樣本集sam,并初始化總體樣本集SAMNU=sam,通過式(3)和式(4)分別計算SAMNU的均值MEANNU及其在各維分量上的平均絕對離差向量MADNU。 步驟2新增一個學(xué)習(xí)單元,使單元數(shù)NU=NU+1。通過局部過程獲取其構(gòu)建樣本集sam,使SAMNU=SAMNU-1∪sam。 步驟3通過式(3)和式(4)計算MEANNU和MADNU。 步驟4通過式(7)計算SAMNU相對SAMNU-1的變化率RATE,RATE隨SAMNU對樣本空間覆蓋率的提升而逐漸減小。 步驟5若RATE<ε,學(xué)習(xí)單元不再增加,總體過程結(jié)束。否則,執(zhí)行步驟2。 學(xué)習(xí)單元由在線近似策略迭代強化學(xué)習(xí)算法實現(xiàn),其網(wǎng)絡(luò)結(jié)構(gòu)由狀態(tài)輸入層、Q值函數(shù)逼近器和動作選擇器組成,如圖2所示。 圖2 學(xué)習(xí)單元網(wǎng)絡(luò)結(jié)構(gòu) Q值函數(shù)逼近器由基于RBF(Radial Basis Function )的線性逼近結(jié)構(gòu)實現(xiàn),狀態(tài)動作對(S,A)對應(yīng)的近似Q值計算公式如式(8)所示。 Q(S,A)=ΦT(S)ω(A) (8) 其中,Φ(S)=(Φ1(S),Φ2(S),…,Φj(S),…,Φm(S))T為狀態(tài)S在各基函數(shù)下的歸一化隸屬度向量,其元素定義為: (9) 其中,φ(S)=(φ1(S),φ2(S),…,φj(S),…,φm(S))T為逼近器的狀態(tài)基函數(shù)向量,其值為狀態(tài)S在各狀態(tài)基函數(shù)下的隸屬度,m為φ(S)的維數(shù)。φ(S)的元素使用RBF函數(shù)定義為: (10) 其中,μj=(μ1j,μ2j,…,μij,…,μnj)T和δj=(δ1j,δ2j,…,δij,…,δnj)T分別為基函數(shù)φj的中心和半徑,μij和δij分別為φj在第i維狀態(tài)分量上的中心和半徑。 ω=(ω1,ω2,…,ωj,…,ωm)T為逼近器的插值參數(shù)向量,其意義為在各狀態(tài)基函數(shù)中心執(zhí)行所選動作A的Q值,ω的元素利用插值方法[13]定義為: (11) (12) 其中,η為Q值函數(shù)逼近器的平均學(xué)習(xí)率,由學(xué)習(xí)單元的初始狀態(tài)基函數(shù)構(gòu)建過程確定,Δ為TD誤差,定義為: (13) 其中,rt為即時獎勵,γ為折扣率。 狀態(tài)基函數(shù)向量φ的參數(shù)和維數(shù)、插值參數(shù)向量ω的維數(shù)由Q值函數(shù)逼近器自動構(gòu)建過程依據(jù)采樣樣本確定,并在學(xué)習(xí)過程中自適應(yīng)調(diào)整。 動作選擇器采用貪心策略定義為: (14) 其中,POk是學(xué)習(xí)單元對在當(dāng)前狀態(tài)S下執(zhí)行動作ak的投票結(jié)果,其計算表達(dá)式為: (15) 學(xué)習(xí)單元自動構(gòu)建過程的核心是構(gòu)建Q值函數(shù)逼近器,其由核心狀態(tài)聚類生成過程和初始狀態(tài)基函數(shù)構(gòu)建過程組成。 核心狀態(tài)聚類生成過程基于相對準(zhǔn)則和輪廓指標(biāo),采用K均值聚類算法實現(xiàn),其目的是為構(gòu)建初始狀態(tài)基函數(shù)提供初值,具體步驟如下: (16) 步驟2遍歷num,對當(dāng)前遍歷的聚類數(shù)numv運行K均值聚類算法,得到聚類結(jié)果clusv及其相應(yīng)的聚類有效性valv,valv采用輪廓指標(biāo)[15]計算,如下: (17) 步驟3若num遍歷結(jié)束,則通過式(18)輸出sam的最佳聚類結(jié)果CLU,并將CLU作為核心狀態(tài)聚類,執(zhí)行步驟4。否則,執(zhí)行步驟2。 CLU=clusID (18) 步驟4計算CLU中每個聚類的中心和半徑,并將其存入核心聚類中心矩陣cen和半徑矩陣rad中。CLU中單個聚類C的中心Cc為C中所有元素的均值,通過式(19)計算;半徑Cr為C中每個元素與其中心Cc在各維分量上的距離均值向量,通過式(20)計算。 (19) (20) 其中,Cz為聚類C中的一個元素,nc為聚類C中元素的數(shù)量。 狀態(tài)基函數(shù)的形式如式(10)所示。為提升狀態(tài)基函數(shù)對樣本空間的覆蓋率,使其盡可能完整地反映狀態(tài)空間的分布,本文提出一種以樣本空間完全覆蓋為目標(biāo)的模糊估計方法,以計算逼近器的狀態(tài)基函數(shù)和平均學(xué)習(xí)率。具體步驟如下: 步驟1利用核心聚類中心矩陣cen和半徑矩陣rad初始化基函數(shù)向量φ的中心和半徑。 步驟2遍歷構(gòu)建樣本集sam。通過歐氏距離獲取與當(dāng)前遍歷樣本Csam最鄰近的基函數(shù)φnear。若Csam在各維上的分量均落在φnear內(nèi)部,則繼續(xù)執(zhí)行步驟2;否則,結(jié)束本次遍歷,執(zhí)行步驟3。若sam中所有樣本均在最鄰近基函數(shù)內(nèi)部,則表明狀態(tài)基函數(shù)完成了對樣本空間的完全覆蓋,執(zhí)行步驟5。 步驟3新增一個狀態(tài)基函數(shù),將其中心初始化為Csam,并加入φ中。 步驟4通過式(21)和式(22)調(diào)整φ中所有基函數(shù)的中心和半徑,執(zhí)行步驟2。 (21) (22) 其中,behj為樣本(sam)h到狀態(tài)基φj的歸一化隸屬度。 步驟5通過式(23)計算學(xué)習(xí)單元的強化學(xué)習(xí)率η,初始狀態(tài)基函數(shù)構(gòu)建過程結(jié)束。 (23) 其中,X=(X1,X2,…,Xj,…,Xm)T為各基函數(shù)的構(gòu)建樣本數(shù)向量,其元素表示為: 學(xué)習(xí)單元自主學(xué)習(xí)過程的重點是實現(xiàn)逼近器狀態(tài)基函數(shù)和參數(shù)的自適應(yīng)調(diào)整。其中,參數(shù)的自適應(yīng)調(diào)整如式(12)所示,狀態(tài)基函數(shù)的自適應(yīng)調(diào)整如下。 狀態(tài)基函數(shù)的自適應(yīng)調(diào)整步驟為: 步驟1若輸入狀態(tài)S屬于狀態(tài)基函數(shù)的構(gòu)建樣本集sam,則繼續(xù)執(zhí)行步驟1判定下一輸入狀態(tài);否則,將S加入構(gòu)建樣本集sam,執(zhí)行步驟2。 步驟2通過歐式距離獲取與S最鄰近的基函數(shù)φnear。 步驟3若φnear為初始狀態(tài)基函數(shù),TD誤差率RΔ>ε(RΔ的計算如式(24)),且S的任意一維分量落在φnear外部,則新增狀態(tài)基函數(shù)φnew,并初始化其中心μnew=S,半徑δnew=δnear,執(zhí)行步驟4;否則直接執(zhí)行步驟4。 (24) 步驟4采用delta規(guī)則調(diào)整狀態(tài)基函數(shù)的中心和半徑,對φj有: μj=μj+ηRΔBEj(S-μj) (25) δj=δj+ηRΔBEj(abs(S-μj)-δj) (26) 本次調(diào)整結(jié)束后執(zhí)行步驟1,開始下一次狀態(tài)基函數(shù)調(diào)整過程。 步驟1學(xué)習(xí)單元開始一次嘗試。初始化當(dāng)前狀態(tài)St=S0。若本次嘗試未結(jié)束,循環(huán)執(zhí)行下列步驟: 1)使用式(10)計算St在各狀態(tài)基函數(shù)的隸屬度向量φ(St)。使用式(9)計算St在各基函數(shù)下的歸一化隸屬度向量Φ(St)。 2)使用式(15)計算當(dāng)前狀態(tài)下執(zhí)行動作ak的投票結(jié)果,使用式(14)選擇當(dāng)前狀態(tài)下應(yīng)采取的動作At,獲取即時獎勵r,且環(huán)境轉(zhuǎn)移到下一狀態(tài)St+1。 3)依據(jù)式(12)調(diào)整Q值函數(shù)逼近器參數(shù)向量進(jìn)行策略改進(jìn),依據(jù)狀態(tài)基函數(shù)的自適應(yīng)調(diào)整過程更新構(gòu)建樣本集和狀態(tài)基函數(shù)。設(shè)置當(dāng)前狀態(tài)St=St+1。 步驟2若本次嘗試成功,則學(xué)習(xí)單元學(xué)習(xí)結(jié)束。否則,執(zhí)行步驟1再次進(jìn)行嘗試。 從以上步驟可以看出,單個學(xué)習(xí)單元在學(xué)習(xí)階段的計算復(fù)雜度主要由策略評估復(fù)雜度O(Km)、策略選擇復(fù)雜度O(K)、策略改進(jìn)復(fù)雜度O(K+Km+K2m)以及基函數(shù)調(diào)整復(fù)雜度O(m)組成,即總體復(fù)雜度為O(2K+(K2+2K+1)m),遠(yuǎn)小于其他近似策略迭代強化學(xué)習(xí)算法的時間復(fù)雜度O(m3)[3],說明該過程可以更好地滿足在線計算的要求。 一級倒立擺平衡控制問題是強化學(xué)習(xí)的標(biāo)準(zhǔn)測試問題,本文通過對該問題的仿真實驗來驗證NPAPI-P算法在不同測試條件下的有效性。另外,由于本文提出的學(xué)習(xí)單元由近似策略迭代強化學(xué)習(xí)算法實現(xiàn),因此采用文獻(xiàn)[1]方法,如式(27)所示,建立倒立擺系統(tǒng)模型。 (27) 仿真時間步長設(shè)置為0.1 s,折扣率γ=0.95。在仿真中,若擺桿偏離垂直方向角度超過90°,則失??;若擺桿在上述約束條件下保持指定時間步長不倒,則成功。相應(yīng)的即時獎勵r計算表達(dá)式如式(28)所示。 (28) 加速比和效率是并行算法的重要評價指標(biāo),NPAPI-P算法每次運行時的加速比JSB和效率XL分別由式(29)和式(30)定義。 (29) (30) 其中,NLT為各學(xué)習(xí)單元平均收斂嘗試次數(shù),NPT為并行學(xué)習(xí)收斂嘗試次數(shù),NL為學(xué)習(xí)單元數(shù)量。由上述定義可知,若并行算法不具備加速效果,則JSB∈[0,1],XL∈[0,1/NL],其中,1/NL稱為臨界效率。 設(shè)置實驗?zāi)繕?biāo)為倒立擺運行3 000時間步長不倒,實驗最大嘗試次數(shù)為300,當(dāng)ε=0.1時,離散動作集合分別取2個離散值{-50 N,+50 N}、3個離散值{-50 N,0,+50 N}、4個離散值{-50 N,-25 N,+25 N,+50 N}、5個離散值{-50 N,-25 N,0,+25 N,+50 N}、6個離散值{-50 N,-33 N,-16 N,+16 N,+33 N,+50 N}、7個離散值{-50 N,-33 N,-16 N,0,+16 N,+33 N,+50 N}、8個離散值{-50 N,-37.5 N,-25 N,-12.5 N,+12.5 N,+25 N,+37.5 N,+50 N}、9個離散值{-50 N,-37.5 N,-25 N,-12.5 N,0,+12.5 N,+25 N,+37.5 N,+50 N}、10個離散值{-50 N,-40 N,-30 N,-20 N,-10 N,+10 N,+20 N,+30 N,+40 N,+50 N}、11個離散值{-50 N,-40 N,-30 N,-20 N,-10 N,0,+10 N,+20 N,+30 N,+40 N,+50 N}。在以上離散動作集合取值下分別進(jìn)行100次獨立仿真運算,實驗結(jié)果如表1所示。 表1 在不同離散動作集合取值下的實驗結(jié)果 從表1可以看出,不論離散動作集合如何取值,NPAPI-P算法均具有較快的收斂速度,能夠在較短嘗試次數(shù)內(nèi)學(xué)習(xí)到一級倒立擺系統(tǒng)的平衡控制策略,并且在保持較高加速比(與1比較)的同時具有較高的效率(與平均臨界效率比較),從而驗證了NPAPI-P算法在離散動作集合不同取值下的有效性。 接下來,設(shè)置實驗?zāi)繕?biāo)為倒立擺運行3 000時間步長不倒,實驗最大嘗試次數(shù)為300,當(dāng)離散動作集合取3個離散值{-50 N,0,+50 N}、ε取0.5、0.1、0.05、0.01,分別進(jìn)行100次獨立仿真運算,實驗結(jié)果如表2所示。 表2 在不同ε取值下的實驗結(jié)果 從表2可以看出,當(dāng)ε取0.5時算法失敗,這是由于ε過大,導(dǎo)致學(xué)習(xí)單元構(gòu)建樣本集無法反映樣本空間的主要分布特征。當(dāng)ε滿足學(xué)習(xí)單元構(gòu)建要求時,隨著ε減小,NPAPI-P算法能夠更快地學(xué)習(xí)到一級倒立擺系統(tǒng)的平衡控制策略,并且在保持較高加速比(與1比較)的同時具有較高的效率(與平均臨界效率比較),從而驗證了NPAPI-P算法在ε合理取值下的有效性。在不同ε取值下NPAPI-P算法加速比與效率的關(guān)系如圖3所示。 圖3 在不同ε取值下算法加速比與效率的關(guān)系 從圖3可以看出,當(dāng)ε確定后,NPAPI-P算法的學(xué)習(xí)單元數(shù)量(擬合直線的斜率)基本維持穩(wěn)定,且隨著ε減小,學(xué)習(xí)單元數(shù)量逐漸增加。其中,當(dāng)ε=0.1時,平均單元數(shù)量為3.4個,當(dāng)ε=0.05時,平均單元數(shù)量為4.5個,當(dāng)ε=0.01時,平均單元數(shù)量為10.6個。結(jié)合表2中的相關(guān)數(shù)據(jù)可以看出,相較于已有文獻(xiàn)將并行單元數(shù)量人為確定為10個~20個的方法,NPAPI-P算法能夠依據(jù)實際情況更好地平衡加速比和效率間的關(guān)系。在不同ε取值下NPAPI-P算法的加速比與收斂速度的關(guān)系如圖4所示。 圖4 在不同ε取值下算法加速比與收斂速度的關(guān)系 從圖4可以看出,當(dāng)ε在合理范圍內(nèi)取值時,NPAPI-P算法都趨向于在較高加速比下快速收斂,且ε越小,這一趨勢越明顯,表明該算法具有良好地并行加速性能。 最后,設(shè)置實驗?zāi)繕?biāo)為倒立擺運行3 000時間步長不倒,實驗最大嘗試次數(shù)為300,當(dāng)離散動作集合取3個離散值{-50 N,0,+50 N}、ε取0.1時,進(jìn)行100次獨立仿真運算,得到算法的學(xué)習(xí)性能如圖5所示。 圖5 NPAPI-P算法學(xué)習(xí)性能 在圖5中,算法學(xué)習(xí)成功的嘗試次數(shù)最小為2次,最大為14次。選擇倒立擺進(jìn)行2次嘗試即成功的典型學(xué)習(xí)過程,其學(xué)習(xí)成功的曲線如圖6所示。從圖6可以看出,擺桿的擺動角度基本穩(wěn)定在[-5°,+5°],角速度基本穩(wěn)定在[-60°/s,+60°/s]。以上數(shù)據(jù)驗證了NPAPI-P算法在控制能力上的有效性。 圖6 ε=0.1時3個離散動作的典型學(xué)習(xí)成功曲線 在線近似策略迭代強化學(xué)習(xí)算法的優(yōu)劣一般通過不同參數(shù)條件下獲得控制策略的速度進(jìn)行評價,收斂速度越快,算法性能越好。將NPAPI-P算法在ε取0.5、0.1、0.05和0.01時進(jìn)行100次獨立仿真運算的結(jié)果,與典型在線近似策略迭代強化學(xué)習(xí)算法online LSPI、BLSPI的最優(yōu)實驗結(jié)果[3]進(jìn)行比較,3種算法在不同嘗試次數(shù)下的平均平衡時間步長如表3所示。其中,LSTD-Q和LSPE-Q是BLSPI算法采用2種不同策略的評估算法,后者與前者的主要區(qū)別在于處理每個樣本數(shù)據(jù)后都要更新參數(shù)。 表3 3種算法在不同條件下的平均平衡時間步長對比 從表3可以看出,當(dāng)ε≤0.1時,由于學(xué)習(xí)單元構(gòu)建樣本集能夠反映一級倒立擺樣本空間的主要分布特征,此時,NPAPI-P算法可在50次嘗試內(nèi)完全學(xué)習(xí)到一級倒立擺的平衡控制策略。針對相同的學(xué)習(xí)目標(biāo),BLSPI算法平均需要200次嘗試才能完成,online LSPI算法平均需要300次嘗試才能完成。由此可以得出,NPAPI-P算法的學(xué)習(xí)速度明顯快于online LSPI算法和BLSPI算法。 3種算法的參數(shù)數(shù)量情況如表4所示,從表4可以看出,NPAPI-P算法只需指定強化學(xué)習(xí)允許誤差率ε即可實現(xiàn)算法的自主構(gòu)建和學(xué)習(xí),而BLSPI算法需要手工確定4+m個參數(shù),online-LSPI算法需要手工確定5+m個參數(shù),其中,m為狀態(tài)基的數(shù)量。由此可見,NPAPI-P算法完全實現(xiàn)了強化學(xué)習(xí)算法的非參數(shù)化,其易用性和自學(xué)習(xí)能力均超過online LSPI算法和BLSPI算法。 表4 3種算法的參數(shù)數(shù)量對比 本文提出一種非參數(shù)化近似策略迭代并行強化學(xué)習(xí)算法NPAPI-P。該算法只需指定強化學(xué)習(xí)的允許誤差率,就能完全自主地構(gòu)建、調(diào)整學(xué)習(xí)單元,進(jìn)而快速學(xué)習(xí)到解決目標(biāo)問題的控制策略。一級倒立擺平衡控制實驗比較收斂速度、加速比、效率和控制精度等指標(biāo),結(jié)果表明,相對online-LSPI算法和BLSPI算法,本文算法在不同離散動作和強化學(xué)習(xí)允許誤差率下均具有有效性,且收斂速度更快。針對NPAPI-P算法收斂性的理論證明,將是今后的研究重點。3.2 總體過程
4 學(xué)習(xí)單元結(jié)構(gòu)
4.1 狀態(tài)輸入層
4.2 Q值函數(shù)逼近器
4.3 動作選擇器
5 學(xué)習(xí)單元自動構(gòu)建過程
5.1 核心狀態(tài)聚類生成
5.2 初始狀態(tài)基函數(shù)構(gòu)建
6 學(xué)習(xí)單元自主學(xué)習(xí)過程
6.1 狀態(tài)基函數(shù)的自適應(yīng)調(diào)整
6.2 學(xué)習(xí)單元的學(xué)習(xí)步驟
7 一級倒立擺平衡控制實驗
7.1 實驗描述
7.2 評價指標(biāo)
7.3 實驗結(jié)果
7.4 與典型在線近似策略迭代強化學(xué)習(xí)算法對比
8 結(jié)束語