基于Pytorch的强化学习(DQN)之 Multistep TD target

目录

1. 引言

2. 数学推导

3. 文献


1. 引言

我们之前已经学习了Sarsa算法和Q-learning算法,我们知道这两者都是基于TD算法的,我们又知道TD算法效果改变受TD target影响,我们思考一下,如果我们选用包含真实信息更多的TD target,效果会不会更好呢?下面我们来进行数学推导。

2. 数学推导

一切都源于这个公式:U_t=R_t+\gamma U_{t+1},我们再使用这个公式将 U_{t+1} 展开得到 U_t=R_t+\gamma (R_{t+1}+\gamma U_{t+2})=R_t+\gamma R_{t+1}+\gamma^2 U_{t+2}

这个公式相较于前一个公式更加精确,因为它含有R_t,R_{t+1} 两个真实信息,而前面的公式只有一个 R_t,于是我们可以进一步递推这个公式,将其展开m次得到U_t=\sum_{i=0}^m\gamma^i R_{t+i}+\gamma^{m+1}U_{t+m+1} 

这样我们便可以将Sarsa算法中的TD target 修正为 y_t=\sum_{i=0}^m\gamma^i r_{t+i}+\gamma^{m+1}Q_{\pi}(s_{t+m+1},a_{t+m+1})

特别地当m=0时我们得到之前推导TD target y_t=r_t+\gamma Q_{\pi}(s_{t+1},a_{t+1}) 

将Q-learning算法中的TD target 修正为 y_t=\sum_{i=0}^m\gamma^i r_{t+i}+\gamma^{m+1}\underset{a}{max}Q^*(s_{t+m+1},a)

特别地当m=0时我们得到之前推导TD target y_t=r_t+\gamma \underset{a}{max}\,Q^*(s_{t+1},a) 

由于我们获得了更准确的TD target,所以我们需要付出一些代价,这些代价就是r_t,r_{t+1},r_{t+2},...,r_{t+m},我们需要计算更多的return,于是原来的transition (s_t,a_t,r_t,s_{t+1})变成了 (s_t,a_t,r_t,s_{t+1},...,s_{t+m},a_{t+m},r_{t+m},s_{t+m+1})

3. 文献

有文献表明[1],m-step TD target往往比1-step TD target效果更好

基于Pytorch的强化学习(DQN)之 Multistep TD target_第1张图片

我们可以看到代表使用multi-step的Rainbow(彩虹线)比没有使用的no multi-step 的黄线得分更高,说明其效果更好 

[1][1] Hessel, M. ,  Modayil, J. ,  Hasselt, H. V. ,  Schaul, T. ,  Ostrovski, G. , &  Dabney, W. , et al. (2017). Rainbow: combining improvements in deep reinforcement learning.

你可能感兴趣的:(深度学习,深度学习)