MARL零样本协调之Fictitious Co-Play学习笔记

下列引用来自知乎作者Algernon 知乎link
FCP作为ZSC领域两阶段训练方法的开创者

论文《Collaborating with Humans without Human Data》来自 NeurIPS 2021。这篇论文提出 Fictitious Co-Play (FCP) 来解决 ZSC 问题。论文认为,ZSC 的第一个重要问题是对称性,第二个重要问题则是能够与不同水平的智能体合作。这篇论文提出的 FCP 则是一种简单的两阶段方法。在第一阶段,使用 SP 训练 个不同的同伴来打破对称性。为了得到不同水平的智能体,需要在训练过程中对每个智能体设置多个检查点,越往后的检查点表示技能越熟练的智能体。在第二阶段,需要训练 FCP 智能体来作为之前得到的个智能体的最佳响应。如下图所示。

在这里插入图片描述
我对上文提到的两个问题“ZSC 的第一个重要问题是对称性,第二个重要问题则是能够与不同水平的智能体合作。”很不解,同时不知道为什么要这样设计算法。解答如下:

  1. 对称性问题:
  • 对称性问题指的是在多智能体环境中,不同智能体的行为或策略可能处于对称状态,即所有智能体在训练初期或环境设计上是等同的,彼此之间没有明显的区别。例如,在某些博弈或协作任务中,如果智能体的训练初期都拥有相同的策略和能力,它们可能在合作时难以分辨彼此的角色,导致合作效率低下。
  • 解决方法:为了打破这种对称性,论文中提到的 Fictitious Co-Play(FCP)方法在第一阶段通过训练多个不同的智能体(同伴),每个智能体都有不同的技能水平。这样,智能体在训练过程中不会保持对称,能促进它们发展出不同的策略和能力,以避免在合作中“雷同”的策略。
  1. 能够与不同水平的智能体合作:
  • 与不同水平的智能体合作是指智能体不仅要能够与其他智能体合作,还要能够与不同技能水平的智能体协同工作。在实际应用中,智能体可能面临与能力较强或较弱的伙伴合作的情况,因此必须具备适应不同合作伙伴能力的能力。
  • 技能水平的不同:论文中提到,在训练过程中对每个智能体设置多个检查点,其中越往后的检查点对应的智能体技能越熟练。这意味着,智能体会经历多个阶段,从初学者到专家。为了适应与不同水平的智能体合作,FCP 方法通过在第二阶段训练智能体使其成为与这些不同能力的伙伴合作时的最佳响应者,即智能体不仅能适应能力较强的合作伙伴,还能与能力较弱的合作伙伴有效协作。
例如

第一阶段自博弈:
AA A0A0(初始状态) A1A1(中间状态) A2A2(收敛状态)
BB B0B0(初始状态) B1B1(中间状态) B2B2(收敛状态)
第二阶段FCP智能体为G
GA(A0,A1,A2)——即G要与不同状态、技能程度的A进行训练
GB(同理)

总结:

对称性问题:指的是在多智能体环境中,智能体的角色或策略相似,缺乏差异化,导致合作时的效率较低。解决对称性问题的方法是训练多个不同技能水平的智能体,以打破这种“对称”。
与不同水平的智能体合作:强调智能体不仅能与技能相当的伙伴协作,还能够适应和配合技能高低不一的伙伴。为此,FCP 通过设置多个检查点训练出技能层次不同的智能体,并在训练过程中确保智能体能够与这些不同水平的伙伴协作。

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

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

相关文章

Docker小游戏 | 使用Docker部署DOS游戏合集

Docker小游戏 | 使用Docker部署DOS游戏合集 前言项目介绍项目简介项目预览二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署dos-games网页小游戏下载镜像创建容器检查容器状态检查服务端口检查容器日志安全设置四、访问DOS游戏网页五、进阶玩法下载游戏拷贝…

SpringBoot-模拟SSE对话交互

SpringBoot-模拟SSE对话交互 后端使用SSE进行会话,前端使用Html模拟大模型的问答交互->【前端】【后端】 1-学习目的 本项目代码仓库:https://gitee.com/enzoism/springboot_sse 1-核心知识点 1)什么是SSE协议->客户端发起一次请求&am…

2025 ubuntu24.04系统安装docker

1.查看ubuntu版本(Ubuntu 24.04 LTS) rootmaster:~# cat /etc/os-release PRETTY_NAME"Ubuntu 24.04 LTS" NAME"Ubuntu" VERSION_ID"24.04" VERSION"24.04 LTS (Noble Numbat)" VERSION_CODENAMEnoble IDubun…

Avalonia 中文乱码

代码字体文件设置成支持中文的,但是编译的代码还是显示的乱码,原因是代码文件的文件编码格式不支持中文导致的。 如下面的2个页面一部分中文显示正常,一部分显示正常,一部分显示乱码。

国产编辑器EverEdit - 工具栏自定义及认识工具栏上的按钮

1 设置-高级-工具条 1.1 设置说明 1.1.1 工具条自定义 选择主菜单工具 -> 设置 -> 常规,在弹出的选项窗口中选择工具条分类,如下图所示: 左侧窗口是当前支持所有功能按钮列表(上图中居中栏),右侧的窗口是当前显示在工具栏…

淘宝商品详情高级版API接口测试与数据处理指南

在电商数据分析、商品监控和自动化运营中,淘宝商品详情API接口是不可或缺的工具之一。本文将详细介绍如何测试淘宝商品详情高级版API接口的返回数据,并提供完整的数据处理流程,帮助开发者高效利用接口数据。 一、淘宝商品详情API接口概述 淘…

C++海康相机DEMO

非标设备经常用到相机算法,利用工作之余时间,结合海康相机demo写一套全面的相机应用,图像处理常用的有halcon 、 opencv , MIL , visionpro,这里采用目前比较常用的halcon和opencv对相机图片算法处理。整个…

TMS320F28P550SJ9学习笔记2:Sysconfig 配置与点亮LED

今日学习使用Sysconfig 对引脚进行配置,并点亮开发板上的LED4 与LED5 我的单片机开发板平台是 LAUNCHXL_F28P55x 我是在上文描述的驱动库C2000ware官方例程example的工程基础之上进行添加功能的 该例程路径如下:D:\C2000Ware_5_04_00_00\driverlib\f28p…

人机交互革命:从触屏到脑波的13维战争

人机交互革命:从触屏到脑波的13维战争 一、交互维度大爆炸:重新定义人机沟通边界 当ChatGPT开始解析你的微表情,当Neuralink芯片能读取皮层信号,人机交互已突破【键鼠】的次元壁。我们正经历人类史上最大规模的感官革命&#xff…

使用Qt调用HslCommunication(C++调用C#库)

使用C/CLI 来调用C#的dll 任务分解: 1、实现C#封装一个调用hsl的dll; 2、实现C控制台调用C#的dll库; 3、把调用C#的dll用C再封装为一个dll; 4、最后再用Qt调用c的dll; 填坑: 1、开发时VS需要安装CLI项目库…

maven高级-03.继承与聚合-版本锁定

一.版本锁定 在maven中&#xff0c;父工程的pom文件中通过<dependencyManagement>来统一管理依赖的版本。 注意&#xff1a; <dependencyManagement>仅仅管理依赖的版本号&#xff0c;并不进行依赖的注入。如果要进行依赖注入还是要使用<dependencies>注解。…

基于opencv消除图片马赛克

以下是一个基于Python的图片马赛克消除函数实现&#xff0c;结合了图像处理和深度学习方法。由于马赛克消除涉及复杂的图像重建任务&#xff0c;建议根据实际需求选择合适的方法&#xff1a; import cv2 import numpy as np from PIL import Imagedef remove_mosaic(image_pat…

深入解析/etc/hosts.allow与 /etc/hosts.deny:灵活控制 Linux 网络访问权限

文章目录 深入解析/etc/hosts.allow与 /etc/hosts.deny&#xff1a;灵活控制 Linux 网络访问权限引言什么是 TCP Wrappers&#xff1f;工作原理 什么是 /etc/hosts.allow 和 /etc/hosts.deny&#xff1f;匹配规则配置语法详解配置示例允许特定 IP 访问 SSH 服务拒绝整个子网访问…

Spring AI:开启Java开发的智能新时代

目录 一、引言二、什么是 Spring AI2.1 Spring AI 的背景2.2 Spring AI 的目标 三、Spring AI 的核心组件3.1 数据处理3.2 模型训练3.3 模型部署3.4 模型监控 四、Spring AI 的核心功能4.1 支持的模型提供商与类型4.2 便携 API 与同步、流式 API 选项4.3 将 AI 模型输出映射到 …

大白话面试中应对自我介绍

在面试中&#xff0c;自我介绍是开场的关键环节&#xff0c;它就像你递给面试官的一张“个人名片”&#xff0c;要让面试官快速了解你并对你产生兴趣。下面详细讲讲应对自我介绍的要点及回答范例。 一、自我介绍的时间把控 一般面试中的自我介绍控制在1 - 3分钟比较合适。时间…

postman请求后端接受List集合对象

后端集合 post请求&#xff0c;即前端请求方式

Spark基础篇 RDD、DataFrame与DataSet的关系、适用场景与演进趋势

一、核心概念与演进背景 1.1 RDD(弹性分布式数据集) 定义:RDD 是 Spark 最早的核心抽象(1.0版本引入),代表不可变、分区的分布式对象集合,支持函数式编程和容错机制。特点: 无结构化信息:仅存储对象本身,无法自动感知数据内部结构(如字段名、类型)。编译时类型安全…

软件测试人员在工作中如何运用Linux?

软件测试的小伙们就会明白会使用Linux是多么重要的一件事&#xff0c;工作时需要用到&#xff0c;面试时会被问到&#xff0c;简历中需要写到。 对于软件测试人员来说&#xff0c;不需要你多么熟练使用Linux所有命令&#xff0c;也不需要你对Linux系统完全了解&#xff0c;你只…

数据结构秘籍(二)图(含图的概念、存储以及图的两大搜索)

1 引言 线性数据结构的元素满足唯一的线性关系&#xff0c;每个元素&#xff08;初第一个和最后一个外&#xff09;只有一个直接前趋和一个直接后继。树形数据结构的元素之间有着明显的层次关系。但是图形结构的元素之间的关系是任意的。 什么是图&#xff1f; 简单来说&…

printf 与前置++、后置++、前置--、后置-- 的关系

# 前置和前置-- 先看一段代码 大家是不是认为printf输出的是 2 3 3 2 1 1 但是实际输出的是 3 3 3 1 1 1 在这两行printf函数代码里&#xff0c;编译器会先计算 a 和 --a 的值&#xff0c;然后再 从右向左 开始输出。 printf函数中&#xff0c;如果有多个…