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为RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN),我们的估计值为RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN),对于DQN,策略为选用最大 Q 的动作为输出,就使得RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN),然后论文中假设了 Q 的估计值RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)是对 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)的无偏估计,这我有点不太理解哈,因为我们在 DQN 的计算中已经使得 V(s) 是最大 Q 值了而非是使用贝尔曼方程计算的 Q(这时 V(s) 才应该是 Q 的期望),我认为只能假设 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN) 是对 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN) 的无偏估计,那后边怎么证明高估呢??只能说 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN) 有可能比 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)大,而不能解释为必然。我是这么理解的,当 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN) 小于 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN) 时,就会存在一定的误差,然后使得 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN) 继续增加,而当 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN) 偶然出现大于 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)时,由于更新操作RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)存在max操作,导致下一个状态的高估会传导至当前的状态,继而引起当前状态的高估,再继续向前传导。比如举个例子:

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

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

RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)
图1 DQN 和 Double DQN 的 Q 估计值与真实值曲线图

(3)高估有什么影响?

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

RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)
图2 DQN 与 Double DQN 的估计值和游戏得分

如何解决呢?

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

将原有 DQN 的 target :RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)改为如下所示的 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)

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

其中 RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN) 为当前与环境交互的网络的参数,RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN) 为暂存的 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:RL论文阅读【四】Deep Reinforcement Learning with Double Q-learning(Double DQN)然后更新Q。

 

6 最后

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