Off-Policy:会记忆之前的经验,依据经验做决策。
Experience replay:记忆库(用于重复学习)
Fixed Q-targets:暂时冻结q_target函数(切断相关性)
这里边的q_target就是Q现实
两个神经网络是为了固定住一个神经网络 (target_net) 的参数, target_net 是 eval_net的一个历史版本, 拥有 eval_net 很久之前的一组参数, 而且这组参数被固定一段时间, 然后再被 eval_net 的新参数所替换. 而 eval_net 是不断在被提升的, 所以是一个可以被训练的网络 trainable=True. 而 target_net 的 trainable=False.
Q_target是从target_net获取的Q真实
DQN是一种 off-policy 离线学习法, 它能学习当前经历着的, 也能学习过去经历过的, 甚至是学习别人的经历. 所以每次 DQN 更新的时候, 我们都可以随机抽取一些之前的经历(从经验池中选择,而不是像QLearning只从下一个状态的最大收益中学习)进行学习. 随机抽取这种做法打乱了经历之间的相关性, 也使得神经网络更新更有效率。
之所以加入 experience replay 是因为样本是从游戏中的连续帧获得的,这与简单的 reinforcement learning 问题(比如maze)相比,样本的关联性大了很多,如果没有 experience replay,算法在连续一段时间内基本朝着同一个方向做 gradient descent,那么同样的步长下这样直接计算 gradient 就有可能不收敛。因此 experience replay 是从一个 memory pool 中随机选取了一些 experience,然后再求梯度,从而避免了这个问题。