廖登宇,張 震,趙德京,崔浩巖
(1.青島大學(xué)自動化學(xué)院,山東青島 266071;2.山東省工業(yè)控制重點實驗室,山東青島 266071)
移動機器人在復(fù)雜環(huán)境中進(jìn)行路徑規(guī)劃是完成協(xié)作搬運[1-2]的關(guān)鍵。傳統(tǒng)的路徑規(guī)劃算法如A*算法[3]、遺傳算法[4]、蟻群算法[5]等在多機器人場景下無法保證得到最優(yōu)路徑。強化學(xué)習(xí)[6-8]是一種馬爾可夫決策過程(Markov Decision Process,MDP)優(yōu)化方法。智能體僅通過與環(huán)境的交互試錯獲得最優(yōu)策略。該文將參與協(xié)作搬運任務(wù)的機器人看作智能體,為每個機器人設(shè)計了回報函數(shù),由此建立了隨機博弈[9-10];并提出一種新的多智能體深度強化學(xué)習(xí)(Multi-Agent Deep Reinforcement Learning,MADRL)[11-12]算法進(jìn)行求解,得到其搬運時間最短的路徑。
將每個參與搬運的機器人看為是一個智能體,機器人協(xié)作搬運任務(wù)示意圖如圖1 所示。
圖1 機器人協(xié)作搬運任務(wù)示意圖
其中,數(shù)字標(biāo)號①、②表示兩個機器人,實心矩形代表目標(biāo),帶有斜杠的陰影方塊代表障礙物,Home 是一個3×1 的區(qū)域。該任務(wù)的目的是規(guī)劃兩臺機器人的行動路線,使其以最短的搬運時間準(zhǔn)確抓取貨物后將其運輸?shù)紿ome 區(qū)域。
機器人前往下一網(wǎng)格作為動作,在該任務(wù)中每個機器人有左、右、上、下和靜止五個動作及靜止、抓取左邊、抓取右邊三個抓取狀態(tài)。機器人協(xié)作搬運任務(wù)的移動規(guī)則定義如下:兩個機器人必須同時移動。若其中一個發(fā)生碰撞,則另一個將靜止不動;只有兩個機器人同時一左一右抓住目標(biāo),才能朝著相同的方向一起移動;在白色區(qū)域,如果兩個機器人朝同一方向移動且沒有發(fā)生碰撞,目標(biāo)成功移動的概率為100%。在3×4 灰色區(qū)域內(nèi),其狀態(tài)轉(zhuǎn)移為非確定性的狀態(tài)轉(zhuǎn)移,機器人有50%的概率成功移動。
回報函數(shù)的定義如下:如果一個機器人抓住目標(biāo),它將獲得+1 的立即回報;如果目標(biāo)到達(dá)Home 區(qū)域,每個機器人將獲得+100 的立即回報;如果目標(biāo)在灰色陰影區(qū)域移動,每個智能體將獲得0 的立即回報,如果目標(biāo)未在灰色陰影區(qū)域移動,每個智能體將獲得-4 的立即回報;在其他情況下,每個智能體都會獲得-1 的立即回報。
該文基于QTRAN[13]算法,提出一種合作型MADRL算法QTRAN Plus,對聯(lián)合動作Q 值函數(shù)進(jìn)行值分解,使用混合網(wǎng)絡(luò)和智能體Q 值函數(shù)Qi(si,ai)逼近聯(lián)合動作Q 值函數(shù),其計算過程如圖2 所示。
圖2 Q′jt(s,a)值分解示意圖
其中,圖2(a)展示了混合網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu),圖2(b)展示了帶有混合網(wǎng)絡(luò)的聯(lián)合動作Q 值網(wǎng)絡(luò)的整體架構(gòu)是圖2(b)中用混合網(wǎng)絡(luò)和智能體Q 值網(wǎng)絡(luò)逼近得到的聯(lián)合動作的Q 值函數(shù)。為了用逼近Qjt(s,a),因此在使用Lopt和Lnopt學(xué)習(xí)時,通過固定的Qjt(s,a)來穩(wěn)定學(xué)習(xí)。用來表示固定的Qjt(s,a),即使用損失函數(shù)更新參數(shù)時,不更新帶有“”標(biāo)記的網(wǎng)絡(luò)。和QTRAN 算法中用所有智能體Q 值函數(shù)簡單加和逼近聯(lián)合動作Q 值函數(shù)相比,采用混合網(wǎng)絡(luò)提高了逼近能力,因而更有可能提高算法的優(yōu)化能力。
在集中訓(xùn)練階段,有兩個主要目標(biāo)需要訓(xùn)練。一個是聯(lián)合動作Q 值函數(shù)Qjt(s,a),另一個是過渡后的聯(lián)合動作Q 值函數(shù)。QTRAN Plus 中損失函數(shù)設(shè)計如下:
其中,Ltd用于訓(xùn)練聯(lián)合動作Q 值網(wǎng)絡(luò)Qjt(s,a),Lopt和Lnopt用于訓(xùn)練混合網(wǎng)絡(luò)和智能體Q 值網(wǎng)絡(luò),這三個損失函數(shù)是QTRAN 算法中原有的,為了提高算法收斂速度,該文新增了損失函數(shù)Lmix,Lmix、Lopt和Lnopt共同用于訓(xùn)練混合網(wǎng)絡(luò)和智能體Q 值網(wǎng)絡(luò),λopt、λnopt和λmix分別代表損失函數(shù)Lopt、Lnopt和Lmix的權(quán)重。下面具體介紹式(1)右側(cè)的四個損失函數(shù)。
Ltd表達(dá)式如下所示:
其中,θ-代表目標(biāo)網(wǎng)絡(luò)參數(shù),r(s,a)代表在狀態(tài)s下選擇聯(lián)合動作a時獲得的回報代表s′下的最優(yōu)聯(lián)合動作。
為滿足IGM,定義如下條件:
Lopt用于確保得到的聯(lián)合動作是否滿足式(5),Lnopt的目的是檢查在每一步中樣本選擇的動作是否滿足式(6)。其定義如下:
其中,β表示混合網(wǎng)絡(luò)和智能體Q值網(wǎng)絡(luò)中所有的參數(shù)。如在Lopt(;β)中,只對β進(jìn)行更新而不更新θ。
為了加快收斂速度,該文所新增的損失函數(shù)定義如下:
其中,β-表示目標(biāo)混合網(wǎng)絡(luò)的參數(shù)。λopt、λnopt和λmix代表三個損失函數(shù)的權(quán)重,為了更好地訓(xùn)練參數(shù),將權(quán)重設(shè)置為λopt=λnopt=λmix=1.0。
QTRAN Plus 算法架構(gòu)圖如圖3 所示。
圖3 QTRAN Plus算法架構(gòu)圖
圖3 展示了智能體Q 值函數(shù)、聯(lián)合動作Q 值函數(shù)以及式(1)中損失函數(shù)的計算過程。為了保證訓(xùn)練穩(wěn)定,一方面,計算損失函數(shù)Ltd和Lmix時使用了目標(biāo)網(wǎng)絡(luò)。每隔時間周期T,將當(dāng)前網(wǎng)絡(luò)的參數(shù)值拷貝到目標(biāo)網(wǎng)絡(luò)的參數(shù);另一方面,計算損失函數(shù)Lopt和Lnopt時使用了當(dāng)前網(wǎng)絡(luò)Qjt(;β)作為目標(biāo)值,即圖3中含有“”符號的網(wǎng)絡(luò)代表對其進(jìn)行固定,不需要對其進(jìn)行梯度下降更新。此外,圖3 中計算和使用的網(wǎng)絡(luò)是相同的,計算Qjt(s′,aˉ′;θ-)和Qjt(s,a;θ)使用的網(wǎng)絡(luò)是相同的,只是由于輸入值的不同,因此得到不同的輸出值。為了提高樣本的使用率和訓(xùn)練的平穩(wěn)性,該算法使用回放緩沖區(qū)(Replay Buffer)[14]對樣本進(jìn)行收集采樣,該方法針對交互樣本使用效率過低的問題,將采集到的樣本放到一個類似于緩沖區(qū)的地方。每個樣本的格式為,隨著智能體選擇的策略不斷更新,回放緩沖區(qū)里面包含選擇不同的策略下收集到的數(shù)據(jù),并且回放緩沖區(qū)只有在存滿時才會把舊的數(shù)據(jù)丟掉。更新參數(shù)時,每次從回放緩沖區(qū)隨機選擇一個batch 的樣本進(jìn)行批處理隨機梯度下降法對網(wǎng)絡(luò)參數(shù)進(jìn)行更新。以聯(lián)合動作Q 值網(wǎng)絡(luò)的參數(shù)θ′為例,其更新公式如下:
其中,α表示學(xué)習(xí)率表示第i個樣本按照式(2)和式(3)計算得到的損失,b表示一個batch包含的樣本數(shù)。
通過與VDN[15]、QMIX[16]、QTRAN[13]算法對比,在機器人協(xié)作搬運任務(wù)中驗證所提算法的有效性,特增加QTRAN Plus w/oLmix以作為消融實驗。其中通過消融實驗來研究混合網(wǎng)絡(luò)和新增加的損失函數(shù)在QTRAN Plus 中的必要性。仿真實驗共進(jìn)行50 回合取平均結(jié)果,每回合實驗包含L個學(xué)習(xí)回合和5 000個評價回合。在每一回合的評價階段中,每個機器人都使用其所學(xué)的固定策略。完成任務(wù)的最小期望步長為12,最大期望累積回報為182。如果任務(wù)在12個步長內(nèi)完成,則判斷其學(xué)習(xí)成功。QTRAN Plus 算法中損失函數(shù)的權(quán)重設(shè)置為λopt=λnopt=λmix=1.0 。QMIX、VDN 和QTRAN 算法的參數(shù)設(shè)置與QTRAN Plus 相同。
機器人協(xié)作搬運任務(wù)中各算法及消融實驗的成功率、平均累積回報及標(biāo)準(zhǔn)差和平均步長及標(biāo)準(zhǔn)差數(shù)據(jù)如表1-3 所示。由仿真數(shù)據(jù)可知,只有QTRAN Plus 的成功率最終達(dá)到100%。QMIX 的學(xué)習(xí)速度雖然快,但因為缺乏聯(lián)合動作Q 值函數(shù)的指導(dǎo),有時會落入局部最優(yōu)甚至?xí)玫皆愀獾牟呗浴6鳴TRAN Plus 為了算法穩(wěn)定性,犧牲了一部分學(xué)習(xí)速度來訓(xùn)練聯(lián)合動作Q 值網(wǎng)絡(luò)。因此,盡管在學(xué)習(xí)回合數(shù)達(dá)到30 000 時,QTRAN Plus 的成功率不如QMIX,但在平均累計回報和平均步長方面已經(jīng)優(yōu)于QMIX 并且呈現(xiàn)穩(wěn)定趨勢。QTRAN 的學(xué)習(xí)速度較慢,因此成功率僅為32%。從消融實驗的仿真數(shù)據(jù)來看,QTRAN Plus w/oLmix的優(yōu)化能力優(yōu)于QTRAN,這說明用混合網(wǎng)絡(luò)代替QTRAN 中的加和操作能的確能夠提高優(yōu)化能力。其次,與QTRAN Plus相比,QTRAN Plus w/oLmix的收斂速度低,且最終學(xué)習(xí)效果不如前者,這說明新增加的Lmix對提高收斂速度和學(xué)習(xí)效果都有重要的作用。
表1 成功率
表2 平均累積回報及標(biāo)準(zhǔn)差
表3 平均步長及標(biāo)準(zhǔn)差
圖4 所示為經(jīng)過50 000 回合學(xué)習(xí)后,QTRAN Plus 算法得到的聯(lián)合策略。箭頭表示機器人執(zhí)行的動作。該任務(wù)將在12 個步長中完成,這是該任務(wù)的最小期望步長。
圖4 QTRAN Plus在協(xié)作搬運任務(wù)中獲得的最優(yōu)聯(lián)合策略
該文以機器人協(xié)作搬運任務(wù)這一實際問題為研究背景,提出了一種基于多智能體深度強化學(xué)習(xí)的算法QTRAN Plus。仿真實驗表明,通過把機器人協(xié)作搬運任務(wù)建模成隨機博弈,并使用多智能體深度強化學(xué)習(xí)算法求解,能夠求解得到搬運時間最短的路徑。同時,對比實驗和消融實驗說明,QTRAN Plus 算法使用混合網(wǎng)絡(luò)代替Q 值網(wǎng)絡(luò)的加和,以及并使用新的損失函數(shù)確實能夠提升算法的穩(wěn)定性和最優(yōu)性。下一步將會在更為復(fù)雜的場景中設(shè)計相關(guān)的多智能體深度強化學(xué)習(xí)算法并進(jìn)行驗證。