多智能体强化学习--理论与算法

目录标题

  • 基础概念
  • MADDPG的actor和critic网络
    • actor网络:
    • **critic网络:**
  • MAPPO的actor和critic网络
    • actor网络:
    • critic网络:
  • QMix (QMIX)
  • VDN (Value Decomposition Networks)

参考博士论文:基于强化学习的多智能体协同关键技术及应用研究

基础概念

在单个智能体与部分可观测环境的交互过程一般使用部分可观测马尔可夫决策过程(partial observable MDP,POMDP)133][134][13]进行建模,其挑战来自部分观测难以恢复环境实际所处的马尔可夫状态,而马尔可夫性是强化学习的关键假设。在多智能体问题中,如果每个智能体观测到环境的局部信息,并且根据局部信息进行决策,这类问题称为去中心化POMDP问题(decentralized POMDP, Dec-POMDP)[136][137][138]。

训练阶段能够使用全局状态信息,而执行阶段各智能体仅仅使用自身的局部观测进行决策,称为“集中式训练分布式执行”(关于为什么采取这种方式,知乎一个很好的回答:知乎)

MADDPG的actor和critic网络

actor网络:

  • MADDPG中的actor网络旨在为每个智能体生成确定性策略,即给定一个状态,智能体将输出一个具体的动作。
  • 每个智能体的actor网络仅根据其局部观测来决定动作,但在训练过程中,这些网络会考虑到所有智能体的状态信息。
  • actor网络的输出是动作,这些动作是基于确定性策略的,这意味着在给定相同状态的情况下,每次都会产生相同的动作。

critic网络:

  • critic网络在MADDPG中用于评估给定的状态-动作对的价值。
  • 它需要全局信息,即所有智能体的状态和动作,以便能够评估联合动作的价值。
  • critic网络通常采用Q-learning的思想,学习预测状态-动作值函数(Q值),这有助于指导actor网络的训练。

特点:

  • MADDPG使用的是确定性策略梯度(DPG)方法,这意味着它倾向于产生平滑且可预测的动作。
  • 它采用集中式训练和分布式执行的方式:在训练时,所有智能体的信息被用来训练每个智能体的critic网络,但在实际执行时,每个智能体仅使用自己的观测来选择动作。

MAPPO的actor和critic网络

(代码详解请看博客:博客链接)

actor网络:

  • MAPPO中的actor网络输出的是动作的概率分布,而不是像MADDPG那样的确定性动作。
  • 它基于Proximal Policy Optimization(PPO)算法,使用随机策略来探索环境。
  • 每个智能体的actor网络同样根据局部观测来决定动作概率分布,但在训练时,它也考虑到了其他智能体的行为。

critic网络:

  • critic网络在MAPPO中用于评估状态值函数,即预测在特定状态下智能体能够获得的期望回报。
  • 与MADDPG的critic类似,它也需要全局信息来评估状态的价值。
  • MAPPO的critic通常使用优势函数来指导actor网络的更新,优势函数表示智能体采取特定动作相对于平均动作的优劣。
    特点:
  1. MAPPO使用的是概率性策略,允许算法在探索和利用之间进行权衡。
  2. 它同样采用集中式训练和分布式执行的方式,但在策略更新上,它使用了一种更加稳定和高效的策略优化方法。

总的来说,MADDPG和MAPPO在actor和critic网络设计上的主要区别在于:

  • MADDPG的actor输出确定性动作,而MAPPO的actor输出动作的概率分布。
  • 两者都使用全局信息来训练critic网络,但MAPPO的更新策略更加稳定,适用于更广泛的场景。
  • MADDPG倾向于在需要平滑动作控制的场景中使用,而MAPPO由于采用了概率策略,更适用于需要平衡探索和利用的场景。

QMix (QMIX)

QMix是一种基于值分解的多智能体强化学习算法,适用于需要智能体之间高度协调的合作环境。它通过将每个智能体的局部Q值函数与一个混合函数相结合,来学习全局Q值函数。

VDN (Value Decomposition Networks)

VDN是QMix的前身,通过分解全局值函数为每个智能体的局部值函数来处理多智能体环境。它在某些情况下可能不如QMix表现好,但结构更简单,易于理解。

MADDPG (Multi-Agent Deep Deterministic Policy Gradient)。MADDPG是DDPG算法在多智能体环境中的扩展,适用于连续动作空间。它在多个智能体系统中表现出色,尤其在智能体需要独立学习策略的场景中。

MAPPO (Multi-Agent Proximal Policy Optimization)MAPPO是基于PPO算法的多智能体版本,适用于离散和连续动作空间,策略优化稳定。它在需要智能体之间协作和竞争的复杂环境中表现良好。

COMA (Counterfactual Multi-Agent Policy Gradients)COMA是一种考虑了其他智能体行为的策略梯度方法,通过计算反事实的奖励来估计每个智能体的贡献。它特别适用于需要智能体之间相互依赖和协作的环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go数据操作-MySQL

1.快速入门 下载依赖 go get -u github.com/go-sql-driver/mysql使用MySQL驱动 func Open(driverName, dataSourceName string) (*DB, error)Open打开一个dirverName指定的数据库,dataSourceName指定数据源,一般至少包括数据库文件名和其它连接必要的…

【Linux】信号量

信号量 一、POSIX信号量1、信号量的原理2、信号量的概念(1)PV操作必须是原子操作(2)申请信号量失败被挂起等待 3、信号量函数4、销毁信号量5、等待信号量(申请信号量)6、发布信号量(释放信号量&…

20240131在WIN10下配置whisper

20240131在WIN10下配置whisper 2024/1/31 18:25 首先你要有一张NVIDIA的显卡,比如我用的PDD拼多多的二手GTX1080显卡。【并且极其可能是矿卡!】800¥ 2、请正确安装好NVIDIA最新的545版本的驱动程序和CUDA。 2、安装Torch 3、配置whisper http…

仰暮计划|“从米票、肉票、糖果票到肥皂票、煤票、棉花票等,生活里头的方方面面都能用粮票买到”

口述人:牛翠英(女) 整理人:霍芝冉 口述人基本信息:现68岁,河南省安阳市北关区霍家村人,现居河南安阳市区。 奶奶一生辛劳,操持家务;亲眼见证了时代变迁,社会发展,…

docker笔记整理

Docker 安装 添加yum源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装docker yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin 启动docker systemctl start docker 查看docker状态 s…

09. 异常处理

目录 1、前言 2、常见的异常 3、异常处理try...except...finally 4、异常信息解读 5、raise 6、自定义异常 7、小结 1、前言 在编程中,异常(Exception)是程序在运行期间检测到的错误或异常状况。当程序执行过程中发生了一些无法继续执…

C languange DGEQRF 示例,link liblapack.a

1.示例源码 #include <stdio.h>int min(int m, int n){ return m<n? m:n;}void print_matrix(double* A, int m, int n, int lda) {for (int i 0; i < m; i){for (int j 0; j < n; j){//printf("%7.4f ", A[i j*lda]);printf("%7.4f, &quo…

springboot 文件上传

前言 用户访问当前系统,将自己本地计算机中文件通过浏览器上传到当前系统所在的服务器过程中称之为文件的上传 具体思路 1.文件上传 文件上传: 用户将本地计算机中文件上传到服务器过程称之为文件上传 2.文件上传开发思路: a.提供一张上传页面 提交方式必须:post enctype属…

Oracle RMAN全备脚本(正式测试可行)

Oracle RMAN全备脚本 正式环境测试可行 请参考。 run{ allocate channel c1 type disk maxpiecesize20G; allocate channel c2 type disk maxpiecesize20G; allocate channel c3 type disk maxpiecesize20G; allocate channel c4 type disk maxpiecesize20G; crosscheck arch…

创建表与删除表(六)

表的基本操作&#xff08;六&#xff09; 一、创建表 1.1 使用DDL语句创建表 CREATE TABLE 表名(列名 类型,列名 类型......); 示例&#xff1a; 创建一个 employees 表包含雇员 ID &#xff0c;雇员名字&#xff0c;雇员薪水。 create table employees(employee_id int,em…

【python基础】—函数式编程三个基本函数map()/filter()/reduce()

文章目录 前言一、map()函数二、filter()函数三、reduce()函数 前言 map()、filter()、reduce()是python内置函数&#xff0c;它们提供了一种便捷的方式来处理可迭代对象中的元素&#xff0c;这些函数在许多编程任务中非常有用&#xff0c;包括数据转换&#xff0c;筛选和累积…

​LeetCode解法汇总2670. 找出不同元素数目差数组

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 给你一个下…

从创新者到引领者:探索第四范式的AI之旅

大数据产业创新服务媒体 ——聚焦数据 改变商业 如今&#xff0c;人工智能已成为改变世界、驱动各行各业变革的核心源动力。在国内&#xff0c;有一些公司已走在前列&#xff0c;其中就包括北京第四范式智能技术股份有限公司&#xff0c;在AI这个赛道&#xff0c;他是一名创新…

Patch2QL:开源供应链漏洞挖掘和检测的新方向

背景 开源生态的上下游中&#xff0c;漏洞可能存在多种成因有渊源的其它缺陷&#xff0c;统称为“同源漏洞”&#xff0c;典型如&#xff1a; 上游代码复用缺陷。开源贡献者在实现功能相似的模块时&#xff0c;常复用已有模块代码或逻辑&#xff1b;当其中某个模块发现漏洞后…

聊聊 FTP、SFTP、FTPS

文章目录 FTP概述两种工作方式FTP、SFTP、FTPSSFTP和FTPS的区别命令详解SFTPFTP 个人简介 FTP概述 文件传送协议FTP(File Transfer Protocol)是TCP/IP协议簇中的一个成员&#xff0c;也是现在因特网上最广泛的文件传送协议。FTP协议包括两个部分&#xff0c;一个是FTP客户端&a…

java:java反编译工具--jd-gui

JD-GUI是一款反编译软件&#xff0c;JD分为JD-GUI、JD-Eclipse两种运行方式&#xff0c;JD-GUI是以单独的程序的方式运行&#xff0c;JD-Eclipse则是以一个Eclipse插件的方式运行。 官方下载地址&#xff1a; https://github.com/java-decompiler/jd-gui/releases 我这边下载…

Unity Shader 滚动进度条效果

Unity Shader 滚动进度条效果 前言项目场景布置导入图片修改场景设置修改图片尺寸即可调整进度 ASE连线 前言 UI要实现一个滚动进度&#xff0c;于是使用Shader制作一个。 项目 场景布置 导入图片 修改一下导入图片的格式&#xff0c;这样才能循环起来 WrapMode改为Repea…

提高 Code Review 质量的最佳实践

Code Review 是软件开发中至关重要的环节&#xff0c;它有助于确保代码质量、提高团队协作水平&#xff0c;同时也是一个学习和知识分享的机会。以下是一些提高 Code Review 质量的最佳实践&#xff1a; 1. 设置清晰的标准和目标 在进行 Code Review 之前&#xff0c;确保整个…

正点原子--STM32中断系统学习笔记(1)

1、什么是中断&#xff1f; 原子哥给出的概念是这样的&#xff1a;打断CPU正常执行的程序&#xff0c;转而处理紧急程序&#xff0c;然后返回原暂停的程序继续运行&#xff0c;就叫中断。 当发生中断时&#xff0c;当前执行的程序会被暂时中止&#xff0c;进而进入中断处理函…

Qt案例 使用WINDOWS API的VDS.H库查询/修改 WINDOWS系统中硬盘分区/盘符信息(二)

简单介绍使用vds.h中的类和方法操作修改硬件/盘符的一些常使用的结构和函数&#xff0c;包括获取格式、删除、创建分区&#xff0c;设置磁盘文件类型&#xff0c;格式化卷等&#xff1b; 值得注意的是即使在vds.h库中像格式化卷这种都有多个方法&#xff0c;需要根据实际需求选…