一、DRL系列-DQN+DDQN(学习笔记)

参考

DQN:https://blog.csdn.net/u013236946/article/details/72871858

DDQN:https://www.cnblogs.com/pinard/p/9778063.html

Dueling-DQN&DDQN:https://blog.csdn.net/u013236946/article/details/73161586

DQN:

每次选择动作,可能随机选择也可能选择当前Q值最大的a。

执行a,更新s。

从D中选出最小batch的transition,更新reward。(第一种情况为j+1为终点)

 θ是网络参数,求loss关于θ的梯度,更新θ。

每隔c步更新一次目标网络。(软或硬)

这里写图片描述

经验池的功能主要是解决相关性及非静态分布问题。具体做法是把每个时间步agent与环境交互得到的转移样本 (st,at,rt,st+1)(st,at,rt,st+1) 储存到回放记忆单元,要训练时就随机拿出一些(minibatch)来训练。(其实就是将游戏的过程打成碎片存储,训练时随机抽取就避免了相关性问题)

这里写图片描述

这里写图片描述

γ速率为奖励的衰变系数,也就是下一个状态s’对应的Q(s', a') 值对当前的Q值的影响;r是当前步骤的回报值

Double DQN:

传统的DQN普遍会过高估计Action的Q值,而且估计误差会随Action的个数增加而增加。如果高估不是均匀的,则会导致某个次优的Action高估的Q值超过了最优Action的Q值,永远无法找到最优的策略。

在DDQN这里,不再是直接在目标Q网络里面找各个动作中最大Q值,而是先在当前Q网络中先找出最大Q值对应的动作。

然后利用这个选择出来的动作a在目标网络里面去计算目标Q值。

è¿éåå¾çæè¿°

你可能感兴趣的:(DRL)