星際爭(zhēng)霸II的強(qiáng)化學(xué)習(xí)環(huán)境(2)

項(xiàng)目地址盒让,本篇是算法篇,另可參閱實(shí)習(xí)感受底桂。

本項(xiàng)目主要是將深度強(qiáng)化學(xué)習(xí)(RL)中的MADDPG——混合競(jìng)爭(zhēng)合作環(huán)境下的多智體評(píng)論家算法接入到暴雪公司和Deepmind發(fā)布的針對(duì)星際爭(zhēng)霸2的SC2LE環(huán)境下泉懦。本wiki介紹了該項(xiàng)目用到的基礎(chǔ)算法——MADDPG算法片部,以及其在RL中的算法基礎(chǔ)涤姊。

強(qiáng)化學(xué)習(xí)(RL)

強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)區(qū)別于監(jiān)督式學(xué)習(xí)和無(wú)監(jiān)督式學(xué)習(xí)的一種新的學(xué)習(xí)方式暇番。其他機(jī)器學(xué)習(xí)算法中學(xué)習(xí)器都是學(xué)怎么做,而在強(qiáng)化學(xué)習(xí)中思喊,是在嘗試的過(guò)程中學(xué)習(xí)到在特定的情境下選擇哪種行動(dòng)可以得到最大的回報(bào)壁酬。在很多場(chǎng)景中,當(dāng)前的行動(dòng)不僅會(huì)影響當(dāng)前的回報(bào)搔涝,還會(huì)影響之后的狀態(tài)和一系列的回報(bào)厨喂。

image

RL與監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)的比較:

  • 有監(jiān)督的學(xué)習(xí)的訓(xùn)練集中庄呈,每個(gè)樣本的觀測(cè)值都已經(jīng)有了標(biāo)簽(label)。進(jìn)行學(xué)習(xí)派阱,訓(xùn)練集中每一個(gè)樣本的特征可以視為是對(duì)該狀態(tài)(state)的描述诬留,而標(biāo)簽(label)可以視為是應(yīng)該執(zhí)行的正確的決策或動(dòng)作(action)。一個(gè)簡(jiǎn)單的例子就是通過(guò)一些已有標(biāo)簽(label)的腫瘤數(shù)據(jù)中贫母,根據(jù)腫瘤的大小文兑、形狀等特征(features)判讀腫瘤是良性還是惡性的。但是有監(jiān)督的學(xué)習(xí)不能學(xué)習(xí)交互的情景腺劣,因?yàn)樵诮换サ膯?wèn)題中獲得期望行為的樣例是非常不實(shí)際的绿贞,智能體(agent)只能從自己的經(jīng)歷(experiment)中進(jìn)行學(xué)習(xí),而經(jīng)歷(experiment)中采取的行為并不一定是最優(yōu)的橘原。這時(shí)利用強(qiáng)化學(xué)習(xí)(RL)就非常合適籍铁,因?yàn)閺?qiáng)化學(xué)習(xí)(RL)不是利用正確的行為來(lái)指導(dǎo),而是利用已有的訓(xùn)練信息來(lái)對(duì)行為進(jìn)行評(píng)價(jià)趾断。
  • 無(wú)監(jiān)督學(xué)習(xí)是指在缺乏足夠的先驗(yàn)知識(shí)的情況下拒名,讓計(jì)算機(jī)能代我們完成這些工作,或至少提供一些幫助芋酌。根據(jù)類別未知(沒(méi)有被標(biāo)記)的訓(xùn)練樣本解決模式識(shí)別中的各種問(wèn)題增显,稱之為無(wú)監(jiān)督學(xué)習(xí)。一個(gè)例子就是雞尾酒聚會(huì)中背景音樂(lè)和說(shuō)話聲音的提取脐帝,因?yàn)槭孪炔⒉恢纼煞N聲音同云,沒(méi)有標(biāo)簽(label)糖权。因?yàn)閺?qiáng)化學(xué)習(xí)(RL)利用的并不是采取正確行動(dòng)的經(jīng)歷(experiment),從這一點(diǎn)來(lái)看和無(wú)監(jiān)督的學(xué)習(xí)確實(shí)有點(diǎn)像炸站。但無(wú)監(jiān)督的學(xué)習(xí)的目的可以說(shuō)是從一堆未標(biāo)記樣本中發(fā)現(xiàn)隱藏的結(jié)構(gòu)温兼,而強(qiáng)化學(xué)習(xí)(RL)的目的是最大化回報(bào)(reward)。
  • 總的來(lái)說(shuō)武契,強(qiáng)化學(xué)習(xí)(RL)與其他機(jī)器學(xué)習(xí)算法不同的地方在于:其中沒(méi)有監(jiān)督者募判,只有一個(gè)回報(bào)(reward)信號(hào);反饋是延遲的咒唆,不是立即生成的届垫;時(shí)間在強(qiáng)化學(xué)習(xí)(RL)中具有重要的意義;智能體(agent)的行為會(huì)影響之后一系列的回報(bào)(reward)全释。 一個(gè)很容易理解的強(qiáng)化學(xué)習(xí)的例子如前一段時(shí)間風(fēng)靡一時(shí)的Alpha Go装处。這個(gè)機(jī)器下圍棋的時(shí)候,機(jī)器為了贏得比賽需要在每一次做出決策浸船,是選擇往哪里走妄迁,然后得到的反饋并不是像監(jiān)督學(xué)習(xí)一樣的對(duì)或者錯(cuò),這個(gè)反饋跟最后能否贏得比賽關(guān)系在現(xiàn)在看還不明朗李命。這需要機(jī)器去不斷重復(fù)學(xué)習(xí)登淘,然后改進(jìn)下棋過(guò)程。
image

強(qiáng)化學(xué)習(xí)基本算法

Value-Based(或Q-Learning)基于價(jià)值的方法和Policy-Based(或Policy Gradients)基于策略的方法是強(qiáng)化學(xué)習(xí)中最重要的兩類方法封字。Value-Based是預(yù)測(cè)某個(gè)狀態(tài)(state)下所有策略或動(dòng)作(action)的期望價(jià)值——Q值黔州,之后通過(guò)選擇最大Q值對(duì)應(yīng)的策略或動(dòng)作(action)執(zhí)行策略,適合僅有少量離散取值的策略或動(dòng)作(action)的環(huán)境阔籽。Policy-Based是直接預(yù)測(cè)某個(gè)狀態(tài)(state)下應(yīng)該采取的策略或動(dòng)作(action)流妻,適合高維連續(xù)策略或動(dòng)作(action)的環(huán)境,更通用笆制。

image

強(qiáng)化學(xué)習(xí)的主要挑戰(zhàn)

正如上文所言绅这,在監(jiān)督學(xué)習(xí)中,每個(gè)訓(xùn)練示例都有一個(gè)目標(biāo)標(biāo)簽(label)在辆;在非監(jiān)督學(xué)習(xí)中证薇,則沒(méi)有任何標(biāo)簽(label);而在強(qiáng)化學(xué)習(xí)中开缎,則有稀疏的棕叫、延時(shí)的標(biāo)簽(label)——獎(jiǎng)勵(lì)(reward)。僅僅基于這些獎(jiǎng)勵(lì)(reward)奕删,代理人必須學(xué)會(huì)在環(huán)境中策略和行動(dòng)(action)俺泣。

強(qiáng)化學(xué)習(xí)的巨大挑戰(zhàn)主要體現(xiàn)在以下兩方面:

  • 信貸分配問(wèn)題(credit assignment problem):有時(shí)候一瞬間得到的獎(jiǎng)勵(lì)(reward)來(lái)自一個(gè)長(zhǎng)期的策略——就像是我們通過(guò)一學(xué)期的努力得到了期末的成績(jī)一樣,如何把得到的最終獎(jiǎng)勵(lì)(reward)分配給之前的策略和行為(action)?
  • 探索和利用困境(explore-exploit dilemma):當(dāng)我們已經(jīng)有了一定的經(jīng)驗(yàn)(experimence)伏钠,這時(shí)候我們就面臨著一個(gè)種權(quán)衡——是繼續(xù)堅(jiān)持之前的策略還是進(jìn)行一下探索横漏?

信貸分配問(wèn)題(credit assignment problem)的解決辦法往往是通過(guò)貼現(xiàn)未來(lái)回報(bào)(discounted future reward)的計(jì)算來(lái)實(shí)現(xiàn)的:R_t=r_t+γ(r_{t+1}+γ(r_{t+2}+...))=r_t+γR_{t+1}。其中貼現(xiàn)參數(shù)γ應(yīng)該根據(jù)環(huán)境的決定性來(lái)設(shè)定熟掂。

探索和利用困境(explore-exploit dilemma)往往是通過(guò)貪心ε算法(ε-greedy exploration)處理的和經(jīng)驗(yàn)重放(experiment replay)缎浇。貪心ε算法大致就是進(jìn)行決策時(shí),生成一個(gè)ε概率的隨機(jī)方向赴肚,用來(lái)探索素跺。而經(jīng)驗(yàn)重發(fā)的策略不是選取最近的一批來(lái)重放,為了避免達(dá)到局部最優(yōu)誉券,經(jīng)驗(yàn)重放選擇了一小批隨機(jī)經(jīng)驗(yàn)進(jìn)行重放指厌。

深度Q學(xué)習(xí)算法

基于價(jià)值的方法——Q函數(shù)

Q函數(shù)定義為在t時(shí)刻、s_t狀態(tài)下踊跟,我們執(zhí)行了動(dòng)作a_t的最大貼現(xiàn)未來(lái)回報(bào)(maximum discounted future reward):Q(s_t|a_t)=\max{R_{t+1}}踩验。可以直觀理解Q代表的含義成商玫,在t時(shí)刻箕憾、s_t狀態(tài)下,我們執(zhí)行了動(dòng)作a_t之后拳昌,游戲結(jié)束時(shí)刻我們將要得到的最好分?jǐn)?shù)袭异。盡管我們無(wú)法在s_t狀態(tài)下就得到Q函數(shù)的具體值,我們之后可以通過(guò)其他方法求得——這有點(diǎn)像隱性函數(shù)的求解地回。考慮一個(gè)狀態(tài)轉(zhuǎn)化<s,a,r,s'>扁远,我們可以表示Q函數(shù)為形似Bellman方程的形式:Q(s|a)=r+Q(s'|a')。這說(shuō)明我們可以通過(guò)迭代進(jìn)行求解刻像。

Q值的儲(chǔ)存

通常把Q函數(shù)的值儲(chǔ)存為一個(gè)矩陣:

a_1 a_2 a_3
s_1 Q(1,1) Q(1,2) Q(1,3)
s_2 Q(2,1) Q(2,2) Q(2,3)
s_3 Q(3,1) Q(3,2) Q(3,3)

雖然這樣表示十分直觀方便,但是考慮到星際爭(zhēng)霸游戲環(huán)境下狀態(tài)和動(dòng)作的種類之多并闲,用矩陣表示顯然是耗費(fèi)計(jì)算力的细睡。

深度Q神經(jīng)網(wǎng)絡(luò)

為了探索Q函數(shù)方法的更廣法應(yīng)用,我們引入了深度Q神經(jīng)網(wǎng)絡(luò)(DQN)的概念帝火。神經(jīng)網(wǎng)絡(luò)特別擅長(zhǎng)為高度結(jié)構(gòu)化的數(shù)據(jù)提供良好的特性溜徙。我們可以用神經(jīng)網(wǎng)絡(luò)來(lái)表示Q函數(shù),它以狀態(tài)(四個(gè)游戲屏幕)和動(dòng)作作為輸入和輸出相應(yīng)的Q值犀填。

DQN的損失函數(shù)是L=\frac{1}{2}{(r+Q(s'|a')-Q(s|a))}^2蠢壹。

具體操作是:

  1. 對(duì)當(dāng)前狀態(tài)s進(jìn)行前饋傳遞,得到所有動(dòng)作的預(yù)測(cè)值
  2. 對(duì)下一個(gè)狀態(tài)s進(jìn)行前饋傳遞九巡,并計(jì)算最大網(wǎng)絡(luò)輸出max_{a'}Q(s',a')
  3. 將目標(biāo)動(dòng)作的Q值設(shè)置為r+γQ(s'|a')图贸;對(duì)于所有其他操作,設(shè)置Q值為1.得到的預(yù)測(cè)值,返回這些輸出的誤差為0
  4. 使用反向傳播更新權(quán)值

偽代碼

Q學(xué)習(xí)過(guò)程的偽代碼如下:

% 初始化
初始化經(jīng)驗(yàn)重放內(nèi)存D
隨機(jī)初始化狀態(tài)\forall{s}\in{S}疏日、動(dòng)作\forall{a}\in{A}的Q(s,a)值
初始化狀態(tài)s
while(每一個(gè)輪次)
··% 選擇執(zhí)行行動(dòng)
··選擇并執(zhí)行Q值最大的動(dòng)作a(以ε的概率選擇一個(gè)隨機(jī)策略)
··觀察獎(jiǎng)勵(lì)r和之后的狀態(tài)s'
··把<s,a,r,s'>存儲(chǔ)到經(jīng)驗(yàn)重放內(nèi)存中
··% 訓(xùn)練DQN網(wǎng)絡(luò)
··從經(jīng)驗(yàn)重放內(nèi)存D中偿洁,隨機(jī)選取一批狀態(tài)轉(zhuǎn)化<ss,aa,rr,ss'>
··計(jì)算每一小批的目標(biāo)Q值
····如果ss'是終點(diǎn)狀態(tài),tt=rr
····否則沟优,tt=rr+γmax_{a'}Q(ss'|aa')
··以損失{(r+Q(s'|a')-Q(s|a))}^2來(lái)訓(xùn)練深度Q網(wǎng)絡(luò)
··s=s'
end

策略梯度算法

基于策略的方法——策略梯度

基于值的方法一般是確定性的涕滋,給定一個(gè)狀態(tài)就能計(jì)算出每種可能動(dòng)作的獎(jiǎng)勵(lì)(確定值),但這種確定性的方法恰恰無(wú)法處理一些現(xiàn)實(shí)的問(wèn)題挠阁,比如玩100把石頭剪刀布的游戲宾肺,最好的解法是隨機(jī)的使用石頭、剪刀和布并盡量保證這三種手勢(shì)出現(xiàn)的概率一樣侵俗,因?yàn)槿魏我环N手勢(shì)的概率高于其他手勢(shì)都會(huì)被對(duì)手注意到并使用相應(yīng)的手勢(shì)贏得游戲锨用。

另外,過(guò)多的狀態(tài)數(shù)量也是使用基于值的方法的一個(gè)限制因素坡慌,因?yàn)榛谥档姆椒ㄐ枰4鏍顟B(tài)-動(dòng)作的對(duì)應(yīng)關(guān)系黔酥,因此很多現(xiàn)實(shí)問(wèn)題(例如機(jī)器人控制和自動(dòng)駕駛都是連續(xù)動(dòng)作空間)都因?yàn)榫蘖康臓顟B(tài)而無(wú)法計(jì)算。

策略梯度利用隨機(jī)(stochastic)解決上面的兩個(gè)問(wèn)題產(chǎn)生的洪橘,它能提供服從某種概率分布的隨機(jī)非確定的結(jié)果跪者,策略梯度不計(jì)算獎(jiǎng)勵(lì)而是使用概率選擇動(dòng)作,這樣就避免了因?yàn)橛?jì)算獎(jiǎng)勵(lì)而維護(hù)狀態(tài)表熄求。策略梯度的基本原理是通過(guò)反饋調(diào)整策略渣玲,具體來(lái)說(shuō)就是在得到正向獎(jiǎng)勵(lì)時(shí),增加相應(yīng)的動(dòng)作的概率弟晚;得到負(fù)向的獎(jiǎng)勵(lì)時(shí)忘衍,降低相應(yīng)動(dòng)作的概率。用一個(gè)概率分布函數(shù)π_θ(s_t|θ^π)找到每一步的最優(yōu)策略卿城,其中θ^π為策略函數(shù)的參數(shù)枚钓。

策略梯度學(xué)習(xí)(PG)

利用策略梯度的方法,目標(biāo)就是訓(xùn)練出參數(shù)θ^π瑟押,讓獎(jiǎng)勵(lì)的期望值最大:J(θ)=argmax_{θ}E[r_1+r_1+...+r_t|π_θ]=E_{r~π_θ(t)}[\sum_\limits{t}{r_t}]=\int_tr(t)π_θ(t)dt搀捷。

采用梯度上升的方法,對(duì)參數(shù)θ求偏導(dǎo):\nabla_θJ(θ)=\nabla_θ\int_tr(t)π_θ(t)dt=\int_tr(t)\nabla_θπ_θ(t)dt多望。

根據(jù)偏導(dǎo)數(shù)性質(zhì)\nabla log f(x)=\frac{\nabla{f(x)}}{f(x)}嫩舟,\nabla_θπ_θ(t)=π_θ(t)\frac{\nabla_θπ_θ(t)}{π_θ(t)}=π_θ(t)\nabla_θ logπ_θ(t)

所以\nabla_θJ(θ)=\int_tr(t)\nabla_θπ_θ(t)dt=\int_tr(t)π_θ(t)\nabla_θ logπ_θ(t)dt=E_{r~π_θ(t)}[\nabla_θ logπ_θ(t)r(t)]
=E_{r~π_θ(t)}[(\sum\limits_{t=1}^{T}logπ_θ(a_t|s_t))(\sum\limits_{t=1}^{T}r(s_t,a_t))]怀偷。

由于策略產(chǎn)生的是非確定的動(dòng)作家厌,因此相同策略在多輪次中會(huì)產(chǎn)生不同的軌跡,為了避免個(gè)體的偏差椎工,我們需要多次取樣并取均值來(lái)提高準(zhǔn)確性饭于,所以蜀踏,\nabla_θJ(θ)=\frac{1}{N}\sum\limits_{i=1}^{N}[(\sum\limits_{t=1}^{T}logπ_θ(a_{i,t}|s_{i,t}))(\sum\limits_{t=1}^{T}r(s_{i,t},a_{i,t}))]

因此镰绎,我們就得到了可計(jì)算的目標(biāo)函數(shù)的導(dǎo)數(shù)脓斩,在輪次的反向傳播 (back propagation) 中使用學(xué)習(xí)率\alpha\nabla_θJ(θ)的乘積作為差值更新:θ:=θ+\alpha\nabla_θJ(θ)

確定性策略梯度學(xué)習(xí)(DPG)

確定性的行為策略,每一步的行為通過(guò)函數(shù)μ直接獲得確定的值:a_t=μ(s_t|θ^μ)畴栖,函數(shù)μ即最優(yōu)行為策略随静,不再是一個(gè)需要采樣的隨機(jī)策略。確定性策略梯度學(xué)習(xí)節(jié)省了最優(yōu)策略概率分布進(jìn)行采樣時(shí)吗讶,獲得行為需要耗費(fèi)的計(jì)算力燎猛。

深度確定性梯度下降(DDPG)

DDPG算法融合了Q函數(shù)和策略梯度的基礎(chǔ)思想,采用卷積神經(jīng)網(wǎng)絡(luò)作為策略函數(shù)μ和回報(bào)函數(shù)Q
的模擬照皆,即策略μ網(wǎng)絡(luò)和價(jià)值Q網(wǎng)絡(luò)重绷;然后使用深度學(xué)習(xí)的方法來(lái)訓(xùn)練上述神經(jīng)網(wǎng)絡(luò),訓(xùn)練的目標(biāo)是使Q網(wǎng)絡(luò)的L盡可能小膜毁、使μ網(wǎng)絡(luò)的J盡可能大昭卓。

Q網(wǎng)絡(luò)和策略網(wǎng)絡(luò)

如果只使用單個(gè)神經(jīng)網(wǎng)絡(luò)的算法,學(xué)習(xí)過(guò)程很不穩(wěn)定瘟滨,因?yàn)镼網(wǎng)絡(luò)的參數(shù)在頻繁的梯度變換的同時(shí)候醒,又用于計(jì)算Q網(wǎng)絡(luò)和μ網(wǎng)絡(luò)的梯度≡尤常基于此倒淫,DDPG分別為μ網(wǎng)絡(luò)、Q網(wǎng)絡(luò)各創(chuàng)建兩個(gè)神經(jīng)網(wǎng)絡(luò)拷貝,一個(gè)叫做online败玉,一個(gè)叫做target敌土。

image
image

優(yōu)點(diǎn)在于target網(wǎng)絡(luò)參數(shù)變化小,用于在訓(xùn)練過(guò)程中計(jì)算online網(wǎng)絡(luò)的梯度运翼,比較穩(wěn)定返干,訓(xùn)練易于收斂。代價(jià)是參數(shù)變化小血淌,學(xué)習(xí)過(guò)程變慢犬金。

DDPG圖解

image

DDPG偽代碼

% 初始化
初始化經(jīng)驗(yàn)重放內(nèi)存R
隨機(jī)初始化Qonline網(wǎng)絡(luò)和策略online網(wǎng)絡(luò)的參數(shù)θ^μθ^Q,其中μ網(wǎng)絡(luò)作為critic網(wǎng)絡(luò)六剥,Q網(wǎng)絡(luò)作為actor網(wǎng)絡(luò)
分別復(fù)制兩個(gè)網(wǎng)絡(luò)(參數(shù)復(fù)制),生成target網(wǎng)絡(luò)
while(每一輪次)
··% 選擇執(zhí)行行動(dòng)
··UO初始化噪音\mathcal{N}峰伙,用于探索策略
··初始化狀態(tài)s_t
··while(輪次中的每一刻)
····根據(jù)策略μ網(wǎng)絡(luò)和策略探索選擇和執(zhí)行策略
····觀察獎(jiǎng)勵(lì)r和之后的狀態(tài)s_{t+1}
····把<s_t,a_t,r_t,s_{t+1}>存儲(chǔ)到經(jīng)驗(yàn)重放內(nèi)存中
····% 訓(xùn)練網(wǎng)絡(luò)
····從經(jīng)驗(yàn)重放內(nèi)存D中疗疟,隨機(jī)選取一批N個(gè)狀態(tài)轉(zhuǎn)化<s_i,a_i,r_i,s_{i+1}>
····設(shè)置y_i=r_i+γQ'(s_{i+1},μ'(s_{i+1}|θ^{μ'})|θ^{Q'})
····更新Q網(wǎng)絡(luò),梯度下降損失函數(shù)L=\frac{1}{N}\sum_i{(y_i-Q(s_i,a_i|θ^Q))}^2
····更新策略網(wǎng)絡(luò)瞳氓,梯度上升函數(shù)\nabla_{θ^μ}J\approx{\frac{1}{N}\sum\limits_i\nabla_aQ(s,a|θ^Q)|_{s=s_i,a=μ(s_i)}\nabla{θ^μ}μ(s|θ^μ)|_{s_i}}
····軟更新兩個(gè)target網(wǎng)絡(luò)
··結(jié)束
結(jié)束

多智體深度確定性梯度下降(MADDPG)

為了將強(qiáng)化學(xué)習(xí)的概念應(yīng)用更具有挑戰(zhàn)性的情景下策彤,如多個(gè)機(jī)器人控制、語(yǔ)言交流、多玩家游戲等多智體競(jìng)爭(zhēng)與合作問(wèn)題店诗。在這個(gè)項(xiàng)目中裹刮,我們采用了Deepmind發(fā)布的MADDPG算法,用于該星際爭(zhēng)霸2環(huán)境一個(gè)特定場(chǎng)景的訓(xùn)練庞瘸。

傳統(tǒng)的算法用于多智能體環(huán)境下具有以下困難

  • Q-learning會(huì)受到環(huán)境不穩(wěn)定性的挑戰(zhàn):每個(gè)智能體都在變化捧弃,而且每個(gè)智能體的角度來(lái)看,環(huán)境都會(huì)變得不穩(wěn)定擦囊。
  • 策略梯度(PG)方法在智能體數(shù)目增多時(shí)违霞,會(huì)有variance變大的問(wèn)題。

DDPG結(jié)合了Q學(xué)習(xí)算法和Actor-Critic的思想瞬场,MADDPG沿用了這個(gè)思想买鸽。

多智體Actor-Critic

我們通過(guò)采用分散執(zhí)行,集中訓(xùn)練的框架來(lái)實(shí)現(xiàn)我們的目標(biāo)贯被。若N個(gè)智能體(actor)的策略集合分別是π={π_1,π_2...π_N}眼五,策略參數(shù)分別為θ={θ_1,θ_2...θ_N},那么智能體i的策略梯度為:

\nabla_{θ_j}=J(θ_i)=E_{s~p^μ,a_i~π_i}[\nabla_{θ_i}logπ_i(a_i|o_i)Q^π_i(X,a_1,a_2...a_N)]

Q^π_i(X,a_1,a_2...a_N)]是一個(gè)是一個(gè)集中的動(dòng)作值函數(shù)彤灶,它將所有智能體的動(dòng)作a_1,a_2...a_N和狀態(tài)X(包含每個(gè)智能體的觀測(cè)值和一些附加狀態(tài)信息)作為輸入看幼,然后輸出Q值。每個(gè)智能體的Q值是分開的枢希,智能體有不同的獎(jiǎng)勵(lì)機(jī)制桌吃。

擴(kuò)展到確定性策略,考慮N個(gè)多智體的策略μ_{θ_i}苞轿,參數(shù)為θ_i(縮寫為μ_i)茅诱,那么梯度為:

\nabla_{θ_i}=J(μ_i)=E_{x,a~D}[\nabla_{θ_i}μ_i(a_i|o_i)\nabla_{a_i}Q_i^μ(x,a_1,...,a_N)|_{a_i=μ_i(o_i)}]

經(jīng)驗(yàn)重放緩沖區(qū)D包括元組(x,x',a_1,...,a_N,r_1,...r_N),記錄了所有智能體的經(jīng)驗(yàn)搬卒,集中動(dòng)作值函數(shù)Q_i^μ按如下方式更新:L(θ_i)=E_{x,a,r,x'}[{(Q^μ_i(x,a_1,...,a_N)-y)}^2]瑟俭,y=r_i+γ Q_i^{μ'}(x',a_1',...,a_N')|_{a_j'=μ_j'(o_j)},其中μ'=\{μ_{θ'_1},μ_{θ'_2},...μ_{θ'_N}\}是延遲參數(shù)的目標(biāo)策略集合契邀。

其他智能體的策略推測(cè)

為了推測(cè)其他智能體策略摆寄,每個(gè)智能體可以額外保有一個(gè)與智能體j的真實(shí)策略μ_j有關(guān)的近似值\hat{μ}_{?^j_i},這個(gè)近似策略通過(guò)最大化智能體j的動(dòng)作對(duì)數(shù)概率加上一個(gè)熵正則化項(xiàng)來(lái)進(jìn)行學(xué)習(xí):L({?^j_i})=-E_{o_j,a_j}[log\hat{μ}_{?^j_i}(a_j,o_j)+λH(\hat{μ}_{?^j_i})],其中H是策略分布的熵坯门。

那么微饥,集中動(dòng)作值函數(shù)Q_i^μ更新時(shí),可以用\hat{y}=r_i+λQ_i^{μ'}(x',\widehat{μ'}_i^1(o_1),...\widehat{μ'}_i^i(o_i),...\widehat{μ'}_N^1(o_N))古戴。其中用\widehat{μ'}_i^i(o_i)表示策略\hat{μ}_{?^j_i}的目標(biāo)網(wǎng)絡(luò)欠橘。

智能體的策略集成

多智能體強(qiáng)化學(xué)習(xí)中的一個(gè)反復(fù)的問(wèn)題是由于智能體不斷變化的策略而導(dǎo)致的環(huán)境非平穩(wěn)性。競(jìng)爭(zhēng)環(huán)境下尤其如此现恼,因?yàn)橹悄荏w可以通過(guò)過(guò)度適應(yīng)競(jìng)爭(zhēng)對(duì)手的行為而獲得很強(qiáng)的策略肃续。這樣的策略是不可取的黍檩,因?yàn)樗鼈兒艽嗳酰?dāng)競(jìng)爭(zhēng)對(duì)手改變策略時(shí)就可能會(huì)失敗始锚。

為了獲得對(duì)競(jìng)爭(zhēng)智能體策略變化更魯棒的多智能體策略刽酱,我們提出了對(duì)K個(gè)不同的子策略進(jìn)行匯總。在每個(gè)回合的博弈中瞧捌,我們?yōu)槊總€(gè)智能體隨機(jī)地選擇一個(gè)特定的子策略執(zhí)行棵里。假設(shè)策略μ_i是K個(gè)子策略的集合,子策略K由μ_{θ_i^{(k)}}表示察郁,對(duì)于智能體衍慎,我們的最大集成化目標(biāo)是:J_e(μ_i)=E_{k~unif(1,K),s~p^μ,a~μ_i^{(k)}[R_i(s,a)]}

由于不同的子策略將在不同的博弈回合中執(zhí)行皮钠,因此我們?yōu)橹悄荏wi的每個(gè)子策略μ_i^{(k)}維護(hù)一個(gè)重播緩沖區(qū)D_i(k)稳捆。因此,我們可以導(dǎo)推出集成的目標(biāo)值關(guān)于θ_i^{(k)}的梯度:

\nabla_{θ_i^{(k)}}J_e(μ_i)=\frac{1}{K}E_{x,a~D_i^{(k)}}[\nabla_{θ_i^{(k)}}μ_i^{(k)}(a_i|o_i)\nabla_{a_i}Q^{μ_i}(x,a_1,a_2,...,a_N)|_{a=μ_i^{(k)}(o_i)}]

參考

前人工作

【1】星際爭(zhēng)霸2人工智能研究環(huán)境SC2LE初體驗(yàn)

【2】邁向通用人工智能:星際爭(zhēng)霸2人工智能研究環(huán)境SC2LE完全入門指南

【3】星際爭(zhēng)霸2之環(huán)境配置

【4】星際爭(zhēng)霸2之MADDPG算法

參考網(wǎng)頁(yè)

【1】強(qiáng)化學(xué)習(xí)基本介紹

【2】DNQ介紹

【3】Intel——DNQ

【4】MADDPG論文翻譯

【5】MADDPG官方文檔

【6】MADDPG簡(jiǎn)介

【7】DDPG詳解

【8】深度學(xué)習(xí)A3C

參考代碼

【1】openai/MADDPG

【2】Blizzard/s2client-proto

【3】deepmind/pysc2

【4】fangbrodie/pysc2_maddpg

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末麦轰,一起剝皮案震驚了整個(gè)濱河市乔夯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌款侵,老刑警劉巖末荐,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異新锈,居然都是意外死亡甲脏,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門妹笆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)块请,“玉大人,你說(shuō)我怎么就攤上這事拳缠《招拢” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵窟坐,是天一觀的道長(zhǎng)海渊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)哲鸳,這世上最難降的妖魔是什么臣疑? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮徙菠,結(jié)果婚禮上朝捆,老公的妹妹穿的比我還像新娘。我一直安慰自己懒豹,他們只是感情好芙盘,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著脸秽,像睡著了一般儒老。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上记餐,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天驮樊,我揣著相機(jī)與錄音,去河邊找鬼片酝。 笑死囚衔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雕沿。 我是一名探鬼主播练湿,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼审轮!你這毒婦竟也來(lái)了肥哎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤疾渣,失蹤者是張志新(化名)和其女友劉穎篡诽,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體榴捡,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杈女,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吊圾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片达椰。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖街夭,靈堂內(nèi)的尸體忽然破棺而出砰碴,到底是詐尸還是另有隱情,我是刑警寧澤板丽,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布呈枉,位于F島的核電站,受9級(jí)特大地震影響埃碱,放射性物質(zhì)發(fā)生泄漏猖辫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一砚殿、第九天 我趴在偏房一處隱蔽的房頂上張望啃憎。 院中可真熱鬧,春花似錦似炎、人聲如沸辛萍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)贩毕。三九已至悯许,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辉阶,已是汗流浹背先壕。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谆甜,地道東北人垃僚。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像规辱,于是被迫代替她去往敵國(guó)和親谆棺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容