胡春陽, 王恒, 史豪斌
(1.湖北文理學(xué)院 計算機工程學(xué)院, 湖北 襄陽 441053; 2.西北工業(yè)大學(xué) 計算機學(xué)院, 陜西 西安 710129)
傳統(tǒng)的機械臂控制方法幾乎都是按照人為預(yù)設(shè)軌跡來完成特定的任務(wù)目標(biāo)。近些年來隨著人工智能技術(shù)的發(fā)展,將人工智能技術(shù)應(yīng)用在機械臂控制,實現(xiàn)復(fù)雜動態(tài)環(huán)境下的機械臂智能控制成為一個熱門的研究方向。
智能控制的目標(biāo)就是構(gòu)建出一個能夠自主學(xué)習(xí)適應(yīng)新環(huán)境的系統(tǒng),強化學(xué)習(xí)[1]憑借著其自身特點是實現(xiàn)這一目標(biāo)的關(guān)鍵技術(shù)。深度神經(jīng)網(wǎng)絡(luò)和強化學(xué)習(xí)相結(jié)合組成的深度強化學(xué)習(xí)在游戲決策任務(wù)上已經(jīng)取得了非常大的成功。Google DeepMind團隊最早提出深度神經(jīng)網(wǎng)絡(luò)與強化學(xué)習(xí)相結(jié)合的深度Q網(wǎng)絡(luò)[1]在Atari游戲決策控制上獲得了出色的表現(xiàn),從此開啟了深度強化學(xué)習(xí)的時代。其后又逐漸涌現(xiàn)了能夠處理連續(xù)動作空間問題的深度確定性策略梯度算法(DDPG)[3]、近端策略優(yōu)化算法(PPO)[4]、異步優(yōu)勢演員評論家算法(A3C)[5]等強化學(xué)習(xí)算法模型。
深度強化學(xué)習(xí)在游戲行為決策任務(wù)上表現(xiàn)得非常成功,并增強了強化學(xué)習(xí)的可解釋性[6],很大一部分決定性因素在于游戲環(huán)境中獎勵函數(shù)通常能夠直接給出,并且能夠直接用來優(yōu)化。但是在機械臂控制環(huán)境中獎勵設(shè)置往往是當(dāng)智能體完成某一個任務(wù)目標(biāo)時,環(huán)境給予一個正反饋,其他情況下沒有反饋。由于智能體起初是隨機地在環(huán)境中進行探索,絕大多數(shù)探索步驟沒有獎勵回饋,強化學(xué)習(xí)模型訓(xùn)練時很難收斂,并且當(dāng)智能體所處的環(huán)境發(fā)生動態(tài)變化時會極大加劇這一狀況。為了解決以上2個問題,Schaul等提出了通用價值函數(shù)逼近器[8],算法將目標(biāo)狀態(tài)作為計算獎勵的中間媒介,可以根據(jù)不同的目標(biāo)對當(dāng)前的狀態(tài)進行估計,獲得狀態(tài)-目標(biāo)值函數(shù)V(s,g|θ),使得智能體學(xué)習(xí)到從任意狀態(tài)s到達任意目標(biāo)g的策略。受到統(tǒng)一函數(shù)逼近器算法的啟發(fā),Andrychowicz等提出了后視經(jīng)驗重現(xiàn)算法(HER)[9],算法可以與任意的離線策略強化學(xué)習(xí)算法模型相結(jié)合,從失敗中進行學(xué)習(xí),通過不斷采樣新目標(biāo)g′來解決稀疏獎勵問題,同時也能夠使得模型最終在環(huán)境E中學(xué)習(xí)到從任意狀態(tài)s到達任意目標(biāo)g的策略。Hester等提出了基于示范數(shù)據(jù)的深度Q網(wǎng)絡(luò)算法模型(DQfD)[10],解決了復(fù)雜動態(tài)變化環(huán)境和稀疏獎勵導(dǎo)致傳統(tǒng)強化學(xué)習(xí)算法難以收斂的問題。Vecerik等提出了基于示范數(shù)據(jù)的深度確定性策略梯度算法模型[11]填充了DQfD不能處理連續(xù)動作空間的缺陷,在機械臂控制的仿真實驗中有著不錯的表現(xiàn)。但是這些算法依賴于精確的環(huán)境模型,不能對所處環(huán)境自適應(yīng)感知,并且在大規(guī)模狀態(tài)空間的訓(xùn)練過程中隨機探索方案已經(jīng)不太可行。
針對以上問題,本文采用YOLO[12]目標(biāo)檢測算法感知當(dāng)前環(huán)境狀態(tài),將環(huán)境中目標(biāo)感知模塊與控制系統(tǒng)解耦,直接利用機械臂上方的攝像設(shè)備捕捉并計算獲得拾取目標(biāo)位置信息,接下來收集一系列仿真環(huán)境下人類操控機械臂的行為作為示范數(shù)據(jù),在仿真環(huán)境中對機械臂控制強化學(xué)習(xí)算法模型進行監(jiān)督學(xué)習(xí)預(yù)訓(xùn)練,即:模仿人類行為學(xué)習(xí)到部分控制策略[13-14],在此基礎(chǔ)上結(jié)合DDPG與HER算法,對仿真環(huán)境中的機械臂進行控制,最終實現(xiàn)端到端的機器視覺-強化學(xué)習(xí)控制模型。
(1)
在強化學(xué)習(xí)算法中使用狀態(tài)值函數(shù)Vπ(s)來表示在當(dāng)前狀態(tài)s按照策略π進行探索的期望回報,該值函數(shù)具體定義如(2)式所示
(2)
深度強化學(xué)習(xí)算法即深度學(xué)習(xí)與強化學(xué)習(xí)相結(jié)合的產(chǎn)物,DQN[1]是一個非常具有代表性的非基于模型的深度強化學(xué)算法,主要用來解決智能體在離散動作空間的決策問題。DQN中定義了一個策略網(wǎng)絡(luò)Qe和一個目標(biāo)網(wǎng)絡(luò)QT,策略網(wǎng)絡(luò)用來估計狀態(tài)行為值函數(shù)Q*,行為決策方式如(3)式所示
(3)
實際訓(xùn)練中通常使用ε貪心策略給予智能體一定的隨機探索概率,使得智能體每次以概率ε隨機選擇動作,以(1-ε)的概率策略πQe選擇確定動作a。訓(xùn)練時在t時刻進行探索產(chǎn)生一條經(jīng)驗e=(st,at,rt,st+1)存儲在經(jīng)驗池中,為了使得訓(xùn)練樣本間盡可能相互獨立,網(wǎng)絡(luò)訓(xùn)練采用隨機策略從經(jīng)驗池中抽取一個批次數(shù)據(jù)進行訓(xùn)練。定義損失函數(shù):L=E(Q(st,at|θe)-yt)2,yt的定義如(4)式所示
yt=rt+γQT(st+1,at+1;θT)
(4)
式中
(5)
由于E[max(Q)]>maxE[Q],上述估計Q值的方式會產(chǎn)生過估計,Hasselt等在文獻[7]中重新對(5)式的行為選擇重新進行定義
(6)
在學(xué)習(xí)率為α?xí)r損失函數(shù)L的梯度以及參數(shù)θe的優(yōu)化如下式
θL=E[Q(st,at|θe)-yt)θQ(st,at;θ)]
(7)
θ←θ-aθL
(8)
根據(jù)時序差分更新策略,經(jīng)過t輪時間迭代后執(zhí)行一次目標(biāo)網(wǎng)絡(luò)參數(shù)θT的更新:θT←θe。
傳統(tǒng)的深度強化學(xué)習(xí)算法在解決較為簡單的決策任務(wù)上具有非常好的效果,但是處理復(fù)雜的控制任務(wù)時通常會存在稀疏獎勵的問題,導(dǎo)致模型難以收斂。因此通常在處理復(fù)雜的決策控制問題時會結(jié)合HER算法來加速模型收斂速度。
端到端的機械臂自主視覺感知控制算法主要由視覺感知算法模塊和決策控制算法模塊組成。
1) 視覺感知算法模塊
視覺感知模塊使用YOLO-v5算法,不同于其他的兩階段系列目標(biāo)檢測算法,YOLO將物體檢測作為一個回歸問題求解,算法將輸入圖像M劃分成n×n的網(wǎng)格,每個網(wǎng)格負(fù)責(zé)識別目標(biāo)中心落在其中的對象,經(jīng)過一次神經(jīng)網(wǎng)絡(luò)F的計算推理,便能輸出圖象中所有物體的位置信息O、類別信息C以及置信概率P,M×F→(O,C,P)。這是一個典型的結(jié)構(gòu)化機器學(xué)習(xí)算法,根據(jù)模型結(jié)構(gòu),相應(yīng)的其損失函數(shù)也包括三部分:坐標(biāo)誤差coordError、IOU誤差iouError以及分類誤差classError。損失函數(shù)L的定義如(9)式所示
(9)
在實驗的單個目標(biāo)識別中,分類誤差classError表示目標(biāo)和背景分類誤差。視覺感知網(wǎng)絡(luò)使用在COCO數(shù)據(jù)集上預(yù)訓(xùn)練的權(quán)重來初始化,在此基礎(chǔ)上來訓(xùn)練我們標(biāo)注的機械臂識別目標(biāo)數(shù)據(jù)集。
通過目標(biāo)識別能夠確定當(dāng)前目標(biāo)相對于攝像機的具體位置信息(x1,y1,C)其中C為高度固定常量,即載物臺相對于機械臂夾口初始狀態(tài)的高度。接下來使用透視變換算法將其轉(zhuǎn)換為目標(biāo)相對于載物臺具體的坐標(biāo)信息(x2,y2,C)。透視變換是把一個圖像投影到一個新的視平面過程,是一個非線性變換,包括:將一個二維坐標(biāo)系轉(zhuǎn)換為三維坐標(biāo)系,然后將三維坐標(biāo)系投影到新的二維坐標(biāo)系。變換過程如(10)式所示。
[x2,y2,C]=[x1,y1,C]×T
(10)
式中,T為變換矩陣
(11)
給出4個對應(yīng)像素的坐標(biāo)點即可求出變換矩陣T。變換結(jié)果如圖1所示。
圖1 透視變換得到目標(biāo)相對于載物臺的準(zhǔn)確XOY平面坐標(biāo)信息
2) 決策控制算法模塊
決策控制模塊采用DDPG強化學(xué)習(xí)算法,為加速DDPG算法的收斂速度,采用模仿學(xué)習(xí)的方式首先從人類手動控制的經(jīng)驗數(shù)據(jù)中進行預(yù)學(xué)習(xí)訓(xùn)練,學(xué)習(xí)到部分初始的控制策略,接下來使用DDPG算法讓機械臂自主的在環(huán)境中學(xué)習(xí)。DDPG有2個網(wǎng)絡(luò)結(jié)構(gòu):一個行為網(wǎng)絡(luò)(Actor)π1:S→A和一個評估網(wǎng)絡(luò)(Critic)π2:S×A→R,類似于DQN,Actor網(wǎng)絡(luò)由決策估計μ(s|θμ)和決策期望μ(s|θμ′)組成,Critic網(wǎng)絡(luò)由估計網(wǎng)絡(luò)Q(s,a|θQ)和目標(biāo)Q(s,a|θQ′)組成。Critic網(wǎng)絡(luò)的工作就是評估在當(dāng)前狀態(tài)s,Actor網(wǎng)絡(luò)所做出的決策a的好壞。對于任意當(dāng)前輸入狀態(tài)st,通過Actor網(wǎng)絡(luò)選取行為at=μ(s|θμ)+Nt, 其中Nt為隨機噪聲,執(zhí)行此行為獲得獎勵rt,接著再使用Critic網(wǎng)絡(luò)對當(dāng)前狀態(tài)st采取行為at進行打分評估,以此來不斷優(yōu)化Actor網(wǎng)絡(luò)與Critic網(wǎng)絡(luò),完成整體DDPG算法的優(yōu)化收斂。優(yōu)化目標(biāo)如(12)式所示
(12)
優(yōu)化過程如圖2所示。
圖2 DDPG算法整體優(yōu)化過程
定義DDPG的Critic網(wǎng)絡(luò)損失函數(shù)L如(13)式所示
L=E(Q(st,at|θQ)-yt)2
(13)
式中
yt=rt+γQ′(st+1,μ′(st+1|θμ′)|θQ′
(14)
Actor網(wǎng)絡(luò)使用梯度上升的方式優(yōu)化θμ,θμ梯度求解方式如(15)式所示。
經(jīng)歷k輪優(yōu)化之后,使用軟更新[3]的策略優(yōu)化目標(biāo)網(wǎng)絡(luò)中的參數(shù),如(16)~(17)式所示。
在訓(xùn)練過程為了解決稀疏獎勵問題,引入了HER算法,DDPG網(wǎng)絡(luò)輸入的不僅僅是當(dāng)前時刻的狀態(tài)st,還包括了要實現(xiàn)的目標(biāo)gt,Actor網(wǎng)絡(luò)策略被重新定義為:π:S×g→A,當(dāng)且僅當(dāng)機械臂執(zhí)行Actor網(wǎng)絡(luò)輸出的行為at到達的下一個狀態(tài)st+1與gt相等時環(huán)境會給予一個獎勵。Critic網(wǎng)絡(luò)策略重新定義為:π:S×A×g→R。機械臂每歷經(jīng)一輪探索,HER算法便會從歷史經(jīng)驗池中進行一次目標(biāo)采樣,產(chǎn)生m條新的經(jīng)驗,并且按照(18)式的規(guī)則重新計算獎勵獎勵值r,將其放到經(jīng)驗池中。最終使得智能體學(xué)到了從任意狀態(tài)s到達任意目標(biāo)g的策略,且解決了訓(xùn)練過程中稀疏獎勵的問題。算法具體流程如算法1所示。
(18)
算法1IL-DDPG-HER算法
1. 初始化DDPG參數(shù):θ,θ′,μ,μ′;
初始化YOLO網(wǎng)絡(luò)參數(shù)m;
初始化迭代參數(shù)n1,n2,n3,n4;
初始化經(jīng)驗回放池R;
2.創(chuàng)建YOLO目標(biāo)定位訓(xùn)練數(shù)據(jù)集S;
創(chuàng)建模仿學(xué)習(xí)示范數(shù)據(jù)集D;
∥訓(xùn)練YOLO目標(biāo)定位神經(jīng)網(wǎng)絡(luò)
3. for episode=1 ton1do
4.隨機從樣本集S中抽取一個批次b;
5.訓(xùn)練YOLO網(wǎng)絡(luò)參數(shù)m;
6.end for;
∥模仿學(xué)習(xí)部分
7. for episode=1 ton2do
8.隨機從樣本D中抽取一個批次b;
9.監(jiān)督學(xué)習(xí)訓(xùn)練DDPG網(wǎng)絡(luò)參數(shù)θ,μ;
10.end for;
11.模仿學(xué)習(xí)訓(xùn)練完成得到初始策略A;
∥強化學(xué)習(xí)訓(xùn)練部分
12.for episode=1 ton3do
13. fort=1 toT-1 do
14.攝像設(shè)備捕捉輸入圖像i;
15.YOLO網(wǎng)絡(luò)定位目標(biāo)所在圖像位置;
16.透視變化算法獲取目標(biāo)坐標(biāo)信息st;
17.使用策略A獲取行為at=A(st‖g);
18.執(zhí)行at得到新的狀態(tài)st+1,并獲得獎勵值rt;
19.存儲(st‖g,at,rt,st+1‖g)到R中;
20.HER算法重新采樣新目標(biāo),計算獎勵值存儲到R中;
21.end for;
22. fort=0 ton4do
23.從經(jīng)驗回放池R中隨機采樣一個批次B;
24.在B上對策略A進行優(yōu)化;
25. end for;
26. end for;
為驗證提出的端到端的識別-控制算法模型,采用OpenAI Gym Robotics的FetchPickAndPlace-v1機械臂三維空間控制實驗仿真環(huán)境,如圖3所示。實驗首先通過人為控制機械臂完成相應(yīng)的拾取-放置任務(wù),收集人類操作經(jīng)驗來讓機械臂預(yù)學(xué)習(xí),接下來按照算法流程的獎勵函數(shù)設(shè)計讓其進行自主學(xué)習(xí)探索,最終學(xué)習(xí)到自主決策的能力。整個流程可解耦為自主視覺感知和強化學(xué)習(xí)控制兩部分。
圖3 機械臂三維空間控制仿真環(huán)境
仿真環(huán)境中攝像設(shè)備捕捉到載物臺的圖像數(shù)據(jù),接下來借助Roboflow工具標(biāo)注創(chuàng)建YOLO目標(biāo)檢測網(wǎng)絡(luò)訓(xùn)練所需數(shù)據(jù)集,在仿真環(huán)境中訓(xùn)練了黑色塊目標(biāo)檢測,經(jīng)過對象識別與定位訓(xùn)練之后,算法模型便能夠?qū)崿F(xiàn)一般環(huán)境下黑塊目標(biāo)的識別與定位,最后通過透視變化算法即可獲取物體在載物臺上具體位置坐標(biāo)信息,如圖4所示。由此以來拾取對象位置信息不再依賴于仿真環(huán)境主動提供,直接由系統(tǒng)目標(biāo)識別檢測模塊獲得。實驗在YOLOv5-s的預(yù)訓(xùn)練權(quán)重基礎(chǔ)上對我們所識別定位的對象進行訓(xùn)練,在100個批次訓(xùn)練后mAP值、準(zhǔn)確率、召回率上都能夠達到較好的預(yù)期效果,如圖5所示。
圖4 YOLO目標(biāo)檢測輸入數(shù)據(jù)
圖5 目標(biāo)定位損失、目標(biāo)識別損失、精確度、召回率、校驗集目標(biāo)定位損失、校驗集目標(biāo)識別損失,mAP 0.5以及mAP∈[0.5,0.95]
D={(s1,a1),(s2,a2),(s3,a3),…}
繼而將狀態(tài)s作為輸入特征,動作a作為輸出的預(yù)測值,在連續(xù)狀態(tài)空間的機械臂控制任務(wù)上當(dāng)成一個回歸問題來求解,使得模型在使用強化學(xué)習(xí)算法自主學(xué)習(xí)之前已經(jīng)具備部分先驗知識,以此來加速強化學(xué)習(xí)算法的收斂速度。最后讓機械臂自主的開始在環(huán)境中探索,不斷學(xué)習(xí)強化自身決策控制能力。實驗對比分析了IL-DDPG-HER算法和DDPG-HER算法訓(xùn)練智能體執(zhí)行任務(wù)的成功率,如圖6所示??梢缘玫絀L-DDPG-HER算法執(zhí)行拾取-放置任務(wù)上的成功率收斂速度更快。
圖6 機械臂拾取-放置任務(wù)IL-DDPG-HER與DDPG-HER成功率實驗對比分析
本文通過將計算機視覺技術(shù)與強化學(xué)習(xí)相結(jié)合,使得智能體具備自主感知真實環(huán)境的能力,這在機械臂拾取-放置任務(wù)有著非常重要的意義,尤其是在適應(yīng)動態(tài)變化環(huán)境上,機器視覺-強化學(xué)習(xí)的端到端控制模型讓智能體感知環(huán)境的能力與智能決策能力解耦,在應(yīng)對復(fù)雜變化的環(huán)境時,可直接對環(huán)境感知網(wǎng)絡(luò)進行重新訓(xùn)練,而決策網(wǎng)絡(luò)無需做任何改動。并且隨著計算機視覺技術(shù)的成熟發(fā)展,視覺感知模型的訓(xùn)練已經(jīng)不再是往日的時間“消耗戰(zhàn)”,往往能夠在普通設(shè)備上稍作訓(xùn)練即可滿足普通的目標(biāo)定位任務(wù)。
未來的視覺感知研究可以加入雙目甚至多目攝像頭,或者是其它的深度感知傳感器,來完成3D空間任意位置的目標(biāo)感知,結(jié)合已經(jīng)訓(xùn)練好的強化學(xué)習(xí)模型,最終讓智能體完成更加復(fù)雜的控制決策任務(wù)。