楊 珉,汪 潔
中南大學 信息科學與工程學院,長沙 410083
強化學習領域最主要的三大問題[1]分別是:(1)泛化;(2)如何平衡探索與利用之間的關系;(3)信用分配問題(credit assignment problem)。近幾年的研究熱點主要集中在大規(guī)模狀態(tài)空間下的泛化問題,并有了一個新的研究領域,名為深度強化學習[2](deep reinforcement learning)。該領域的興起是從DeepMind團隊提出DQN(deep Q-network)算法[3]后開始的,DQN算法最主要的貢獻就是將深度學習[4]和強化學習[5]結(jié)合起來,并通過經(jīng)驗回放(experience replay)和目標網(wǎng)絡機制來解決有關泛化的一些問題[6]。此后,也有很多關于DQN算法的改進版本被提出來[7-8],這些算法主要關注的還是泛化問題,而本文要探討的主要問題是如何平衡探索與利用之間的關系。
機器學習領域中最熱門的監(jiān)督學習算法只能從人類收集到的數(shù)據(jù)中學習相關的模式,然而需要收集什么樣的數(shù)據(jù),或者說哪些數(shù)據(jù)是重要的還是需要人類來決定。強化學習可以通過選擇不同的動作得到不同的觀察序列,然后根據(jù)得到的觀察序列學習相關的模式,也就是說,在強化學習的范疇內(nèi),需要算法來決定是選擇當前最優(yōu)的動作(利用)還是選擇有可能帶來長期利益的動作(探索)。然而DQN等算法使用的是簡單的啟發(fā)式探索策略ε-貪婪,該策略只以ε(0 ≤ε≤1)的概率隨機選擇一個動作,以此來達到探索的效果,然而這樣的探索策略是極其低效的。雖然DQN算法能在街機學習環(huán)境[9](arcade learning environment)中達到甚至超過人類水平,但是在面對深度探索問題(參見第4章)時,算法的時間復雜度為O(2N)。好的探索策略必須要考慮所選擇的動作所帶來的信息增益,而信息主要是通過估計值的不確定程度來衡量的,那么只需引入概率思維就可以得到一個好的探索策略。其實早在1998年,Dearden等學者就提出了貝葉斯Q學習[10]來平衡探索與利用之間的關系。此后,也有其他研究人員提出了貝葉斯框架下的強化學習算法[11-12],然而這些算法的計算過程比較復雜,而且無法和深度學習技術結(jié)合起來。貝葉斯強化學習和深度學習結(jié)合最主要的問題是:在高維狀態(tài)空間下,得到神經(jīng)網(wǎng)絡參數(shù)的后驗分布是棘手的(intractable)。本文的貢獻就在于提出了一種新的計算方法,該計算方法可以產(chǎn)生參數(shù)后驗分布的樣本(參見第5章),將使用了該計算方法的深度強化學習算法統(tǒng)稱為貝葉斯深度強化學習算法。目前而言,該計算方法只適用于基于值的深度強化學習算法,同基于策略的深度強化學習算法的結(jié)合需要進一步的研究。將Bootstrapped DQN[13]和該計算方法結(jié)合,得到新的算法BBDQN(Bayesian Bootstrapped DQN),并通過兩個環(huán)境下的實驗來驗證算法的探索效率,其中一個實驗環(huán)境是具有深度探索結(jié)構(gòu)的格子世界;另一個實驗環(huán)境是經(jīng)典控制問題Mountain Car,該問題本身不具備深度探索結(jié)構(gòu),對其獎勵函數(shù)稍作修改使其具備深度探索結(jié)構(gòu),然后在修改后的Mountain Car上進行實驗。實驗結(jié)果顯示BBDQN可以解決深度探索問題,并且其探索效率要優(yōu)于使用隨機探索策略(即ε-貪婪)的DQN算法以及Bootstrapped DQN算法。
強化學習算法的探索效率直接影響到算法的樣本效率,提高探索效率可以降低訓練智能體所需的時間步數(shù)。貝葉斯最優(yōu)策略(Bayes-optimal policy)是衡量強化學習算法的探索效率的一個標準,然而計算貝葉斯最優(yōu)策略是棘手的,因為計算時間隨問題空間(狀態(tài)和動作)呈指數(shù)級增長[14]??紤]探索效率方面的研究非常多,而最早提出的是Kearns和Singh[15],他們的工作確認了多項式時間的強化學習算法必須用到多周期探索(multi-period exploration)?;谒麄兊墓ぷ?,一系列表格(tabular)強化學習算法被提出來[16-22],這些論文中提到的探索方法都要比ε-貪婪和玻爾茲曼探索要高效,但是這些方法都無法處理維數(shù)災難(curse of dimensionality)。近幾年提出的處理大規(guī)模狀態(tài)空間的深度強化學習算法[3,23-24]偏向于使用ε-貪婪探索,這些算法在Atari街機游戲以及圍棋上能得到很好的結(jié)果,然而卻沒有任何實際方面的應用,低效的探索效率使得這些算法只能在模擬環(huán)境中訓練。
針對大規(guī)模狀態(tài)空間下的探索,有研究人員提出了模型學習算法[25],該方法的問題在于只能解決簡單的模型類問題,對于復雜的模型,該方法的計算也是棘手的。有研究人員提出了策略學習算法[26],該類算法主要解決的是連續(xù)動作空間問題,如機器人控制,但是當策略空間的大小是指數(shù)級的時候,該方法就無法保證探索的效率了。還有一類方法是根據(jù)偽計數(shù)(pseudocount)[27]或密度模型[28]給不常訪問的狀態(tài)分配獎勵,以此來達到鼓勵探索的目的。
如何保證算法的探索效率和泛化一直是強化學習的一個難題,也有研究人員想到了使用貝葉斯思想處理這一問題,比如貝葉斯Q學習算法[10],然而該算法只能處理狀態(tài)數(shù)量有限的問題;還有Osband等人[29]提出的RLSVI(randomized least-square value iteration)算法,該算法只適用于線性函數(shù)逼近器,無法和神經(jīng)網(wǎng)絡這一非線性函數(shù)逼近器相結(jié)合;而Azizzadenesheli等人[30]提出的算法將神經(jīng)網(wǎng)絡作為特征提取器,將網(wǎng)絡的最后一層的輸入作為特征,然后使用貝葉斯線性回歸計算Q值。貝葉斯神經(jīng)網(wǎng)絡方面的研究一直未成為主流[31-32],然而最近有復蘇的跡象,有許多關于量化數(shù)據(jù)集的不確定性的方法[33-35]被提出來,本文作者受到這些方法的啟發(fā),提出了一種可以有效計算貝葉斯后驗的深度強化學習算法。
強化學習問題通常建模為馬爾可夫決策過程,本文使用的馬爾可夫決策過程可以表示為(S,A,T,R,γ),其中S為狀態(tài)空間;A為動作空間且A(s),s∈S為狀態(tài)s下可用的動作集;T為狀態(tài)轉(zhuǎn)移概率,T(st+1|st,at)表示在狀態(tài)st下采取動作at后轉(zhuǎn)移到狀態(tài)st+1的概率;R為獎勵函數(shù),用Rs,a表示在狀態(tài)s下采取動作a后得到的獎勵分布的均值,用r表示狀態(tài)s下采取動作a后得到的立即獎勵(也可以理解為從獎勵分布中得到的樣本),則有Rs,a=Ε[r|st=s,at=a];γ∈[0,1)是折扣參數(shù),用來控制未來獎勵所占的權重。
強化學習的目標是學習一個策略使得智能體所獲得的折扣累積獎勵最大化。用π來表示策略,且π(a|s)表示在狀態(tài)s下采取動作a的概率。然后引入動作值函數(shù)(Q函數(shù))的概念,動作值函數(shù)Qπ(s,a)表示在策略π下,智能體在狀態(tài)s下采取了動作a后所能獲得的期望折扣累積獎勵,即:
該方程也可以通過遞歸的形式表示出來:
用π*表示最優(yōu)策略,用Q*表示最優(yōu)動作值函數(shù)。由于最優(yōu)策略就是能獲得最大折扣累積獎勵的策略,因此可以將Q*函數(shù)寫為:
式(1)也稱作貝爾曼最優(yōu)方程(Bellman optimality equation),對于每一對s,a,都有一個方程,將所有這些方程聯(lián)合起來就得到了一個方程組,通過線性規(guī)劃方法可以求解這個方程組得到所有s,a對應的最優(yōu)動作值函數(shù)Q*(s,a)。也可以通過策略迭代(policy iteration)或者值迭代(value iteration)等動態(tài)規(guī)劃方法求解最優(yōu)動作值函數(shù)。最優(yōu)策略可以通過最優(yōu)動作值函數(shù)表達出來,即對于所有狀態(tài)s,選擇該狀態(tài)下使得最優(yōu)動作值函數(shù)最大的動作,如果有多個動作滿足這一條件,可以從這些動作中隨機選擇一個。從式(1)中可以看到,這種方法需要已知環(huán)境模型——狀態(tài)轉(zhuǎn)移概率T和獎勵函數(shù)R——才能計算出來,在不知道環(huán)境模型的情況下就需要通過其他方法來求最優(yōu)策略,比如Q學習算法。Q學習是通過迭代方式來計算最優(yōu)動作值函數(shù)的,更新規(guī)則為:
其中,α為學習率,獎勵r和下一狀態(tài)s'都是環(huán)境反饋給智能體的,在狀態(tài)空間和動作空間有限的情況下,只要學習率序列滿足隨機近似條件且所有狀態(tài)-動作對都能得到持續(xù)更新的情況下,該算法以概率1收斂到最優(yōu)值函數(shù)Q*[5]。
在大規(guī)模狀態(tài)空間下,傳統(tǒng)的強化學習算法Q學習不再適用,但是可以通過結(jié)合函數(shù)逼近技術來解決這一問題。神經(jīng)網(wǎng)絡和強化學習的結(jié)合是近幾年研究的熱點,而DQN算法就是這方面的典范。當使用神經(jīng)網(wǎng)絡時,動作值函數(shù)可以表示為Qθ(s,a),其中θ是神經(jīng)網(wǎng)絡的參數(shù)。通過與環(huán)境交互得到的反饋信息來計算目標值:
有了目標值和預測值就可以通過隨機梯度下降算法更新神經(jīng)網(wǎng)絡的參數(shù)θ,更新規(guī)則為:
如果直接這樣做的話,效果并不是很好,因為神經(jīng)網(wǎng)絡是監(jiān)督學習方法,要求各個訓練樣本之間是相互獨立的,強化學習收集的樣本之間是相互關聯(lián)的,而且每次更新參數(shù)會影響到目標值,導致目標值不穩(wěn)定。正如DQN算法中所提到的,只需要兩個機制就可以緩解這一問題:經(jīng)驗回放和目標網(wǎng)絡。經(jīng)驗回放機制就是每次智能體與環(huán)境交互時,將該次交互的信息(s,a,r,s′)存入記憶池(replay buffer)中,每次更新時智能體從記憶池中隨機抽取一定數(shù)量的樣本,并用這些樣本來更新參數(shù)。目標網(wǎng)絡機制就是智能體維護兩個Q網(wǎng)絡,一個網(wǎng)絡是用來選擇動作并實時更新的,另一個網(wǎng)絡(目標網(wǎng)絡)用來計算目標值并且不會實時更新,每次更新時使用的目標值可以表示為:
其中,Qtarget表示目標網(wǎng)絡,只有過了指定的時間步后,才將兩個網(wǎng)絡的參數(shù)同步一次。
文獻[10]中提到的鏈問題就是一類深度探索問題,本章將用該問題來分析ε-貪婪策略和玻爾茲曼探索的探索效率。為了計算簡便,對文獻[10]中的鏈問題做出了一定的修改。
ε-貪婪探索就是有ε的概率從所有可用的動作中隨機選擇一個,有1-ε的概率選擇就當前而言最優(yōu)的動作。玻爾茲曼探索選擇每個動作的概率和動作值函數(shù)的估計成正比,計算公式為:
Fig.1 Chain problem圖1 鏈問題
使用一個鏈問題來分析ε-貪婪探索和玻爾茲曼探索的探索效率,該問題的狀態(tài)轉(zhuǎn)換圖如圖1所示,圖中每一條箭頭都對應一個動作以及獎勵,該問題的起始狀態(tài)為1,終止狀態(tài)為N。假設每個周期(episode)的長度H=N-1,并且無論在哪個狀態(tài)下,選擇動作a會有0.2的概率失?。ㄊ∫馕吨x擇的動作和實際動作不一致),而動作b是確定性的。這個問題的最優(yōu)策略就是一直選擇動作a,最優(yōu)策略每個周期所能得到的平均獎勵就是該策略成功到達N的概率(1-0.2)N-1。無論是ε-貪婪探索還是玻爾茲曼探索,由于到達目標狀態(tài)N之前沒有獎勵(即獎勵為0),因此所有狀態(tài)下動作a和動作b的估計值都是相等的,動作選擇完全是隨機的,這種情況下通過探索到達狀態(tài)N的概率為(1-0.2)N-1×2-(N-1),只需取該概率的倒數(shù)就能得到通過探索到達狀態(tài)N平均所需的周期數(shù)量,用l代表所需的周期數(shù)量,則有如下關系成立:
根據(jù)該不等式,可以確定使用ε-貪婪策略或玻爾茲曼探索的強化學習算法在面對鏈問題之類的深度探索問題時,其時間復雜度為O(2N),其中N代表問題的規(guī)模。
探索的好處可以用信息的價值估計,所謂信息的價值即指探索所獲得的信息導致未來決策質(zhì)量提升的程度,而如何量化探索所獲得的信息是關鍵。根據(jù)信息論,可以用探索所選擇的動作的估值的不確定程度來計算該次探索所帶來的信息量。在文獻[10]中,就提出采用貝葉斯方法來維持這一信息,然而在該篇論文中,所討論的問題的狀態(tài)動作對的數(shù)量有限,可以通過記錄每一個狀態(tài)動作對獲得的所有的回報,然后計算方差,再計算信息量。當狀態(tài)動作對數(shù)量過大時,強化學習會考慮結(jié)合泛化技術來解決這一問題,如果使用的是線性函數(shù)逼近器,可以根據(jù)文獻[36]中提到的貝葉斯線性回歸來得到估值的方差。但是近幾年和深度學習相關的研究表明,神經(jīng)網(wǎng)絡強大的泛化能力遠強于線性函數(shù)逼近器的泛化能力,因此結(jié)合深度學習和強化學習技術成了一大趨勢,并產(chǎn)生了一個新的研究領域被稱作深度強化學習。由于神經(jīng)網(wǎng)絡結(jié)構(gòu)復雜,且參數(shù)數(shù)量十分龐大,無法通過文獻[36]中提到的計算方法來計算估值的方差,因此本文提出了一種新的計算方法。該方法在每一個時間步通過計算得到神經(jīng)網(wǎng)絡參數(shù)的后驗分布的一個樣本,由于不同動作的估值方差不同,方差高的動作其信息量越大,同時其采樣值也可能更大,因此被選擇的概率也越高。舉個例子,有兩個動作,其Q值服從高斯分布,由于動作1被選擇的次數(shù)更多,因此其方差要小于動作2,假設動作1的方差為1,動作2的方差為10,此外動作1的歷史回報均值為3,動作2的歷史回報均值為1,因此動作1服從均值為3方差為1的高斯分布,而動作2服從均值為1方差為10的高斯分布,結(jié)果就是動作2由于方差大,其采樣值大于動作1的采樣值的概率也更大。接下來詳細介紹如何在深度強化學習算法中應用貝葉斯方法。
神經(jīng)網(wǎng)絡的輸入既可以是一維數(shù)組,也可以是二維矩陣,甚至可以是三維圖像。為了表示清晰,用x∈?d表示狀態(tài)特征,也就是神經(jīng)網(wǎng)絡的輸入值,加上目標值y組成訓練集,表示為。首先計算線性回歸模型參數(shù)的后驗分布,稍后再將其擴展到神經(jīng)網(wǎng)絡的情形下。模型參數(shù)表示為θ∈?d,且假設參數(shù)θ的先驗分布為,觀察到的目標值有一定噪聲,即yi=θTxi+wi,其中wi∝N(0,σ2)為噪聲,各個樣本的噪聲是相互獨立的。根據(jù)貝葉斯定理參數(shù)θ的后驗分布可以表示為:
在貝葉斯理論中,p(D|θ)被稱為似然,p(θ)被稱為先驗,p(D)被稱為證據(jù)。根據(jù)文獻[36]的推導,參數(shù)θ的后驗分布服從均值為式(2)、協(xié)方差為式(3)的多元高斯分布:
其中,X∈?n×d為n個樣本輸入xi拼接后得到的矩陣,y∈?n為n個目標值yi拼接后得到的向量。可以通過馬爾可夫鏈蒙特卡羅等方法推斷出該后驗分布,但為了擴展到非線性模型人工神經(jīng)網(wǎng)絡,將后驗分布用另一種形式表示出來:
其中,δ∈?n是一個隨機向量,其每個分量δi都來自高斯分布N(0,σ2),且各分量的采樣是相互獨立的,來自參數(shù)先驗分布??梢宰C明,和θ是等價的,因為:
將貝葉斯方法和Bootstrapped DQN結(jié)合起來的方法稱作BBDQN算法,該算法的整體描述見算法1。
算法1BBDQN算法
輸入:折扣參數(shù)γ,批量大小n,學習器數(shù)量K,參數(shù)先驗均值,參數(shù)先驗方差λ,采樣間隔Tsample,目標網(wǎng)絡更新間隔Ttarget。
首先在如圖2所示的格子世界中測試BBDQN算法的探索效率,白色部分的格子代表網(wǎng)格世界的規(guī)模,灰色格子為終止狀態(tài),由于空間限制,圖2中的格子世界的規(guī)模僅為4×4,而在實驗中使用的格子世界的規(guī)模為20×20,但這并不妨礙使用圖2的小規(guī)模格子世界來描述其動態(tài)模型。圖2中狀態(tài)S為起始狀態(tài),且智能體一直保持一個向右行進的速度+1,在每個狀態(tài)中可供選擇的動作是up和down,即向上和向下,如果選擇向上,則下一步會到達當前狀態(tài)的右上狀態(tài),如果選擇向下,則下一步會到達當前狀態(tài)的右下狀態(tài)。如果智能體處于格子世界的底部,則向下動作可以理解為貼墻行進,此時下一狀態(tài)將處于當前狀態(tài)的右方,如果在白色格子的右上角選擇動作up就能到達灰色格子的頂部,并獲得+1的獎勵,其他狀態(tài)都沒有獎勵,因此要想獲得獎勵必須一直選擇動作up,然而動作up是有代價的,該代價是和格子世界的規(guī)模相關的。假設格子世界的規(guī)模為N×N,則每一次選擇動作up會帶來-0.01/N的獎勵,而選擇動作down沒有代價,獎勵為0。其實該問題就是第4章提到的鏈問題的二維擴展版本,可以將輸入表示為一個one-hot矩陣xi∈{0,1}N×N,矩陣中智能體所在的位置為1,其他位置全為0。在該實驗中,將同使用ε-貪婪策略的DQN以及Bootstrapped DQN進行比較,BBDQN算法用到的超參數(shù)顯示在表1中,其中0 ∈?d代表分量全為0的一個向量。
Fig.2 Gridworld with deep exploration structure圖2 具有深度探索結(jié)構(gòu)的格子世界
Table 1 Hyperparameters表1 超參數(shù)
實驗結(jié)果顯示在圖3中,圖中是用遺憾(regret)來衡量算法性能的。遺憾是指最大累積獎勵與實際累積獎勵之間的差值,該指標越小算法性能越好。因為DQN一直沒有發(fā)現(xiàn)格子世界中存在獎勵的區(qū)域,因此其累積獎勵小于0,其遺憾在不斷地增長。從圖3中可以看到,BBDQN只需不到2 000個周期就可以學習到最優(yōu)策略,而DQN在10 000個周期后都沒有學習到一個好的策略。事實上,進行了100萬個周期的實驗,DQN依然沒有收斂。
Fig.3 Comparison of algorithm performance in Gridworld圖3 格子世界上算法性能比較
正如第4章所分析的那樣,使用ε-貪婪策略的DQN算法在面對深度探索問題時,算法的時間復雜度為O(2N)。本文還測試了Bootstrapped DQN算法的性能,該算法的動作選擇不是通過ε-貪婪實現(xiàn)的,而且該算法是通過在DQN的基礎上加入集成技術來提高其探索效率的[13],但也無法在短期內(nèi)解決該深度探索問題。Bootstrapped DQN和DQN在10 000個周期內(nèi)的遺憾只有微小的差異,該差異在圖3中看不出來,必須放大才能看出區(qū)別,具體地講,DQN在10 000個周期中累積的遺憾為9 922.02,Bootstrapped DQN為9 914.60。
圖3是當格子世界的規(guī)模為20×20時,算法的性能曲線??梢约僭O格子世界的規(guī)模為N×N,并分析算法探索效率和N之間的關系。和第4章一樣,用算法第一次發(fā)現(xiàn)獎勵所需的周期數(shù)作為探索效率的衡量指標,通過實驗得到了6個數(shù)據(jù)樣本,顯示在表2中,其中l(wèi)表示算法第一次發(fā)現(xiàn)獎勵所需的周期數(shù)量。為了表示出兩者之間的關系,用多項式回歸來擬合這6個點,表示如下:
其中,w1,w2,…,wm為m次多項式的參數(shù),可以通過最小二乘法求出。測試了多個m值,發(fā)現(xiàn)當m為3時,均方誤差最小,即兩者之間的關系可以通過3次多項式來近似,如下:
Table 2 The number of episodes required to find rewards表2 發(fā)現(xiàn)獎勵所需的周期數(shù)
其中,參數(shù)保留小數(shù)點后兩位。因此,BBDQN算法在面對深度探索問題時,算法的時間復雜度是多項式級別的,具體為O(N3),優(yōu)于隨機探索策略ε-貪婪的時間復雜度O(2N)。
在圖3中DQN算法和Bootstrapped DQN算法比較起來沒有明顯的差別,但這并不代表兩個算法的探索效率是一樣的。事實上,Bootstrapped DQN算法的探索效率要比DQN更高。為了證明這一結(jié)論,進行了一系列實驗。
在上一節(jié)提到了格子世界的規(guī)模表示為N×N,學習器的個數(shù)用K表示,比較了當K固定為10,N為{10,20,30}時各算法的性能。此外,又比較了當N固定為20時,K為{10,20,30}時各算法的性能。當格子世界的規(guī)模變小時,Bootstrapped DQN相較于DQN的優(yōu)越性就體現(xiàn)出來了。如圖4所示,當K為10且N為10時,DQN算法的遺憾一直增長,而Bootstrapped DQN和BBDQN在1 000個周期內(nèi)就找到了最優(yōu)策略。此外,當學習器的數(shù)量增大時,Bootstrapped DQN相較于DQN的優(yōu)越性同樣能體現(xiàn)出來。如圖5所示,當K為30且N為20時,Bootstrapped DQN算法在2 000個周期左右的時間點找到最優(yōu)策略。
Fig.4 Comparison of algorithm performance in Gridworld(N=10,K=10)圖4 格子世界(N=10,K=10)上算法性能比較
Fig.5 Comparison of algorithm performance in Gridworld(N=20,K=30)圖5 格子世界(N=20,K=30)上算法性能比較
所有實驗的結(jié)果顯示在表3中,由于空間限制,Bootstrapped DQN在表中表示為BDQN。此外,6.1節(jié)的實驗結(jié)果即表中K=10,N=20所示的結(jié)果。在表3中,能在10 000個周期內(nèi)學習到最優(yōu)策略的算法的遺憾用加粗字體顯示,可以看到DQN在所有的實驗設置中都沒能在10 000個周期內(nèi)找到最優(yōu)策略,而Bootstrapped DQN只有當K=10、N=10(格子世界的規(guī)模減小)或K=30、N=20(學習器的數(shù)量增加)時,才能在10 000個周期內(nèi)學習到最優(yōu)策略,而BBDQN在所有設置下都能在10 000個周期內(nèi)學習到最優(yōu)策略。從表3中還可以看出,當格子世界的規(guī)模較小時(N=10),BBDQN算法和Bootstrapped DQN算法的性能相差不大,而且由于BBDQN加入了隨機初始化的先驗網(wǎng)絡,BBDQN的性能甚至略低于Bootstrapped DQN,但是當格子世界的規(guī)模增加時,本文提出的BBDQN算法的優(yōu)越性就愈發(fā)明顯,這也是BBDQN更適合解決深度探索問題的體現(xiàn);此外,BBDQN算法的性能并不會隨著學習器的數(shù)量增加而增加,這就意味著BBDQN的空間需求低于Bootstrapped DQN,因為學習器的數(shù)量越多,就需要越多的空間來存儲每個學習的參數(shù),且這些算法都是使用神經(jīng)網(wǎng)絡作為函數(shù)逼近器,每個網(wǎng)絡的參數(shù)都是百萬級的,而BBDQN并不像Bootstrapped DQN一樣要通過增加學習器的數(shù)量來提高算法性能(如表3所示),因此BBDQN的空間需求低于Bootstrapped DQN。
Table 3 Cumulative regret of each algorithm in 10 000 episodes表3 各算法在10 000個周期內(nèi)累積的遺憾
Mountain Car問題如圖6所示,在該問題中,小車的初始位置處于山底地區(qū),目標是到達右邊山頂,智能體接收到的狀態(tài)信號是目前所處的位置以及小車的速度,智能體有3個可供選擇的動作,分別是左加速、不加速以及右加速,小車的動態(tài)模型如下:
其中,x代表小車所處位置且有-1.2 ≤x≤0.6;v代表小車的速度且有-0.07 ≤v≤0.07;a代表智能體選擇的動作,3個動作[左加速,不加速,右加速]對應的a值為[ 1,0,1]。當小車到達左端位置即x=-1.2時速度將重置為0,如果小車位置大于0.5(即到達目標區(qū)域)則該周期結(jié)束,進入下一周期,如果小車在200個時間步內(nèi)還沒有到達右邊山頂,則強制結(jié)束該周期并進入下一周期。該問題的主要難點在于小車的動力無法抵消重力,因此無法直接通過右加速到達右邊山頂,必須借助慣性才行。在原問題中,小車每一個時間步都獲得-1的獎勵,直到周期結(jié)束為止。
Fig.6 Mountain Car problem圖6 Mountain Car問題
對原問題的獎勵信號做出修改,使其與深度探索問題的結(jié)構(gòu)相吻合。每當小車進行加速,無論是左加速還是右加速,都需要一定的代價,即接收到一個負的獎勵信號,和格子世界一樣,將其設置為-0.01/N,只不過這里的N是最優(yōu)策略到達右邊山頂所需的平均步數(shù);如果不加速,則無需付出代價,即獎勵為0;而一旦小車到達右邊山頂將接受到+1的獎勵。實驗結(jié)果如圖7所示,使用ε-貪婪探索的DQN算法其累積獎勵一直小于0,代表該算法沒有找到包含獎勵的區(qū)域,而Bootstrapped DQN和BBDQN算法在200個周期內(nèi)就發(fā)現(xiàn)了獎勵區(qū)域。雖然Bootstrapped DQN一開始的累積獎勵高于BBDQN,但在500個周期左右的時候BBDQN就超出Bootstrapped DQN了,而且增長的速度(曲線斜率)也明顯快于Bootstrapped DQN。由于本文使用的BBDQN方法使用的先驗網(wǎng)絡的參數(shù)是隨機初始化的,因此訓練開始的時候BBDQN的累積獎勵低只能說明隨機初始化的先驗網(wǎng)絡的參數(shù)和正確的值網(wǎng)絡的參數(shù)相差較遠。
Fig.7 Comparison of algorithm performance on variant of Mountain Car圖7 Mountain Car的變體上的算法性能比較
結(jié)合近幾年興起的深度學習技術可以提高傳統(tǒng)強化學習算法的性能,然而這方面的進展僅對強化學習中的泛化有幫助。強化學習和監(jiān)督學習最主要的區(qū)別就在于強化學習除了泛化外還存在兩個問題:(1)平衡探索與利用之間的關系;(2)信用分配問題。本文主要解決的探索利用困境這一問題。結(jié)合貝葉斯方法可以提高強化學習算法的探索效率,幾十年前就有人做過這方面的研究,然而之前的方法無法適用于神經(jīng)網(wǎng)絡這類非線性模型,本文的貢獻就在于提出了一種能夠通過數(shù)值計算得到神經(jīng)網(wǎng)絡參數(shù)后驗分布的樣本的方法,并將該計算方法和Bootstrapped DQN結(jié)合得到BBDQN算法。通過兩個環(huán)境下的實驗證明了BBDQN算法的探索效率優(yōu)于使用ε-貪婪策略的DQN算法以及Bootstrapped DQN算法。
進一步研究的方向是:本文計算Q函數(shù)參數(shù)后驗分布的樣本的方法用于計算策略梯度(policy gradient)方法中策略函數(shù)πθ參數(shù)的后驗分布的樣本時,能否有效提高策略梯度方法面對深度探索問題時的探索效率。