多智能体协作强化学习中的知识共享

news2024/10/5 1:16:24

本文提出了一种名为谨慎乐观知识共享(CONS)的新方法,用于解决合作多智能体强化学习(MARL)中的知识共享问题。针对传统的行动建议方法可能导致团队探索受阻的情况,即经验丰富的智能体会分享其知识而较不成熟的智能体则遵循这些建议,导致可能依赖于次优或不良建议的问题,本文的方法允许智能体既分享积极也分享消极的知识,并且接收者会谨慎地同化这些知识。在学习的早期阶段更加重视消极知识,而在后期转向重视积极知识,这一过程帮助提升了探索效率和对抗不利建议的韧性。此框架可以在不增加额外训练成本的情况下与现有的基于Q-learning的方法整合,并且在多种具有挑战性的多智能体任务中表现出色。

在这里插入图片描述

1 CONSIDER框架

CONSIDER(Cautiously-Optimistic kNowledge Sharing)框架是一种用于合作多智能体强化学习的新方法,旨在通过优化知识共享机制来提高学习速度和最终性能,分为三个主要阶段:学生发送请求、教师分享知识以及学生利用获取的知识。

  • 1.学生发送请求:在知识共享被启动后,智能体i会检查自己的请求预算。如果预算没有耗尽,则根据当前观测到的信息oi,计算请求的概率Pask(oi)并广播一个请求消息mis;否则,智能体i将根据自身的策略选取一个动作。请求消息mis包含了oi、智能体i观测到oi的次数nioi以及对应的最高Q值max Qi(oi, ·)。

  • 2.教师分享知识:教师智能体在收到学生发出的消息mis后,首先检查自己的分享预算bjgive。如果预算充足,那么教师智能体j会根据mis、自己对oi的观测次数njoi以及相应的最高Q值max Qj(oi, ·)决定是否与学生智能体i分享关于oi的知识。只有当教师智能体j在oi上的经验和价值比学生智能体i更好时,才会激活知识共享模块T j。此时,教师智能体会从它的策略πj(·|oi)中抽取最佳动作和最差动作及其概率,连同它的声望Λjoi一起形成一条回复消息mji t发送给学生智能体i。

  • 3.学生利用获取的知识:学生智能体在接收到教师分享的知识后,会乐观地认为教师的知识是有益的,无论是正面还是负面的知识都能给自己带来好处。然而,学生智能体也会谨慎行事,不会盲目信任教师的知识总是正确的。因此,在接收到教师的知识后,学生智能体会仔细调整自己的动作概率,并根据新策略进行有针对性的探索。在这一过程中,学生智能体会根据学习进程调整正面知识wp和负面知识wn的权重,逐渐增加前者同时减少后者。

2 结语

本文提出了一种名为谨慎乐观知识共享(CONS)的新框架,该框架通过让多智能体系统中的成员共享正负两面的经验知识,并谨慎地融合这些知识来促进早期探索效率及提升对不利建议的抗性,从而改善了多智能体强化学习中的合作表现。

论文题目: Cautiously-Optimistic Knowledge Sharing for Cooperative Multi-Agent Reinforcement Learning

论文链接: https://arxiv.org/abs/2312.12095

PS: 欢迎大家扫码关注公众号_,我们一起在AI的世界中探索前行,期待共同进步!
在这里插入图片描述

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

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

相关文章

【C++算法】10.滑动窗口_长度最小的子数组

文章目录 题目链接:题目描述:解法C 算法代码:图解 题目链接: 209. 长度最小的子数组 题目描述: 解法 解法一:暴力求解(会超时) 暴力枚举出所有子数组的和。 查找子数组n2&#xff0…

03:(寄存器开发)OLED的简单使用

OLED的简单使用 将江科大的标准库开发OLED的代码进行移植,修改的部分代码如下: /*引脚配置*/ //#define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x)) //#define OLED_W_SDA(x) GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))…

mybatis-plus使用总结

基本使用 mybatis-plus依赖 <!-- mybatis-plus开始 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version></dependency><dependency>&l…

D27【 python 接口自动化学习】- python 基础之判断与循环

day27 判断和循环中常见错误 学习日期&#xff1a;20241004 学习目标&#xff1a;判断与循环&#xfe63;-38 避坑指南&#xff1a;判断和循环中的常见错误 学习笔记&#xff1a; 循环过程中改变遍历次数 遍历中修改列表导致误操作 循环嵌套中的缩进导致运行语句有差别 总结…

17 链表——21. 合并两个有序链表 ★

17 链表 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 算法设计: 合并两个有序链表,并保持有序性,可以采用迭代法和递归法两种…

小白必看web专题!渗透测试还是src?

大家好&#xff0c;我是Dest1ny&#xff01; 今天是回答问题的&#xff0c;有小伙伴私信我&#xff1a; 渗透测试还是src&#xff1f; 今天回答一下&#xff01; 渗透测试&#xff08;Penetration Testing&#xff09;&#xff1a; 渗透测试是一种模拟真实攻击者的技术手段&…

Vue3+TS项目 - ref和useTemplateRef获取组件实例

在Vue2中&#xff0c;子组件使用的是选项式 API &#xff0c;被引用的组件实例和该子组件的 this 完全一致&#xff0c;这意味着父组件对子组件的每一个属性和方法都有完全的访问权。这使得在父组件和子组件之间创建紧密耦合的实现细节变得很容易&#xff0c;当然也因此&#x…

java相关新技术

Java作为一种广泛应用的编程语言&#xff0c;其新技术层出不穷&#xff0c;为开发者提供了更多的工具和框架来构建高效、可扩展的应用程序。以下是一些当前比较热门的Java新技术 Java 17及更高版本&#xff1a; Java平台持续更新&#xff0c;每个新版本都带来了性能改进和新特…

C++学习笔记之类对象(一)

C学习笔记之类&对象&#xff08;一&#xff09; https://www.runoob.com/cplusplus/cpp-classes-objects.html 类是C的核心特性&#xff0c;为用户自定义的数据类型&#xff0c;可以在其中放入数据和函数作为成员&#xff0c;并且以此为模板&#xff0c;创建多个对象个体进…

三维世界的魅力:探索开源的Three.js案例

三维世界的魅力&#xff1a;探索开源的Three.js案例 原生Three.js 和 Cesium.js 案例 - 不断 - 只做开源 。 引言 在这个数字化时代&#xff0c;三维技术已经成为我们生活中不可或缺的一部分。无论是在游戏、电影制作、建筑设计还是虚拟现实中&#xff0c;三维技术都发挥…

ARM Assembly: 第8课 branching

branch causes a branch to a target address. The "B" mnemonic signifies an unconditional branch. 单个的B表示进入一个无条件的分支&#xff0c;而含条件的分支通常可以基于APSR 条件flag进行指令的执行。比如&#xff0c;基于condition flag z是否为1, 我们可…

深度学习基础—目标定位与特征点检测

1.目标定位 &#xff08;1&#xff09;定义 目标定位就是在图片中&#xff0c;定位对象的位置&#xff0c;对于对象的位置可以用框圈住显示。如下图所示&#xff1a; 假设正在进行图片分类工作&#xff0c;那么这个汽车图片很有可能被分类为汽车类别。对于目标定位&#xff0c;…

[图形学]smallpt代码详解(1)

一、简介 本文介绍了著名的99行代码实现全局光照的光线跟踪代码smallpt。 包括对smallpt的功能介绍、编译运行介绍&#xff0c;和对代码的详细解释。希望能够帮助读者更进一步的理解光线跟踪。 二、smallpt介绍 1.smallpt是什么 smallpt(small Path Tracing) 是一个全局光照…

C# List遍历元素重新赋值问题

需求&#xff1a;修改List<string>类型的链表的每一个string对象。 第一反应是List.ForEach&#xff0c;但是使用完后&#xff0c;原链表还是原链表&#xff1b; 后来又学习了一下&#xff0c;了解到C#用foreach语句对数组进行遍历,只能采用只读的方式,不能修改任何元素…

探索Kimi:用Spring Boot + Vue打造现代网站

在数字化时代&#xff0c;网站成为了企业和个人展示自己的窗口。今天&#xff0c;我将带你一起探索如何利用Spring Boot和Vue.js这两个强大的技术栈&#xff0c;结合Kimi的智能助手功能&#xff0c;来构建一个现代的网站。这不仅是一个技术分享&#xff0c;更是一次实战演示&am…

一个信号量操作的例子

代码&#xff1a; #include<stdio.h> #include<sys/sem.h> #include<sys/ipc.h> #include<errno.h> #include<string.h> typedef int sem_t; union semun{ int val; struct semid_ds *buf; unsigned short *array; }arg;sem_t CreateSem(key_t …

【Qt】控件概述 (1)—— Widget属性

控件概述 1. QWidget核心属性1.1核心属性概述1.2 enable1.3 geometry——窗口坐标1.4 window frame的影响1.4 windowTitle——窗口标题1.5 windowIcon——窗口图标1.6 windowOpacity——透明度设置1.7 cursor——光标设置1.8 font——字体设置1.9 toolTip——鼠标悬停提示设置1…

IDEA中用过git之后文件名颜色全变红

在File->Settings->Version Control里点击左下角的号&#xff0c; 选择<none> 之后点击Apply即可恢复之前的颜色

11.1 Linux_线程_线程相关函数

概述 线程的共享资源&#xff1a; 可执行的指令、静态数据、文件描述符、当前工作目录、用户ID、用户组ID 线程的私有资源&#xff1a; 线程ID、程序计数器PC和相关寄存器、堆栈、错误号、优先级、执行状态和属性 线程编译&#xff1a; gcc <.c文件> -l pthread -o…