郭坤 武曲 張義
摘要:目前應(yīng)用于機械臂控制中有許多不同的算法,如傳統(tǒng)的自適應(yīng)PD控制、模糊自適應(yīng)控制等,這些大多需要基于數(shù)學(xué)模型。也有基于強化學(xué)習(xí)的控制方法,如:DQN(Deep Q Network)、Sarsa等。但這些強化學(xué)習(xí)算法在連續(xù)高維的動作空間中存在學(xué)習(xí)效率不高、回報獎勵設(shè)置困難、控制效果不佳等問題。論文對基于PPO(Proximal Policy Optimization近端策略優(yōu)化)算法實現(xiàn)任意位置的機械臂抓取應(yīng)用進(jìn)行研究,并將實驗數(shù)據(jù)與Actor-Critic(演員-評論家)算法的進(jìn)行對比,驗證了使用PPO算法的控制效果良好,學(xué)習(xí)效率較高且穩(wěn)定。
關(guān)鍵詞:強化學(xué)習(xí);機械臂;近端策略優(yōu)化算法;Actor-Critic算法;離線學(xué)習(xí)
中圖分類號: TP301? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)04-0222-04
Abstract: In manipulator control, there are many different control methods, such as traditional adaptive PD control and fuzzy adaptive control, which are mostly based on mathematical models. There are also control methods based on reinforcement learning, such as DQN (Deep Q Network), Sarsa, etc. However, these reinforcement learning algorithms have some problems such as low learning efficiency, difficulty in setting rewards, and poor control effect in the continuous high-dimensional action space. According to Proximal Policy Optimization algorithm, the application of robot arm grasping at any position is studied, and the experimental data is compared with actor-critic algorithm, which proves that the PPO algorithm has good control effect, high learning efficiency and stability.
Key words: reinforcement learning; robot manipulator; proximal strategy optimization algorithm; Actor - Critic algorithm; offline learning
目前在機器學(xué)習(xí)領(lǐng)域,根據(jù)學(xué)習(xí)系統(tǒng)與環(huán)境交互方式的不同,機器學(xué)習(xí)大致上可分為三種學(xué)習(xí)方法——強化學(xué)習(xí)、監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)[1]。在基于行為的智能機器人控制系統(tǒng)中,機器人是否能夠根據(jù)環(huán)境的變化進(jìn)行有效的行為選擇是提高機器人的自主性的關(guān)鍵問題[2]。隨著信息技術(shù)的發(fā)展,以強化學(xué)習(xí)為代表的智能算法以其自適應(yīng)特性越來越多運用于機器人控制領(lǐng)域[3,4]。其中機械臂控制作為機器人控制的重要模塊發(fā)展迅速,深度強化學(xué)習(xí)(DRL)的出現(xiàn)使得機械臂具備了自主學(xué)習(xí)能力[5],解決了機械臂只能通過固定程序完成任務(wù),在復(fù)雜高維的環(huán)境中無法自適應(yīng)訓(xùn)練學(xué)習(xí)的問題。
在深度強化學(xué)習(xí)中,典型的優(yōu)化策略有深度Q網(wǎng)絡(luò)(DQN)[6] 、深度SARSA(State Action Reward State Action)[7]和彩虹(Rainbow)[8]等。這些方法多用來處理離散動作低維度的問題,無法應(yīng)用于機械臂抓取這類連續(xù)動作。雖然策略梯度(Policy Gradients)、演員-評論家(Actor-Critic)等方法,能應(yīng)用于連續(xù)空間,但基于Actor-Critic算法的近似策略優(yōu)化PPO(Proximal Policy Optimization)方法在處理學(xué)習(xí)率的問題上表現(xiàn)更加優(yōu)異,能更好地應(yīng)用于機械臂控制問題。
1 強化學(xué)習(xí)
強化學(xué)習(xí)是一種無監(jiān)督學(xué)習(xí)方法,Agent 通過與動態(tài)環(huán)境的反復(fù)交互,學(xué)會選擇最優(yōu)或近最優(yōu)的行為以實現(xiàn)其長期目標(biāo)[9]。Sutton 和 Barto 定義了強化學(xué)習(xí)方法的四個關(guān)鍵要素:策略、獎賞函數(shù)、價值函數(shù)、環(huán)境模型[10]。如圖1,Agent通過與Environment反復(fù)交互進(jìn)行學(xué)習(xí),每次交互中Agent采取某種動作傳入Environment,Environment根據(jù)傳入的動作向Agent提供觀測值以及獎勵值,來使Agent做出新的動作。強化學(xué)習(xí)的目的就是Agent通過與環(huán)境的不斷交互,來獲得最優(yōu)的累計獎勵值。
如圖2所示,Agents分為三類,雖然Value-Based的強化學(xué)習(xí)可以有效完成連續(xù)狀態(tài)空間的問題,但它的動作空間仍是離散的,也無法學(xué)習(xí)隨機策略或應(yīng)用到高維空間。而Policy-Based雖然能解決上述問題,但缺點是只能局部收斂且評估策略效率低方差很大。Actor-Critic結(jié)合了前兩種類型的優(yōu)點,通過策略梯度的方法選擇動作,同時也保存在每個狀態(tài)所得到的獎勵。
2 Actor-Critic算法
Actor-Critic算法將Value-Based和Policy-Based結(jié)合,具有Actor和Critic兩種不同的體系,可以看作兩個不同的神經(jīng)網(wǎng)絡(luò)。
此算法的主要思想是不使用reward來評估真實價值函數(shù),而是利用Critic網(wǎng)絡(luò)來評價價值函數(shù),用Policy函數(shù)作為Actor,生成動作與環(huán)境進(jìn)行交互,Critic來評價指導(dǎo)觀察Actor的動作并做評價。Critic的評估action-value函數(shù)是基于[πθ]的近似如公式(1):
其中s為狀態(tài),a為動作,[πθ]代表策略。所以Actor-Critic算法是遵循近似的Policy Gradient(策略梯度)如公式(2):
Critic網(wǎng)絡(luò)需要更新參數(shù)w,Actor網(wǎng)絡(luò)需要更新參數(shù)θ,基本的Actor-Critic算法流程如算法1所示:
算法1 Actor-Critic算法
輸入:[γ,α,β,θ,w]
輸出:optimized[θ,w]
1.Initialize:s,θ
2.Samplea~[πθ]
3.foreachstepdo
4.? Samplerewardr=[Ras];sampletransition[s'?Pas],
5.? Sample action [a'?πθs',a']
6.? [δ=r+γQws',a'-Qws,a]
7.? [θ=θ+α?θlogπθs,aQws,a]
8.? [w←w+βδ?s,a]
9.? [a←a',s←s']
10.end for
結(jié)束算法
Actor-Critic算法成比例的優(yōu)化Critic模型,使它向著TD error(TD誤差)乘以特征的方向(誤差最小化)進(jìn)行優(yōu)化,此處的誤差指估計的價值和執(zhí)行步驟后現(xiàn)實的價值之間的。Actor模型實際決定在環(huán)境中做什么,并向Critic模型認(rèn)為價值高的方向優(yōu)化。
3 PPO(Proximal Policy Optimization近端策略優(yōu)化)算法
Actor-Critic采用在線更新方法,不能經(jīng)驗回訪,PPO(Proximal Policy Optimization近端策略優(yōu)化)基于Actor-Critic算法,應(yīng)用Important-sampling實現(xiàn)離線更新。PPO在每步迭代中都更新新的策略,在保證損失函數(shù)最小的同時減少與上一步策略間差值,所以引用Important-sampling數(shù)學(xué)方法,在有連續(xù)隨機變量x,[px]、[qx]為概率密度,[fx]的期望表示如公式(3)所示:
[pxqx]為Importance Weight,是新舊策略在當(dāng)前狀態(tài)s采取動作a對應(yīng)的概率比。在ppo中的一個回合中不斷重復(fù)對[qx]充分采樣,來改進(jìn)新策略[px],則N回合平均獎勵值的梯度為公式(4):
ppo在更新Actor時,使用clipped surrogate objective的方式,對[pθat|stpθ'at|st]進(jìn)行clip操作,[clippθat|stpθ'at|st,1-?,1+?]([?]為可調(diào)超參數(shù))。
算法2 PPO算法
輸入:[s]環(huán)境狀態(tài)
輸出:a動作
1.Initialize:Actor[A(s∣θA)]網(wǎng)絡(luò)、Critic[C(s,a∣θC)]網(wǎng)絡(luò)、Clip
2.for episode=1 to M do
3.? for t=1 to T do
4.? [at←A(s∣θA)]
5.? ?執(zhí)行[at],獲得單步獎勵[rt]
6.? ?更新Actor網(wǎng)絡(luò)權(quán)重[θA]
7.? ?更新Critic網(wǎng)絡(luò)[θC]
8.? end for
9.end for
4 實驗設(shè)計與實現(xiàn)
4.1 實驗機械臂設(shè)計
本文使用python中pyglot可視化庫來構(gòu)建二維機械臂環(huán)境來實現(xiàn)機械臂抓取控制。仿真環(huán)境參考了周沫凡的 2D機械臂仿真模型[11],在此基礎(chǔ)上對環(huán)境進(jìn)行修改,使其更易于實現(xiàn)PPO的仿真實驗。如圖4所示,以o為中心點建立機械臂初始中心點,實驗中將始終繞o轉(zhuǎn)動,利用三角函數(shù)與設(shè)定L1、L2臂長計算每段手臂4個端點坐標(biāo),以便機械臂隨機生成轉(zhuǎn)動角α、β時記錄對應(yīng)坐標(biāo)。同時環(huán)境每次刷新目標(biāo)位置也隨機生成,實現(xiàn)任意位置的機械臂抓取,不僅豐富訓(xùn)練數(shù)據(jù),也能測試算法的穩(wěn)定性。
4.2 實驗參數(shù)設(shè)置
通過仿真環(huán)境獲取轉(zhuǎn)動角α、β與對應(yīng)坐標(biāo)關(guān)系,向三層全連接神經(jīng)網(wǎng)絡(luò)輸入7維狀態(tài)空間(L1末端與o點水平距離和垂直距離、L2末端與o點水平距離和垂直距離、o點與仿真環(huán)境中心點水平距離和垂直距離、是否達(dá)到目標(biāo)位置),輸出2個動作(關(guān)節(jié)轉(zhuǎn)動角度)。
因為稀疏的回報值學(xué)習(xí)效果很差,所以在設(shè)置獎勵回報時將離散回報值改寫為連續(xù)回報值,當(dāng)機械臂L2末端(x2,y2)離目標(biāo)位置(xo,yo)相對距離越近獎勵值越大,相對距離表示為Dabs=[x2-x02+y2-y02],獎勵回報值公式(5)如下:
4.3實驗效果與分析
實驗效果如圖5所示,在交互界面上可任意移動目標(biāo)位置,機械臂都能準(zhǔn)確地實現(xiàn)快速抓取,說明了PPO有良好的學(xué)習(xí)效果。
在將Actor學(xué)習(xí)率、Critic學(xué)習(xí)率、訓(xùn)練次數(shù)、訓(xùn)練網(wǎng)絡(luò)單次提取的數(shù)據(jù)Batch_size、衰減率等共有參數(shù)均保持相同的情況下,比較 PPO與Actor-Critic深度強化學(xué)習(xí)算法,驗證PPO更適用于機械臂控制。
圖6、7分別表示PPO與Actor-Critic前1000集獎勵函數(shù)圖,雖然顯示兩種算法都能在該環(huán)境中達(dá)到良好學(xué)習(xí)效果,但 PPO能在更少的集數(shù)中取得最更大的獎勵值,與Actor-Critic比較收斂速度提高了27.58%學(xué)習(xí)效率更高,且明顯獲得的獎勵值更高。
圖8表示了兩種算法訓(xùn)練最后100集所用步數(shù),共分為10組對比區(qū)間內(nèi)累計step。Actor-Critic的平均步數(shù)是117.28,PPO的平均步數(shù)是101.96,通過對比發(fā)現(xiàn)PPO所使用的step更少并且數(shù)據(jù)波動浮動相對穩(wěn)定,訓(xùn)練效果更好。
5 結(jié)束語
本文通過實現(xiàn)基于PPO算法的機械臂任意位置抓取,根據(jù)成功訓(xùn)練出的仿真結(jié)果與 Actor-Critic算法實現(xiàn)的數(shù)據(jù)對比,分析應(yīng)用在機械臂實驗中強化學(xué)習(xí)算法效果,驗證了PPO能實現(xiàn)良好的學(xué)習(xí)效果,學(xué)習(xí)效率較高且穩(wěn)定。
參考文獻(xiàn):
[1] 褚建華. Q-learning強化學(xué)習(xí)算法改進(jìn)及其應(yīng)用研究[D].北京化工大學(xué),2009.
[2] 秦志斌,錢徽,朱淼良.自主移動機器人混合式體系結(jié)構(gòu)的一種Multi-agent實現(xiàn)方法[J].機器人,2006,28(5):478-482.
[3] Liu Q, Zhai J W, Zhang Z C, et al. Review of deepreinforcement learning[J]. Chinese Journal of Computers,2018(1): 1-27.
[4] Wang S, Chaovalitwongse W, Babuska R. MachineLearning Algorithms in Bipedal Robot Control[J]. IEEETransactions on Systems Man & Cybernetics Part C, 2012,42(5):728-743.
[5] 劉全,翟建偉,章宗長,等.深度強化學(xué)習(xí)綜述[J].計算機學(xué)報,2018,41(1):1-27.
[6] Mnih V,Kavukcuoglu K,Silver D,et al.Human-levelcontrol through deep reinforcement learning[J].Nature,2015,518(7540):529-533.
[7] Zhao D,Wang H,Shao K,et al.Deep reinforcementlearning with experience replay based on sarsa[C]//Proceedings of the 2016 IEEE Symposium Series on Computational Intelligence(IEEE-SSCI),2016:1-6.
[8] Hessel M,Modayil J,Van Hasselt H,et al.Rainbow:combining improvements in deep reinforcement learning[J].arXiv preprint arXiv:1710.02298,2017.
[9] Wang Z,Shi Z,Li Y,et al. The optimization of path planning for multi-robot system using Boltzmann Policy based Q-learning algorithm[C]/ /2013 IEEE International Conferenceon Robotics and Biomimetics(ROBIO). Shenzhen,2013:1199 -1204.
[10] Sutton, R, Barto, A. Reinforcement Learning: An Introduction[M]. MIT Press, 1998.
[11] Morvanzhou. Train a robot arm from scratch[Z]. 2017: [2018-10-4].
【通聯(lián)編輯:唐一東】