04MARL - priori kownledge and challenge

文章目录

  • 一、General Learning Process
  • 二、中心化学习与独立学习
    • 1.central learning
      • 1.1 CQL
      • 1.2 局限性
    • 2.Independent Learning
      • 2.1 IQL
      • 2.2 局限性
  • 三、MARL挑战
    • 1.非平稳性
      • 1.1单智能体强化学习的非平稳性
      • 1.2 MARL非平稳性
    • 2.信用分配问题
    • 3.均衡选择
    • 4.拓展性
  • 四、协作型MARL的模型类型
    • 1.self-play
    • 2.mixed-play
  • 总结


一、General Learning Process

在多智能体强化学习中,一般的学习框架包括模型、数据、算法与目标
模型:定义多个智能体如何与环境进行交互、包括非重复标准博弈、重复标准博弈、随机博弈、部分可观测随机博弈等
数据(经验):包括一系列的历史轨迹形成的经验
算法:根据当前的数据与联合策略生产新的联合策略 π z + 1 = L ( D z , π z ) \pi^{z+1}=\mathbb{L}(\mathcal{D}^z,\pi^z) πz+1=L(Dz,πz)
目标:联合策略 π ∗ \pi^{*} π,该策略能够在设定的环境下取得最大的回报

二、中心化学习与独立学习

多智能体强化学习的解决思路是将多智能体转化为单智能体,主要分为两种方法:central learning and independent learning

1.central learning

中心化学习直接利用联合动作状态空间学习一个中心化联合策略指导每个智能体的动作
学习一个中心化的策略,通过观测每个智能体的局部环境选择联合动作 A = A 1 × . . . × A n A=A_{1}\times...\times A_{n} A=A1×...×An为每个智能体选择一个动作,这样可以将多智能体问题降为单智能体问题,从而应用RL算法训练中心化的策略指导多智能体选择动作

1.1 CQL

在这里插入图片描述
CQL维护联合状态价值函数 Q ( s , a ) Q(s,a) Q(s,a),是MARL当中的主要算法的基础

中心化学习的方法能够有效避免环境非平稳与多智能体间的信用分配问题,但也具有一定的限制

1.2 局限性

局限一:从CQL当中可以看出中心化算法需要将多个智能体的联合奖励转换为单个标量奖励,对于common-reward情况能够进行量化,而对于零和博弈、随机博弈等情况无法有效的量化
局限二:联合动作空间随着智能体的数量增加呈指数型增长,单智能体强化学习算法不能很好的拓展到多智能体强化学习当中
局限三:多智能体系统固有结构导致智能体之间的交流无法实现,在随机博弈过程中,环境是全部可观测的,因此能够将中心化策略分解为单个智能体的策略 π c ( s ) = ( π 1 ( s ) = a 1 , . . . , π n ( s ) = a n ) \pi_c(s)=(\pi_1(s){=}a_1,...,\pi_n(s){=}a_n) πc(s)=(π1(s)=a1,...,πn(s)=an),因此当环境完成可观测时,每个智能体只需计算联合动作,并选择其对于的动作即可,然后环境部分可观测时,无法将联合策略分解为每个智能体的策略

2.Independent Learning

在独立学习中,每个智能体根据局部的信息、自己的奖励、自己的经验学习自身的策略,忽略其他智能体的存在,每个智能体并不会使用其他智能体观测到的信息,其他智能体的行为只是动态环境中的一部分

2.1 IQL

2.2 局限性

独立学习能够避免智能体数目增加带来的拓展问题以及不需要对联合回报进行转换,但环境的不平稳性对独立学习影响巨大,IQL状态转移函数如下:
T i ( s t + 1 ∣ s t , a i t ) = η ∑ a − i ∈ A − i T ( s t + 1 ∣ s t , ⟨ a i t , a − i ⟩ ) ∏ j ≠ i ^ π j ( a j ∣ s t ) \mathcal{T}_i(s^{t+1}\mid s^t,a_i^t)=\eta\sum_{a_{-i}\in A_{-i}}\mathcal{T}(s^{t+1}\mid s^t,\langle a_i^t,a_{-i}\rangle)\prod_{j\neq\hat{i}}\pi_j(a_j\mid s^t) Ti(st+1st,ait)=ηaiAiT(st+1st,ait,ai⟩)j=i^πj(ajst)
不难看出,状态转移函数是非平稳的,因此会造成训练过程无法收敛

三、MARL挑战

1.非平稳性

marl当中的核心问题就是在多智能体相互交互学习过程中不断相互适应导致的非平稳问题,非平稳性会导致动态的循环,学习智能体适应其他智能体不断变化的策略,而其他智能体会根据学习智能体策略的改变而调整自身的策略

1.1单智能体强化学习的非平稳性

单智能体平稳性:动态环境不随时间的改变而变化,在蒙特卡洛决策过程当中,如果策略不发生改变,那么决策过程就是平稳的,而在RL当中,策略是在不断学习的,通过学习在t时间内收集到的所有episode内的数据进行更新,因此是非平稳的,和t相关,具体表现:在学习动作价值函数或状态价值函数时,都与后续的动作有关,这些动作也会随着策略的改变而改变,而策略更新会随着时间进行,因此更新的目标会发生改变,造成非平稳的问题

1.2 MARL非平稳性

多智能体的非平稳性:由于每个智能体的策略都会随着时间发生改变,因此加剧了非平稳性,不仅评估价值时具有非平稳性,同时在每个智能体的视角内,环境也带来了非平稳性

2.信用分配问题

在RL当中,信用分配问题是指哪些过去的动作会带来收益,在MARL问题当中,信用分配问题是指哪些智能体的动作有助于收益,因此RL当中通常是时间上的信用分配,MARL当中是指多智能体之间的信用分配
在这里插入图片描述
从例子中理解信用分配,例子中的设定,如果苹果周围的一个智能体或多个智能体的level和大于自身的level,那么即可收集该苹果,因此可以明显看出在左边的智能体并不能带来收益,而位于右边的两个智能体需要组合动作才能获得收益,单独采取动作并不能带来收益,这便是信用分配问题(考虑哪些智能体的动作会带来收益),这里没有考虑时间步

为了解决信用分配问题,每个智能体需要了解自身行为对收益的影响以及其他智能体行为的影响,因此采用联合动作能够有效解决该问题,类似于中心化学习的思想,联合动作能够清晰的分解出每个智能体对收益带来的影响

3.均衡选择

在博弈过程中,具有多种不同的均衡结果,因此会带来不同的期望回报,均衡选择也是强化学习中的重要问题

帕累托最优:不存在一组策略,在所有智能体收益不变的情况下,能够增加至少某一个智能体的收益
社会最优:所有智能体的收益之和最大

解决方法:通过增加额外的准则细化求解空间,例如怕累托最优与社会福祉最优

4.拓展性

在MARL当中,算法能够有效拓展到大量的智能体是重要的,由于联合动作随着智能体数量的增加呈指数上升,因此拓展性受到较大的影响
对于中心化学习的方法,智能体数目的增加导致联合动作空间呈指数上升;对于独立学习的方法,智能体数目的增加会导致环境的不平稳性加剧

四、协作型MARL的模型类型

1.self-play

自博弈能够描述两种相关但又完全不同的模型的操作,第一种自博弈定义了所有智能体都使用相同的算法以及对应的模型参数,收敛到相同的均衡状态,第二种自博弈定义在零和序列的博弈过程中,直接针对自身的策略进行训练,智能体发现自身的弱点并学会消除这些弱点
为了区别上述两种模型操作:使用算法自博弈与策略自博弈进行区分,策略自博弈相比于算法自博弈具有更快的训练速度,因为策略自博弈将所有智能体的经验进行组合单独训练一个策略,并且具有更强的限制

2.mixed-play

混合博弈是指智能体使用不同的算法进行学习

总结

此篇笔记记录了MRAL一般训练流程中的成分以及目前的挑战和模型的类型等

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

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

相关文章

Web实战丨基于Django的简单网页计数器

文章目录 写在前面Django简介主要程序运行结果系列文章写在后面 写在前面 本期内容 基于django的简单网页计数器 所需环境 pythonpycharm或vscodedjango 下载地址 https://download.csdn.net/download/m0_68111267/88795604 Django简介 Django 是一个用 Python 编写的高…

MySQL的原生API实现插入数据后在可视化工具上不显示的问题解决

显示表中有两行数据,该表也设置了主键和唯一索引 点进表里看却没有数据 问题原因出现在这里,虽然很多常用的数据库连接池都会开启自动提交,但ibatis的SqlSession使用sessionFactory.openSession()创建时,默认的自动提交是false&am…

纯静态微信小程序水果商城

首页代码 <view class"container"><!-- 轮播图 --><view class"swiper-container"><swiper class"screen-swiper" indicator-dots"true" circular"true" autoplay"true" interval"300…

数据结构——栈和队列(C语言)

栈种常见的数据结构&#xff0c;它用来解决一些数据类型的问题&#xff0c;那么好&#xff0c;我来带着大家来学习一下栈 文章目录 栈对栈的认识栈的模拟实现栈的练习方法一方法二 栈 对栈的认识 栈&#xff08;stack&#xff09;是限定只能在表的一端进行插入删除操作的线性…

VxTerm:SSH工具中的中文显示和乱码时的相关信息和一些基本的知识

当我们写的程序含有控制台(Console)输出时&#xff0c;如果输入内容包含中文时&#xff0c;我们一般需要知道下面的信息&#xff0c;才能正确的搞清楚怎么处理中文显示的问题&#xff1a; 1、实际程序或文件中的实际编码&#xff1a; Linux下的应用程序和文本文件&#xff0c;…

系统架构设计师-21年-下午题目

系统架构设计师-21年-下午题目 更多软考知识请访问 https://ruankao.blog.csdn.net/ 试题一必答&#xff0c;二、三、四、五题中任选两题作答 试题一 (25分) 说明 某公司拟开发一套机器学习应用开发平台&#xff0c;支持用户使用浏览器在线进行基于机器学习的智能应用开发…

matlab appdesigner系列-仪器仪表3-旋钮

旋钮&#xff0c;同过旋转显示特定的值 示例&#xff1a;模拟收音机调频 操作步骤&#xff1a; 1&#xff09;将旋钮、标签按钮拖拽到画布上&#xff0c;将标签文字修改为&#xff1a;欢迎收听&#xff0c;并将旋钮其数值范围改为90-107 2&#xff09;设置旋钮的回调函数 代…

15EG使用vivado2023.1建立hello world工程

1:打开软件建立工程 2:使用vivado创建设计模块并生成bit文件 3:导出硬件平台&#xff0c;使用vitis建立工程 4:使用vitis创建应用程序项目 5:硬件设置与调试 1:打开软件建立工程 打开VIVADO2023.1 创建一个新的工程 输入项目名称和地址&#xff0c;下面那个选项为是否…

力扣日记1.30【回溯算法篇】78. 子集

力扣日记&#xff1a;【回溯算法篇】78. 子集 日期&#xff1a;2023.1.30 参考&#xff1a;代码随想录、力扣 78. 子集 题目描述 难度&#xff1a;中等 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 …

CCF-CSP 202312-2 因子化简(Java、C++、Python)

文章目录 因子化简题目背景问题描述输入格式输出格式样例输入样例输出样例解释子任务 满分代码JavaCPython线性筛法 因子化简 题目背景 质数&#xff08;又称“素数”&#xff09;是指在大于 1 的自然数中&#xff0c;除了 1 和它本身以外不再有其他因数的自然数。 问题描述…

现货白银的交易策略包括哪些内容?如何适应策略?

交易策略被投资者视为做现货白银交易通向盈利之路的必备工具&#xff0c;但是投资者却不知道如何建立一个适合自己的交易策略&#xff0c;如果直接拿别人的交易策略过来&#xff0c;就犯了拿来主义的毛病&#xff0c;这样是不行的&#xff0c;下面我们就来简单讨论一下如何建立…

Linux操作系统概述

操作系统&#xff08;Operating System&#xff09;的定义 操作系统&#xff0c;是指直接管理系统硬件和资源&#xff08;如 CPU、内存和存储空间&#xff09;的软件。 操作系统的基本功能 ①统一管理计算机资源&#xff1a;处理器资源&#xff0c;IO设备资源&#xff0c;存储…

使用AXI GPIO IP核点亮led

本例程使用SD卡启动模式 创建工程模板在hello_world中已经介绍过了&#xff0c;这里直接从配置完zynq ip核开始 点击加号&#xff0c;搜索GPIO&#xff0c;双击添加AXI GPIO IP核 双击 GPIO IP 核进行设置&#xff0c;设置为输出模式&#xff0c;位宽为4&#xff0c;设置完成后…

超过1000种工具揭示了单细胞RNA数据分析的趋势

文章&#xff1a;Over 1000 tools reveal trends in the single-cell RNA-seq analysis landscape 杂志&#xff1a;Genome Biology 年份&#xff1a;2021 从 2016 年开始&#xff0c;scRNA-tools 数据库&#xff08;https://www.scrna-tools.org/&#xff09;不断收集单细胞转…

el-input 显示最大长度和已输入内容长度

效果如下图 多行文本框&#xff1a; 单行文本框&#xff1a; 需要设置 maxlength 和 show-word-limit 两个属性&#xff0c;在使用 maxlength 属性限制最大输入长度的同时&#xff0c;可通过设置 show-word-limit 属性来展示字数统计。 <el-inputtype"textarea&quo…

ElasticSearch面试题整理(持续更新)

1. Elasticsearch 中的倒排索引是什么&#xff1f; Elasticsearch 使用一种称为倒排索引的结构&#xff0c;ES中的倒排索引其实就是 lucene 的倒排索引&#xff0c;区别于传统的正向索引&#xff0c;倒排索引会再存储数据时将关键词和数据进行关联&#xff0c;保存到倒排表中&…

医院如何筛选安全合规的内外网文件交换系统?

医院内外网文件交换系统是专为医疗机构设计的&#xff0c;用于在内部网络&#xff08;内网&#xff09;和外部网络&#xff08;外网&#xff09;之间安全、高效地传输敏感医疗数据和文件的解决方案。这种系统对于保护患者隐私、遵守医疗数据保护法规以及确保医疗服务的连续性和…

Angular组件(二) 分割面板ShrinkSplitter

Angular组件(二) 分割面板ShrinkSplitter 前言 在Angular组件(一) 分割面板ShrinkSplitter文章中我们实现了Splitter组件&#xff0c;后来在业务场景中发现在开关右侧容器和底部容器时&#xff0c;使用起来不方便&#xff0c;ngModel绑定的值始终是左侧容器和顶部容器的大小&…

顺序表的奥秘:高效数据存储与检索

&#x1f37f;顺序表 &#x1f9c0;1、顺序表的实现&#x1f365;1.1 创建顺序表类&#x1f365;1.2 插入操作&#x1f365;1.3 查找操作&#x1f365;1.4 删除操作&#x1f365;1.5 清空操作 &#x1f9c0;2、ArrayList的说明&#x1f9c0;3、ArrayList使用&#x1f365;3.1 A…

网络安全全栈培训笔记(59-服务攻防-中间件安全CVE复现lSApacheTomcataNginx)

第59天 服务攻防-中间件安全&CVE复现&lS&Apache&Tomcata&Nginx 知识点&#xff1a; 中间件及框架列表&#xff1a; lIS,Apache,Nginx,Tomcat,Docker,Weblogic,JBoos,WebSphere,Jenkins, GlassFish,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Sprng,Flask,…