21/9/1 读书笔记 DQN的改进
21/9/1 读书笔记
强化学习 DQN的改进
Double DQN
Double DQN是为了解决DQN的overestimate问题。
DQN的overestimate问题指对state-value对的Q值进行Q-现实的计算时,由于直接采用maxQ(即选择现实神经网络中Q值最大的动作),得到的Q值过高。一个state-value的Q值越高,意味着其估计的误差也越大。由于DQN不断地选择误差最大的情况,会使得网络的训练不稳定。
Double DQN通过修改原DQN的Q-现实的计算方式来解决这个问题:
可以看到,Double DQN在计算Q-现实时同时使用了现实神经网络和估计神经网络,其先从估计神经网络中得到动作\(\underset{a}{\operatorname{argmax}}Q\left(S_{t+1}, a ; \boldsymbol{\theta}_{t}\right)\),然后再将这个动作放到现实神经网络中得到最后的Q值。
为什么这个改动能够解决overestimate的问题呢?Double DQN通过估计神经网络和现实神经网络分别进行动作的选择和Q值的估计,从而解耦目标Q值动作的选择和目标Q值的计算这两步。由于动作的选择和计算相解耦,误差就不会由于maxQ而在同一个网络中反复放大。
Prioritized Experience Replay
Prioritized Experience Replay目的是选出最为重要的记忆来对神经网络进行训练。
原DQN中采取随机抽样的方式,这使得一些不那么重要的经历可能被反复学习,而真正有意义的经历可能没有被充分学习。
Prioritized Experience Replay采用 TD-error 来反映一段记忆的重要程度,其可表示为:
TD-error 反映了Q-现实 和 Q-估计 的差距,差距越大,说明这段记忆的预测精度还有很大的提升空间,更应该着重学习。
同时,由于根据TD-error对所有记忆进行排序的计算工作量巨大,原论文中还引入了SumTree的树形结构来进行管理,详情可见强化学习之Sumtree
Dueling DQN
Dueling DQN 将原DQN中的Q值进一步分解为Value+Advantage的形式。\(Value(s)\)表示当前state的价值,而\(Advantage(s,a)\)表示当前state-action对带来的提升。将这种分解反映到神经网络上,就是将神经网络的输出形式进行修改。
同时,为了避免\(Q(s,a)\equiv Advantage(s,a)\)(即Advantage过于identical的现象),我们还需要在实际应用中,将计算出的Advantage减去所有动作对应advantage的均值。
这种修改虽然小,但是在实际应用中可以使得神经网络显著更快地收敛。

浙公网安备 33010602011771号