《强化学习》(第 2 版) 习题 5
5.1
因为 $20,21$ 这两个状态下玩家会停牌, 而此时赢庄家的概率会很高, 因此价值较大. 而小于 $20$ 时, 要牌可能会导致爆牌, 因此较低.
5.2
我觉得不会. 应当都会收敛到真实值.
5.3
不会画, 懒得画.
5.4
只需修改 $\mathrm{average}$ 函数即可. 定义一个变量为 $pre\text -avg$ 储存之前的平均数, 然后定义 $\mathrm{average}$ 函数为
1 | def average(G, pre-avg): |
即可.
5.5
首次访问是 $10$, 每次访问是 $5.5$.
5.6
给定起始状态与起始动作 $S_t, A_t$ , 后续的状态-动作轨迹 $S_{t+1},A_{t+1},A_{t+1},\dots,S_T$ 在策略 $\pi$ 下的概率是
$$ \Pr\{S_{t+1},A_{t+1},A_{t+1},\dots,S_T\mid S_t, A_t,A_{t+1\colon T-1}\sim\pi\}=p(S_{t+1}\mid S_t,A_t)\prod_{{k=t+1}}^{T-1}\pi(A_k\mid S_k)p(S_{k+1}\mid S_k,A_{k}) $$因此重要度采样比为
$$ \rho_{t+1\colon T(t)-1}=\prod_{{k=t+1}}^{T-1}\frac{\pi(A_k\mid S_k)}{b(A_k\mid S_k)} $$即将 $k$ 的起始向后移一位即可,
$$ Q(s,a)\dot{=}\frac{\sum_{t\in\mathcal{T}(s)}\rho_{t+1\colon T(t)-1}G_t}{\sum_{t\in\mathcal{T}(s)}\rho_{t+1\colon T(t)-1}} $$5.7
由于一开始加权重要度采样就是有偏的, 因此误差会小幅度上升.
5.8
由于这题的特殊性, 我们可以很简单的知道, 在每一幕中, 首次访问型 $s$ 状态的价值估计 (这里恰好等于回报) $G_0$ 的一半要小于每次访问型 $s$ 状态的价值估计 $G_0'$, 更准确些其实是有等式 $G_0+1=2G_0'$ . 因此就有
$$ \infty=\mathbb{E}[X^2]/2<\mathbb{E}[{X'}^2] $$这只能是 $\mathbb E[{X'}^2]=\infty$ .
5.9
类似练习 5.4 .
5.10
显然有
$$ V_{n+1}=\frac{V_n\sum_{k=1}^{n-1}W_k+W_{n}G_n}{\sum_{k=1}^nW_k}=V_n+\frac{W_n}{C_n}(G_n-V_n) $$5.11
算法只是将 $\pi(A_t\mid S_t)$ 换成了 $1$ . 事实上本来就有 $\pi(A_t\mid S_t)=1$ , 这样的特性由上一步的 “如果” 保证.
5.12
只做了第一个赛道.
同时没有判定边界, 因为一个一个手动输太麻烦了.
就是懒
5.13
$R_{t+1}$ 只与 $A_t, S_t$ 有关, 因此可以推出. 即 $$ \mathbb{E}[\rho_{t\colon T-1}R_{t+1}]=\mathbb{E}\left[R_{t+1}\prod_{k=t}^{T-1}\frac{\pi(A_k\mid S_k)}{b(A_k\mid S_k)}\right]=\mathbb{E}\left[\frac{\pi(A_t\mid S_t)}{b(A_t\mid S_t)}R_{t+1}\right]=\mathbb{E}[\rho_{t\colon t}R_{t+1}] $$5.14
判断是否 $0$ , 如果是, 伪代码第 13 行后面加的项中的 $G$ 乘上一个 $\gamma^{T}$ , 如果不是, 乘上 $(1-\gamma)\gamma^{T-t-1}$ .