10MARL深度强化学习 Value Decomposition in Common-Reward Games

文章目录

  • 前言
  • 1、价值分解的研究现状
  • 2、Individual-Global-Max Property
  • 3、Linear and Monotonic Value Decomposition
    • 3.1线性值分解
    • 3.2 单调值分解

前言

中心化价值函数能够缓解一些多智能体强化学习当中的问题,如非平稳性、局部可观测、信用分配与均衡选择等问题,然而存在很难直接学习价值函数等问题,特别是动作价值函数难以学习,原因是联合动作空间随智能体个数呈指数增长的问题,因此本文章学习如何有效的学习价值函数且最大化共同和奖励过程


1、价值分解的研究现状

价值函数如何分解才能更好的学习已经具有很长的研究历史,通过多智能体在交互过程中并非所有智能体互相之间都存在交互过程这一观点,提出了coordination graph,稀疏的协作图能够近似联合动作函数作为交互智能体的价值和,能够更高效的评估价值,例子如下:
在这里插入图片描述
在共同和奖励过程,已经有很多成功的价值分解算法应用到价值函数的学习中,价值分解算法能够将价值函数分解为更简单的函数,在共同和奖励过程能够更高效的学习,中心动作价值函数能够表示为如下(共同奖励过程):在这里插入图片描述

2、Individual-Global-Max Property

最简单的分解Q函数的方法便是每个智能体单独学习效用函数,只与其历史观测序列与动作有关,这些效用函数采用相同的结构如下所示:
在这里插入图片描述
之所以称为效用函数是这些函数并不会去学习如何近似自身的期望回报,而是将所有智能体的效用函数联合优化近似中心动作价值函数并且满足individual-global-max(IGM)性质
为了定义IGM性质,引入中心化动作价值函数与效用函数的贪婪动作,如下所示:在这里插入图片描述
其中 Q ( s , a ; θ ) Q(s,a;\theta) Q(s,a;θ)表示中心动作价值函数、 Q ( h i , a i ; θ i ) Q(h_{i},a_{i};\theta_{i}) Q(hi,ai;θi)表示智能体i的效用函数
IGM性质满足以下关系:
在这里插入图片描述
解释:如果联合动作相对于中心动作价值函数是贪婪的,那么相对于效用函数来说每个智能体i在联合动作中自身的动作也是贪婪的,也就是说如果智能体i相对于自身的效用函数选择贪婪动作,那么相对于分解中心动作价值函数,单个贪婪动作组成的联合动作也是贪婪的
在满足IGM的条件下,每个智能体能够根据自身的效用函数选择贪婪动作,那么所有的智能体能够一起选择贪婪的联合动作,效用函数除了能够简单的分解中心动作价值函数之外,还能够评估每个智能体在共同奖励过程中的贡献,这样来看,价值分解还能够在一定程度上减轻信用分配问题

3、Linear and Monotonic Value Decomposition

在这里插入图片描述

3.1线性值分解

满足IGM性质是假设共同奖励过程满足线性分解,每个智能体单独的奖励等于整体的奖励
r t = r ‾ 1 t + ⋯ + r ‾ n t r^{t}=\overline{r}_{1}^{t}+\cdots+\overline{r}_{n}^{t} rt=r1t++rnt
在改假设的基础之上,中心动作价值函数能够分解为如下:
在这里插入图片描述
基于线性的分解方法提出VDN算法,通过维护包含所有智能体经验的回收池以及采用所有智能体联合优化得到近似中心化价值函数,其损失函数如下:
在这里插入图片描述

3.2 单调值分解

在一些情况下,每个智能体的贡献在非线性的情况下具有更好的表现,线性分解无法起到作用
在满足IGM的前提下,还需要满足中心化动作价值函数相对于每个智能体的效用函数的导数为正,如下图所示:
在这里插入图片描述
那就意味着每个智能体采取动作后效用函数增加,那么采取相对应联合动作后中心价值函数也会增加

QMIX网络采用DQN作为每个智能体的效用函数,同时定义了一个混合网络用于聚合所有智能体的效用网络近似中心化的动作价值函数
在这里插入图片描述
在实际应用中,mix网络对于输入的权重均为正,通常mixing函数的参数通过额外的超参数网络获得,该网络用所有的状态作为输入,输出mixing网络的参数,为了保证mixing网络参数为正,超参网络采用绝对值函数作为激活函数,联合优化损失函数如下:
在这里插入图片描述
中心动作价值函数能够用如下的等式简单表达
在这里插入图片描述
其中的权重系数均大于等于0,代表对应智能体的贡献,若系数为1,则代表线性分解
**一些值得注意的点:**首先所有的智能体的效用网络参数是共享的、智能体通过onehot编码进行区别、智能体效用网络能够建模成RNN网络、每个episode会存储所有的经验,在其结束后进行更新

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

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

相关文章

从零开始学习Netty - 学习笔记 - NIO基础 - 文件编程:FileChannel,Path,Files

3.文件编程 3.1.FileChannel FileChannel只能工作在非阻塞模式下面,不能和selector一起使用 获取 不能直接打开FIleChannel,必须通过FileInputSream,或者FileOutputSetream ,或者RandomAccessFile来获取FileChannel 通过FileIn…

互联网高科技公司领导AI工业化,MatrixGo加速人工智能落地

作者:吴宁川 AI(人工智能)工业化与AI工程化正在引领人工智能的大趋势。AI工程化主要从企业CIO角度,着眼于在企业生产环境中规模化落地AI应用的工程化举措;而AI工业化则从AI供应商的角度,着眼于以规模化方式…

Rust ?运算符 Rust读写txt文件

一、Rust ?运算符 ?运算符:传播错误的一种快捷方式。 如果Result是Ok:Ok中的值就是表达式的结果,然后继续执行程序。 如果Result是Err:Err就是整个函数的返回值,就像使用了return &#xff…

电脑wifi丢失修复

当你打开电脑突然发现wifi功能不见了,可以先查看一下网卡的状态 在控制面板中找到设备管理器,打开就能找到网络适配器, 我这里是修复过的,wifi丢失后这里可能会显示WALN是丢失的,其他项显示黄色感叹号。 如何修复呢…

Go语言中的TLS加密:深入crypto/tls库的实战指南

Go语言中的TLS加密:深入crypto/tls库的实战指南 引言crypto/tls库的核心组件TLS配置:tls.Config证书加载与管理TLS握手过程及其实现 构建安全的服务端创建TLS加密的HTTP服务器配置TLS属性常见的安全设置和最佳实践 开发TLS客户端应用编写使用TLS的客户端…

[游戏开发][虚幻5]新建项目注意事项

鼠标右键点击Client.uproject文件,可以看到三个比较关键的选项, 启动游戏,生成sln解决方案,切换引擎版本 断点调试 C代码重要步骤 如果你想断点调试C代码,则必须使用使用代码编译启动引擎,你需要做几个操作…

从零开始学习Netty - 学习笔记 - NIO基础 - 网络编程: Selector

4.网络编程 4.1.非阻塞 VS 阻塞 在网络编程中,**阻塞(Blocking)和非阻塞(Non-blocking)**是两种不同的编程模型,描述了程序在进行网络通信时的行为方式。 阻塞(Blocking)&#xff1…

js设计模式:计算属性模式

作用: 将对象中的某些值与其他值进行关联,根据其他值来计算该值的结果 vue中的计算属性就是很经典的例子 示例: let nowDate 2023const wjtInfo {brithDate:1995,get age(){return nowDate-this.brithDate}}console.log(wjtInfo.age,wjt年龄)nowDate 1console.log(wjtInf…

【算法与数据结构】1020、130、LeetCode飞地的数量 被围绕的区域

文章目录 一、1020、飞地的数量二、130、被围绕的区域三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、1020、飞地的数量 思路分析:博主认为题目很抽象,非常难理解。想了好久,要理解…

【蝶变跃升】壹起来|就业辅导系列活动——职业生涯规划和模拟面试

为使困难家庭更深层次了解自己就业现状,明确就业方向,同时提升在面试时的各类技巧。2024年2月17日,由平湖市民政局主办、平湖吾悦广场和上海聘也科技有限公司协办、平湖市壹起来公益发展中心承办的“蝶变跃升”就业辅导系列——职业生涯规划和…

2024新版Java高频面试题+Java八股文面试真题

Java面试题_2024新版Java高频面试题Java八股文面试真题 Java高频面试专题视频课程,瓤括了Java生态下的主流技术面试题,课程特色: 1、全面,jvm、并发编程、mysql、rabbitmq、spring、mybatis、redis、分布式、微服务、数据结构等等…

Flutter学习4 - Dart数据类型

1、基本数据类型 num、int、double (1)常用数据类型 num类型,是数字类型的父类型,有两个子类 int 和 double 通过在函数名前加下划线,可以将函数变成私有函数,私有函数只能在当前文件中调用 //常用数据…

docker之安装mongo创建运行环境

目录 一、docker pull 最新资源 二、启动mongo镜像 启动命令查看日志拉取低版本镜像成功启动 三、进入mongo容器 进入容器进入mongo环境查询当前所在库切换库至admin随意切换库 并 创建用户登录用户新增文档数据等 五、总结 版本兼容可备份操作 一、docker pull 最新资源…

顺序表详解(如何实现顺序表)

文章目录 前言 在进入顺序表前,我们先要明白,数据结构的基本概念。 一、数据结构的基本概念 1.1什么是数据结构 数据结构是由“数据”和“结构”两词组合而来。所谓数据就是?常见的数值1、2、3、4.....、姓名、性别、年龄,等。…

开发一款招聘小程序需要具备哪些功能?

随着时代的发展,找工作的方式也在不断变得简单,去劳务市场、人才市场的方式早就已经过时了,现在大多数年轻人都是直接通过手机来找工作。图片 找工作类的平台不但能扩大企业的招聘渠道,还能节省招聘的成本,方便求职者进…

C# 使用onnxruntime部署夜间雾霾图像的可见度增强

目录 介绍 模型信息 效果 项目 代码 下载 C# Onnx 使用onnxruntime部署夜间雾霾图像的可见度增强 介绍 github地址:GitHub - jinyeying/nighttime_dehaze: [ACMMM2023] "Enhancing Visibility in Nighttime Haze Images Using Guided APSF and Gradien…

如何修改unity的背景颜色

要在Unity中将背景颜色设为黑色,可以按照以下步骤进行: 1、在Unity编辑器中,选择你想要修改背景颜色的摄像机对象(一般是Main Camera)。 2、在Inspector面板中,找到"Clear Flags"(清…

ChatGPT 4.0 升级指南

1.ChatGPT 是什么? ChatGPT 是由 OpenAI 开发的一种基于人工智能的聊天机器人,它基于强大的语言处理模型 GPT(Generative Pre-trained Transformer)构建。它能够理解人类语言,可以为我们解决实际的问题。 1.模型规模…

计网 - 域名解析的工作流程

文章目录 Pre引言1. DNS是什么2. 域名结构3. 域名解析的工作流程4. 常见的DNS记录类型5. DNS安全6. 未来的发展趋势 Pre 计网 - DNS 域名解析系统 引言 在我们日常使用互联网时,经常会输入各种域名来访问网站、发送电子邮件或连接其他网络服务。然而,我…

Java中的关键字

✨✨ 所属专栏: Java基石:深入探索Java核心基础✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 Java中的关键字是一些具有特殊含义的单词,它们在语法中有特定的用途,不能用作标识符&am…