多智能体强化学习MARL的概念和框架

news2025/2/21 20:12:48

1.多智能体强化学习

系统里的agents数量大于1,agents彼此之间不是独立的

  • 每个agent的动作都能影响到下一个状态
  • 每个agent都能影响到其他agent

除非agent之间是独立的,否则单一agent的RL方法不适合MARL

2.MARL的类型

  • Fully cooperative(完全合作):agents合作优化同一个回报,如工业机器人
  • Fully competitive(完全竞争):一个agent的利益和另一个agent的损失,如捕猎者和猎物
  • Mixed cooperative & competitive(合作和竞争):如机器人足球,同一队合作关系,两队竞争关系
  • Self-interested(利己主义):不关心其他agent的奖励,如自动交易系统,无人驾驶。

3.MARL概念

3.1 State, Action, State Transition

每个agent都有一个action,转移到下一个状态取决于所有智能体的动作
在这里插入图片描述

3.2 Rewards

每个agent都有一个reward,reward不仅取决于这个agent的动作,也取决于所有其他agent的动作。在完全合作中,每个agent的奖励都是一样的,在完全竞争中,奖励是相反的。
在这里插入图片描述

3.3 Returns

时刻t,每个agent都有一个reward,因此也有对应的return
在这里插入图片描述

3.4 Policy Network

每个agent都有自己的策略网络,有些场景下策略是可交换的,即共享一个策略,比如自动驾驶策略相同,有些场景下策略不可交换,比如足球中前锋和门将代表不同的角色,策略也不同。
在这里插入图片描述

3.5 Uncertainty in the Return

某时刻某个agent的奖励取决于当前状态和所有其他agents的动作。状态的转移本身就存在不确定性,动作是根据策略随机选择的,回报取决于所有未来的状态和未来的动作,因此回报也存在不确定性。
在这里插入图片描述

3.5 State-Value Function

状态值函数是回报的期望,回报是奖励的期望,而奖励取决于所有agents的动作,动作是基于策略随机选择。因此某时刻某个agent的状态值函数取决于所有agents的策略参数。如果一个agent改变了它的策略,所有其它agents的状态值函数都会改变。
比如在足球比赛中,前锋改进了策略,其他人的策略不变,他的团队的状态值函数也会增加,对面的球员状态值函数会减少。
在这里插入图片描述

4.学习收敛性

对于单智能体策略的学习,当目标函数停止增加时则收敛。对于多个智能体的学习则使用纳什均衡(Nash Equilibrium),对于每个agent,当其它agent的策略不变时,它改变策略不会获得更高的回报。纳什均衡下能实现收敛,因为每个agent都没有改变的动力。
在这里插入图片描述

5.MARL的难点

之前的单一智能体梯度策略更新的方法不再适用于MARL。如果在MARL,每个agent都只更新自己的策略网络,而策略更新的目标函数取决于所有agent的参数,因此会出现以下情况:对于agent1,已经找到了最优参数,然后agent2改变了它的策略,agent1的目标函数也会改变,找到的最优策略就不在是最优的,又需要重新学习更新,如此往复难以实现收敛,因此需要设计针对多智能体的RL方法。
在这里插入图片描述

6.MARL的三种架构

MARL有三种结构:

  • Fully Decentralized:完全去中心化
  • Fully centralized:完全中心化
  • Centralized training with decentralized execution:中心化学习,去中心化执行

在智能体系统中,一个智能体可能会或者不会观测到完整的状态,如果是完全可观察(Full observation),各智能体的观察值等同于状态,如果是部分可观察(Partial observation),每个智能体的观察值不等同于状态。

6.1 完全去中心化

Fully Decentralized是去中心化训练和执行,每个智能体都有自己的观察值和奖励用来学习自己的策略,智能体之间没有交流。以actor critic方法为例,每个智能体都有独立的策略网络和值网络,两个网络的输入输出都是基于自己观察的局部状态信息,智能体之间不会共享观察值和动作,和单一智能体学习方式是一样的,前文已经阐述过这种方式不可行。
在这里插入图片描述

6.2 完全中心化

Fully centralized是中心化训练和中心化执行,智能体将所有信息都发送给中央控制器,控制器会为所有智能体做决策。
在这里插入图片描述
用Centralized Actor-Critic方法说明上述过程:在某时刻t,定义a为n个智能体的动作集合,o为n个智能体的观测集合,中央控制器(central controller)会获取到a,o和所有的奖励,控制器有n个策略网络和n个值网络,分别对应到每个智能体。每个策略网络输入是整体观测集合,输出对应智能体的动作。每个值网络输入是整体观测集合和整体动作集合,输出对应智能体策略值函数。中央控制器分别使用PG和TD更新所有的AC网络。在执行时,控制器会给予观测集合和n个策略网络随机采样n个动作给n个智能体。
这种方式缺点在于:所有智能体都要同时将观测值传给中央控制器,控制器再统一返回给每个智能体一个动作,智能体和控制器之间的通信和同步比较耗时,难以实现实时决策。
在这里插入图片描述

6.3 中心化学习+去中心化执行

Centralized Training with Decentralized Execution在训练时使用中央控制器,在执行时弃用控制器。每个智能体有自己的策略网络,中央控制器有n个价值网络。也就是critic的更新是中央控制器负责,而actor的更新是各个智能体负责。

  • Centralized Training:中央控制器会接受所有智能体的观测,动作和奖励,使用这些信息来更新n个价值网络,例如对于actor1的价值网络critic1,输入是观测集合,动作集合以及reward1,输actor1的值函数。actor1的策略网络以它自己的观测值,动作和控制器返回的值函数为输入更新策略。

在这里插入图片描述

  • Decentralized Execution:actor与环境交互时只需输入它自己的观测值,基于自己的策略网络输入动作

在这里插入图片描述
从上面描述可知,Centralized Training with Decentralized Execution即能保证训练的稳定性,也能保证执行的快速。

6.4 三种架构的对比总结

共同点:n个智能体,n个actor,n个critic
不同点:actor和critic的网络输入不同,训练方式不同
在这里插入图片描述

6.5 参数共享(Parameter Sharing)

所有actor和critic网络参数是否共享要考虑智能体是否可交换,比如在无人驾驶中每台车都可以是一样的策略,在机器人足球赛中,各个角色的策略都不同,是不能实现参数共享的。
在这里插入图片描述
相关论文:
Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments
The Surprising Effectiveness of PPO in Cooperative, Multi-Agent Games

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

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

相关文章

智慧医院智慧医疗解决方案

IBM于2009年提出“智慧医疗”这一理念。作为“智慧的地球”战略的重要组成部分,致力于构建一个“以病人为中心”的医疗服务体系。通过在服务成本、服务质量和服务可及性三方面取得一个良好的平衡,从而优化医疗实践成果、创新医疗服务模式和业务市场&…

Unity插件Obi.Rope详解

前言 Obi.Rope插件的使用方法 绳子的创建 创建后的Obi Rope,Inspector面板如下所示,组件比较多,其中Obi Solver是绳子,布料,液体等的总处理器,也可以单独分出来此组件为一个独立的游戏对象。 绳子的形状…

风控标签体系的使用与介绍

随着大数据技术的深入研究与应用,企业的专注点日益聚焦于怎样利用大数据来为精细化运营及精准营销服务,进而深入挖掘潜在的商业价值。于是,用户画像的概念也就应运而生。 在推荐系统中, 【推荐系统内容,详情可以关注番…

弘玑Cyclone2022产品发布会:全新上线智能文档处理交互平台——尚书台

近日,在弘玑Cyclone“智无边界,数字未来”发布会上,弘玑Cyclone2022年超级自动化系列产品全新亮相,首席产品官贾岿博士带领产品团队以创新技术对新时代语境下的数字生产力进行了全新解读。 上期为大家介绍了人人可用的数字化工作…

Java工具库Guava的数学运算常用方法示例代码

场景 Java核心工具库Guava介绍以及Optional和Preconditions使用进行非空和数据校验: Java核心工具库Guava介绍以及Optional和Preconditions使用进行非空和数据校验_霸道流氓气质的博客-CSDN博客_guava 校验 为什么使用 Guava Math 1、Guava Math 针对各种不常见…

web网页设计期末课程大作业:美食餐饮文化主题网站设计——中华美德6页面HTML+CSS+JavaScript

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

MCE | 表观遗传:YTHDF蛋白调节 m6A-RNA

近期,美国康奈尔大学 Samie R. Jaffrey 研究组在 Cell 上发表了题为 “A Unified Model for the Function of YTHDF Proteins in Regulating m6A-Modified mRNA” 的研究,揭示了 YTHDF 蛋白调节 m6A 修饰的 mRNA 的功能统一模型。与“不同的 m6A 位点结合…

反向传播——机器学习

目录 一、实验内容 二、实验过程 1、算法思想 2、算法原理 3、算法分析 三、源程序代码 四、运行结果及分析 五、实验总结 一、实验内容 掌握线性反向传播的原理;掌握线性反向传播的算法Python实现;熟悉非线性反向传播的原理;掌握非线性…

图的存储方式

一、邻接矩阵 图的邻接矩阵存储方式就是用两个数组来表示图。一个一维数组存储图的顶点信息,另一个二维数组存储图中边的信息。 对于无向图来说,我们可以用1表示两顶点相连,用0表示两顶点不相连。任意顶点的度为邻接矩阵中该节点的行或列的…

pytorch案例代码-2

循环神经网络——基础知识 适合前后有联系的连续数据预测,比如天气预测、股市预测、自然语言等,而这些用DNN、CNN来做计算量就太大或者没法做,h0是先验,也可以前面接上CNNFC后面连上RNN,就可以完成图像到文本的转换&am…

AE VAE 代码和结果记录

Auto Encoder 在MNIST 上记录 直接上代码 import os os.chdir(os.path.dirname(__file__)) import torch import torch.nn as nn import torch.nn.functional as F import torchvision from torchvision import transforms from torchvision.utils import save_image from to…

数据结构-学习-01-线性表之顺序表-初始化、销毁、清理、获取长度、判断为空、获取元素等实现

一、测试环境 名称值cpu12th Gen Intel Core™ i7-12700H操作系统CentOS Linux release 7.9.2009 (Core)内存3G逻辑核数2gcc 版本4.8.5 20150623 二、个人理解 数据结构分为逻辑结构和物理结构(也称为存储结构)。 1、逻辑结构 逻辑结构又可以分为以下…

JS 事件

事件 事件是 JS 和 HTML 交互的桥梁。采用“观察者模式”,使用仅在事件发生时执行的监听器(也叫处理程序)订阅事件 事件流 事件流描述的是页面接收事件的顺序。分为 3 各阶段: 事件捕获:最先触发,可以做…

致敬经典 睛彩再现——AVS产业联盟和中国移动咪咕公司携手推动AVS3视频、音频标准

2022年11月14日,中国移动咪咕公司首发AVS3移动端规模化商用版本咪咕视频6.0.7.00,该版本下设的“致敬经典 睛彩再现”专区、以及“菁彩视听”双Vivid直播视角(Audio Vivid & HDR Vivid),通过国家自主的AVS3、Audio…

回顾复习【矩阵分析】初等因子 和 矩阵的相似 || 由不变因子求初等因子 || 由初等因子和秩求Smith标准形(不变因子)

目录 1. 由不变因子,引出 初等因子的概念2. 【必看】例子:已知 不变因子,求初等因子。3.【必看】 例子:已知 秩和初等因子,求史密斯标准形(不变因子)4. 分块矩阵 初等因子的 求法5. 数字矩阵的相似 与 入-矩阵的等价1. 由不变因子,引出 初等因子的概念 例如,下面两个矩阵…

Kotlin 开发Android app(十):Android控件绑定ViewBinding

上一节中,我们知道了Android的布局,这种把界面和逻辑控制分开,是编程里很好的分离方式,也大大的解耦了界面和逻辑控制,使得编程的逻辑不在和界面挂钩。 有了界面的布局,我们需要把界面和代码部分进行绑定&…

OpenPose训练教程

找遍全网都没有非常完整的OpenPose训练教程 决定自己摸索并且记录下来 openpose作者发布了一份训练代码,下面根据这个来操作 GitHUB地址: openpsoe_train 环境:ubuntu 执行matklab脚本的时候懒得下载新的matlab 就在windows下运行的 感觉没…

品质为先,服务不停,广州流辰信息公司恪守初心,匠心为民!

随着互联网技术的蓬勃发展,越来越多的企业也感受到了日益激烈的竞争,也意识到墨守成规的发展模式必当会让企业停滞不前,只有一步一个脚印,始终跟随市场的脚步创新升级,才有可能在汹涌的市场洪流中站稳脚跟。广州流辰信…

精简 Windows10

下载链接文后评论里找: 旧机福音 极限精简Win10系统Tiny10https://baijiahao.baidu.com/s?id1743901721464184983不想成天折腾操作系统,一直以来都认为跟着微软每月升级就好了。但是现实啪啪的打脸:升级到Windows11 22H2 后, 连…

常见算法设计与分析的简单C++代码实现(排列、二分法搜索、Dijkstra算法、元素换位、单调子序列、硬币问题、运动员最佳匹配问题)

常见算法设计与分析的简单C代码实现(排列、二分法搜索、Dijkstra算法、元素换位、单调子序列、硬币问题、运动员最佳匹配问题)1 一些简单排列问题2 二分法查找3 前后元素换位4 找最长单调递增子序列(O(n2)复杂度)5最小硬币问题一、…