欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

dueling dqn 和 double dqn_强化学习(十一)--DQN三个经典的变种

发布时间:2025/3/19 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 dueling dqn 和 double dqn_强化学习(十一)--DQN三个经典的变种 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

DQN三个经典的变种:Double DQN、Dueling DQN、Prioritized Replay Buffer。

Double-DQN:将动作选择和价值估计分开,避免价值过高估计。

Dueling-DQN:将Q值分解为状态价值和优势函数,得到更多有用信息。

Prioritized Replay Buffer:将经验池中的经验按照优先级进行采样。

1.Double DQN

(1)为什么提出Double DQN ?

为了解决原始DQN存在的过估计问题。

(2)什么是过估计?

过估计是指估计的值函数比真实的值函数大。

(3)为什么DQN存在过估计的问题?

因为DQN是一种off-policy的方法,每次学习时,不是使用下一次交互的真实动作,而是使用当前认为价值最大的动作来更新目标值函数,所以会出现对Q值的过高估计。通过基于函数逼近方法的值函数更新公式可以看出:

(4)怎么解决这个问题?

为了解决过估计的问题,Hasselt提出了Double Q Learning方法,将此方法应用到DQN中,就是Double DQN,即DDQN。所谓的Double Q Learning是将动作的选择和动作的评估分别用不同的值函数来实现。

动作的选择:选择该状态下动作值函数最大的动作,即

。动作的选择所用的动作值函数:

动作的评估:选出

后,利用 处的动作值函数构造TD目标,TD目标公式为:

2.经验回放(Prioritized Replay)

DQN的经验回放采用均匀分布,而均匀分布采样并不能高效利用数据。因为agent的经验就是经历过的数据,但这些数据对于训练并不是具有同等重要的意义,agent在某些状态的学习效率比其他状态的学习效率高。

优先回放的基本思想:打破均匀采样,赋予学习效率高的状态以更大的采样权重。

如何选择权重?

一个理想的标准是agent学习的效率越高,权重越大。TD偏差越大,说明该状态处的值函数与TD目标的差距越大,agent的更新量越大,因此该处的学习效率越高。

(如果TD-error越大, 就代表我们的预测精度还有很多上升空间, 那么这个样本就越需要被学习, 也就是优先级p越高。)

有了 TD-error 就有了优先级 p, 那我们如何有效地根据 p 来抽样呢?

如果每次抽样都需要针对 p 对所有样本排序, 这将会是一件非常消耗计算能力的事. 可以采用更高级的算法——SumTree方法。

SumTree是一种树形结构,每片树叶存储每个样本的优先级P,每个树枝节点只有两个分叉,节点的值是两个分叉的和,所以SumTree的顶端就是所有p的和。

抽样时,将 p 的总合除以 batch size, 分成batch size个区间。

比如p的总和是42的话, 如果抽6个样本,划分成区间[0-7], [7-14], [14-21], [21-28], [28-35], [35-42]。然后在每个区间里随机选取一个数。

(i)比如在区间 [21-28] 里选到了24, 就按照这个 24 从最顶上的42开始向下搜索.。

(ii)首先顶端42 下面有两个子结点,先对比左边的子结点, 如果比24大, 那就走左边这条路。

(iii)接着再对比 29 下面的左边子结点,13比24小, 那就走右边的路, 并且初始值24根据 13 修改, 变成 24-13 = 11。

(iiii)接着拿着 11 和 16 左子结点比,12 比 11 大, 选 12 当做这次选到的 priority, 并且选择 12 对应的一条数据.

简而言之,每次我们都选较大的节点数,因为每个父节点都是两个子节点的和,那么父节点较大的数也对应着较大的子节点数。

3.Dueling-DQN

Dueling-DQN从网络结构上改进了DQN,动作值函数可以分为状态值函数和优势函数,即

,对这两个函数分别利用神经网络逼近。

原始DQN(上)和Dueling DQN(下)

什么是优势函数?

状态值函数

可以理解为:在该状态下所有可能动作所对应的动作值函数乘以采取该动作的概率的和。更通俗的讲,值函数是该状态下所有动作值函数关于动作概率的平均值;

动作值函数

是单个动作所对应的值函数;

优势函数

能评价当前动作值函数相对于平均值的大小。所以,这里的优势指的是动作值函数相比于当前状态的值函数的优势。如果优势函数大于零,则说明该动作比平均动作好,如果优势函数小于零,则说明当前动作还不如平均动作好。

优势函数示意图

本节涉及到的论文:

1.Deep Reinforcement Learning with Double Q-learning(https://arxiv.org/pdf/1509.06461v3.pdf)

2.PRIORITIZED EXPERIENCE REPLAY(https://arxiv.org/pdf/1511.05952.pdf)

3.Dueling Network Architectures for Deep Reinforcement Learning(https://arxiv.org/pdf/1511.06581.pdf)

总结

以上是生活随笔为你收集整理的dueling dqn 和 double dqn_强化学习(十一)--DQN三个经典的变种的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。