RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)

1 废话

今天特地早回来了点,天天一点睡,熬不住啊。把 Double DQN 看完了,收获还是不小的吧,虽然公式早就知道,不过把为什么DQN会高估和怎么解决的思路介绍的比较清楚了。

2 Motivation

其实吧,DQN 存在的高估问题和 Q-learning 是一样的,所以 Q-learning 是如何解决的呢?答案就是 Double Q-learning,所以我们今天的 Double DQN 也就来源于该算法。不过 Double Q-learning 我也没看,反正今天这篇 paper 介绍挺清楚的。

(1)首先:为什么 DQN 会出现高估的情况呢?

论文第二页的定理 1 就是在解释该问题 ,按照我自己的理解再解释一下:假设最优的Q为\hat{Q}(s, a),我们的估计值为Q^{t}(s, a),对于DQN,策略为选用最大 Q 的动作为输出,就使得V^{*}(s) = max_{a}\hat{Q}(s, a),然后论文中假设了 Q 的估计值\sum_{a}Q^{t}(s, a)是对 V^{*}(s)的无偏估计,这我有点不太理解哈,因为我们在 DQN 的计算中已经使得 V(s) 是最大 Q 值了而非是使用贝尔曼方程计算的 Q(这时 V(s) 才应该是 Q 的期望),我认为只能假设 Q^{t}(s, a) 是对 \hat{Q}(s, a) 的无偏估计,那后边怎么证明高估呢??只能说 max_{a}Q^{t}(s, a) 有可能比 max_{a}\hat{Q}(s, a)大,而不能解释为必然。我是这么理解的,当 Q^{t}(s, a) 小于 \hat{Q}(s, a) 时,就会存在一定的误差,然后使得 Q^{t}(s, a) 继续增加,而当 Q^{t}(s, a) 偶然出现大于 \hat{Q}(s, a)时,由于更新操作Q(s, a) = r + \gamma max_{a'}Q(s', a')存在max操作,导致下一个状态的高估会传导至当前的状态,继而引起当前状态的高估,再继续向前传导。比如举个例子:

在训练过程中,状态s出现了高估,然后的前一个状态的 target 就会高于真实值,继而导致预期值也高于真实值,然后再前一个状态的 target 也会高于真实值,由此一直向前传导。

(2)事实上通过实验,DQN 的确是会出现高估的问题的,如图1展示了4个游戏的结果(先不看 Double DQN),在其他的游戏中同样会出现高估的现象,非常普遍。

图1 DQN 和 Double DQN 的 Q 估计值与真实值曲线图

(3)高估有什么影响?

 如图二所示,上面是Q值,下面是得分,可以看出当DQN进行过估计的时候得分也会有一定程度的下降,说以可以理解为高估会对策略产生不利的影响。

图2 DQN 与 Double DQN 的估计值和游戏得分

如何解决呢?

论文直接说了解决方案,但是实际上并没有太多介绍为什么这么做比较好,先说文中的解决方案吧,然后再说一下我的理解。

将原有 DQN 的 target :Y^{DQN}_{t}改为如下所示的 Y_{t}^{DoubleDQN}

Y_{t}^{DoubleDQN} = r + \gamma Q(s, argmax_{a}(Q(s, a, \theta_{t})), \theta'_{t})

其中 \theta_{t} 为当前与环境交互的网络的参数,\theta_{t}' 为暂存的 target 网络的参数。

3 效果

图1和图2已经展示了一定的效果,作者又用了很多别的游戏来测试,大部分效果都是有提升的,这部分就不过多介绍。

4 为什么会有用呢??

paper 中有一个简单的例子尝试说明为什么会有用,这部分也比较多,懒得写了,大概就是用一个一维的状态,设定一个真值Q,在用多项式函数拟合一个 Q,然后验证了用 Q-learning 的方法计算 Q 估计值得到的最大值是比最优 Q 的最大值要大的,然后下一个状态的V值为随机一个动作的Q(paper 中写的选择的动作为 i+5 或 i-5),然后来更新当前的 Q 值(Double Q-learning 的思想)得到的 Q 的估计值的最大值与最优 Q 的最大值是差不多的。但是:你下一个状态的 V 值都用随机的动作的Q值了,你还能叫 Q-learning 吗?还能收敛吗??

我个人认的理解:

我们先只考虑让一个估计值去逼近真实值,那么这个估计值可能会在真实值上下波动,最后趋近去真实值,但是 max 操作使得被高估的预测值会传导至下一个状态,使得下一个状态的预测会趋近于一个高估的值。那么解决办法就是不要让一个高估的值传导至下一个状态,所以 Double DQN 做的就是用一个网络选最大值的动作,另一个网络获得这个动作的值,这样只有两个网络的Q最大值对应的动作相同时,即第一个网络选出来的动作在第二个网络里的Q值刚好也是最大的,但是这样几率就大大减小了,所以会使得效果改善不少。

5 还有什么改进办法吗(个人理解)?

只有在迭代公式中的 target 对于真实值永远是无偏的才能解决该问题。那么就不能使用 max 操作来计算 target,可以使用一个无偏的值,比如能否用 V(s) 来计算 target,然后 V(s) 再用贝尔曼公式计算,但是这样就必须知道执行每个动作的概率了,SO,能否用两个网络,一个网络输出每个动作的概率,然后另一个网络估计Q值,不对啊。。怎么越来越像 AC 了。。。或者使用 Dueling DQN(将 Q 分成了 V 和 A,还强行将 A 的期望拉成 0),用 V 来计算target:Y=r+\gamma V(s')然后更新Q。

 

6 最后

这篇看的比较费脑子,主要是 motivation,原理。为什么出存在这种问题,如何解决这种问题,为什么能解决?我上边也说了好多我的理解,很多直观理解,没有啥理论证明,也希望看到该博客的可以多多交流,不喜勿喷。

### 回答1: “使用双重Q学习的深度强化学习”是一种强化学习算法,它使用双重(double)Q学习来解决传统Q学习中的估计误差问题。通过使用两个独立的Q网络来计算状态-行为值函数,可以减少估计误差,提高学习效率和稳定性。在深度强化学习中,该算法可以应用于诸如游戏、机器人控制等复杂任务。 ### 回答2: Deep Reinforcement Learning with Double Q-Learning(双Q学习的深度强化学习)是一种利用深度学习技术进行增强学习的方法。在传统的强化学习中,Q-Learning是最常用的算法。然而,传统的Q-Learning存在着过高估计(overestimation)的问题,即它会过度估计某些动作的价值,这会使得智能体在实际运用过程中效果下降。 Double Q-Learning便是为了克服这一问题而被提出的算法。 Double Q-Learning是将Q-Learning算法分解成两个独立的网络,并通过互相交替使用这两个网络的方式来消除过高估计。具体来说,Double Q-Learning的基本思想是采用一对Q函数,将它们互相制约,使每个Q函数只估计另一个Q函数所做出的贪心策略的Q值。因此,这种方法将学习由另一个Q函数选择的最佳动作。 Deep Reinforcement Learning with Double Q-Learning所做的改进是将双Q学习应用于深度神经网络中。这样可以在复杂的环境中获得更好的性能。深度学习网络可以自主提取及学习输入数据的特征,然后利用这些特征来预测下一个状态的价值。因此,深度学习网络可以训练出更好的Q值函数,从而使得智能体的决策更加准确和稳定。同时,使用双Q学习技术使得网络更加稳定,从而更容易训练出更加准确和高效的智能体。 总体来说,Deep Reinforcement Learning with Double Q-Learning是一种高效的增强学习方法,可以帮助智能体在复杂环境下学习最佳策略。Double Q-Learning技术可以有效地消除过高估计的问题并提高点估计Q函数的准确性。同时,深度神经网络可以在处理高维度状态空间时提高学习效率。 ### 回答3: 深度强化学习是一种通过不断试错的方式,使机器在特定环境下学习并改进其决策能力的算法。其中,双重Q学习是一种基于Q-learning的强化学习算法,其通过双重估计目标函数,从而提高学习的效率和稳定性。下面将详细介绍深度强化学习与双重Q学习的原理及其优缺点。 深度强化学习简介: 深度强化学习依赖于神经网络模型和回报函数来指导决策。该方法通过梯度下降算法来不断更新参数以优化模型。其中,Q-learning是一种基于值函数的学习方式,其依赖于动作价值Q函数来指导决策。在深度强化学习中,可以通过深度Q网络来实现Q函数的学习。 双重Q学习的原理: 在Q-learning算法中,估计Q函数的时候会涉及到目标值的计算,目标值即为当前状态下的最大Q值。由于这个最大值来自于学习目标的网络,因此它本身也是训练数据中的最大值。而事实上,Q-learning很容易会高估这些值,从而导致学习的波动性增强和性能的下降。为了解决这个问题,双重Q学习引入了两个Q网络,并通过一定的策略来选择其中的一个网络计算Q值。对于目标函数的计算,与之前不同的是,双重Q学习将估计Q值和选择动作的过程分开进行,从而减少了Q值的高估。 双重Q学习的优缺点: 优点: 1.双重Q学习可减少估计Q函数时的波动,从而提高了学习的稳定性和性能。 2.该算法可以避免Q值函数过高或过低的问题,从而提高学习效果。 3.可针对复杂的决策任务和环境设计较为复杂的网络结构以提高效率。 缺点: 1. 双重Q学习需要建立两个Q网络,因此需要的计算资源较大。 2. 该算法对于环境动态变化较大的任务较难优化。 总之,深度强化学习与双重Q学习为现代人工智能领域的研究和应用提供了一些有益的思路和方法。在实际应用中,需要结合具体问题的特点和实际情况进行选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值