DQN 是指基于深度学习的 Q-learning 算法,主要结合了价值函数近似(Value Function Approximation)与神经网络技术,并采用了目标网络和经历回放的方法进行网络的训练。
第二个 tip 是 Dueling DQN。其实 Dueling DQN 也蛮好做的,相较于原来的 DQN,它唯一的差别是改了 network 的架构。Q-network 就是 input state,output 就是每一个 action 的Q value。Dueling DQN 唯一做的事情是改了 network 的架构,其它的算法,你都不要去动它。
有一个技巧叫做 Prioritized Experience Replay。Prioritized Experience Replay 是什么意思呢?
我们原来在 sample data 去 train 你的 Q-network 的时候,你是 uniformly 从 experience buffer 里面去 sample data。那这样不见得是最好的, 因为也许有一些 data 比较重要。假设有一些 data,你之前有 sample 过。你发现这些 data 的 TD error 特别大(TD error 就是 network 的 output 跟 target 之间的差距),那这些 data 代表说你在 train network 的时候, 你是比较 train 不好的。那既然比较 train 不好, 那你就应该给它比较大的概率被 sample 到,即给它 priority。这样在 training 的时候才会多考虑那些 train 不好的 training data。实际上在做 prioritized experience replay 的时候,你不仅会更改 sampling 的 process,你还会因为更改了 sampling 的 process,更改 update 参数的方