迷雾探险7 | DQN笔记
这一节继续跟着莫大神的教程走,记录一些笔记。
详细文档可以直接移步莫大神的社区:https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/
DQN
论文:《Playing Atari with Deep Reinforcement Learning》
19 Dec 2013
Deep Q Network:实际就是Q-learning集合神经网络的方法。Google Deep mind 团队就是靠着这 DQN 使计算机玩电动玩得比我们还厉害。
为了更好的了解DQN,我把莫大神关于神经网络的教程又扫了一遍(还含有TensorFlow的使用教程,超棒!):https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/
浅显的概括一下,神经网络就是通过各种类似神经网络的计算结构的算法,通过不断的调参之后,可以想想神经网络是一个黑盒子,对于预期的输入,可以得到预期的输出。类似y=bx+c,神经网络就是把b和c的参数调出来,对于输入的x都可以计算出y(这种比喻可能不恰当,但对于我来说足够生动形象了。。。)
而使用两种方法可以使得DQN变得更强大。在更新Q值的时候,取一些之前的经历进行学习. 这种做法打乱了经历之间的相关性, 也使得神经网络更新更有效率.
- Experience replay
- Fixed Q-targets :让Q现实的参数使用很久以前训练的参数,Q估计使用最新参数。
需要的别注意的是:DQN更新Q值的时候,需要根据Q估计对应的action反向传递回去更新该action,而Q现实不一定选了这个action,两个action不一样,需要注意一下。
因为以前更新Q值是针对(state, action)对应的某个Q值更新,而DQN拟合了一个state对应的所有action的Q值,是一个向量,再更新Q值的时候需要注意是哪个action对应的误差,再做反向传递。
有人做了更通俗的解释,就是拿Q_target中最大的action对应的Q值,去减去Q_eval中对应值的位置,而这两个值可能位置不一样,可能需要移位对应好再相减。
Double DQN
论文:《Deep Reinforcement Learning with Double Q-learning》
18 Nov 2015
一句话概括, DQN 基于 Q-learning, Q-Learning 中有 Qmax, Qmax 会导致 Q现实 当中的过估计 (overestimate). 而 Double DQN 就是用来解决过估计的. 在实际问题中, 如果你输出你的 DQN 的 Q 值, 可能就会发现, Q 值都超级大. 这就是出现了 overestimate.
为什么会overestimate呢?因为DQN中把Qmax作为Q现实的一部分了,而Q_max本来就是有误差的,输入神经网络之后很容易放大误差。
改动在于:两个神经网络: Q_eval
(Q估计中的), Q_next
(Q现实中的).
- DQN:
Q_next = max(Q_next(s', a_all))
- Double DQN:
Q_next = Q_next(s', argmax(Q_eval(s', a_all)))
总结一下:用Q估计
的神经网络估计Q现实
中Qmax(s', a')
的最大动作值. 然后用这个被Q估计
估计出来的动作来选择Q现实
中的Q(s')
.
DQN with Prioritized Replay
论文:《Prioritized Experience Replay》22 Sep 2015
当正负样本数量相差很大,比如MountainCar的例子,只有很少的情况才能按到reward,其他时候都是无奖励,这就会导致传统的DQN会训练很长很长的时间。DQN with Prioritized Replay正是为了加速这种情况下的训练速度。它会重视这种少量的, 但值得学习的样本。
算法重点就在我们 batch 抽样的时候并不是随机抽样, 而是按照 Memory 中的样本优先级来抽. 所以这能更有效地找到我们需要学习的样本。
样本的优先级定义方式:TD-error=Q现实 - Q估计
的大小。
加速优先级排序方式:使用SumTree
算法。
Dueling DQN
论文:《Dueling Network Architectures for Deep Reinforcement Learning》
20 Nov 2015
目的:稍稍修改 DQN 中神经网络的结构, 就能大幅提升学习效果, 加速收敛。
一句话概括:将每个动作的 Q 拆分成了 state 的 Value 加上 每个动作的 Advantage.
具体的不同见莫烦关于Dueling DQN的介绍