蘇 杰, 劉光宇, 暨仲明, 黃雨夢(mèng)
(1.杭州電子科技大學(xué) 自動(dòng)化學(xué)院(人工智能學(xué)院),浙江 杭州 310018;2.杭州電子科技大學(xué) 浙江省物聯(lián)感知與信息融合重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310018)
由于全球人口老齡化和新型冠狀病毒(COVID—19)的爆發(fā),以及腦卒中、外傷、運(yùn)動(dòng)損傷增加,醫(yī)療資源短缺,通過(guò)對(duì)上肢進(jìn)行康復(fù)訓(xùn)練來(lái)恢復(fù)身體功能的需求不斷增加[1]。
Rahman M H等人[2]研究了4個(gè)自由度的MARSE[3]機(jī)器人外骨骼的遠(yuǎn)程操作,采用了非線性計(jì)算力矩控制和線性比例積分微分控制技術(shù)來(lái)達(dá)到對(duì)期望軌跡的跟蹤。Riani A等人[4]針對(duì)非線性系統(tǒng)未知但有界的動(dòng)態(tài)不確定性,提出了一種基于魯棒自適應(yīng)積分的終端滑??刂品椒āi Z J等人[5]提出了一種結(jié)合高增益觀測(cè)器的自適應(yīng)神經(jīng)網(wǎng)絡(luò)控制,在沒(méi)有速度測(cè)量的情況下驅(qū)動(dòng)機(jī)器人跟蹤期望的軌跡。He W等人[6]提出了狀態(tài)反饋和輸出反饋控制策略,設(shè)計(jì)了一個(gè)干擾觀測(cè)器來(lái)在線抑制未知干擾,實(shí)現(xiàn)軌跡跟蹤。Obayashi C等人[7]提出了一種用戶自適應(yīng)的機(jī)器人訓(xùn)練系統(tǒng)模型,該系統(tǒng)根據(jù)用戶的表現(xiàn)調(diào)整其輔助力量,以防止用戶過(guò)于依賴機(jī)器人協(xié)助。隨著人工智能的發(fā)展,AlphaGo[8]引起了強(qiáng)化學(xué)習(xí)的研究熱潮。強(qiáng)化學(xué)習(xí)的優(yōu)勢(shì)在于,和傳統(tǒng)監(jiān)督學(xué)習(xí)相比不需要大量數(shù)據(jù)集,而是使用“獎(jiǎng)懲”方式進(jìn)行反饋,這恰好符合機(jī)械臂的控制[9]中數(shù)據(jù)集較難獲得的情況。深度神經(jīng)網(wǎng)絡(luò)能夠通過(guò)不斷訓(xùn)練完成對(duì)控制策略的非線性擬合,滿足機(jī)械臂突發(fā)關(guān)節(jié)故障時(shí)高維度、多變量、難預(yù)測(cè)的特點(diǎn)。
本文針對(duì)六軸上肢外骨骼機(jī)械臂末端軌跡運(yùn)動(dòng)任務(wù),將研究分為算法改進(jìn)和實(shí)驗(yàn)仿真兩部分。先用D-H方法對(duì)上肢外骨骼機(jī)械臂建模,再通過(guò)TensorFlow搭建深度強(qiáng)化學(xué)習(xí)算法框架。由于機(jī)械臂是連續(xù)的控制任務(wù),舍棄深度Q網(wǎng)絡(luò)(deep Q network,DQN)[10]算法而采用更為合適的深度確定性策略梯度(deep deterministic policy gradient,DDPG)[11]算法,在此基礎(chǔ)上,通過(guò)優(yōu)先經(jīng)驗(yàn)回放和分區(qū)獎(jiǎng)勵(lì)(prioritized experience relay and district awards,PERAD)優(yōu)化改進(jìn)此算法框架。最后通過(guò)一個(gè)三軸機(jī)械臂驗(yàn)證上述算法改進(jìn)的成功性。實(shí)驗(yàn)結(jié)果表明:改進(jìn)后的算法具有更快的收斂速度,速度提升了約9.2 %,具有較強(qiáng)的魯棒性和泛化性。
本文采用機(jī)構(gòu)參數(shù)的D-H定義方法對(duì)六自由度上肢外骨骼機(jī)械臂進(jìn)行了運(yùn)動(dòng)學(xué)建模[12],通過(guò)機(jī)構(gòu)桿系的齊次變化來(lái)對(duì)來(lái)連桿坐標(biāo)系進(jìn)行設(shè)定,如圖1所示,其中,0系為基坐標(biāo)系。并進(jìn)行相關(guān)計(jì)算與分析。
圖1 上肢外骨骼機(jī)械臂D-H建模
根據(jù)圖1所示的連桿參數(shù)以及關(guān)節(jié)角度,建立DH表,如表1所示。4個(gè)參數(shù)分別為αi,ai,di,θi,其中,αi為Zi-1和Zi的角度,即扭轉(zhuǎn)角;ai為Zi-1和Zi的距離,即連桿長(zhǎng)度;di為Xi-1和Xi的距離,即連桿偏移量;θi為Xi-1和Xi的夾角,即關(guān)節(jié)角度。
(1)
(2)
DDPG算法流程如圖2所示。
圖2 DDPG算法流程
定義策略網(wǎng)絡(luò)actor network和評(píng)價(jià)網(wǎng)絡(luò)critic network的參數(shù)分別為θμ,θQ。動(dòng)作目標(biāo)函數(shù)可表示為
Q(st)=Eπ(Gt|st=Ωt-Ωnml,at=a0)
(3)
初始化Target critic network和Target actor network 的θ′和μ′,網(wǎng)絡(luò)的權(quán)值參數(shù)為
θQ′←θQ,θμ′←θμ
(4)
執(zhí)行動(dòng)作at,記錄獎(jiǎng)勵(lì)值rt,當(dāng)前狀態(tài)st和下一個(gè)狀態(tài)st+1,將其存儲(chǔ)在經(jīng)驗(yàn)池(si,ai,ri,si+1),并從中隨機(jī)取樣N個(gè)作為actor network和critic network訓(xùn)練數(shù)據(jù)。
DDPG分別為action network和value netword創(chuàng)建2個(gè)神經(jīng)網(wǎng)絡(luò),即online network和target network。
action network的更新方式如下
(5)
value network的更新方式如下
(6)
在critic中,更新critic network且最小化損失函數(shù)Loss定義為
(7)
用梯度策略算法更新action network
(8)
用soft update更新target network
θQ′←τθQ+(1-τ)θQ′,θμ′←τθμ+(1-τ)θμ′
(9)
強(qiáng)化學(xué)習(xí)算法在與深度神經(jīng)網(wǎng)絡(luò)結(jié)合后,需要大量樣本進(jìn)行網(wǎng)絡(luò)訓(xùn)練。如果直接使用稀疏獎(jiǎng)勵(lì)樣本進(jìn)行學(xué)習(xí),可能無(wú)法提升策略,甚至?xí)?dǎo)致神經(jīng)網(wǎng)絡(luò)的訓(xùn)練發(fā)散。針對(duì)在稀疏獎(jiǎng)勵(lì)條件下,存在時(shí)間差分誤差(TD-errors)[13]絕對(duì)值較小的問(wèn)題,TD-errors的定義式為
(10)
本文采用優(yōu)先經(jīng)驗(yàn)回放(prioritized experience replay,PER)法[14],優(yōu)先采樣具有較大TD-errors的樣本,旨在提高樣本的利用效率,減少智能體探索環(huán)境的時(shí)間。
在經(jīng)驗(yàn)重放機(jī)制中,它隨機(jī)使用固定數(shù)量經(jīng)驗(yàn)池存儲(chǔ)的先前經(jīng)驗(yàn),在一個(gè)時(shí)間步長(zhǎng)內(nèi)區(qū)更新神經(jīng)網(wǎng)絡(luò),當(dāng)前時(shí)間步長(zhǎng)的動(dòng)作公式為
at=μ(st|θμ)+Nt
(11)
本文選擇經(jīng)驗(yàn)的絕對(duì)時(shí)延誤差|δ|作為評(píng)價(jià)經(jīng)驗(yàn)價(jià)值的指標(biāo)。經(jīng)驗(yàn)樣本j的TD-errors|δ|的計(jì)算如下
δj=r(st,at)+γQ′(st+1,at+1,w)-Q(st,at,w)
(12)
式中Q′(st+1,at+1,w)為w由參數(shù)化的Target action network。
采樣概率[15]的定義可以被看作是一種在選擇經(jīng)驗(yàn)時(shí)添加隨機(jī)因素的方法,因?yàn)榧词勾嬖谝恍┑蜁r(shí)延誤差的經(jīng)驗(yàn),但仍然有被重放的概率,這保證了采樣經(jīng)驗(yàn)的多樣性,有助于防止神經(jīng)網(wǎng)絡(luò)過(guò)度擬合。
將經(jīng)驗(yàn)樣本j的概率[16]定義為
(13)
式中 rank(j)為第j個(gè)經(jīng)驗(yàn)樣本在全體經(jīng)驗(yàn)樣本中所排的位數(shù),按照對(duì)應(yīng)的|δ|由大到小排列;參數(shù)α控制優(yōu)先級(jí)程度。
本文中第二處對(duì)DDPG深度強(qiáng)化學(xué)習(xí)算法的改進(jìn)為分區(qū)獎(jiǎng)勵(lì)(district awards,DA)函數(shù)的設(shè)置。針對(duì)經(jīng)典強(qiáng)化學(xué)習(xí)算法中,獎(jiǎng)勵(lì)函數(shù)設(shè)置單一問(wèn)題,即二值化的獎(jiǎng)勵(lì)函數(shù),會(huì)存在智能體探索時(shí)間過(guò)長(zhǎng)、神經(jīng)網(wǎng)絡(luò)訓(xùn)練失敗等問(wèn)題。本文以三軸機(jī)械臂模型為訓(xùn)練對(duì)象,如圖3,提出了基于軸距dBO,dCO,dDO的分區(qū)獎(jiǎng)勵(lì)函數(shù),旨在提高智能體減少對(duì)于環(huán)境探索的時(shí)間和增強(qiáng)穩(wěn)定性,更快達(dá)到收斂。設(shè)計(jì)思路為:在區(qū)域4時(shí),由于機(jī)械臂極大地偏移了目標(biāo),相對(duì)應(yīng)地加大“懲罰”,當(dāng)越接近目標(biāo)時(shí),持續(xù)給一個(gè)較小的“懲罰”,直到給出一個(gè)較大的正向獎(jiǎng)勵(lì)。以三軸dBO,dCO,dDO之和的獎(jiǎng)勵(lì)作為引導(dǎo)項(xiàng),在分區(qū)獎(jiǎng)勵(lì)設(shè)置合理的基礎(chǔ)上,如表1,有效提升訓(xùn)練速度,精準(zhǔn)到達(dá)目標(biāo)處。
圖3 三軸機(jī)械臂模型
表1 分區(qū)獎(jiǎng)勵(lì)值
改進(jìn)后的PREDA-DDPG算法的偽代碼如下所示:
PREDA-DDPG算法流程
1.初始化actor-online network、critic-online network的參數(shù),θQ;θμ
2.初始化actor-target network、critic-target network的參數(shù),θQ′;θμ′
3.初始化經(jīng)驗(yàn)池R的大小,設(shè)置為W;
4.初始化最大優(yōu)先級(jí)參數(shù)α;
5.初始化目標(biāo)網(wǎng)絡(luò)更新速度τ;
6.初始化mini-batch的大小為K;
7.for each episode,do;
8. 獲取初始狀態(tài)s0,初始化隨機(jī)噪聲N;
9. fort=1,do;
10. 增加噪聲Nt,actor根據(jù)當(dāng)前策略選擇動(dòng)作at;
11. 根據(jù)已設(shè)置的分區(qū)獎(jiǎng)勵(lì)值表格獲得獎(jiǎng)勵(lì)值rt和新?tīng)顟B(tài)st+1;
12. 將經(jīng)驗(yàn)(st,at,rt,st+1)存儲(chǔ)在經(jīng)驗(yàn)池R中;
13. ift>W,then;
14. forj=1,do;
15. 以采樣概率p(j)來(lái)采樣某一經(jīng)驗(yàn)j;
16. 計(jì)算TD-errors,根據(jù)TD-errors絕對(duì)值的大小更新j的優(yōu)先級(jí);
17. End for;
20. 根據(jù)更新速率τ,更新actor-target network、critic-target network的參數(shù),θQ′;θμ′
21. End for.
22. End for.
23.End for.
本文搭建的仿真軟件環(huán)境是基于Open AI Gym環(huán)境所構(gòu)建的模擬器,由Python語(yǔ)言編寫(xiě),使用OpenGL生成三軸機(jī)械臂模型。使用Python3.7語(yǔ)言在深度學(xué)習(xí)框架TensorFlow2.0—CPU上編寫(xiě)改進(jìn)DDPG算法。
Actor網(wǎng)絡(luò)和Critic網(wǎng)絡(luò)由2層全連接層構(gòu)成。Actor網(wǎng)絡(luò)學(xué)習(xí)率為0.005,Critic網(wǎng)絡(luò)學(xué)習(xí)率為0.005,獎(jiǎng)勵(lì)折扣為0.9,批量處理為32,每輪探索的最大步數(shù)為199,總迭代次數(shù)為2 000次。L2權(quán)重縮減速率是 0.1,目標(biāo)網(wǎng)絡(luò)的更新率為0.01。Actor網(wǎng)絡(luò)和Critic網(wǎng)絡(luò)包括2個(gè)隱含層,第一、二層的隱藏單元分別為300,200。這里從均勻分布中隨機(jī)選擇值作為2個(gè)神經(jīng)網(wǎng)絡(luò)權(quán)重的輸入層。使用Ornstein-Uhlenbeck[17]過(guò)程來(lái)產(chǎn)生噪聲,該噪聲被添加到探索策略中,以幫助智能體徹底探索環(huán)境。重放緩沖區(qū)設(shè)定為5 000。在與環(huán)境交互的過(guò)程中,智能體接收狀態(tài)向量作為觀察,這些狀態(tài)向量是關(guān)節(jié)角度和坐標(biāo)信息的值。在本文中,比較了改進(jìn)前后的DDPG算法在三軸機(jī)械臂軌跡運(yùn)動(dòng)任務(wù)中的的性能表現(xiàn)。仿真平臺(tái)如圖4所示。
圖4 Open AI Gym仿真環(huán)境
如圖5,在相同環(huán)境下,將改進(jìn)后的DDPG算法與原始均勻采樣和歐氏距離作為獎(jiǎng)勵(lì)函數(shù)的DDPG算法作對(duì)比,不難看出,原始算法需要760回合達(dá)到收斂,獎(jiǎng)勵(lì)值穩(wěn)定在95附近。改進(jìn)后的算法在690回合就已達(dá)到收斂。此外,改進(jìn)后的算法在獎(jiǎng)勵(lì)函數(shù)曲線的凸起會(huì)更少,表明其在訓(xùn)練過(guò)程中具有更強(qiáng)的穩(wěn)定性,這是因?yàn)閮?yōu)先經(jīng)驗(yàn)重放傾向于選擇具有中等和高的TD-errors的經(jīng)驗(yàn),它們對(duì)代理的學(xué)習(xí)過(guò)程有很高的價(jià)值,但也并沒(méi)有完全忽略較低的TD-errors的經(jīng)驗(yàn),很大程度上顯示了采樣經(jīng)驗(yàn)的多樣性。
圖5 改進(jìn)前、后的獎(jiǎng)勵(lì)函數(shù)曲線
如圖6,反映的是回合數(shù)與每回合數(shù)所需步數(shù)的關(guān)系,每回合所需步數(shù)越少,則學(xué)習(xí)最優(yōu)策略的效果越好,可以類比于有監(jiān)督學(xué)習(xí)的損失函數(shù)。若在200步內(nèi)未能完成對(duì)目標(biāo)物的探索,則直接進(jìn)行下一回合。在500回合后,很明顯可以看出每回合步數(shù)大幅減少,并在680回合散點(diǎn)多集中于90左右。這表明改進(jìn)后的算法在更短時(shí)間內(nèi)去學(xué)習(xí)到最優(yōu)策略的能力有所提升。
圖6 每回合所需步數(shù)
本文針對(duì)原始DDPG算法在應(yīng)用上肢外骨骼機(jī)械臂軌跡運(yùn)動(dòng)的過(guò)程中,會(huì)存在獎(jiǎng)勵(lì)函數(shù)曲線的凸起,收斂性能慢等問(wèn)題,提出了將優(yōu)先經(jīng)驗(yàn)回放與分區(qū)獎(jiǎng)勵(lì)結(jié)合的DDPG算法,該方法更加細(xì)化獎(jiǎng)勵(lì)區(qū)間且根據(jù)TD-errors的大小選擇采樣經(jīng)驗(yàn),使它們能在訓(xùn)練中發(fā)揮更大的作用,以此提升算法的收斂速度。將算法運(yùn)用于三軸機(jī)械臂的目標(biāo)探索實(shí)驗(yàn)當(dāng)中,比較驗(yàn)證算法的性能,實(shí)驗(yàn)結(jié)果表明:改進(jìn)后的算法大大縮短了總訓(xùn)練時(shí)間,并且學(xué)習(xí)過(guò)程更加穩(wěn)定,優(yōu)于原始 DDPG 算法,同時(shí)也為解決上肢外骨骼機(jī)械臂的軌跡運(yùn)動(dòng)問(wèn)題提供了新的視角,為后期的研究提供了基礎(chǔ)。