最近在学习博弈论和DQN时,无意中发现胜者的诅咒和DQN中过估计现象相通。特此记录。

文章目录

  • 胜者的诅咒
  • DQN
  • Double DQN
  • 反思回顾

胜者的诅咒


分析这个问题,假设每一个参与拍卖的买家对硬币数量的估计相互独立,并且都愿意出与他估计价值相当的价格。

在上图中,红线为物品的实际价值,左右分别为两次拍卖不同买家的出价。因为我们每次都使用“价高者得”的方式,所以最终成功拍走物品的“胜者”永远是心目中对物品估价越多的人。当买家数量较多时,几乎可以肯定,胜者一定是过高估计物品价值的人。(而且是过高估计得最离谱的那个)所以在这个模型中,胜者永远是在做亏本买卖。

DQN

在介绍Double-DQN之前,先回顾一下DQN。

我们先来复习回顾一下DQN的基本算法。右图是伪代码,不作赘述。
在左图中,在我们每个循环更新参数的update网络在左上角,输入当前状态S和需要评估价值的动作a,经过网络即可输出估计的Q值。最后和目标网络计算出的下一时刻的Q值加上当前时刻的回报r相比较,最小化两者之间的差值。并在N次网络参数迭代后,更新target网络的参数为当前update网络。

核心步骤在图中已经标出,在target估算价值时,使用的就是遍历所有动作并求出其中的最大值。
这和拍卖模型非常相似。也就是说,选出的每一步对价值都是过于乐观了,这导致最后对于动作价值的判断过于乐观。即,使用Q网络对动作的估计价值,往往远高于动作真实的价值。
也就是价值的过估计(overestimate)。使用Double DQN可以很大程度上解决这个问题。

Double DQN

参考论文:https://arxiv.org/pdf/1509.06461.pdf

上图展示了四个小游戏中,DQN和double DQN的对比。
不难看出,实际DQN对于动作价值的预估(estimate),远大于行动的真实价值(true value),也就是说DQN网络特别爱吹牛。而DoubleDQN基本上解决了这个问题。并且由于克服了过分乐观的缺点,实际训练出来行为的价值高于DQN,显得double DQN又强又谦虚。

那么这种又强又谦虚的网络是怎么训练的呢?

其实这个网络相比DQN并没有改变多少。只改变了一步:原本最优动作选择和最优动作价值都是用目标网络Target Network计算实现的,现在最优动作选择权交给了updateNetwork。如果我们假设两个网络相互独立,那么Target Network对这个最优动作价值的估计就是无偏的。即使可能某些时候会高估,但有时也会低估,最终就不会像原版的DQN一样一直高估。

反思回顾

无意中打通学科的壁垒其实是一件很爽的事情。比如本文的灵感就是用博弈论中的胜者的诅咒解释DQN中状态-动作价值高估。

另外在Double DQN中,价值估计是无偏的充要条件就是两个网络参数相互独立,但这其实是绝对不可能的一件事。因为每过N次迭代,target 网络参数就会被update 网络参数完全替换。也就是说,两个网络其实具有非常强的相似性。
进一步地,也就是说DQN容易高估价值的毛病其实并没有完全被解决。只是从“吹牛大王”级别,降到了“比较自信”级别。实际工程中,更正确地认识动作价值,确实也会一定程度上提高“策略”的强度。

胜者的诅咒与double DQN相关推荐

  1. DQN 笔记 double DQN

    1 DQN的问题 在DQN 笔记 State-action Value Function(Q-function)_UQI-LIUWJ的博客-CSDN博客 中,我们知道DQN的学习目标是 但是,这个Q的 ...

  2. 强化学习(十)Double DQN (DDQN)

    在强化学习(九)Deep Q-Learning进阶之Nature DQN中,我们讨论了Nature DQN的算法流程,它通过使用两个相同的神经网络,以解决数据样本和网络训练之前的相关性.但是还是有其他 ...

  3. DQN笔记:高估问题 target network Double DQN

    Q 学习算法有一个缺陷:用 Q 学习训练出的 DQN 会高估真实的价值,而且高估通常是非均匀的. 这个缺陷导致 DQN 的表现很差. 高估问题并不是 DQN 本身的缺陷,而是训练 DQN 用的 Q 学 ...

  4. 强化学习—— Target Network Double DQN(解决高估问题,overestimate)

    强化学习-- Target Network & Double DQN(解决高估问题,overestimate) 1TD算法 2. 高估问题 2.1 Maximization 2.1.1 数学解 ...

  5. 【DQN高级技巧2】DQN高估问题:Target Network和Double DQN

    Bootstrapping 自举 在强化学习中,自举表示用一个估算去更新同类的估算 在更新梯度的时候我们用到了yty_tyt​,但yty_tyt​又部分基于DQN 即为了更新DQN在t时刻的估计,我们 ...

  6. 【强化学习实战-04】DQN和Double DQN保姆级教程(2):以MountainCar-v0

    [强化学习实战-04]DQN和Double DQN保姆级教程(2):以MountainCar-v0 实战:用Double DQN求解MountainCar问题 MountainCar问题详解 Moun ...

  7. 强化学习DQN(Deep Q-Learning)、DDQN(Double DQN)

    强化学习DQN(Deep Q-Learning).DDQN(Double DQN) _学习记录-有错误感谢指出 Deep Q-Learning 的主要目的在于最小化以下目标函数: J ( ω ) = ...

  8. 强化学习(实践):DQN,Double DQN,Dueling DQN,格子环境

    1,DQN算法 1.1,CarPole环境 以车杆(CartPole)环境为例,它的状态值就是连续的,动作值是离散的.在车杆环境中,有一辆小车,智能体的任务是通过左右移动保持车上的杆竖直,若杆的倾斜度 ...

  9. 【强化学习】DQN与Double DQN

    文章目录 一.DQN 1.1 Q网络和目标网络 1.2 经验回放 1.3 DQN流程 1.4 DQN的Q估值过高问题 二.Double DQN 一.DQN 1.1 Q网络和目标网络 Q π ( s t ...

最新文章

  1. IDEA创建子项目 parent标签报错
  2. ‘shared_ptr‘ is not a member of ‘std’
  3. PHP Warning: date(): It is not safe to rely on the system's timezone settings
  4. 寄存器、存储器、内存的区别
  5. [JavaWeb-HTML]HTML标签_图片标签
  6. 页面文字请使用css进行控制,css控制页面文字不能被选中user-select:none;
  7. MNIST机器学习入门【学习笔记】
  8. Linux学习技巧分享
  9. 软件的卡顿与卡死,意思是不同的
  10. linux下sybase创建数据库,sybase数据库环境搭建教程(多图教程)
  11. sql java驱动程序_microsoft sql server jdbc驱动下载
  12. chrome浏览器多开工具
  13. audio realtek 耳机没声_解决HD Audio 声卡前面板耳机无声音的方法
  14. JS显示当前时间(包含农历时间)
  15. quick-cocos 3.5 lua banding c++
  16. PHP微信固码免签系统源码+带监控APP和教程
  17. ibm mq 编程_IBM SOA编程模型简介
  18. Android中list常用方法,Android中的常用控件及其基本用法
  19. python如何安装pil库_Python安装PIL库
  20. C语言动态内存使用多文件实现通讯录,并可以保存在文件中

热门文章

  1. 关于跳槽你想好了吗?这里Android资深架构师有一些建议以及面试相关准备
  2. 当不知轴承型号时如何寻找轴承故障频率_不锈钢轴承温度和振动的检查及降温方法...
  3. 2022年武汉市科技型企业保证保险贷款补贴申报条件及具体多少钱?
  4. NBNet: Noise Basis Learning for Image Denoising with Subspace Projection
  5. Activiti 工作流入门
  6. 教程用手机运行Windows的迷你手机显示器变成电脑的副屏第二块显示器支持USB触摸
  7. 东莞理工学院计算机专业实力如何,2019东莞理工学院专业排名
  8. 起势的 Serverless,正在挺进云计算的腹地深处
  9. 深度学习(十)-AI起名
  10. 新手搭建网页web项目:包括服务器搭建、后台、前端、交互