《强化学习》中的第10章:基于函数逼近的同轨策略控制

前言: 本次笔记对《强化学习(第二版)》第十章进行概括性描述。

以下概括都是基于我个人的理解,可能有误,欢迎交流:piperliu@qq.com。

正文

很短的一章,是对于第九章的延续。

第九章中,我们用函数逼近的方法为 V ( S ) V(S) V(S)估值,而第十章中,我们用同样的思想为 q π ( s , a ) q_\pi(s,a) qπ​(s,a)估值。但是具体内容上,又是大不同的。

10.1 - 10.2

这两节内容为:

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

这两节是第9章内容延续,没有什么好说的。在程序实现中,值得强调的有两点:

  • 从第9章开始,我们假设了 w w w与目标向量 v v v或 q q q间是线性关系,因此可以把 w w w理解成“权重”,寻找最优动作时,找权重最大的就可以了;
  • 瓦片编码,在第9章中,我们对状态 s s s瓦片编码,而第10章中,我们对 [ s , q ] [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的便利性假设的。

与权重 w w w同,平均收益虽然客观存在,但是不可知。因此平均收益也是需要更新的,这个过程也需要定义步长。

对练习题解的补充

练习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) V(A)=−R+V(B)。

我的理解是这样的:

lim ⁡ t → 0 δ t = 0 \lim_{t \to 0} \delta_t = 0 t→0lim​δt​=0

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

结合例题中的情况则是:

0 = 0 − 1 3 + V ( B ) − V ( A ) 0 = 0 - \frac{1}{3} + V(B) - V(A) 0=0−31​+V(B)−V(A)

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


练习10.7同样很有趣。但是 Bryn Elesedy 提供的答案中,有处笔误

原文如下:

Now to compute the differential state values we write

V ( S ; γ ) = lim ⁡ h → ∞ ∑ t = 0 h γ t ( E [ R t + 1 ∣ S 0 = 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(S;γ)=h→∞lim​t=0∑h​γt(E[Rt+1​∣S0​=s]−Rˉ)
then

V ( A ; γ ) = 1 − R ˉ + γ 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} V(A;γ)V(A;γ)​=1−Rˉ+γV(A;γ)=−Rˉ+γV(B;γ)​

so

V ( A ; γ ) = 1 2 ( 1 − γ ) − γ 2 V ( A ; γ ) V(A; \gamma) = \frac12 ( 1 - \gamma ) - \gamma^2 V(A; \gamma) V(A;γ)=21​(1−γ)−γ2V(A;γ)

我对其的修改与解释如下:

在例题的情况中,因为原差分回报公式 G t ( f o r m u l a    10.9 ) G_t(formula \; 10.9) Gt​(formula10.9)的定义不使用,因此对于状态的价值,本题中采用:

V ( S ; γ ) = lim ⁡ h → ∞ ∑ t = 0 h γ t ( E [ R t + 1 ∣ S 0 = 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(S;γ)=h→∞lim​t=0∑h​γt(E[Rt+1​∣S0​=S]−Rˉ)

那么,由上式,可得:

V ( B ; γ ) = lim ⁡ h → ∞ ∑ t = 0 h γ t ( E [ R t + 1 ∣ S 0 = B ] − R ˉ ) = lim ⁡ h → ∞ γ 0 ( E [ R 1 ∣ S 0 = B ] − R ˉ ) + lim ⁡ h → ∞ ∑ t = 1 h γ t ( E [ R t + 1 ∣ S 0 = B ] − R ˉ ) = 1 − R ˉ + γ 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(B;γ)V(A;γ)​=h→∞lim​t=0∑h​γt(E[Rt+1​∣S0​=B]−Rˉ)=h→∞lim​γ0(E[R1​∣S0​=B]−Rˉ)+h→∞lim​t=1∑h​γt(E[Rt+1​∣S0​=B]−Rˉ)=1−Rˉ+γV(A;γ)=−Rˉ+γV(B;γ)​

解二元一次方程组:

V ( A ; γ ) = 1 2 ( 1 − γ ) − γ 2 V ( A ; γ ) V(A; \gamma) = \frac12 ( 1 - \gamma ) - \gamma^2 V(A; \gamma) V(A;γ)=21​(1−γ)−γ2V(A;γ)


练习10.8很生动、巧妙地告诉我们,使用书上式子10.10对 R ˉ \bar{R} Rˉ进行更新,“Once R ˉ \bar{R} Rˉ
gets to the correct value it never leaves”。

上一篇:EdX Columbia ML 7. K-最近邻分类与贝叶斯分类器


下一篇:jquery.dataTables自定义操作列的实现