当前位置: 首页 > news >正文

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

1、算法:

Selection using DQN:
a ⋆ = argmax ⁡ a Q ( s t + 1 , a ; w ) . a^{\star}=\operatorname*{argmax}_{a}Q(s_{t+1},a;\mathbf{w}). a=aargmaxQ(st+1,a;w).
Evaluation using target network:
y t = r t + γ ⋅ Q ( s t + 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 = discountself.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
http://www.lryc.cn/news/113290.html

相关文章:

  • 【C#学习笔记】内存管理
  • 面试之快速学习c++11- 列表初始化和 lambda匿名函数的定义
  • CI/CD—Docker初入门学习
  • 多线程的创建,复习匿名内部类,Thread的一些方法,以及lambda的变量捕捉,join用法
  • 瑞吉外卖系统05
  • D455+VINS-Fusion+surfelmapping 稠密建图(三)
  • rv1109/1126 rknn 模型部署过程
  • Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP
  • --binlog-row-event-max-size
  • Jmeter命令行运行实例讲解
  • pl/sql函数如何返回多行数据?在线等......
  • Ubuntu Find命令详解
  • ADS Momentum学习笔记
  • 解决Vue3 使用Element-Plus导航刷新active高亮消失
  • K8S系列文章之 一键部署K8S环境
  • Spring Boot、Spring Cloud、Spring Alibaba 版本对照关系及稳定兼容版本
  • 虫情监测仪介绍—技术原理、功能优势是什么?
  • HTML5 Canvas和Svg:哪个简单且好用?
  • ChatGPT在社交媒体聊天和评论分析中的应用如何?
  • DoIP学习笔记系列:(四)用CAPL脚本读取DID的关键点
  • chrome插件开发实例06-定制自己的Chrome DevTools调试工具
  • 安卓读取,添加,更新,删除联系人,读取短信
  • Practices6|69. x 的平方根、(哈希表)205. 同构字符串、(哈希表)1002. 查找共用字符
  • Qt扫盲-Model/View入门
  • 关于win11 debian wsl 子系统安装启动docker一直starting,无法启动
  • Nginx反向代理配置+负载均衡集群部署
  • 设计模式行为型——迭代器模式
  • K8s持久化存储(nfs网络存储)
  • 常规VUE项目优化实践,跟着做就对了!
  • PLL 的 verilog 实现