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