一種合作環(huán)境下可擴展的多智能體強化學(xué)習(xí)方法
1.本發(fā)明涉及強化學(xué)習(xí)技術(shù)領(lǐng)域,尤其是一種合作環(huán)境下的可擴展的多智能體強化學(xué)習(xí)方法。
背景技術(shù):
2.強化學(xué)習(xí)已經(jīng)被成功應(yīng)用于解決游戲、系統(tǒng)控制等不同領(lǐng)域內(nèi)的挑戰(zhàn)性問題,尤其在單個智能體情形下,強化學(xué)習(xí)展現(xiàn)出了其解決復(fù)雜問題的有效性和靈活性。然而,在某些具體問題中,多個智能體之間的交互也顯得尤為重要,例如在多玩家游戲、多機器人控制以及多系統(tǒng)中的負(fù)載平衡等問題中,都面臨著多個智能體之間的合作或競爭。因此,將強化學(xué)習(xí)推廣到多智能體情形已成為當(dāng)下一個十分熱門的研究興趣,在多智能體強化學(xué)習(xí)過程中,建模并預(yù)測當(dāng)前環(huán)境中其他智能體的行為是最為關(guān)鍵的一環(huán)。
3.傳統(tǒng)的強化學(xué)習(xí)方法不能直接有效地應(yīng)用于多智能體情形中,其中一個問題是由于每個智能體的策略都將持續(xù)發(fā)生變化,這樣對于單個智能體而言環(huán)境就會變得不再穩(wěn)定,這導(dǎo)致了魯棒性挑戰(zhàn)并且限制了經(jīng)驗回放的直接使用;另一個問題是由于每個智能體對其他智能體的觀察是部分的且不精確的,這導(dǎo)致了其不能夠獲得環(huán)境中的所有信息。因此,對于每個智能體而言,如何基于局部的信息來估計其他智能體的策略并更新自身的策略成為了一個關(guān)鍵性的問題。此外,可擴展性問題也是多智能體情形中一個亟待解決的問題,在許多應(yīng)用場景下,由于新的智能體需要加入或者老的智能體需要移除等因素,智能體的數(shù)量是動態(tài)變化的,這就要求當(dāng)智能體數(shù)量發(fā)生變化時,需要重新訓(xùn)練模型。但是重新訓(xùn)練模型是非常消耗時間和計算資源的,在某些情況下,這種重新訓(xùn)練的時間是不能接受的,例如在航空攝影系統(tǒng)中,當(dāng)引入新的無人機時,對先前的無人機進(jìn)行重新訓(xùn)練是非常危險的。
4.現(xiàn)有技術(shù)的強化學(xué)習(xí)方法不能直接有效地應(yīng)用于多智能體情形中,無法解決每個智能體的策略持續(xù)發(fā)生變化,容易造成單個智能體環(huán)境不夠穩(wěn)定的問題,以及每個智能體對其他智能體的觀察不精確而導(dǎo)致的不能夠獲得環(huán)境中所有信息。
技術(shù)實現(xiàn)要素:
5.本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足而提供的一種合作環(huán)境下可擴展的多智能體強化學(xué)習(xí)方法,采用搭建基于集中訓(xùn)練和分散執(zhí)行的可擴展框架,允許智能體在訓(xùn)練策略時使用額外的來自其他智能體的信息,允許每個智能體擁有自己的獎勵函數(shù)和策略,且每個智能體在執(zhí)行時僅使用自身的信息(智能體的部分觀察)來執(zhí)行策略,并使用雙向長短期記憶網(wǎng)絡(luò)來應(yīng)對訓(xùn)練階段的可擴展性問題,該合作環(huán)境下的可擴展的多智能體強化學(xué)習(xí)方法,較好的解決了每個智能體的策略持續(xù)發(fā)生變化,容易造成單個智能體環(huán)境不夠穩(wěn)定,以及每個智能體對其他智能體的觀察不精確導(dǎo)致不能夠獲得環(huán)境中所有信息的問題,從而使得傳統(tǒng)的強化學(xué)習(xí)方法不能直接有效地應(yīng)用于多智能體的情形,方法簡便,使用效果好,優(yōu)勢,具有廣泛的應(yīng)用前景。
6.實現(xiàn)本發(fā)明目的具體技術(shù)方案是:一種合作環(huán)境下可擴展的多智能體強化學(xué)習(xí)方法,其特點是具體包括以下步驟:
7.s1、采用集中訓(xùn)練和分散執(zhí)行的可擴展框架,在本框架中,允許智能體在訓(xùn)練策略時使用額外的來自其他智能體的信息,但每個智能體僅可以使用自身的信息來執(zhí)行策略。
8.s2、不同于傳統(tǒng)的單個智能體環(huán)境,在多智能體環(huán)境下,每個智能體都擁有自己的觀察它表示智能體i在時間t的狀態(tài)每個智能體都維護(hù)著一個獨立的策略其中每個策略都通過θi參數(shù)化,根據(jù)智能體的策略和當(dāng)前狀態(tài),每個智能體執(zhí)行自身的動作接著在執(zhí)行動作后,智能體i將得到一個獎勵并觀察到新狀態(tài)
9.s3、對于上述環(huán)境,其狀態(tài)包含所有智能體的狀態(tài){s1,s2,
…
,sn},動作包含所有智能體的動作{a1,a2,
…
,an},當(dāng)同時考慮所有的智能體時,環(huán)境仍保持著馬爾可夫性,記作下述(a)式表示的馬爾可夫遷移概率:
10.p(s
t+1
,r
t
|s
t
,a
t
)
??
(a)。
11.其中,此外每個智能體設(shè)計了一個單獨的獎勵ri,而不是一個相同的全局獎勵,以激勵它們學(xué)習(xí)獨特的策略。
12.s4、基于以上設(shè)定,在強化學(xué)習(xí)的一般設(shè)定下定義q價值函數(shù)和狀態(tài)價值函數(shù),對于智能體i,狀態(tài)價值vi(s)定義為狀態(tài)s下的預(yù)計折扣累計獎勵ri由下述(b)式定義為:
[0013][0014]
其中,γ是獎勵的折扣因子,q價值函數(shù)定義為下述(c)式:
[0015][0016]
由于本發(fā)明采取確定性策略,故q價值函數(shù)等于狀態(tài)價值函數(shù),即為下述(d)式:
[0017][0018]
其中,μ(s)=[μ1(s1),μ2(s2),
…
,μn(sn)],為每個智能體根據(jù)自身狀態(tài)和策略采取的動作集合。
[0019]
s5、嘗試最大化合作場景中的所有智能體的平均狀態(tài)價值,也就是說由下述(e)式表示的試圖最大化:
[0020][0021]
s6、執(zhí)行者/評論者算法通過迭代更新執(zhí)行者網(wǎng)絡(luò)和評論者網(wǎng)絡(luò)來學(xué)習(xí)每個智能體的最優(yōu)策略和最優(yōu)q價值函數(shù),其中執(zhí)行者網(wǎng)絡(luò)指代策略函數(shù),評論者網(wǎng)絡(luò)指代q價值函數(shù),在時間t,對于智能體i,最小化損失函數(shù)由下述(f)式表示為:
[0022][0023]
其中,是智能體i在時間t、狀態(tài)s情形下執(zhí)行動作a的預(yù)估獎勵,且由下述(g)式表示為:
[0024][0025]
其中,是目標(biāo)q價值函數(shù),其參數(shù)使用最近的q函數(shù)的參數(shù)來定期更新。
[0026]
所述步驟s6中為了優(yōu)化策略參數(shù),使用策略梯度(policy gradient)算法,目標(biāo)函數(shù)定義為所有智能體的平均q價值函數(shù),具有策略參數(shù)θk的智能體k的梯度由下述(h)式表示為:
[0027][0028]
其中,s
′
是狀態(tài)s下采用策略μ之后的狀態(tài),ρ(s
′
)是s
′
的折扣概率,同時保留了一個回放緩沖,其包含經(jīng)驗元組(s
t
,a
t
,r
t
,s
t+1
),在每個訓(xùn)練階段,隨機采樣一批經(jīng)驗,并將它們用于執(zhí)行者/評論者算法。
[0029]
所述步驟s6中每個智能體的價值函數(shù)的輸入是所有智能體狀態(tài)和動作,當(dāng)有新的智能體被添加到環(huán)境時,價值函數(shù)的輸入維度將增長,同時還需要為新加入的智能體添加新的價值函數(shù)。
[0030]
本發(fā)明與現(xiàn)有技術(shù)相比具有以下有益技術(shù)效果和顯著的技術(shù)進(jìn)步:
[0031]
1)允許每個智能體擁有自己的獎勵函數(shù)和策略;
[0032]
2)每個智能體在執(zhí)行時僅使用局部的信息(即智能體的部分觀察);
[0033]
3)使用了雙向長短期記憶網(wǎng)絡(luò)來應(yīng)對訓(xùn)練階段的可擴展性問題。
附圖說明
[0034]
圖1為本發(fā)明集中訓(xùn)練和分散執(zhí)行的可擴展學(xué)習(xí)框架圖;
[0035]
圖2為本發(fā)明q價值函數(shù)的lstm結(jié)構(gòu)圖;
[0036]
圖3為實施例1在三個捕食者共同捕捉獵物情形下的平均q價值結(jié)果圖;
[0037]
圖4為實施例1捕獲獵物比率的結(jié)果圖;
[0038]
圖5為實施例1捕獲獵物步數(shù)的結(jié)果圖;
[0039]
圖6為實施例1在中途加入新的智能體前后的平均q價值結(jié)果圖。
具體實施方式
[0040]
參閱圖1,本發(fā)明按下述步驟進(jìn)行合作環(huán)境下可擴展的多智能體強化學(xué)習(xí):
[0041]
s1、采用集中訓(xùn)練和分散執(zhí)行的可擴展框架,在本框架中,允許智能體在訓(xùn)練策略時使用額外的來自其他智能體的信息,但每個智能體僅可以使用自身的信息來執(zhí)行策略。
[0042]
s2、不同于傳統(tǒng)的單個智能體環(huán)境,在多智能體環(huán)境下,每個智能體都擁有自己的觀察它表示智能體i在時間t的狀態(tài)每個智能體都維護(hù)著一個獨立的策略其中每個策略都通過θi參數(shù)化,根據(jù)智能體的策略和當(dāng)前狀態(tài),每個智能體執(zhí)行自身的動作接著在執(zhí)行動作后,智能體i將得到一個獎勵并觀察到新狀態(tài)
[0043]
s3、對于上述環(huán)境,其狀態(tài)包含所有智能體的狀態(tài){s1,s2,
…
,sn},動作包含所有智能體的動作{a1,a2,
…
,an},當(dāng)同時考慮所有的智能體時,環(huán)境仍保持著馬爾可夫性,記作下
述(a)式表示的馬爾可夫遷移概率:
[0044]
p(s
t+1
,r
t
|s
t
,a
t
)
??
(a)。
[0045]
其中,
[0046]
此外,每個智能體設(shè)計了一個單獨的獎勵ri,而不是一個相同的全局獎勵,以激勵它們學(xué)習(xí)獨特的策略。
[0047]
s4、基于以上設(shè)定,在強化學(xué)習(xí)的一般設(shè)定下定義q價值函數(shù)和狀態(tài)價值函數(shù),對于智能體i,狀態(tài)價值vi(s)定義為狀態(tài)s下的預(yù)計折扣累計獎勵ri由下述(b)式定義為:
[0048][0049]
其中,γ是獎勵的折扣因子,q價值函數(shù)定義為下述(c)式:
[0050][0051]
由于本發(fā)明采取確定性策略,故q價值函數(shù)等于狀態(tài)價值函數(shù),即為下述(d)式:
[0052][0053]
其中,μ(s)=[μ1(s1),μ2(s2),
…
,μn(sn)],為狀態(tài)s下各智能體的策略采取的動作。
[0054]
s5、嘗試最大化合作場景中的所有智能體的平均狀態(tài)價值,也就是說試圖最大化,且由下述(e)式表示為:
[0055][0056]
s6、執(zhí)行者/評論者算法通過迭代更新執(zhí)行者網(wǎng)絡(luò)和評論者網(wǎng)絡(luò)來學(xué)習(xí)每個智能體的最優(yōu)策略和最優(yōu)q價值函數(shù),其中執(zhí)行者網(wǎng)絡(luò)指代策略函數(shù),評論者網(wǎng)絡(luò)指代q價值函數(shù),在時間t,對于智能體i,最小化如下述(f)式表示的損失函數(shù):
[0057][0058]
其中,是智能體i在時間t、狀態(tài)s情形下執(zhí)行動作a的預(yù)估獎勵由下述(g)式表示為:
[0059][0060]
其中,是目標(biāo)q價值函數(shù),其參數(shù)使用最近的q函數(shù)的參數(shù)來定期更新。
[0061]
所述步驟s6中為了優(yōu)化策略參數(shù),使用策略梯度(policy gradient)算法,目標(biāo)函數(shù)定義為所有智能體的平均q價值函數(shù),具有策略參數(shù)θk的智能體k的梯度記成由下述(h)式的表示:
[0062][0063]
其中,s
′
是狀態(tài)s下采用策略μ之后的狀態(tài),ρ(s
′
)是s
′
的折扣概率,同時保留了一個回放緩沖,其包含經(jīng)驗元組(s
t
,a
t
,r
t
,s
t+1
),在每個訓(xùn)練階段,隨機采樣一批經(jīng)驗,并將它們用于執(zhí)行者/評論者算法。
[0064]
所述步驟s6中每個智能體的價值函數(shù)的輸入是所有智能體狀態(tài)和動作,當(dāng)有新的智能體被添加到環(huán)境時,價值函數(shù)的輸入維度將增長,同時還需要為新加入的智能體添加
新的價值函數(shù),如何解決這個可擴展性問題是至關(guān)重要的。對此,本發(fā)明應(yīng)用了雙向長短期記憶網(wǎng)絡(luò),雙向長短期記憶網(wǎng)絡(luò)具有動態(tài)輸入和動態(tài)輸出的優(yōu)勢特性。
[0065]
參閱圖2,該圖展示了每個智能體的q價值函數(shù)的結(jié)構(gòu),每個雙向長短期記憶網(wǎng)絡(luò)單元都具有相同的結(jié)構(gòu)和參數(shù),第i個雙向長短期記憶網(wǎng)絡(luò)單元的輸入是第i個智能體的狀態(tài)和動作,其對應(yīng)的輸出是第i個智能體的q價值,擁有了以上結(jié)構(gòu)以后,本發(fā)明就可以靈活地向環(huán)境中添加新的智能體。
[0066]
下面以獵物/捕食者游戲的合作環(huán)境為例本發(fā)明作進(jìn)一步的描述。顯然,所描述的實施例僅僅是本發(fā)明最佳的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0067]
實施例1
[0068]
在一個叫做獵物/捕食者游戲的合作環(huán)境中對本發(fā)明提出的多智能體強化學(xué)習(xí)方法進(jìn)行實驗,在該游戲中,若干個緩慢移動的捕食者在一塊限定的區(qū)域內(nèi)合作去追捕一個快速移動的獵物,一旦捕食者追捕到了獵物,它們都會得到獎勵,如果它們跑出了該限定區(qū)域,那么它們都將受到懲罰,新的捕食者將會在游戲進(jìn)行時被添加到環(huán)境中。
[0069]
實驗場景構(gòu)建為一個形狀為2
×
2正方形的有限空間,捕食者和獵物將在模擬空間中的隨機位置進(jìn)行初始化,還有一些地標(biāo)隨機分布在空間中,以阻擋捕食者和獵物的移動,一旦捕食者捕捉到獵物或捕食者跑出該空間,則游戲結(jié)束,實驗將被重置。
[0070]
由于本發(fā)明主要針對在合作場景中的強化學(xué)習(xí),故獵物可視作環(huán)境的一部分,獵物的移動速度快,且執(zhí)行固定的策略,其有∈的概率沿隨機方向移動,也有1-∈的概率沿逆著捕食者的方向移動,當(dāng)獵物要離開有限空間時,實驗場景將擊退獵物。
[0071]
在該實驗場景中,智能體是捕食者,它們的速度較慢,但可以相互配合以捕捉獵物,將每個智能體的狀態(tài)定義為其對環(huán)境的部分觀察,記作si,基于狀態(tài)信息si,每個智能體都擁有其自身的策略μi,在實驗的每一步中,智能體i根據(jù)策略μi(ai|si),執(zhí)行動作ai,獲得對應(yīng)的獎勵ri。
[0072]
狀態(tài)si:每個智能體的部分觀察包括其自身位置pi=(xi,yi),獵物的位置p
p
(x
p
,y
p
),智能體i與獵物之間移動方向的夾角θi,以及一些其他智能體的位置{pm,
…
pn}。故si={pi,p
p
,θi,pm,
…
pn}。
[0073]
動作ai:每個智能體的動作是該智能體應(yīng)該移動的方向,它是在[-π,π]之間的一個角度。
[0074]
獎勵ri:在本發(fā)明的框架中,每個智能體都擁有它們自身的獎勵函數(shù),ri定義如下述(i)式:(將公式的英文改用中文標(biāo)注)
[0075][0076]
其中,每個智能體的individual bonus(i)可以各不相同。
[0077]
參閱圖3,在三個捕食者共同捕捉獵物的情形下,本發(fā)明算法的平均q價值先不斷
增加,隨后收斂,當(dāng)回放該算法學(xué)到的策略時,可以看出捕食者會根據(jù)獎勵設(shè)計以不同的動作來捕捉獵物。
[0078]
參閱圖4,為了檢查本發(fā)明捕獲獵物的比率,將每100輪中成功捕獲的數(shù)量相加,然后計算比率,該比率隨著算法的運行不斷增加,并且其最終將近似收斂到1。此外,還統(tǒng)計了本發(fā)明每次捕獲獵物的步數(shù)。
[0079]
參閱圖5,可以看出本發(fā)明捕獲獵物所花費的步數(shù)隨著游戲輪數(shù)的增加而減少,這說明捕食者學(xué)會越來越快地捕獲獵物。
[0080]
為了測試算法的可擴展性,設(shè)置了如下實驗:
[0081]
1)在開始時三個捕食者加入游戲追逐獵物;
[0082]
2)然后在30000個回合后又有三個捕食者加入游戲,將本發(fā)明算法的結(jié)果與完全重新訓(xùn)練網(wǎng)絡(luò)的結(jié)果進(jìn)行比較。
[0083]
參閱圖6,在三個新捕食者加入游戲的30000個回合后,本發(fā)明算法的q價值增加。此外,與完全重新訓(xùn)練網(wǎng)絡(luò)相比,本發(fā)明算法的收斂速度更快并且具有更高的q價值,由于本實驗的獎勵設(shè)計為捕食者和智能體之間距離的負(fù)值,故q價值越大說明算法的性能越好,從實驗結(jié)果可以看出,本發(fā)明算法具有較好的可擴展性。
[0084]
以上只是對本發(fā)明作進(jìn)一步的說明,并非用以限制本專利,凡為本發(fā)明等效實施,均應(yīng)包含于本專利的權(quán)利要求范圍之內(nèi)。
