宋拴,俞揚(yáng)
SONG Shuan, YU Yang
南京大學(xué) 計(jì)算機(jī)軟件新技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,南京 210023
National Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China
強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)重要研究領(lǐng)域,它要解決的問題可描述為:agent通過與環(huán)境交互,根據(jù)環(huán)境反饋的獎(jiǎng)賞值改善自身行為策略,使得長期累積獎(jiǎng)賞值最大[1,2]。強(qiáng)化學(xué)習(xí)算法就是要找到一個(gè)策略,它將agent所處狀態(tài)映射為agent在該狀態(tài)應(yīng)采取的動(dòng)作。
由于強(qiáng)化學(xué)習(xí)具有自主學(xué)習(xí)的特點(diǎn),適用于大空間、復(fù)雜非線性問題,已經(jīng)應(yīng)用到多個(gè)領(lǐng)域[1,3]。例如在自動(dòng)控制領(lǐng)域,將強(qiáng)化學(xué)習(xí)算法用于倒立擺問題,取得了優(yōu)于手動(dòng)設(shè)計(jì)傳遞函數(shù)的效果[4]。此外,在服務(wù)器調(diào)度、電梯調(diào)度以及Backgammon游戲等問題上也得到了成功的應(yīng)用[1,3]。
在強(qiáng)化學(xué)習(xí)的早期研究中,強(qiáng)化學(xué)習(xí)多采用試錯(cuò)法[1,2]。在引入MDP理論后,值函數(shù)法在強(qiáng)化學(xué)習(xí)研究中占據(jù)了主導(dǎo)地位,并取得了豐碩成果,代表性的算法如 Q學(xué)習(xí)等[1,2],這類算法通過各種值函數(shù)逼近的方法來計(jì)算最優(yōu)策略。隨著研究的不斷深入,很多新的方法被提出,以解決傳統(tǒng)強(qiáng)化學(xué)習(xí)算法效率低、收斂慢等不足[2]。演化強(qiáng)化學(xué)習(xí)將演化算法和強(qiáng)化學(xué)習(xí)相結(jié)合,通過演化算法搜索強(qiáng)化學(xué)習(xí)的最優(yōu)策略[5]或最優(yōu)值函數(shù)[6],取得了良好的效果。Stanley等人首先將一種稱作NEAT[7]的演化神經(jīng)網(wǎng)絡(luò)算法用于解決倒立擺問題,演化得到的神經(jīng)網(wǎng)絡(luò)用于選擇動(dòng)作,這相當(dāng)于在策略空間直接搜索最優(yōu)策略[8]。Shimon Whiteson等人提出的NEAT+Q[6]算法,用神經(jīng)網(wǎng)絡(luò)逼近強(qiáng)化學(xué)習(xí)的值函數(shù),通過演化神經(jīng)網(wǎng)絡(luò)搜索最優(yōu)值函數(shù)表示,其實(shí)驗(yàn)結(jié)果表明NEAT+Q算法的性能遠(yuǎn)優(yōu)于Q學(xué)習(xí)。在NEAT+Q算法的基礎(chǔ)上,Shimon Whiteson等人提出了Sample Efficient NEAT+Q的算法,它記錄學(xué)習(xí)過程中成功執(zhí)行了的例子,用這些例子來訓(xùn)練神經(jīng)網(wǎng)絡(luò)[9]。強(qiáng)化學(xué)習(xí)算法效率低下的一個(gè)原因是因?yàn)閍gent通過自主探索的方式來與環(huán)境交互,在學(xué)習(xí)的早期階段,agent需要反復(fù)探索大量無用的狀態(tài),在狀態(tài)空間很大時(shí),學(xué)習(xí)算法的性能會(huì)急劇降低。從示例中學(xué)習(xí)[10]是一種借助先驗(yàn)知識(shí)或經(jīng)驗(yàn)來幫助agent學(xué)習(xí)的方法,它可以有效的減少agent在學(xué)習(xí)初期對狀態(tài)空間的大量低效探索。它的主要思路是教師演示某問題的解決方法,agent通過某種方式利用教師的演示信息,來加快自身的學(xué)習(xí)。典型的方法是通過示例數(shù)據(jù)學(xué)習(xí)出一個(gè)從狀態(tài)到動(dòng)作的映射函數(shù),agent用該函數(shù)進(jìn)行動(dòng)作選擇,或者從示例數(shù)據(jù)中學(xué)習(xí)出一個(gè)獎(jiǎng)賞函數(shù),解決強(qiáng)化學(xué)習(xí)過程中的信用分配的問題。
由于基于演化的強(qiáng)化學(xué)習(xí)和從示例中學(xué)習(xí)各自所具有的優(yōu)點(diǎn),一種自然的想法是,能否將這兩種方法結(jié)合起來,進(jìn)一步提高學(xué)習(xí)算法的性能?基于這一想法,本文提出了一種稱為 iNEAT+Q(imitation based NEAT+Q)的算法,它基于 NEAT+Q算法,在演化強(qiáng)化學(xué)習(xí)值函數(shù)的過程中,通過有效地利用示例數(shù)據(jù)幫助agent學(xué)習(xí)。在Mountain Car實(shí)驗(yàn)平臺(tái)上的結(jié)果表明,本文提出的方法取得了優(yōu)于NEAT+Q算法的性能。
本文的內(nèi)容組織如下。第一節(jié)介紹強(qiáng)化學(xué)習(xí)的相關(guān)定義、應(yīng)用、演化強(qiáng)化學(xué)習(xí),以及本文的組織和工作。第二節(jié)介紹與本文有關(guān)的背景知識(shí)。第三節(jié)介紹本文的主要工作,即 iNEAT+Q的算法。第四節(jié)介紹本文的實(shí)驗(yàn)及實(shí)驗(yàn)結(jié)果。第五節(jié)總結(jié)了本文的工作。
強(qiáng)化學(xué)習(xí)問題通常建模為一個(gè) MDP[1,3]。MDP可以用一個(gè)五元組表示,其中,S為狀態(tài)集合,A為agent的動(dòng)作集合,R為獎(jiǎng)賞函數(shù),R(s, a)定義了agent在狀態(tài)s執(zhí)行動(dòng)作a所獲得的獎(jiǎng)賞,P為狀態(tài)轉(zhuǎn)移概率,P(s, a, s')定義了agent在狀態(tài)s下執(zhí)行動(dòng)作a轉(zhuǎn)移到狀態(tài) s'的概率,γ為折扣因子。
值函數(shù)的一個(gè)基本屬性就是它滿足遞歸性質(zhì),可以表示為Bellman方程的形式。
上式表明在狀態(tài)s的期望獎(jiǎng)賞值可以表示為它的立即獎(jiǎng)賞與下一狀態(tài)的期望獎(jiǎng)賞值的加權(quán)和。對于給定MDP,它的目標(biāo)是要找到一條能夠最大化累積獎(jiǎng)賞最優(yōu)策略。因此,最優(yōu)策略π*對應(yīng)的值函數(shù)可表示為:
Q學(xué)習(xí)[1]是一種應(yīng)用廣泛的強(qiáng)化學(xué)習(xí)算法,它的目標(biāo)是是學(xué)習(xí)一個(gè)值函數(shù)Q(s,a),它將(狀態(tài),動(dòng)作)映射到一個(gè)實(shí)數(shù)值。在值表法中Q(s,a),通過下式進(jìn)行更新:
當(dāng)強(qiáng)化學(xué)習(xí)問題的狀態(tài)空間較小時(shí),可通過值表法求解。對于規(guī)模較大以及連續(xù)的問題,值表法不再適用,需要值函數(shù)近似方法來求解,神經(jīng)網(wǎng)絡(luò)就是其中一種典型的非線性近似方法[1]。
神經(jīng)網(wǎng)絡(luò)[11]又稱多層感知機(jī)。一個(gè)典型的三層神經(jīng)網(wǎng)絡(luò)包含輸入層、隱藏層和輸出層,其中,輸入層接收待學(xué)習(xí)的問題的模式,經(jīng)網(wǎng)絡(luò)傳輸?shù)诫[藏層,隱藏層相當(dāng)于一個(gè)特征檢測器,它的輸出經(jīng)網(wǎng)
絡(luò)傳遞給輸出層,輸出層輸出學(xué)習(xí)的結(jié)果。神經(jīng)元常采用Sigmoid函數(shù)作為其變換函數(shù),實(shí)現(xiàn)輸入到輸出的非線性變換。
神經(jīng)網(wǎng)絡(luò)常采用反向傳播(BP)算法[11]進(jìn)行訓(xùn)練,它通過梯度下降法最小化均方誤差實(shí)現(xiàn),在輸出層計(jì)算網(wǎng)絡(luò)當(dāng)前輸出和目標(biāo)值之間的誤差,并將誤差逆向傳播,依次更新神經(jīng)網(wǎng)絡(luò)的權(quán)值。
Stanley等人在2002年提出NEAT (NeuroEvolution of Augmenting Topologies)[7]算法,它使用演化算法來自動(dòng)尋找合適的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和初始權(quán)值。
NEAT算法的初始種群為一組沒有任何隱藏節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)的所有輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)直接相連。為適應(yīng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)化的需要,神經(jīng)網(wǎng)絡(luò)被編碼為一組邊,每條邊由入點(diǎn)、出點(diǎn)及該邊的權(quán)重組成。在演化的過程中,引入了兩種變異操作,增加一個(gè)隱藏層節(jié)點(diǎn)和增加一條邊。神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)通過變異發(fā)生變化,只有能夠提高個(gè)體適應(yīng)度的變異才可以在進(jìn)化中保留下來。NEAT通過這種方式尋找最優(yōu)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
NEAT算法最初用于強(qiáng)化學(xué)習(xí)問題時(shí),是為agent選擇合適的動(dòng)作,從這個(gè)角度看相當(dāng)于搜索策略空間中的最優(yōu)策略。Whiteson等人在Mountain Car等實(shí)驗(yàn)上驗(yàn)證了NEAT算法的有效性,它取得了優(yōu)于Q學(xué)習(xí)的結(jié)果[2,12]。
NEAT+Q[6]算法由Whiteson等人于2006年提出,它將演化算法和強(qiáng)化學(xué)習(xí)算法結(jié)合起來,目的是搜索最優(yōu)的值函數(shù)表示。因?yàn)樯窠?jīng)網(wǎng)絡(luò)具有強(qiáng)大的表達(dá)能力,常用于表示強(qiáng)化學(xué)習(xí)的值函數(shù),但是針對具體的問題,要找到最佳的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)值并不容易,NEAT+Q算法在演化神經(jīng)網(wǎng)絡(luò)的過程中,通過Q學(xué)習(xí)評價(jià)神經(jīng)網(wǎng)絡(luò)的性能,并且在每個(gè)神經(jīng)網(wǎng)絡(luò)個(gè)體學(xué)習(xí)過程中,使用時(shí)序差值錯(cuò)誤更新神經(jīng)網(wǎng)絡(luò)的權(quán)值,從而在優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的同時(shí)優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值。NEAT+Q算法的性能好于NEAT算法和Q學(xué)習(xí)。
從示例中學(xué)習(xí)(Learning from Demonstration) 這一概念來源于機(jī)器人的模仿學(xué)習(xí)[10]。示例由教師提供,記錄了教師在演示一個(gè)任務(wù)成功執(zhí)行的過程。從 agent的角度來看,它所觀察到的信息為教師演示過程中的每個(gè)狀態(tài)以及在每個(gè)狀態(tài)所采取的動(dòng)作。因此,記錄下教師演示過程中的(狀態(tài),動(dòng)作)序列,就是 agent能夠加以利用的示例數(shù)據(jù)。例如一條執(zhí)行了n步的示例數(shù)據(jù)的記錄可以表示為一個(gè)(狀態(tài),動(dòng)作)一一對應(yīng)的序列,如,其中s為狀態(tài),a為動(dòng)作。
現(xiàn)有的從示例中學(xué)習(xí)算法大概可分為兩類[10]。第一類方法使用示例數(shù)據(jù)學(xué)習(xí)一個(gè)從狀態(tài)空間到動(dòng)作空間的映射,該函數(shù)可看做是一條策略,agent可以用它來選擇動(dòng)作。第二類方法從示例中學(xué)習(xí)一個(gè)獎(jiǎng)賞函數(shù),這類方法又稱為逆強(qiáng)化學(xué)習(xí)(Inverse Reinforcement Learning)[13],它可以用于解決強(qiáng)化學(xué)習(xí)中的信用分配問題。
在演化強(qiáng)化學(xué)習(xí)的過程中,如何結(jié)合示例數(shù)據(jù)進(jìn)行學(xué)習(xí)是本文關(guān)注的重點(diǎn)。在已有的從示例中學(xué)習(xí)算法中,無論是從示例數(shù)據(jù)中學(xué)習(xí)到一個(gè)策略或者學(xué)習(xí)到一個(gè)獎(jiǎng)賞函數(shù),都難以直接用到演化強(qiáng)化學(xué)習(xí)的過程當(dāng)中。
在演化神經(jīng)網(wǎng)絡(luò)的過程中,不僅要改變神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),還要改變神經(jīng)網(wǎng)絡(luò)的權(quán)值,對于神經(jīng)網(wǎng)絡(luò)而言,無論是結(jié)構(gòu)還是權(quán)值,都會(huì)影響到神經(jīng)網(wǎng)絡(luò)的性能,因此,首先考慮使用示例數(shù)據(jù)作為訓(xùn)練樣本,在演化過程中每一代直接訓(xùn)練每個(gè)神經(jīng)網(wǎng)絡(luò),在每個(gè)神經(jīng)網(wǎng)絡(luò)都有一個(gè)較優(yōu)的初始權(quán)值的情況下,其性能的差異更多的依賴于網(wǎng)絡(luò)結(jié)構(gòu)。
使用示例數(shù)據(jù)的另一種思路是,將示例數(shù)據(jù)看做是提供指導(dǎo)信息的教師[14,15],教師根據(jù)agent當(dāng)前狀態(tài)s和所選動(dòng)作a給出獎(jiǎng)賞信息H(s, a),教師給出的獎(jiǎng)賞H(s, a)加入到agent所接收到的獎(jiǎng)勵(lì)RH(s, a)中,以引導(dǎo)agent的動(dòng)作選擇。
當(dāng)H(s, a)>0時(shí),可以看做是教師對agent在狀態(tài)s選擇動(dòng)作a的額外獎(jiǎng)勵(lì),agent在該狀態(tài)所選的動(dòng)作會(huì)得到強(qiáng)化。當(dāng)H(s,a)<0時(shí),可看做是對該動(dòng)作的懲罰,則這一動(dòng)作將被弱化。從演化的角度來看,修改了agent的獎(jiǎng)賞函數(shù),相當(dāng)于修改了演化過程中每個(gè)神經(jīng)網(wǎng)絡(luò)個(gè)體的適應(yīng)度評價(jià)函數(shù),與演示數(shù)據(jù)更相似的個(gè)體有更高的適應(yīng)度,與演示數(shù)據(jù)差異較大的個(gè)體適應(yīng)度會(huì)變低。
在演化算法的每一代開始之前,執(zhí)行如下算法(算法描述中步驟2 1)):
(1) 將示例數(shù)據(jù)作為訓(xùn)練樣本,使用BP算法訓(xùn)練種群P中的每個(gè)神經(jīng)網(wǎng)絡(luò)N。
在agent每次選擇了動(dòng)作a之后,執(zhí)行如下算法(算法描述中步驟2 2) 中的(4)(5)(8)):
(1) 根據(jù) agent當(dāng)前狀態(tài)s,尋找它在示例中的最近鄰狀態(tài),返回該狀態(tài)的動(dòng)作,a '=NearestNeighbour(s),最近鄰使用歐氏距離度量。
(2) 比較 a'和a,給出獎(jiǎng)賞值 H(s, a)。如果 a' 和a相同,則,否則
算法中所用到的參數(shù)如表1所述。
Table 1 Parameters used in iNEAT+Q表1 iNEAT+Q算法中用到的參數(shù)
m 增加邊的概率g 演化的代數(shù)e 個(gè)體執(zhí)行的周期數(shù)α 學(xué)習(xí)率γ 折扣因子λ 資格跡衰減率ε Q學(xué)習(xí)探索率l
算法執(zhí)行過程如下:
步驟1 初始化種群P、示例數(shù)據(jù)D以及各參數(shù)。
步驟 2 g為演化的最大代數(shù),p為種群中個(gè)體的數(shù)目,e為每個(gè)個(gè)體在每一代中執(zhí)行的周期數(shù)。在演化算法的第i代,對于種群P中的第 j個(gè)個(gè)體N:
1) 使用示例數(shù)據(jù)D訓(xùn)練神經(jīng)網(wǎng)絡(luò)N,
2) 神經(jīng)網(wǎng)絡(luò)N在e個(gè)周期中的一次執(zhí)行過程如下:
步驟3 如果當(dāng)前種群中還有個(gè)體未評估,轉(zhuǎn)步驟2,否則,根據(jù)每個(gè)個(gè)體的適應(yīng)度值,生成新的種群:
步驟4 如果到達(dá)最后一代,算法結(jié)束,否則,轉(zhuǎn)步驟2。
Mountain Car[1]問題的設(shè)定是在一輛小車停在一個(gè)二維山谷的底部,目標(biāo)是到達(dá)較高的一個(gè)山頂,小車沒有足夠的動(dòng)力無法持續(xù)加速到山頂,所以必須先向反方向加速,以獲得更大的沖量。
簡單的Mountain Car問題狀態(tài)僅有兩維,分別是小車的位置p和速度v,小車在狀態(tài)s可選擇的動(dòng)作a分別為向左加速、不加速和向右加速,可分別表示為-1,0,1。
在每個(gè)周期,小車的初始位置隨機(jī)化為山谷中任意一點(diǎn),初始速度為0。如果小車在2500步內(nèi)到達(dá)目標(biāo)則視為成功,否則停止。小車每運(yùn)行一步,根據(jù)它是否達(dá)到目標(biāo)獲得獎(jiǎng)賞,如果到達(dá)目標(biāo)獎(jiǎng)賞為 0,否則為-1。
實(shí)驗(yàn)中所用到的示例數(shù)據(jù)是由兩個(gè)不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)執(zhí)行Q學(xué)習(xí)算法得來的。其中一個(gè)神經(jīng)網(wǎng)絡(luò)無隱藏層節(jié)點(diǎn),另一個(gè)隱藏層節(jié)點(diǎn)數(shù)為12,輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)數(shù)目分別為20和3。神經(jīng)網(wǎng)絡(luò)的輸入是小車的狀態(tài),它被離散化為一個(gè)20維的向量。這兩個(gè)神經(jīng)網(wǎng)絡(luò)在隨機(jī)初始點(diǎn)反復(fù)執(zhí)行Mountain Car任務(wù)多次,從中選出執(zhí)行步數(shù)較少的作為示例。每個(gè)示例記錄的信息為,從初始狀態(tài)到目標(biāo)狀態(tài)的一系列二元組(狀態(tài),動(dòng)作)。所采集的示例數(shù)據(jù)初始點(diǎn)在(-1.2,0.5)之間近似均勻分布。一條典型的示例數(shù)據(jù)如表2所示,每一行表示一個(gè)記錄,是一個(gè)(位置,速度,動(dòng)作)三元組,前兩個(gè)對應(yīng)的是小車的狀態(tài),后一個(gè)表示小車在該狀態(tài)的動(dòng)作。
表2 示例數(shù)據(jù)
表2中的示例數(shù)據(jù)經(jīng)離散化后如表3所示,狀態(tài)為一個(gè)20維的向量。
表3 離散化后的示例數(shù)據(jù)
在Mountain Car實(shí)驗(yàn)中,小車的狀態(tài)信息作為神經(jīng)網(wǎng)絡(luò)的輸入,進(jìn)行了離散化,將位置和速度各劃分為10個(gè)區(qū)域,如果小車的位置和狀態(tài)落入某個(gè)區(qū)域,則對應(yīng)的值為1,否則為0。神經(jīng)網(wǎng)絡(luò)的3個(gè)輸出節(jié)點(diǎn),分別對應(yīng)小車的3個(gè)動(dòng)作。
實(shí)驗(yàn)中用到的演示數(shù)據(jù)數(shù)量為923條,所有示例的初始點(diǎn)近似均勻分布在-1.2和0.5之間。
本文進(jìn)行了2組實(shí)驗(yàn)。第一組實(shí)驗(yàn)為了驗(yàn)證本文所提出算法,比較了NEAT+Q、iNEAT+Q和iNEAT+Q退化版三種方法,iNEAT+Q是指僅使用示例數(shù)據(jù)預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方法,iNEAT+Q退化版是指僅使用示例數(shù)據(jù)修改獎(jiǎng)賞函數(shù)的方法。每種方法各執(zhí)行20次。第二組實(shí)驗(yàn)驗(yàn)證演示數(shù)據(jù)數(shù)量對iNEAT+Q算法性能的影響。
圖1顯示的是第一組實(shí)驗(yàn)的結(jié)果,每條曲線顯示其對應(yīng)算法每一代中最優(yōu)個(gè)體在該代所接收到的平均獎(jiǎng)賞值。最優(yōu)個(gè)體指的是在它所在的那一代平均獎(jiǎng)賞值最高的個(gè)體。每個(gè)算法執(zhí)行20次,選出最好的10個(gè)取平均。
從圖 1中可以看出,使用示例數(shù)據(jù)對算法的性能有明顯提升。預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)和修改獎(jiǎng)賞函數(shù)兩種方法的收斂時(shí)間均早于NEAT+Q算法。NEAT+Q算法在演化較長一段時(shí)間后,性能趨向于預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)方法,但是付出了較長的時(shí)間代價(jià)??傮w來看,預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)方法的效果最好,但是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的時(shí)間開銷不可忽略。修改獎(jiǎng)賞值的性能不如預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方法,但是它也能夠在較早的時(shí)間內(nèi)收斂。這表明,如果有充足的計(jì)算資源,可以考慮使用示例數(shù)據(jù)對每個(gè)神經(jīng)網(wǎng)絡(luò)個(gè)體進(jìn)行充分的訓(xùn)練,在計(jì)算資源比較昂貴時(shí),可以通過修改獎(jiǎng)賞函數(shù)的方式來利用演示數(shù)據(jù)同樣可以獲得性能的提升。
圖 2中顯示的是第二組實(shí)驗(yàn)的結(jié)果,它顯示了不同數(shù)量的示例數(shù)據(jù)對算法性能的影響。因?yàn)槭纠龜?shù)據(jù)的數(shù)量對修改獎(jiǎng)賞函數(shù)的方法影響很小,因此,僅比較預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)方法在示例數(shù)據(jù)數(shù)量不同時(shí)算法性能的變化。從圖中可以看出,獎(jiǎng)賞值隨著演示數(shù)據(jù)數(shù)量的增加先增大,到達(dá)一定數(shù)量后開始下降,這表明,演示數(shù)據(jù)并非越多越好。
圖1 NEAT+Q、iNEAT+Q和iNEAT+Q退化版性能的比較
圖2 演示數(shù)據(jù)數(shù)量對iNEAT+Q算法性能的影響
演化強(qiáng)化學(xué)習(xí)是一種基于演化優(yōu)化的方法,通過在值函數(shù)空間搜索最優(yōu)值函數(shù),來得到最優(yōu)策略。從示例中學(xué)習(xí)通過示例引導(dǎo)agent學(xué)習(xí),提高agent的學(xué)習(xí)效率。這兩種方法從不同角度出發(fā),均有效提高了強(qiáng)化學(xué)習(xí)的性能。本文嘗試著結(jié)合這兩種方法,提出了 iNEAT+Q算法,并給出了兩種使用演示數(shù)據(jù)的方法。在演化神經(jīng)網(wǎng)絡(luò)的過程中,可以使用演示數(shù)據(jù)預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),給每一代的所有個(gè)體一個(gè)較好的初始權(quán)值,也可以在演化的過程中,在agent選擇動(dòng)作時(shí),由演示數(shù)據(jù)提供教師信號(hào)指導(dǎo)agent學(xué)習(xí),由于同時(shí)修改了相應(yīng)個(gè)體的適應(yīng)度,使得與演示數(shù)據(jù)動(dòng)作選擇相似的個(gè)體具有更高的適應(yīng)度,從而引導(dǎo)個(gè)體的進(jìn)化方向。實(shí)驗(yàn)表明,這兩種方法均可以有效提高學(xué)習(xí)算法的性能。此外,本文還驗(yàn)證了示例數(shù)據(jù)數(shù)量對算法性能的影響,實(shí)驗(yàn)結(jié)果表明,演示數(shù)據(jù)的數(shù)量并非越多越好,而是要保證在一個(gè)合理的數(shù)量。
[1]Richard S. Sutton, Andrew G. Barto. Reinforcement Learning: An Introduction. Cambridge: MIT Press, 1998
[2]Marco W, Martijn V O. Reinforcement Learning: State of the Art.New York:Springer-Verlag, 2012.
[3]高陽,陳世福,陸鑫.強(qiáng)化學(xué)習(xí)研究綜述.自動(dòng)化學(xué)報(bào), 2004,30(1):86-100.
[4]王瑞霞,孫亮,阮曉鋼.基于強(qiáng)化學(xué)習(xí)的二級倒立擺控制.計(jì)算機(jī)仿真,2006,23(4):305-308.
[5]Moriarty D E, Schultz A C, Grefenstette J J. Evolutionary algorithms for reinforcement learning. Journal of Artificial Intelligence Research, 1999,11: 241-276.
[6]Whiteson S, Stone P. Evolutionary function approximation for reinforcement learning. Journal of Machine Learning Research,2006,7: 877-917.
[7]Stanley K O, Miikkulainen R. Evolving neural networks through augmenting topologies. Evolutionary Computation, 2002,10(2): 99-127.
[8]Stanley K O, Miikkulainen R. Efficient reinforcement learning through evolving neural network topologies. In Proceedings of the Genetic and Evolutionary Computation Coference(GECCO-2002). San Francisco, CA, 2002,569-577.
[9]Whiteson S, Stone P. Sample efficient evolutionary function approximation for reinforcement learning. In Proceedings of the 21th National Conference on Artificial Intelligence. Boston, MA, 2006, 518-23.
[10]Argall B D, Chernova S, Veloso M, Browning B. A survey of robot learning from demonstration. Robotics and Autonomous Systems, 2009,57(5):469-483.
[11]Mitchell TM.Machine learning.McGraw Hill,NY,1997.
[12]Whiteson S, Taylor M E, Stone P. Critial factors in the empirical performance of temporal difference and evolutioinary methods for reinforcement learning. Journal of Autonomous Agents and Multi-Agent Systems, 2009, 21(1):1-27.
[13]Andrew N g., Russell S. Algorithms for inverse reinforcement learning. In Proceedings of the 17th International Conference on Machine Learning. Stanford, CA, 2000, 663–670.
[14]Knox W B, Setapen A, Stone P. Reinforcement learning with human feedback in mountain car.In Proceedings of AAAI Spring Symposium: Help Me Help You: Bridging the Gaps in Human-Agent Collaboration, 2011.
[15]Laud A, DeJong G. Reinforcement learning and shaping: encouraging intended behaviors. In Proceedings of the 19th International Conference on Machine Learning. Sydney, Australia, 2002, 355-362.