强化学习(九)Deep Q-Learning进阶之Nature DQN
在 强化学习(八)价值函数的近似表示与Deep Q-Learning 中,我们讲到了Deep Q-Learning(NIPS 2013)的算法和代码,在这个算法基础上,有很多Deep Q-Learning(以下简称DQN)的改进版,今天我们来讨论DQN的第一个改进版Nature DQN(NIPS 2015)。 本章内容主要参考了ICML 2016的 deep RL tutorial 和Nature DQN的论文。 1. DQN(NIPS 2013)的问题 在上一篇我们已经讨论了DQN(NIPS 2013)的算法原理和代码实现,虽然它可以训练像CartPole这样的简单游戏,但是有很多问题。这里我们先讨论第一个问题。 注意到DQN(NIPS 2013)里面,我们使用的目标Q值的计算方式:$$y_j= \begin{cases} R_j& {is\_end_j\; is \;true}\\ R_j + \gamma\max_{a'}Q(\phi(S'_j),A'_j,w) & {is\_end_j \;is\; false} \end{cases}$$ 这里目标Q值的计算使用到了当前要训练的Q网络参数来计算$Q(\phi(S'_j),A'_j,w)$,而实际上,我们又希望通过$y_j$来后续更新Q网络参数。这样两者循环依赖