double dqn report
来源:互联网 发布:洛克王国手机辅助软件 编辑:程序博客网 时间:2024/04/29 19:40
double dqn report
@(paper reading)
Double DQN (https://arxiv.org/abs/1509.06461)
Thrun & Schwartz (1993) 在那个古老的年代就已经指出Q-learning中存在过度估计 (overestimation)问题。因为DQN本质上是基于Q-learning的,那么DQN中也一定存在过度估计的问题,并且一定程度上会影响DQN的性能。
由此,作者提出了Double DQN。由下表可以看到,相比Nature DQN,Double DQN的性能得到了进一步提升。
什么是overestimation?
这种现象是由Q-learning中的max操作带来的。
可以通过假设的一个例子来理解这个问题:
假设当前状态下,对于所有动作,它们实际的return value都应当是0。但是因为估计必定存在误差,所以一些动作可能返回正值,而另一些动作可能返回负值 (这里不妨假设为+0.5及-0.5)。Q-learning中用Q function返回估计值,为当前状态下的所有动作计算估计值,并选择拥有最大Q值的动作。那么问题就来了,这个最大值是+0.5,而不是0,并且每一步(在每个状态下)都会出现这个问题。这也就是Q-learning中的overestimation。随着迭代的进行,这种overestimation可能会导致策略逐渐变为一个次优解。
Double DQN
结合double q-learning的目的在于减少overestimation。
其基本思想为:将target Q中选择和评估动作分离,让它们使用不同的Q网络。
nature dqn中
double dqn中
其中
因为nature dqn引入了单独的target q-network,等于已经是double q了,所以double dqn在原有的架构上,基本不需要做什么改动。
至于
为什么将selection和evaluation分离可以减少overestimation?
这块感觉文章自己也没讲清楚。
接着上面的例子,把现在需要计算的Q function叫做Q1。如果用另一个同样有噪声问题的Q2来选择动作,带入到Q1中去,留意上面的等式,这里的Q1并没有取max的操作,所以得到的结果可正可负,平均下来就会接近于0,得到一个相对无偏的结果。
存在问题
overestimation是个老问题,但是显然之前都没有意识到它是这么common and severe,故而double dqn是一次比较大的提升。
然而,虽然这篇文章里没有提到,但作者在他10年的double q-learning一文里表示,double q-learning虽然能有有效降低overestimation的问题,但是有时也会导致underestimation。
double DQN会不会反而导致underestimation的出现?有没有可能实现一种unbiased q-learning?
ps: 为什么编辑的公式后面会有个竖线??
- double dqn report
- DQN
- DQN
- (Deep Reinforcement Learning with Double Q-learning, H. van Hasselt et al., arXiv, 2015)(dqn)练习
- DQN实战
- DQN改进
- 各种DQN
- DQN 以及 DQN的扩展
- report
- Report
- report
- Report
- report
- Report ><
- Report
- Report
- DQN学习日记1
- Reinforcement Learning (DQN) tutorial
- Oracle基本语法查询语句
- Android中的一个小特效,从圆变成纸飞机
- HDU 5996 dingyeye loves stone(Nim 变形)
- Leetcode 412 Fizz Buzz
- 动态规划 计算二项式系数
- double dqn report
- php学习中一个小问题
- Ubuntu 14以上系统快速安装YouCompleteMe实现vim的智能提示
- C++基础 类函数
- 第一章:第一行android代码注解(1)
- 搭建本地gitlab【CentOS7】
- java--流相关知识点
- 移植 LWIP 1.4.1 到 ucosii 的总结
- 卷积神经网络物体检测之感受野大小计算