Q learning进阶:Double DQN和 Dueling DQN

1. Double DQN

DQN中很容易对Q-value的值过度估计。因为会倾向于选择表现好的当前action,往往这个action是过高估计的。

在这里插入图片描述

在这里插入图片描述

Double DQN中有两个Q函数,Q和Q’(Target network)
在这里插入图片描述
如果Q被过高估计,Q’很有可能不对它有过高估计,给予适当的值。

如果Q’被过高估计,Q也不会按照Q’选择action,两者相互有制约。

Double DQN很好的解决了对于Q值过高估计的问题,实验中,蓝色曲线是Double DQN的Q的值,与实际值更加接近。
在这里插入图片描述

2. Dueling DQN

一般的,Q-learning 的输出是Q值,但是Q值一直很不稳定,那么,如果把Q值拆开(里面有不稳定的部分和稳定的部分),是不对结果更加好呢?我们只改变一点网络架构:
在这里插入图片描述

V(s)的细小改变,会改变整个Q的结果。

在这里插入图片描述

3. “经历的重点”:Prioritized Reply

典型的Q-learning中,有experience buffer的模块,可以针对以前的经历进行离线学习。

但是经历非常多,有没有重点呢? 所有的记忆都是有用的吗?Prioritized Reply就是为我们解决这个问题。提升训练的质量。
较大的TD error的经历,很sample到的概率会相对比较高。

在这里插入图片描述

4. 平衡MC和TD:Multi-step

我们的思路是把一步的经历,做成多步的经历。
在这里插入图片描述

5. Noisy Net

Noisy Net 的概念几乎同时被openAI和Deepmind提出:

  • 我们在action中加入noisy,其实就是 Epsilon Greedy(随机乱试)
  • 我们在Parameters中加入noisy(有系统的试)

在这里插入图片描述

通过noise net 小狗更快的学会跑步
效果:from https://blog.openai.com/better-exploration-with-parameter-noise/
在这里插入图片描述

6. Q-函数的分布

在这里插入图片描述
我们以游戏控制为例:
在这里插入图片描述

7. Rainbow

rainbow 是Q-learning中的集大成者,论文地址是:https://arxiv.org/abs/1710.02298

在这里插入图片描述

8. Q-learning在连续动作中的应用

当 Action ? 是一个连续的向量
在这里插入图片描述
Solution 1:
从action中抽样出一个action集合,然后在里面选择Q值最大的

Solution 2:
使用梯度上升解决求Q值最大的问题

Solution 3 :设计一个网络,让求最大值的问题简单化

在这里插入图片描述

Solution 4 不要使用 Q-learning
在这里插入图片描述

本专栏图片、公式很多来自David Silver主讲的UCL-Course强化学习视频公开课和台湾大学李宏毅老师的深度强化学习课程,在这里,感谢这些经典课程,向他们致敬!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐