Double DQN缓解动作价值的高估问题

深度强化学习-Dueling DQN算法原理与代码 Dueling Deep Q Network(Dueling DQN)是对DQN算法的改进,有效提升了算法的性能。如果对DQN算法还不太了解的话,可以参考我的这篇博文:深度强化学习-DQN算法原理与代码,里面详细讲述了DQN算法的原理和代码实现。本文就带领大家了解一下Dueling DQN算法,论文链接见下方。 论文:http://proceedings.mlr.press/v48/wangf16.pdf 代码:后续会将代码上传到Github上... 1 Dueling DQN算法简介 Duelin 阅读详情

1、算法:

Selection using DQN:
a⋆=argmax⁡aQ(st+1,a;w). a^{\star}=\operatorname*{argmax}_{a}Q(s_{t+1},a;\mathbf{w}). a⋆=aargmax​Q(st+1​,a;w).
Evaluation using target network:
yt=rt+γ⋅Q(st+1,a⋆;w−). y_{t}=r_{t}+\gamma\cdot Q(s_{t+1},a^{\star};\mathbf{w}^{-}). yt​=rt​+γ⋅Q(st+1​,a⋆;w−).


2、算法实现:

class DoubleDQN:
    def __init__(self, dim_obs=None, num_act=None, discount=0.9):
        self.discount = discount
        self.model = QNet(dim_obs, num_act)
        self.target_model = QNet(dim_obs, num_act)
        self.target_model.load_state_dict(self.model.state_dict())

    def get_action(self, obs):
        qvals = self.model(obs)
        return qvals.argmax()

    def compute_loss(self, s_batch, a_batch, r_batch, d_batch, next_s_batch):
        # Compute current Q value based on current states and actions.
        qvals = self.model(s_batch).gather(1, a_batch.unsqueeze(1)).squeeze()
        # next state的value不参与导数计算,避免不收敛。
        next_qvals, _ = self.target_model(next_s_batch).detach().max(dim=1)
        loss = F.mse_loss(r_batch + self.discount * next_qvals * (1 - d_batch), qvals)
        return loss
【强化学习】11 —— Double DQN算法与Dueling DQN算法 可以看到由于数据点的分布,使得拟合出的价值函数无法与真实的价值函数吻合,甚至在部分区域产生了明显的偏差。Dueling DQN 是 DQN 另一种的改进算法,它在传统 DQN 的基础上只进行了微小的改动,但却能大幅提升 DQN 的表现。这样,即使其中一套神经网络的某个动作存在比较严重的过高估计问题,由于另一套神经网络的存在,这个动作最终使用的值不会存在很大的过高估计问题。.在同一个状态下,所有动作的优势值之和为 0,因为所有动作的动作价值的期望就是这个状态的状态价值。环境的状态包括倒立摆角度的正弦值。 阅读详情

相关推荐

第8章 DQN改进算法

DQN算法敲开了深度强化学习的大门,但是作为先驱性的工作,其本身存在着一些问题以及一些可以改进的地方。于是,在DQN之后,学术界涌现出了非常多的改进算法。本章将介绍其中两个非常著名的算法:Double DQN 和Dueling DQN,这两个算法的实现非常简单,只需要在DQN的基础上稍加修改,他们能在一定程度上改善DQN的效果。如果读者想要了解更多、更详细的DQN改进方法,可以阅读Rainbow模型的论文机器引用文献。

qq_45481856的博客 1352

dueling-dqn

在许多基于视觉的感知的DRL任务中,不同的状态动作对的值函数是不同的,但是在某些状态下,值函数的大小与动作无关。根据以上思想,Wang等人提出了一种竞争网络结构(dueling network)作为DQN的网络模型。 如上图所示,第一个模型是一般的DQN网络模型,即输入层接三个卷积层后,接两个全连接层,输出为每个动作的Q值。 而(第二个模型)竞争网络(dueling net)将卷积层提取的抽象特征...

war3gu的博客 868

第五章 强化学习进阶-DQN的高级技巧

本小节主要介绍DQN的高级技巧,可以大幅提升DQN的表现,主要内容是对TD算法的改进和对DQN结构的改进。

weixin_47304406的博客 1891

对Dueling DQN理论的深度分析。

优势函数A(s,a)用于度量在状态s下执行动作a的合理性,它直接给出动作a的性能与所有可能的动作的性能的均值的差值。如果该差值(优势)大于0,说明动作a优于平均,是个合理的选择;如果差值(优势)小于0,说明动作 a 次于平均,不是好的选择。度量状态s下的动作a的性能最合适的形式就是动作值函数(即Q函数)Qπ(s,a);而度量状态s所有可能动作的性能的均值的最合适形式是状态值函数(即V函数) Vπ(s,a) 。

qq_33328642的博客 4257

从代码学习深度强化学习 - Double DQN PyTorch版

欢迎来到“从代码学习深度强化学习”系列!在强化学习(RL)的世界里,Deep Q-Network (DQN) 算法无疑是一个里程碑,它巧妙地将深度学习的强大感知能力与Q-Learning的决策能力相结合,解决了许多之前无法攻克的复杂问题。然而,经典的DQN算法并非完美无瑕。它存在一个众所周知的问题——Q值过高估计 (Overestimation)。这个问题会导致智能体的学习过程不稳定,甚至无法收敛到最优策略。为了解决这一挑战,研究者们提出了Double DQN,一个对原始DQN的优雅而高效的改进。

weixin_43887510的博客 772

KEPServerEX中,别名映射(Alias Mapping)数据标签重命名机制

目录核心机制应用场景配置步骤技术特性与参考内容的差异KEPServerEX中,别名映射(Alias Mapping) 是一种数据标签重命名机制,主要用于简化复杂标签路径的调用或实现跨系统兼容。其核心逻辑和功能如下:路径抽象 将设备层级结构中的完整标签路径(如 Channel1.Device1.Tag1)映射为简短别名(如 TempSensor1),降低客户端调用的复杂度。动态绑定 别名与实际标签实时关联,数据更新和读写操作通过别名直接传递到底层物理标签,无需修改客户端配置。多对一映射支持多个别名指向

「东哥说MES」 专注于MES制造执行系统,为你拆解核心架构、功能模块及与ERP/PLC的集成逻辑。提供从入门到精通的系列干货、精选行业报告与实用工具,构建你的数字化知识体系,关注我,用实战经验照亮你的数字化之路。 1591

强化学习-李宏毅-算法02:DQN(Deep Q-Learning Network)【Deep Learning Network + Q-Learning 】

DQN(Deep Q-Learning Network)可谓是深度强化学习(Deep Reinforcement Learning,DRL)的开山之作,是将深度学习与强化学习结合起来从而实现从感知(Perception)到动作( Action )的端对端(End-to-end)学习的一种全新的算法。由DeepMind在NIPS 2013上发表1,后又在Nature 2015上提出改进版本2。 - DQN(Deep Q-Learning Network)创新点: 1. 基于Q-Learning构造Loss

u013250861的博客 9244

CTP Python API及Demo(利用Swig 封装)Windows版(6.6.1traderapi)

环境:visual studio2015、python3.9、 参考的是景色大神的教程自己制作,因为直接用它编译好的无法使用,遂自己编译。 从CTP官网上下载CTP API点击下载。这里用的版本是v6.6.1_P1_tradeapi,想使用不同的版本下载即可: 安装Swig软件,本文中所用的Swig是swigwin-4.0.2版本,点击下载。下载后解压,将swig路径添加到环境变量中。 安装python,注意要安装64位版本,将环境变量配置好。本文所用的是3.9版本。 通过Swig得到pyth.

ProgramVAE的博客 2543

DQN改进算法-Double DQN算法

​DQN算法敲开了深度强化学习的大门,但是作为先驱性的工作,其本身存在着一些问题以及一些可以改进的地方。于是,在 DQN 之后,学术界涌现出了非常多的改进算法。Double DQN和,这两个算法的实现非常简单,只需要在 DQN 的基础上稍加修改,它们能在一定程度上改善 DQN 的效果。如果读者想要了解更多、更详细的 DQN 改进方法,可以阅读 Rainbow 模型的论文及其引用文献。​ Rainbow是DeepMind提出的一种在DQN的基础上融合了6个改进的深度强化学习方法。

踏上取经路,比抵达灵山更重要🐱‍👤 1272

拆解大疆M300电池BMS:基于TI TIDA-010030方案的硬件架构深度分析

本文深度解析了大疆M300无人机电池管理系统(BMS)基于TI TIDA-010030参考设计的硬件架构。通过对比TI方案与大疆实现的差异,详细介绍了BQ7694003监控前端和BQ34Z100电量计的优化设计,以及通信架构的可靠性改进。文章还揭示了大疆在成本、空间和标准化方面的工程妥协与创新平衡,为锂电池保护方案提供了实践参考。

weixin_27066963的博客 238

PTGui使用教程

PTGui使用教程为啥使用ptgui开始使用ptgui 为啥使用ptgui ptgui是一个全景拼接软件,在海思hi3559上做视频拼接的时候,需要拼接参数,这是就需要使用到ptgui,这里可以在该网站下下载ptgui:下载地址 开始使用ptgui 第一步,加载图片,我这里添加了三幅图 然后添加控制点(可以先多对准几次图像,这样会自动生成一些控制点,但是不保证准确),建议控制点不要太密集 点开镜头设置,勾选以下几个选项以及配置好镜头类型,如下图 点开优化器,在高级界面中配置如下参数,最后点

what_wrong的博客 1万+

强化学习论文(Double-DQN)

本论文作者主要是解决了在Q-Learning方法中对于q-value的过高估计的问题。

gjhave的博客 257

Unity 数字孪生实战:PiXYZ Plugin工业模型高效处理指南

本文是Unity数字孪生实战指南,重点介绍了如何使用PiXYZ Plugin高效处理工业CAD模型。针对工业模型导入Unity时面临的格式壁垒、数据爆炸和资产混乱等核心痛点,文章提供了从环境安装、基础导入到智能减面、资产清理的完整解决方案,并分享了预设自动化、运行时导入等高级技巧与性能优化策略,帮助开发者快速打通工业设计与实时交互流程。

weixin_29009501的博客 257

Rainbow is all you need:Double DQN如何解决Q值高估问题的完整解析

Rainbow is all you need项目是一个从DQN到Rainbow算法的循序渐进教程,其中Double DQN作为重要的改进算法,有效解决了传统DQN中的Q值高估问题。本文将深入解析Double DQN的核心原理、实现方式以及它在强化学习中的关键作用。 ## 为什么Q值高估是个大问题? 在传统的DQN(深度Q网络)算法中,Q值高估是一个普遍存在的问题。这是因为DQN使用同一个网络

gitblog_00001的博客 448

[Dify] 如何在Dify中解析上传的TXT文件内容

在Dify平台上构建智能应用时,解析用户上传的.txt文件是关键步骤。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 2637

BME688传感器原理图设计,已量产(环境传感器)

在便携式空气质量监测、可穿戴健康设备这类低功耗场景中,BME688 这类集成了 VOC、温湿度、气压的四合一 MEMS 传感器越来越受欢迎 —— 它体积小、功耗低,刚好匹配便携设备的需求。但这类小信号传感器对电源噪声、电平匹配的要求很细,今天结合实际项目里的一款 BME688 接口电路,聊聊硬件设计的关键细节。

不脱发的程序猿 514

深入解析DQN优化策略:从Double DQN到Dueling DQN的强化学习进阶

本文深入解析了DQN优化策略,从Double DQN到Dueling DQN的强化学习进阶。通过分析传统DQN的缺陷,介绍了Double DQN如何解决过度自信问题,以及Dueling DQN如何分离状态价值和动作优势。结合实战案例和代码示例,展示了DDDQN(Double Dueling DQN)的卓越性能与训练稳定性,为强化学习实践者提供了宝贵的优化思路和调参技巧。

weixin_29050271的博客 352

爬虫实战:拆解WASM加密参数,破局2026电商动态接口反爬(实测某头部电商可用)

sign和wasm_token,而且每次请求这两个参数都在动态变化。用常规的参数拼接、MD5加密尝试还原,结果全是403;反编译前端JS,发现核心加密逻辑被打包成了.wasm,把关键参数加密、签名逻辑藏在二进制模块里,让爬虫无法直接逆向JS拿到加密规则。前后折腾了5天,从WASM文件解析、JS与WASM交互逻辑拆解,到本地还原加密参数、实战验证,踩了无数坑(比如WASM版本不兼容、内存数据读取失败、加密依赖环境缺失),最终成功还原了加密流程,稳定爬取商品详情、价格、销量等核心数据,连续运行72小时无封禁。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1913

告别查表!从线性逼近到Dueling DQN,一文搞懂强化学习如何应对海量状态

本文深入探讨了强化学习从查表法到Dueling DQN的技术演进,重点分析了值函数逼近在应对海量状态空间中的关键作用。通过对比线性逼近、DQN及其改进版本(如Double DQN和Dueling DQN)的优缺点,揭示了如何有效解决维度灾难问题,为复杂场景下的智能决策提供实用解决方案。

weixin_30598225的博客 363

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

从游戏AI到自动驾驶:DQN变种算法的跨领域实战解析

本文深入解析DQN变种算法(包括Double DQN、Dueling DQN和Prioritized DQN)在游戏AI和自动驾驶领域的实战应用。通过对比各算法的核心改进和性能表现,展示了它们在复杂决策场景中的优势,特别是在自动驾驶仿真中显著提升了安全性和决策质量。

weixin_29054195的博客 472

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

深度强化学习——DQN算法核心机制与实战演进

后来发现这是典型的"移动目标"问题——我们用当前网络参数w计算TD目标,同时又用这个目标来更新w,就像狗追自己的尾巴。更令人惊喜的是,这种设计还缓解了Q值高估问题——因为目标网络提供的max操作比单一网络更保守。的引入就像给AI装上了记忆芯片。实验数据显示,在Atari 2600的49款游戏中,Double DQN相比原始DQN在38款游戏上表现更优,平均得分提升约1.8倍。实测表明,在Atari游戏《Breakout》中,引入经验回放后训练稳定性提升约300%,达到相同分数所需的训练时长减少40%。

weixin_30820077的博客 315

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

DQN笔记:高估问题 & target network & Double DQN

Q 学习算法有一个缺陷:用 Q 学习训练出的 DQN 会高估真实的价值,而且高估通常是非均匀的。 这个缺陷导致 DQN 的表现很差。 高估问题并不是 DQN 本身的缺陷,而是训练 DQN 用的 Q 学习算法的缺陷。 1 自举(bootstrapping)导致的偏差传播 1.1 DQN参数更新(回顾) Q-learning 算法每次从经验回放数组 (Replay Buffffer) 中抽取一个四元组。然后执行以下步骤,对 DQN 的参数做一轮更新: 1,计算TD目标 ——&...

qq_40206371的博客 5662

【强化学习】Double DQN(Double Deep Q-Network)算法

强化学习中的深度Q网络(DQN)是一种将深度学习与Q学习结合的算法,它通过神经网络逼近Q函数以解决复杂的高维状态问题。然而,DQN存在过估计问题(Overestimation Bias),即在更新Q值时,由于同时使用同一个网络选择动作和计算目标Q值,可能导致Q值的估计偏高。 Double DQN(DDQN)引入了“双网络”机制来缓解这个问题,从而提高了算法的稳定性和收敛性。

博主关注人工智能、强化学习、嵌入式等||985高校A+学科研究生、猿龄六年||优快云博客专家、2024年博客之星TOP33、华为云享专家、人工智能领域优质创作者。 1万+

让 Q 值估计更准确:从 DQN 到 Double DQN 的改进方案

本文深入剖析DQN的过估计偏差根源,详解Double DQN(解耦动作选择与评估)、Dueling DQN(分离状态值与动作优势)、优先经验回放(按TD误差智能采样)三大核心改进,并用PyTorch从零实现,最后对比CleanRL专业实现,助你扎实掌握强化学习进阶技巧。

deephub 1562

10天速通强化学习-006--DQN、Double DQN、Dueling DQN

Double DQN :缓解了DQN中对Q值的过高估计Dueling DQN:能够很好地学习到不同动作的差异性,动作空间大时非常有效这可以作为创新点来发掘,记住从DQN到Double DQN (解决现有问题Q值过高)和 Dueling DQN(解决不同动作模式的差别)的转变。r+r+r+%5Ceta。

m0_72169557的博客 2349

初探强化学习(14)DQN类算法的值高估问题的笔记

关于DQN算法的一些细节,可以查看这个博客,讲的很细节。 主要参考博客 https://zhuanlan.zhihu.com/p/443807831 https://itpcb.com/a/162740#:~:text=%E5%87%BA%E7%8E%B0%E4%BB%B7%E5%80%BC%E9%AB%98%E4%BC%B0%E7%9A%84%E6%A0%B9,%E7%9A%84%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E3%80%82

qq_33328642的博客 1154
上一篇: 对比TargetNetwork 和 Double DQN
下一篇: dueling network原理和实现
KPer_Yang
博客等级 码龄5年 281粉丝 181原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KPer_Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值