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