1、Overoptimism problem && maximization bias problem
Q学习会带来很多问题,比如会导致最大化偏差问题,使得估计的动作价值偏大。
2、Double DQN
double DQN就是为了解决上面的问题,Double DQN很简单,对于DQN的改变如下所示:
简单的理解是double-DQN,由于DQN中已经存在了target network,不需要构造额外的网络了,直接用target network去代表第二个Q表,其更新的公式如上图(黄色标注)所示,当然更新tartget network的参数是 theta minus 而不是 theta。
3、Double DQN 编码实现
# 根据上述 公式 Q_next = self.target_network.predict(next_s_batch) # 变成 Q_next_one = self.eval_network.predict(next_s_batch) action_max_one = Q_next_one.argmax(axis=-1) Q_next_two = self.target_network.predict(next_s_batch) Q_next = Q_next_two[np.arange(Q_next_two.shape[0]), action_max_one]
Double Q-Learning 阅读记录
最新推荐文章于 2024-04-07 02:40:30 发布