发现并证明了传统的DQN普遍会过高估计Action的Q值,而且估计误差会随Action的个数增加而增加。如果高估不是均匀的,则会导致某个次优的Action高估的Q值超过了最优Action的Q值,永远无法找到最优的策略。作者在他2010年提出的Double Q-Learning的基础上,将该方法引入了DQN中。具体操作是对要学习的Target Q值生成方式进行修改,原版的DQN中是使用TargetNet产生Target Q值,即
TargetQ=r+γmaxa′Q(s′,a′;θ−i)
其中θ−i是TargetNet的参数。
在DDQN中,先用MainNet找到 maxa′Q(s′,a′;θi) 的Action(θi是MainNet的参数),再去TargetNet中找到这个Action的Q值以构成Target Q值,这个Q值在TargetNet中不一定是最大的,因此可以避免选到被高估的次优Action。最终要学习的Loss Function为:
L(θ)=E[(TargetQ−Q(s,a;θi))2]
TargetQ=r+γQ(s′,maxa′Q(s′,a′;θi);θ−i)
除此之外,其他设置与DQN一致。实验表明,DDQN能够估计出更准确出Q值,在一些Atari2600游戏中可获得更稳定有效的策略。