[RL Note] 离轨策略蒙特卡洛控制

  结合加权重要度采样的增量实现,可以得到对应的离轨策略 MC 控制算法如下所示。


离轨策略 MC 控制算法,用于估计 $\pi \approx \pi_*$
初始化:对所有 $s \in \mathcal{S}$,$a \in \mathcal{A(s)}$:
  $Q(s, a) \in \mathbb{R}$(任意值)
  $C(s, a) \leftarrow 0$
  $\pi(s) \leftarrow \underset{a}{\arg\max} \; Q(s, a)$(出现平分的情况下选取方法应保持一致)
无限循环(对每幕):
  $b \leftarrow$ 任意软性策略
  根据 $b$ 生成一幕数据:$S_0, A_0, R_1, \cdots, S_{T-1}, A_{T-1}, R_T$
  $G \leftarrow 0$
  $W \leftarrow 1$
  对幕中的每一步循环,$t = T-1, T-2, \cdots, 0$:
    $G \leftarrow \gamma G + R_{t+1}$
    $C(S_t, A_t) \leftarrow C(S_t, A_t) + W$
    $Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \frac{W}{C(S_t, A_t)} [G – Q(S_t, A_t)]$
    $\pi_{S_t} \leftarrow \underset{a}{\arg\max} Q(S_t, a)$(出现平分的情况下选取方法应保持一致)
    如果 $A_t \neq \pi(S_t)$ 那么退出内层循环(处理下一幕数据)
    $W \leftarrow W \frac{\pi(A_t|S_t)}{b(A_t|S_t)}$