Dueling DQN 值函数和优势函数

Dueling DQN解析
本文深入探讨了Dueling DQN的原理与优势,通过将Q网络拆分为V值和A值两部分,使得模型能够更有效地评估状态和动作的价值。与传统DQN相比,Dueling DQN能更好地处理在某些状态下动作选择对最终奖励影响较小的情况。

定义advantage,动作的优势程度函数
将Q网络分成两个通道,一个输出V,一个输出A,最后再合起来得到Q
Q(s,a) = 状态的所有动作Q期望 + action-value的优势程度(思考优势程度的定义)
Q(s,a) = A(s,a) + V(s)
1.值函数V(s)
定义: 状态s下所有动作价值的期望(矩阵size=1)
2.优势函数A(s,a)
避免两个支路直接学习到V(s)=0或者A(s,a)=0的情况===>

优势函数(Advantage Function)

定义优势函数

 

注意有 

值函数V 评估状态 S的好坏,动作值a评估在状态S下采取动作a的好坏,而优势函数A评估的则是在状态S采取各动作相对于平均回报的好坏,也就是采取这个动作的优势。

 

Dueling DQN有什么优点

Dueling DQN可以学到每个状态的V值,而不需要考虑在该状态采取什么样的动作。我们可以想想普通的DQN,它只能学到在某个状态下采取某个动作的Q值。当在某些状态下采取什么动作对最终回报没有什么影响时,Dueling DQN这种结构就非常有优势。

为了说明这一点,我们先看下面这张图

图中显示我们的V值网络尤其关注远处地平线,也就是新的小车出现的地方,也很关注当前所获得的分数。相比之下,优势函数网络在不需要采取什么动作时,对图像输入并没有什么重点关注的地方(图右上角),而当有小车离得很近时,才会对“警觉”起来(图右下角)。

DQN算法是一种基于Q-learning的深度强化学习算法,其目标是学习一个Q函数,使得该函数能够最大化累积奖励。DDQN算法是对DQN算法的改进,通过解决DQN算法中过高估计Q值的问题,提高了算法的性能。Dueling DQN算法则是在DDQN算法的基础上,提出了一种新的神经网络结构,使得算法的学习效率更高。 下面是DQN算法的公式推导分析: 1. Q-learning的更新公式为:$Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha(r_{t+1} + \gamma \max_{a} Q(s_{t+1},a) - Q(s_t,a_t))$ 2. DQN算法使用了深度神经网络来逼近Q函数,将更新公式改为:$Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha(r_{t+1} + \gamma \max_{a} Q(s_{t+1},a; \theta^-) - Q(s_t,a_t; \theta))$,其中$\theta$为当前网络的参数,$\theta^-$为目标网络的参数,$\max_{a} Q(s_{t+1},a; \theta^-)$表示在下一个状态$s_{t+1}$中,选择动作$a$所得到的最大Q值。 3. DDQN算法在DQN算法的基础上,使用了双网络结构,解决了DQN算法中过高估计Q值的问题。更新公式为:$Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha(r_{t+1} + \gamma Q(s_{t+1},\arg\max_{a} Q(s_{t+1},a; \theta); \theta^-) - Q(s_t,a_t; \theta))$,其中$\arg\max_{a} Q(s_{t+1},a; \theta)$表示在下一个状态$s_{t+1}$中,选择动作$a$所得到的最大Q值对应的动作。 4. Dueling DQN算法在DDQN算法的基础上,提出了一种新的神经网络结构,使得算法的学习效率更高。具体来说,Dueling DQN算法的输出包括两个分支,分别是该状态的状态价值V(标量)每个动作的优势值A(与动作空间同维度的向量)网络结构如下图所示: [Dueling DQN网络结构](https://img-blog.csdn.net/20170727145756345?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbnhpYW9fYmFpZHUx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80) 更新公式为:$Q(s_t,a_t) \leftarrow V(s_t) + (A(s_t,a_t) - \frac{1}{|\mathcal{A}|} \sum_{a} A(s_t,a))$,其中$V(s_t)$表示状态$s_t$的价值,$A(s_t,a_t)$表示在状态$s_t$下选择动作$a_t$的优势值,$\frac{1}{|\mathcal{A}|} \sum_{a} A(s_t,a)$表示所有动作的平均优势值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值