多智能体强化学习算法MA-POCA

论文原文:On the Use and Misuse of Absorbing States in Multi-agent Reinforcement Learning

预备知识参考:

强化学习纲要(周博磊课程)

强化学习实践教学

多智能体强化学习入门

MA-POCA是Unity官方2021年11月推出的多智能体强化学习算法,其首次应用在Unity强化学习插件ML-Agents中,取得了让人满意的效果,ML-Agents让我们能够非常便捷地创建自己的强化学习训练环境,我写过对应的文章:Unity强化学习之ML-Agents的使用。

在这里插入图片描述

MA-POCA是Unity强化学习插件ML-Agents所使用的官方的多智能体算法,它的实现参考于MADDPG
在介绍MA-POCA之前,需要了解多智能体深度强化学习的代表算法MADDPG。它是经典的的中心化训练和非中心化执行的算法,即在训练的时候,Critic不仅需要知道该智能体的动作信息,还需要知道其他智能体的动作信息,才能做出评判。而在智能体执行的时候,不需要Critic网络参与,因此只需要Actor利用观测到具局部信息采取行动即可。以两个智能体为例:
r ( s , a 1 ) = E a 2 ∈ A , s ′ ∈ S [ r 1 ( s ′ ) p ( s ′ ∣ s , a 1 , a 2 ) π 2 ( a 2 ∣ s ) ] p 1 ( s ′ ∣ s , a 1 ) = ∑ a 2 ∈ A p ( s ′ ∣ s , a 1 , a 2 ) π 2 ( a 2 ∣ s ) r(s,a_1) = E_{a_2 \in A,s' \in S}[r_1(s')p(s'|s,a_1,a_2)\pi_2(a_2|s)] \\ p_1(s'|s,a_1) = \sum_{a_2\in A} p(s'|s,a_1,a_2)\pi_2(a_2|s) r(s,a1)=Ea2A,sS[r1(s)p(ss,a1,a2)π2(a2s)]p1(ss,a1)=a2Ap(ss,a1,a2)π2(a2s)

算法在以下约束下运行:
1.算法学习到的策略只能使用本地的信息。
2.算法无需知道实际的可微分动力学模型。
3.对智能体之间的通讯方式不做任何假设。

除了中心化训练和非中心化执行之外,该算法改进了经验回放记录的数据,每一条数据由所构成,其中代表每个智能体的局部观测。另外,该算法还利用了策略集合效果优化,对每个智能体学习多个策略,利用所有策略的整体效果进行优化,提高了算法的稳定性。

MA-POCA是基于COMA的改进算法,它的改进针对游戏中复杂多变的环境,更好地适应了智能体数量和种类无法确定的场合。它在集中式训练,分布式执行的AC框架上提出了两个改进点:一是针对数量不确定的智能体组合,使用了注意力机制的特殊神经网络结构,可以处理不定量输入,并且代替了现有的COMA算法全耦合的吸收状态。二是针对智能体死后信用分配问题提供了良好的解决方法,使得智能体能够做出利他性决定,牺牲自身实现团队利益最大化,并且可以在任何时候加入或退出多智能体小组,这对应游戏角色在团战中的复活与死亡。另外MA-POCA在论文中提出,它使用了和PPO一致的信赖域切割方式,并且把GAE的参数使用在了TD更新上,因此,MA-POCA和PPO实际上可以共用一套超参数。

在一个有共享奖励的合作环境中,智能体的行为方式会使整个群体的未来奖励最大化。但是,当单个代理的当前行为导致智能体本身的行为终止(例如自我牺牲)时,它已被排除在环境之外,它不能再观察到队伍获得奖励时的环境状态,也不再能够获得小组后来可能获得的奖励。因此,智能体必须学会最大化这些无法实际得到的奖励。这被称为死后信用分配问题。虽然通过引入吸收状态可以表达已经灭亡的智能体状态,但在实际使用中会让吸收状态的数量不恒定,从而使基于神经网络的函数近似器的训练变得复杂,计算资源也必须应用于不影响环境的智能体。MA-POCA在Critic网络的输入部分加入了自注意力网络后,解决了这些问题,因此网络可以在任意时候添加和删除智能体。

可参考的译文:MA-POCA

相关案例:

ML-Agents案例之地牢逃脱

ML-Agents案例之推箱子游戏

ML-Agents案例之双人足球

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA基础10-包装类

Boolean b1new Boolean(true);System.out.println("b1" b1);//b1trueBoolean b2new Boolean("true" );System.out.println("b2" b2);//b2true 这里字符串也可转Boolean b3new Boolean("true123");System.out.println("b3"b3…

递归调用,将源路径下所有文件文件夹复制到目标路径中.

其实代码demo很简洁&#xff0c;只是逻辑有点绕&#xff0c;主要是要一层一层调用自己&#xff0c;要清楚当前是第几层调用&#xff0c;及递归调用时进的点和出的点在哪儿&#xff0c;一切就清晰明了了。 /// <summary>/// 删除指定目录下面的所有文件和文件夹/// </s…

《计算机英语》Unit1 计算机概述

期末试卷组成 1、选择20道 2、判断20道 3、词汇翻译&#xff08;单词词组&#xff0c;参照课后习题&#xff09; 4、翻译2道&#xff08;一道原题&#xff0c;参照作业&#xff09; Unit One Computer Overview 单元1 计算机概述 algorithm n. 算法 operate …

爬虫超详细介绍

爬虫&#xff08;Spider&#xff09;是一种自动化程序&#xff0c;用于在互联网上获取信息。 其工作原理主要可以分为以下几个步骤&#xff1a; 发起请求&#xff1a; 爬虫首先需要向目标网站发起HTTP请求&#xff0c;以获取网页的内容。这个请求可以包含一些额外的信息&…

优选算法刷题笔记 2024.6.10-24.6.20

一、双指针算法(快慢指针,对撞指针) 艹&#xff0c;CSDN吞了我是十三题笔记&#xff01;&#xff01;&#xff01; 二、滑动窗口(滑动窗口) 1、找到字符串中所有字母异位词 class Solution {public List<Integer> findAnagrams(String s, String p) {int[] hash1 new in…

小阿轩yx-Tomcat 部署及优化

小阿轩yx-Tomcat 部署及优化 Tomcat 概述 免费的、开放源代码的Web应用服务器Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目由Apache、Sun和一些公司及个人共同开发而成深受Java爱好者的喜爱,并得到部分软件开发商的认可目前比较流行的Web应用服…

【Web APIs】DOM 文档对象模型 ④ ( querySelector 函数 | querySelectorAll 函数 | NodeList 对象 )

文章目录 一、querySelector 函数1、querySelector 函数简介2、完整代码示例 二、querySelectorAll 函数1、querySelectorAll 函数简介2、完整代码示例 三、NodeList 对象1、NodeList 对象简介2、完整代码示例 本博客相关参考文档 : WebAPIs 参考文档 : https://developer.moz…

ACL2024 | AI的时空穿越记:大型语言模型共时推理的奇幻之旅!

作者&#xff1a;苏肇辰 标题&#xff1a;Living in the Moment: Can Large Language Models Grasp Co-Temporal Reasoning? 录取&#xff1a;ACL2024 Main 论文链接&#xff1a;https://arxiv.org/abs/2406.09072 代码链接&#xff1a;https://github.com/zhaochen0110/Cotem…

T200HSA单路SDI/HDMI+1路3.5音频高清万能采集卡

产品简介&#xff1a; 同三维T200HSA单路高清万能采集卡&#xff0c;可以采集1路SDI/HDMI高清信号1路3.5音频信号&#xff0c;卡上有1个是HDMI接口1个是SDI接口1个3.5音频口&#xff0c;配件有&#xff1a; 1个小档板&#xff0c;PCI-E2.0 X1&#xff0c;分辨率最高可以达到10…

利用星穹云Serverless云平台高效开发小程序的技术实践

一、引言 在快速迭代、持续创新的互联网环境下&#xff0c;开发者们面临着巨大的挑战。传统的小程序开发模式不仅需要掌握后端技术&#xff0c;还需要关注服务器部署、维护等一系列问题&#xff0c;这无疑增加了开发者的学习成本和项目复杂度。而Serverless架构的兴起&#xf…

【Android】Android Studio版本手动升级到指定版本方法

前言 Android Studio本身存在自动升级的功能&#xff0c;但是这个功能使用的时候基本都是要升级到最新版本&#xff0c;但是有时候我们也不想升级到最新版本&#xff0c;是想升级到某一个版本&#xff0c;这个时候&#xff0c;Android Studio的自动升级版本的功能就无法使用了…

简单分享github

一、官网 GitHub: Let’s build from here GitHub 二、注册 通过简单的注册步骤&#xff0c;你就可以拥有一个属于自己的GitHub账号。再简单注册完成之后会需要验证你所输入的邮箱才能正常使用你的GitHub。 三、设置自己的库 在注册完成之后&#xff0c;完成一些简单的设置之…

数据库系统概论——数据库恢复技术

文章目录 数据库恢复技术事务的基本概念什么是事务如何定义事务&#xff1a;事务的特性 数据库恢复概述故障的种类恢复的实现技术恢复策略事务故障的恢复系统故障的恢复介质故障的恢复 数据库恢复技术 事务的基本概念 什么是事务 事务使用户定义的一个数据库操作序列&#x…

排序算法Java_实现

1.引言 查找和排序算法是算法的入门知识&#xff0c;其经典思想可以用于比较常见。 1.1 内部排序和外部排序的区别 内部排序&#xff1a;待排序记录存放在计算机随机存储器中(内存)进行排序的过程。 外部排序&#xff1a;待排序记录的数量很大&#xff0c;以至于内存不能一…

AI与区块链的融合:Web3时代下的新应用探索

本文来源香港Web3媒体Techub News AI与区块链&#xff1a;Web3时代的新机遇 在香港这座金融与科技交汇的繁荣都市&#xff0c;AI与区块链的结合已经成为Web3时代的重要议题&#xff0c;为行业发展带来了新的可能性和机遇。越来越多的开发者正在积极探索这一领域的融合&#xff…

复分析——第5章——整函数(复可积函数)(E.M. Stein R. Shakarchi)

第5章 整函数(复可积函数)(Entire Functions) ...but after the 15th of October I felt myself a free man, with such longing for mathematical work, that the last two months flew by quickly, and that only today I found the letter of the 19th of October that…

鸿蒙 Web组件的生命周期(api10、11、12)

概述 开发者可以使用Web组件加载本地或者在线网页。 Web组件提供了丰富的组件生命周期回调接口&#xff0c;通过这些回调接口&#xff0c;开发者可以感知Web组件的生命周期状态变化&#xff0c;进行相关的业务处理。 Web组件的状态主要包括&#xff1a;Controller绑定到Web组…

2024广东省职业技能大赛云计算赛项实战——Ansible部署Zabbix

Ansible部署Zabbix 前言 今年的比赛考了一道Ansible部署Zabbix的题目&#xff0c;要求就是用两台centos7.5的云主机&#xff0c;一台叫ansible&#xff0c;一台叫node&#xff0c;使用对应的软件包&#xff0c;通过ansible节点控制node节点安装zabbix服务。这道题还是算比较简…

计算机网络 —— 应用层(电子邮件)

计算机网络 —— 应用层&#xff08;电子邮件&#xff09; 电子邮件发送电子邮件的过程SMTP特性工作流程 电子邮件格式MIME关键组件工作方式 POP/IMAPPOP&#xff08;邮局协议&#xff09;IMAP&#xff08;因特网邮件访问协议&#xff09; 基于万维网的电子邮箱特点优势常见的基…

vscode c++ 开发环境配置

今天各位同学已经安装了mingw环境&#xff0c;但部分同学vscode开发环境又问题&#xff0c;究其原因&#xff0c;还是vscode 编译环境配置错误&#xff0c;有问题的同学 按如下步骤处理&#xff1a; 1、卸载相关插件。按下列步骤重新安装插件。 2、继续在搜索框中搜索并安装 C…