《強化學習》中的第10章:基於函數逼近的同軌策略控制

前言: 本次筆記對《強化學習(第二版)》第十章進行概括性描述。

以下概括都是基於我個人的理解,可能有誤,歡迎交流:[email protected]

正文

很短的一章,是對於第九章的延續。

第九章中,我們用函數逼近的方法爲V(S)V(S)估值,而第十章中,我們用同樣的思想爲qπ(s,a)q_\pi(s,a)估值。但是具體內容上,又是大不同的。

10.1 - 10.2

這兩節內容爲:

  • 10.1 分幕式半梯度控制
  • 10.2 半梯度 n 步 Sarsa

這兩節是第9章內容延續,沒有什麼好說的。在程序實現中,值得強調的有兩點:

  • 從第9章開始,我們假設了ww與目標向量vvqq間是線性關係,因此可以把ww理解成“權重”,尋找最優動作時,找權重最大的就可以了;
  • 瓦片編碼,在第9章中,我們對狀態ss瓦片編碼,而第10章中,我們對[s,q][s,q]進行瓦片編碼。如此,就與表格有所不同。換句話說,如果不進行瓦片編碼,那麼將面臨這個大問題:單純對(s,a)進行聚合,與表格型求解無差別,(s,a)間是解耦。因此,使用瓦片編碼,使(s,a)間耦合。

以上,是我看了很久 Shantong Zhang (Sutton 學生,官方認可的代碼)的代碼後得出的結論。

瓦片編碼採用了哈希方法,由 Sutton 本人制作 python3 文件:http://incompleteideas.net/tiles/tiles3.py-remove

我對代碼進行了一點標註,見:https://nbviewer.jupyter.org/github/PiperLiu/Reinforcement-Learning-practice-zh/blob/master/practice/Mountain-Car-Acess-Control.ipynb

10.3 - 10.5

這三節內容爲:

  • 10.3 平均收益:持續性任務中的新的問題設定
  • 10.4 棄用折扣
  • 10.5 差分半梯度 n 步 Sarsa

爲了解決持續性問題的控制問題,10.3與10.4 引出了平均收益差分回報差分價值函數的概念,並且在數學上證明了:持續性問題中折扣的無用性。 這個證明是基於MDP的便利性假設的。

與權重ww同,平均收益雖然客觀存在,但是不可知。因此平均收益也是需要更新的,這個過程也需要定義步長。

對練習題解的補充

練習10.6很有趣。解答參見:https://github.com/PiperLiu/Reinforcement-Learning-practice-zh/tree/master/resources中的RL-An Introdction exercises Solution.pdf

tip: 我知道了什麼叫同餘方程

這裏解釋一下,爲什麼 V(A)=R+V(B)V(A) = -\overline{R} + V(B)

我的理解是這樣的:

limt0δt=0\lim_{t \to 0} \delta_t = 0

δt=Rt+1Rt+1+v^(St+1,wt)v^(St,wt)\delta_t = R_{t+1} - \overline{R}_{t+1} + \hat{v}(S_{t+1}, w_t) - \hat{v}(S_t,w_t)

結合例題中的情況則是:

0=013+V(B)V(A)0 = 0 - \frac{1}{3} + V(B) - V(A)

有關V(C)V(C)的式子同理。


練習10.7同樣很有趣。但是 Bryn Elesedy 提供的答案中,有處筆誤

原文如下:

Now to compute the differential state values we write

V(S;γ)=limht=0hγt(E[Rt+1S0=s]Rˉ) V(S; \gamma) = \lim_{h\to \infty} \sum_{t=0}^h \gamma^t \left( \mathbb{E}[R_{t+1} \vert{} S_0 = s] - \bar{R} \right)
then

V(A;γ)=1Rˉ+γV(A;γ)V(A;γ)=Rˉ+γV(B;γ) \begin{aligned} V(A; \gamma) &= 1 - \bar{R} + \gamma V(A; \gamma) \\ V(A; \gamma) &= - \bar{R} + \gamma V(B; \gamma) \end{aligned}

so

V(A;γ)=12(1γ)γ2V(A;γ) V(A; \gamma) = \frac12 ( 1 - \gamma ) - \gamma^2 V(A; \gamma)

我對其的修改與解釋如下:

在例題的情況中,因爲原差分回報公式Gt(formula  10.9)G_t(formula \; 10.9)的定義不使用,因此對於狀態的價值,本題中採用:

V(S;γ)=limht=0hγt(E[Rt+1S0=S]Rˉ) V(S; \gamma) = \lim_{h\to \infty} \sum_{t=0}^h \gamma^t \left( \mathbb{E}[R_{t+1} \vert{} S_0 = S] - \bar{R} \right)

那麼,由上式,可得:

V(B;γ)=limht=0hγt(E[Rt+1S0=B]Rˉ)=limhγ0(E[R1S0=B]Rˉ)+limht=1hγt(E[Rt+1S0=B]Rˉ)=1Rˉ+γV(A;γ)V(A;γ)=Rˉ+γV(B;γ) \begin{aligned} V(B; \gamma) &= \lim_{h\to \infty} \sum_{t=0}^h \gamma^t \left( \mathbb{E}[R_{t+1} \vert{} S_0 = B] - \bar{R} \right) \\ & = \lim_{h\to \infty} \gamma^0 (\mathbb{E}[R_{1} \vert{} S_0 = B] - \bar{R}) + \lim_{h\to \infty} \sum_{t=1}^h \gamma^t \left( \mathbb{E}[R_{t+1} \vert{} S_0 = B] - \bar{R} \right)\\ & = 1 - \bar{R} + \gamma V(A; \gamma) \\ V(A; \gamma) &= - \bar{R} + \gamma V(B; \gamma) \end{aligned}

解二元一次方程組:

V(A;γ)=12(1γ)γ2V(A;γ) V(A; \gamma) = \frac12 ( 1 - \gamma ) - \gamma^2 V(A; \gamma)


練習10.8很生動、巧妙地告訴我們,使用書上式子10.10對Rˉ\bar{R}進行更新,“Once Rˉ\bar{R}
gets to the correct value it never leaves”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章