dueling network原理和实现

news/2024/12/22 0:17:30/

算法原理:
Q ( s , a ; θ , α , β ) = V ( s ; θ , β ) + ( A ( s , a ; θ , α ) − max ⁡ a ′ ∈ ∣ A ∣ A ( s , a ′ ; θ , α ) ) . \begin{gathered}Q(s,a;\theta,\alpha,\beta)=V(s;\theta,\beta)+\left(A(s,a;\theta,\alpha)-\max_{a'\in|\mathcal{A}|}A(s,a';\theta,\alpha)\right).\end{gathered} Q(s,a;θ,α,β)=V(s;θ,β)+(A(s,a;θ,α)aAmaxA(s,a;θ,α)).
注:DuelingNetwork只是改变最优动作价值网络的架构,原本用来训练DQN的策略依然可以使用:

​ 1、优先级经验回放;

​ 2、Double DQN;

​ 3、Multi-step TD;

在这里插入图片描述


代码实现,只需要将原来的DQN的最优动作价值网络修改成Dueling Network的形式:

class DuelingNetwork(nn.Module):"""QNet.Input: featureOutput: num_act of values"""def __init__(self, dim_state, num_action):super().__init__()# A分支self.a_fc1 = nn.Linear(dim_state, 64)self.a_fc2 = nn.Linear(64, 32)self.a_fc3 = nn.Linear(32, num_action)# V分支self.v_fc1 = nn.Linear(dim_state, 64)self.v_fc2 = nn.Linear(64, 32)self.v_fc3 = nn.Linear(32, 1)def forward(self, state):# 计算Aa_x = F.relu(self.a_fc1(state))a_x = F.relu(self.a_fc2(a_x))a_x = self.a_fc3(a_x)# 计算Vv_x = F.relu(self.v_fc1(state))v_x = F.relu(self.v_fc2(v_x))v_x = self.v_fc3(v_x)# 计算输出x = a_x - v_x - a_x.max()return x

http://www.ppmy.cn/news/1015461.html

相关文章

day5gdb调试模式和makefile

一、gdb调试 1.1gdb调试的作用 gdb调试检查的是逻辑错误,而非语法错误 1.2gdb流程 1、gcc -g 1.c ---->加-g参数的作用,生成可以调试的gdb文件 2、gdb 可执行文件名/a.out ---->进入gdb工具进行调试 3、输入l,带行号打印文件信息…

湖大CG满分教程:作业训练四编程题20. 回文串(暴力×动态规划算法√)

问题描述 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。给你一个字符串,问最少在字符串尾添加多少字符,可以使得字符串变为回文串。 输入格式 有多组测试数据。 每组测试数据第一行是一个正整数N…

软件性能测试有哪些测试指标?性能测试报告对软件产品起到的作用

在软件开发过程中,性能测试是一个至关重要的环节,主要关注软件系统在不同负载条件下的表现,以评估其稳定性、可扩展性和响应能力。它可以帮助开发人员评估软件系统的质量和性能。 一、软件性能测试的测试指标 性能测试的测试指标直接影响着…

【Linux操作系统】GCC编译与静态库、动态库制作详解

GCC是一款广泛使用的开源编译器,它支持多种编程语言,并且具有强大的编译能力。在软件开发中,我们经常需要将代码编译成可执行文件或者库文件。本文将详细介绍GCC编译过程以及如何制作静态库和动态库。 文章目录 一、GCC编译过程1. 预处理阶段…

[国产MCU]-BL602开发实例-ADC数据采样

ADC数据采样 文章目录 ADC数据采样1、ADC介绍2、ADC驱动API3、ADC使用示例模数转换器(analog-to-digital converter,通常称为ADC)是一种模拟与数字转换器,支持12路外部模拟输入和若干内部模拟信号选择。 BL602的ADC支持以下四种模式:单次单通道转换、连续单通道转换、单次…

在 Linux 上以 All-in-One 模式安装 KubeSphere

官方文档:https://www.kubesphere.io/zh/docs/v3.3/quick-start/all-in-one-on-linux/ 操作系统 最低配置 Ubuntu: 16.04,18.04, 20.04, 22.04 2 核 CPU,4 GB 内存,40 GB 磁盘空间Debian Buste:Stretch 2 核 CPU&am…

Docker基本使用

查看本地镜像 查看本地:docker imagesPull镜像:docker pull nginx:latest登录镜像:docker login hub.docker.com -u **** -p ****制作镜像:docker build -t xxxx:v1push:docker push xxx:v1删除镜像:docker rmi #imag…

MyCat管理及监控——zookeeper及MyCat-web安装

1.MyCat管理 2.MyCat-eye 3.zookeeper安装 第一步:解压 第二部: 切换目录,创建data文件夹 第三步:修改zookeeper配置文件 这样zookeeper安装及配置就完成了 4.MyCat-web安装 注意mycat-web要与zookeeper关联,…