# n-step TD

给定一个策略π\pi, 使用它去和环境交互,通过nn步时序差分的算法来估计策略π\pi对应的值函数vπv_{\pi}

n-step 时序差分, 用于估计$v_{\p}$

    1. 给定一个策略 π\pi
    1. 初始化学习率 α(0,1]\alpha \in (0,1], 一个正数 nn (就是n-step中的nn)
  • 循环每个episode:
    • 初始化环境,得到初始化状态S0S_0, 其中S0terminalS_0 \neq terminal, 保存S0S_0
    • TT \leftarrow \infty
    • t=0,1,2,...t = 0,1,2,... 循环, 直到τ=T1\tau = T - 1:
      • if t<Tt < T:
        • 根据策略π(St)\pi(\cdot|S_t)执行动作AtA_t和环境互动; 观察,保存奖励Rt+1R_{t+1}, 下一状态St+1S_{t+1}
        • if St+1=terminalS_{t+1} = terminal: Tt+1T \leftarrow t+1
      • τtn+1\tau \leftarrow t -n + 1 : τ\tau是当前正在更新的状态对应的时刻
      • if τ0:\tau \geq 0:
        • Gi=τ+1min(τ+n,T)γiτ1RiG \leftarrow \sum_{i = \tau + 1}^{min(\tau + n, T)}\gamma^{i-\tau - 1}R_{i}
        • if τ+n<T\tau + n < T, then: GG+γnV(Sτ+n)G \leftarrow G + \gamma^{n}V(S_{\tau+n})
        • V(Sτ)V(Sτ)+α[GV(Sτ)]V(S_{\tau}) \leftarrow V(S_{\tau}) + \alpha[G - V(S_{\tau})]
  • n-step TD 肯定是要比 一步的TD更好的, 因为n-step的回报Gt:t+nG_{t:t+n}肯定是要比one-step的回报Gt:t+1G_{t:t+1}来得更好的。 来得更好的意思是 使用Gt:t+nG_{t:t+n}比使用Gt:t+1G_{t:t+1}更多地结合了和环境的交互(事实)。
  • loss是GV(S)2|G - V(S)|^2的原因是基于值函数的定义: Vπ(St)=Eπ[Gt]V_{\pi}(S_t) = \mathbb{E}_{\pi}[G_{t}], 我们想要我们的预测和实际的情况表现是 一致的。