I've been looking for ways to improve my DQN. That is when I found the Double DQN algorithm. After looking at explanatory videos and posts, I've seen conflicting information:
- The Double DQN algorithm has two separate policies Q1 and Q2 with separate replay memories. They alternate in training and use the other network to get the Q values of the future state-action pair.
Q1(st, a) = r + γ * Q2(st+1, argmax Q1(st+1))
- The Double DQN algorithm works like a normal DQN with a policy and a target network (a copy of the policy lagging a few steps behind), and uses it to evaluate the Q value of the future state-action pair, chosen by the policy.
Q(st, a) = r + γ * Qtarget(st+1, argmax Q(st+1))
Which one of these solutions is correct? If both of them, which one is "better"? Or is there a third option I haven't considered?
Thanks in advance. Sorry for my math if the equations aren't correct. I hope they at least convey the intended meaning.