蒙特卡洛树搜索方法介绍——算力聚焦方法(一) Dyna-Q+
蒙特卡洛樹搜索方法介紹——算力聚焦方法之Dyna-Q+
- 引言
- 回顧:Dyna-Q角度觀察規(guī)劃與學(xué)習(xí)的結(jié)合過程
- Dyna-Q算法中的缺陷
- 求解強(qiáng)化學(xué)習(xí)任務(wù)的核心矛盾
- 如何緩和矛盾——算力聚焦
- 算力聚焦自身的矛盾
- 探索(Exploration)與利用(Exploitation)
- Dyna-Q+算法
- 假設(shè)構(gòu)建
- 對假設(shè)的解析
引言
上一節(jié)基于規(guī)劃與學(xué)習(xí)的差異性介紹了Dyna?QDyna-QDyna?Q架構(gòu)的具體算法過程。但從真實(shí)環(huán)境的角度觀察,Dyna?QDyna-QDyna?Q架構(gòu)同樣存在各種問題,本節(jié)從Dyna?QDyna-QDyna?Q架構(gòu)的問題出發(fā),介紹算力聚焦的本質(zhì)和具體的算力聚焦方法。
回顧:Dyna-Q角度觀察規(guī)劃與學(xué)習(xí)的結(jié)合過程
從Dyna?QDyna-QDyna?Q角度觀察規(guī)劃與學(xué)習(xí)的結(jié)合過程:
- 學(xué)習(xí)過程 中,結(jié)合非終結(jié)狀態(tài)StS_tSt?和對應(yīng)在Q?TableQ-TableQ?Table中的Q(St,a)(a∈A(St))Q(S_t,a)(a \in \mathcal A(S_t))Q(St?,a)(a∈A(St?)),構(gòu)建一個(gè)基于??\epsilon-??貪心方法的策略π\(zhòng)piπ;
- 從策略π\(zhòng)piπ中選擇一個(gè)動(dòng)作——AtA_tAt?;
- 執(zhí)行動(dòng)作AtA_tAt?,通過狀態(tài)轉(zhuǎn)移過程,得到一組真實(shí)樣本——St+1,Rt+1S_{t+1},R_{t+1}St+1?,Rt+1?;
將上述過程稱為 產(chǎn)生真實(shí)經(jīng)驗(yàn)(Real Experience)。其原因在于St+1,Rt+1S_{t+1},R_{t+1}St+1?,Rt+1?是真實(shí)樣本,生成該樣本的模型是 真實(shí)的環(huán)境模型——這個(gè)模型我們是未知的。
- 使用Q?LearningQ-LearningQ?Learning方法對Q?TableQ-TableQ?Table進(jìn)行更新:
Q(St,At)←Q(St,At)+α[Rt+1+γmax?aQ(St+1,a)?Q(St,At)]Q(S_t,A_t) \gets Q(S_t,A_t) + \alpha [R_{t+1} + \gamma \mathop{\max}\limits_{a} Q(S_{t+1},a) - Q(S_t,A_t)]Q(St?,At?)←Q(St?,At?)+α[Rt+1?+γamax?Q(St+1?,a)?Q(St?,At?)]
我們可以理解成當(dāng)前時(shí)刻狀態(tài)-動(dòng)作對(St,At)(S_t,A_t)(St?,At?)與真實(shí)環(huán)境之間的一次交互,并將交互產(chǎn)生的經(jīng)驗(yàn)對Q?TableQ-TableQ?Table對應(yīng)(St,At)(S_t,A_t)(St?,At?)位置進(jìn)行一次常規(guī)更新。稱該步驟為 直接強(qiáng)化學(xué)習(xí)(Direct Reinforcement Learning)。
- 將本次產(chǎn)生的真實(shí)樣本存儲(chǔ)到模擬環(huán)境對應(yīng)位置Model(St,At)Model(S_t,A_t)Model(St?,At?)中。
Model(St,At)←St+1,Rt+1Model(S_t,A_t) \gets S_{t+1},R_{t+1}Model(St?,At?)←St+1?,Rt+1?
這里為了簡化運(yùn)算,不考慮任何‘模型偏差’,但模型學(xué)習(xí)本身目的是‘近似真實(shí)環(huán)境’,因此理想狀態(tài)下的Model(St,At)Model(S_t,A_t)Model(St?,At?)是一個(gè)概率分布,而不是確定性的樣本結(jié)果。
對真實(shí)樣本中的信息進(jìn)行 學(xué)習(xí),并歸納成模型。稱為 模型學(xué)習(xí)(Model Learning)。
- 規(guī)劃規(guī)程 中,從觀測過的狀態(tài)組成的狀態(tài)集合中,隨機(jī)選擇一個(gè)狀態(tài)sss;
- 基于已選擇的動(dòng)作sss,從sss狀態(tài)下 采取過的動(dòng)作 中(由于該動(dòng)作必然是發(fā)生過的,因此該動(dòng)作是有意義的)隨機(jī)選擇一個(gè)動(dòng)作aaa;
- 執(zhí)行動(dòng)作aaa,根據(jù)ModelModelModel模型的狀態(tài)轉(zhuǎn)移過程,得到一組模擬樣本(s′,r)(s',r)(s′,r);
將上述過程稱為 產(chǎn)生模擬經(jīng)驗(yàn)(Simulated Experience) ,區(qū)別于真實(shí)經(jīng)驗(yàn),s,rs,rs,r是模擬樣本,它并沒有真實(shí)發(fā)生過,產(chǎn)生它的模型是ModelModelModel。
- 使用Q?LearningQ-LearningQ?Learning方法對Q?TableQ-TableQ?Table進(jìn)行更新:
Q(s,a)←Q(s,a)+α[r+γmax?aQ(s′,a)?Q(s,a]Q(s,a) \gets Q(s,a) + \alpha [r + \gamma \mathop{\max}\limits_{a} Q(s',a) - Q(s,a]Q(s,a)←Q(s,a)+α[r+γamax?Q(s′,a)?Q(s,a]
區(qū)別于學(xué)習(xí)過程中的直接強(qiáng)化學(xué)習(xí),由于(s,r)(s,r)(s,r)是模擬樣本,因此稱該步驟為 間接強(qiáng)化學(xué)習(xí)(Indirect Reinforcement Learning)。
Dyna-Q算法中的缺陷
求解強(qiáng)化學(xué)習(xí)任務(wù)的核心矛盾
核心矛盾可以理解為:有限的算力資源 VS\mathcal V\mathcal SVS 無限的狀態(tài)動(dòng)作空間(State-Action Space)。
-
算力資源的有限性:
- 時(shí)間維度:算法的計(jì)算過程是有窮的,它不能無限期地計(jì)算下去——計(jì)算機(jī)的CPU的計(jì)算資源是有限的;
- 空間維度:即內(nèi)存、存儲(chǔ)空間。同理,有于內(nèi)存的有限性,不可能將算法產(chǎn)生的中間步驟無限地存儲(chǔ)在內(nèi)存當(dāng)中。
從Dyna?QDyna-QDyna?Q算法的角度觀察:
- Dyna?QDyna-QDyna?Q算法中的循環(huán),無論是遍歷情節(jié)的主循環(huán),還是學(xué)習(xí)過程、規(guī)劃過程的嵌套循環(huán)——構(gòu)成消耗CPU計(jì)算資源的主要因素;
- 無論是學(xué)習(xí)過程還是規(guī)劃過程,都要對Q?TableQ-TableQ?Table中的元素進(jìn)行更新。以及ModelModelModel中各狀態(tài)-動(dòng)作對的元素進(jìn)行更新,這些步驟都需要存儲(chǔ)在內(nèi)存(Memory)中。
-
狀態(tài)-動(dòng)作空間的無限性:
如果強(qiáng)化學(xué)習(xí)任務(wù)足夠復(fù)雜——復(fù)雜到狀態(tài)-動(dòng)作對趨近于無限(可以將狀態(tài)、動(dòng)作看作連續(xù)型隨機(jī)變量),至此,我們同樣需要 趨近于無限的時(shí)間 去求解這個(gè)任務(wù),這樣自然和算法的有窮性相矛盾。
如何緩和矛盾——算力聚焦
回顧Dyna?QDyna-QDyna?Q算法過程,算力消耗主要集中在規(guī)劃過程中的 nnn次規(guī)劃:
- 狀態(tài)sss的選擇只是從訪問過的狀態(tài)組成的集合中隨機(jī)選擇的一個(gè)結(jié)果;
- 動(dòng)作aaa的選擇是從狀態(tài)sss采取過的動(dòng)作組成的集合中隨機(jī)選擇的一個(gè)結(jié)果;
由于是隨機(jī)選擇——各元素被選擇的概率相同,這將導(dǎo)致一個(gè)問題:這種純隨機(jī)的方式導(dǎo)致后續(xù)的Q?tableQ-tableQ?table更新效率非常低。
這里的‘元素’是指能夠被采樣出來的狀態(tài)和動(dòng)作,簡寫為元素。后面同理
我們希望被選擇的狀態(tài)-動(dòng)作對(s,a)(s,a)(s,a) 有意義——將各狀態(tài)-動(dòng)作對通過權(quán)重的方式進(jìn)行區(qū)分——使用 算力聚焦思想 區(qū)分狀態(tài)-動(dòng)作對,使集合中的某些元素獲取更高的算力等級;反之,對應(yīng)某些元素獲取較低的算力等級。
算力聚焦自身的矛盾
但 區(qū)分狀態(tài)-動(dòng)作對 這件事情本身就是一個(gè)難點(diǎn):
- 確實(shí)想要使用算力聚焦思想使規(guī)劃過程效率提升,即 算力總量不變的情況下,能夠?qū)W習(xí)出更加優(yōu)秀的Q?TableQ-TableQ?Table;
- 于此同時(shí),我們并不想通過算力聚焦思想將集合中各元素之間的權(quán)重差距相差的太厲害——可能存在算力只聚焦在若干個(gè)權(quán)重較高的元素中,而導(dǎo)致某些元素被采樣的概率更低——甚至低于均勻分布的概率;
這種情況可能會(huì)導(dǎo)致:被忽略的元素(狀態(tài)-動(dòng)作對)中可能存在比較重要的信息;
這可以理解為對算力聚焦度 的考量:
- 確實(shí)需要算力聚焦思想去處理隨機(jī)選擇出現(xiàn)的問題;
這個(gè)概念被稱為'利用'(Exploitation)。 - 算力聚焦不要太強(qiáng)——同樣可能存在存在重要信息的狀態(tài)-動(dòng)作對,但因算力聚焦的影響,被選擇的概率較低的情況。;
這個(gè)概念被稱為'探索'(Exploration)。
上述兩種情況之間是 存在矛盾的,但我們同樣希望 兩種情況都能兼顧。
探索(Exploration)與利用(Exploitation)
以狀態(tài)sss的采樣過程為例,重點(diǎn)觀察Dyna?QDyna-QDyna?Q的規(guī)劃過程中狀態(tài)sss的采樣過程:
- 狀態(tài)sss的選擇只是從訪問過的狀態(tài)組成的集合中隨機(jī)選擇的一個(gè)結(jié)果;
分析:上述過程中主要包含兩個(gè)重點(diǎn)缺陷:
-
隨機(jī)選擇:
利用 (Exploitation)做得不足、實(shí)現(xiàn)的不好,各狀態(tài)間沒有區(qū)分性,需要使用算力聚焦思想; -
從訪問過的狀態(tài)中選擇:
假設(shè)出現(xiàn)一種情況:在 學(xué)習(xí)過程 中,由于學(xué)習(xí)的都是真實(shí)經(jīng)驗(yàn),可能存在某些狀態(tài)-動(dòng)作對 在 學(xué)習(xí)過程中從未發(fā)生過;從而導(dǎo)致構(gòu)建的 樣本模型ModelModelModel中對應(yīng)的狀態(tài)-動(dòng)作對的結(jié)果(轉(zhuǎn)移后的狀態(tài)、對應(yīng)的獎(jiǎng)勵(lì))從未更新過;
這種情況下,在規(guī)劃過程中,被訪問的(狀態(tài)、動(dòng)作)集合 中自然也不會(huì)出現(xiàn)隨機(jī)出這種組合;
但這種組合 并不意味著不重要——核心原因只是因?yàn)?strong>真實(shí)的環(huán)境模型針對某個(gè)狀態(tài)-動(dòng)作對出現(xiàn)的概率確實(shí)低;
上述例子雖然是‘真實(shí)環(huán)境模型’導(dǎo)致的結(jié)果,并不是‘算力聚焦’的干預(yù),但造成的結(jié)果是相同的。如果使用Dyna?QDyna-QDyna?Q中的隨機(jī)選擇方法——如果 學(xué)習(xí)過程中 真實(shí)環(huán)境模型沒有訪問到的狀態(tài)-動(dòng)作對,那么 規(guī)劃過程中必然不會(huì)訪問到,這導(dǎo)致 探索(Exploration)同樣做的不足、實(shí)現(xiàn)的不好。
至此,Dyna?QDyna-QDyna?Q算法的缺陷被指出,歸結(jié)核心就是探索與利用問題。
Dyna-Q+算法
由于 探索和利用之間的矛盾性,暫時(shí)不存在完全解決探索與利用問題的完美算法——但也衍生了各種各樣的算法。這里不同的算法對于求解問題存在不同偏好(bias),不同偏好從而影響 算力聚焦的方向。這里將介紹基于Dyna?QDyna-QDyna?Q的第一種改進(jìn)方法:Dyna?Q+Dyna-Q+Dyna?Q+。
假設(shè)構(gòu)建
Dyna?Q+Dyna-Q+Dyna?Q+基于的假設(shè):對于某一個(gè)狀態(tài)-動(dòng)作對,如果在真實(shí)環(huán)境中從未訪問過或者曾經(jīng)訪問過但很有沒有再次訪問過了,那么該狀態(tài)-動(dòng)作對的不確定性增加了,具體是滿足上述條件的狀態(tài)的環(huán)境模型發(fā)生變化的概率增大了。
對假設(shè)的解析
在解析這句話之前,需要重申一次核心思路:動(dòng)態(tài)特性函數(shù)P(s′,r∣s,a)P(s',r \mid s,a)P(s′,r∣s,a)不受智能體主觀意志的變化而變化。因此,增大的不是環(huán)境模型的概率P(s′,r∣s,a)P(s',r \mid s,a)P(s′,r∣s,a),而是環(huán)境模型發(fā)生變化的概率。
采用什么方法能夠達(dá)到該效果?——具體思路:增加轉(zhuǎn)移至該狀態(tài)對應(yīng)的獎(jiǎng)勵(lì)結(jié)果,具體方式是構(gòu)建一個(gè)關(guān)于時(shí)間(τ\tauτ)與獎(jiǎng)勵(lì)結(jié)果rrr的函數(shù):
r←r+κτr \gets r + \kappa \sqrt \taur←r+κτ?
其中τ\tauτ表示當(dāng)前時(shí)刻距離上次訪問該狀態(tài)之間的時(shí)間間隔,τ\tauτ越大,狀態(tài)被冷落(未被訪問) 的時(shí)間越長,對應(yīng)的獎(jiǎng)勵(lì)結(jié)果rrr越大,從而使該狀態(tài)被訪問的 頻率 增加。
核心解釋
為什么增大了獎(jiǎng)勵(lì)結(jié)果 →\to→ 該狀態(tài)被訪問的 頻率會(huì)增加?
雖然沒有辦法控制動(dòng)態(tài)特性函數(shù)P(s′,r∣s,a)P(s',r \mid s,a)P(s′,r∣s,a),但是我們可以修改策略,影響當(dāng)前狀態(tài)選擇的動(dòng)作。我們選擇動(dòng)作的基準(zhǔn)是策略改進(jìn)的貪心算法:
a?=arg?max?aQπ(s,a)Qπ(s,a)=Eπ[Gt∣St=s,At=a]a^* = \mathop{\arg\max}\limits_{a} Q_{\pi}(s,a) \\ Q_{\pi}(s,a) = \mathbb E_{\pi}[G_t \mid S_t = s,A_t = a]a?=aargmax?Qπ?(s,a)Qπ?(s,a)=Eπ?[Gt?∣St?=s,At?=a]
如果增大了某狀態(tài)的獎(jiǎng)勵(lì)結(jié)果,上一狀態(tài)轉(zhuǎn)移至該狀態(tài)的回報(bào)也會(huì)增加,從而使上一狀態(tài)的狀態(tài)價(jià)值函數(shù)Vπ(s)V_{\pi}(s)Vπ?(s)也會(huì)增大:
Gt=Rt+1+γRt+2+...Vπ(s)=Eπ[Gt∣St=s]G_t = R_{t+1} + \gamma R_{t+2} + ...\\ V_\pi(s) = \mathbb E_{\pi}[G_t \mid S_t = s]Gt?=Rt+1?+γRt+2?+...Vπ?(s)=Eπ?[Gt?∣St?=s]
上一狀態(tài)的價(jià)值函數(shù)繼續(xù)影響上上個(gè)狀態(tài)的狀態(tài)-動(dòng)作價(jià)值函數(shù)Q(s,a)Q(s,a)Q(s,a)。以此類推,由于選擇的動(dòng)作滿足貪心策略,一定會(huì)朝著Q(s,a)Q(s,a)Q(s,a)增大的方向進(jìn)行狀態(tài)轉(zhuǎn)移,并且隨著獎(jiǎng)勵(lì)增大,選擇狀態(tài)轉(zhuǎn)移的頻率越來越高。
通俗理解:只要存在動(dòng)作能夠轉(zhuǎn)移到那個(gè)狀態(tài),隨著狀態(tài)獎(jiǎng)勵(lì)的增加,后續(xù)可能會(huì)‘毫不猶豫地選擇Q(s,a)大的動(dòng)作’,選擇并執(zhí)行該動(dòng)作后,必然要執(zhí)行狀態(tài)轉(zhuǎn)移。雖然動(dòng)態(tài)特性函數(shù)沒有變化過,但抵不過狀態(tài)轉(zhuǎn)移的次數(shù)多,總會(huì)有一次狀態(tài)轉(zhuǎn)移過程中‘動(dòng)態(tài)特性函數(shù)選擇該狀態(tài)’,τ\tauτ置零,并重新開始計(jì)時(shí)。
下一節(jié)將介紹其他的算力聚焦方法。
相關(guān)參考:
8.3 當(dāng)模型錯(cuò)了
【強(qiáng)化學(xué)習(xí)】規(guī)劃與學(xué)習(xí)-算力聚焦
總結(jié)
以上是生活随笔為你收集整理的蒙特卡洛树搜索方法介绍——算力聚焦方法(一) Dyna-Q+的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系统怎么安装office软件,
- 下一篇: PS渐变自行车的做法