08MARL深度强化学习 independent learning

文章目录

  • 前言
  • 1、Independent Value-based Learning
  • 2、Independent Policy Gradient Methods


前言

记录independent learning算法的基础概念,使用一些RL算法训练多智能体


1、Independent Value-based Learning

基于值的独立学习算法:每个智能体根据自身的观测与动作学习价值函数,以IDQN为例,每个智能体根据自身的观测历史学习Q函数,智能体i的损失函数为:
在这里插入图片描述
总的损失函数就是将所有智能体的损失函数进行求和,优化过程为最小化总损失函数与每个智能体的损失函数
在这里插入图片描述
**replay buffer局限:**代表经验收集与再采样的过程,而在IDQN中存在一定问题,因为在多智能体环境中,每个智能体不仅被他们自身的观测与动作所决定,同时受到其他智能体的影响,因此每个智能体的观测与动作会依赖于其他智能体的策略,当采用经验回收池时,假设了经验随着时间具有相关性,而在多智能体环境中,这种相关性会快速过时

**举例解释:**在两个智能体学习围棋的任务中,智能体1采取了特定的策略,短期有较好的收益而长期属于弱策略,智能体2没有采用特定的策略,在刚开始的阶段智能体1会获得奖励而在经验池中存放数据,而随着时间的进行,这些数据在后期并不能带来收益,导致智能体1会持续学习弱策略

解决方法:
小的经验回收池:小的经验回收池使得快速达到容量,因此会移除老的数据,能够降低回收池中经验过时的问题
重要性采样权重(Importance Sampling Weights):经验池储存策略与经验,通过重要性采样的权重校正选择动作的概率
fingerprints of agent policies:拓展每个智能体的观测,使得智能体能够考虑其他智能体的策略的变化

2、Independent Policy Gradient Methods

独立策略梯度方法:通过智能体自身的动作以及奖励计算梯度,并不考虑其他智能体的动作与策略,计算期望回报相对于自身策略的梯度,每个episode通过以下公式更新:在这里插入图片描述
算法流程如下:
在这里插入图片描述
在多智能体环境设定中,on policy相比于off policy具有一定的优势,是因为on policy能够学习最新的经验得到策略,这样智能体会随着其他的智能体策略的改变而得到新的经验,能够不断适应变化的环境,因此在多智能体环境设定中,on policy算法能够持续更新,更加重要

A2C算法:
具有并行环境的A2C算法能够应用到多智能体环境当中,多智能体在多个并行环境当中经过多轮episode具有更高维度的观测,并且动作与奖励等都具有更高的维度,算法流程如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

51-2 万字长文,深度解读端到端自动驾驶的挑战和前沿

去年初,我曾打算撰写一篇关于端到端自动驾驶的文章,发现大模型在自动驾驶领域的尝试案例并不多。遂把议题扩散了一点,即从大模型开始,逐渐向自动驾驶垂直领域靠近,最后落地到端到端。这样需要阐述的内容就变成LLM基础模…

【Docker】集群容器监控和统计 Portainer基本用法

Portainer是一款轻量级的应用,它提供了图形化界面,用川于方便地管理Docker环境,包括单机环境和集群环境。 主要功能:实现集群容器的监控和统计 下载安装 官网:https://www.portainer.io 文档:https://do…

Python Selenium实现自动化测试及Chrome驱动使用

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站零基础入门的AI学习网站~。 目录 ​编辑 前言 Selenium简介 安装Selenium库 编写自动化测试脚本 1 打开浏览器并访问网页 2 查找页面元…

Docker Desktop 链接windos 安装的redis和mysql

1.1.先在容器安装项目 2.链接redis和mysql配置 redis和mysql是在windos安装的,使用的是小p管理器安装的 项目链接 DB_DRIVERmysql DB_HOSThost.docker.internal DB_PORT3306 DB_DATABASEyunxc_test DB_USERNAMEyunxc_test DB_PASSWORDtest123456... DB_CHARSETutf…

一周学会Django5 Python Web开发-Django5路由变量

锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计22条视频,包括:2024版 Django5 Python we…

SPSSAU【文本分析】|文本聚类

SPSSAU共提供两种文本聚类方式,分别是按词聚类和按行聚类。按词聚类是指将需要分析的关键词进行聚类分析,并且进行可视化展示,即针对关键词进行聚类,此处关键词可以自由选择。按行聚类分析是指针对以‘行’为单位进行聚类分析&…

【数据结构】图的最小生成树

最小生成树 一个图中有N个顶点,边的数量一定是>N-1,我们从中选取N-1条边,用来连接N个点,所形成的边权之和最小,就是最小生成树。 构成最小生成树的准则 只能使用图中的边来构造最小生成树只能使用恰好n-1条边来连…

Stable Diffusion 绘画入门教程(webui)-提示词

通过上一篇文章大家应该已经掌握了sd的使用流程,本篇文章重点讲一下提示词应该如何写 AI绘画本身就是通过我们写一些提示词,然后生成对应的画面,所以提示词的重要性不言而喻。 要想生成更加符合自己脑海里画面的图片,就尽量按照…

术业有专攻!三防加固平板助力工业起飞

在日常使用中的商业电脑比较追求时效性,以市场定位做标准,内部元件只需满足一般要求就行,使用寿命比较短。而三防平板电脑是主要运用在复杂、恶劣的环境下所以在需求方面较高,需要保证产品在恶劣条件下正常使用,满足行业领域的需求…

【CCEdit】通过扩散模型进行创意且可控的视频编辑

文章目录 CCEdit1. 核心特性1.1 三叉戟网络结构1.2 精细的外观控制1.3 高度的自适应性 2. 三叉戟结构2.1 结构分支(ControlNet架构)2.2 外观分支2.3 主分支 3. 数据集——BalanceCC benchmark dataset4. 训练5. 长视频编辑6. 使用场景7. 评估指标 CCEdit…

单片机01天---stm32基本信息了解

下载数据手册 以STM32F407ZG为例 网站:www.st.com,搜索芯片型号,下载“数据手册”使用 数据手册使用 查看芯片型号信息 芯片资源信息 时钟框图 芯片资源表格下方 GPIO口表格 一般位于下图后面的位置 ①工作电压:1.8V – 3.6V…

Idea启动Gradle报错: Please, re-import the Gradle project and try again

Idea启动Gradle报错:Warning:Unable to make the module: reading, related gradle configuration was not found. Please, re-import the Gradle project and try again. 解决办法: 开启步骤:View -> Tool Windows -> Gradle 点击refe…

HN 千赞热贴|创业 4 年,那些狠狠打我脸的技术选型

Hacker News 帖子 过年这段时间,Hacker News 上也涌现了不少好帖子,除了霸榜的 Sora 外,技术贴最靠前的就是这篇 (Almost) Every infrastructure decision I endorse or regret after 4 years running infrastructure at a startup。作者根据…

【Django开发】0到1开发美多shop项目:图形和短信验证码。全md文档笔记(附代码,已分享)

本系列文章md笔记(已分享)主要讨论django商城项目相关知识。项目利用Django框架开发一套前后端不分离的商城项目(4.0版本)含代码和文档。功能包括前后端不分离,方便SEO。采用Django Jinja2模板引擎 Vue.js实现前后端…

【Java多线程】线程安全问题与解决方案

目录 1、线程安全问题 1.2、线程安全原因 2、线程加锁 2.1、synchronized 关键字 2.2、完善代码 2.3、对同一个线程的加锁操作 3、内容补充 3.1、内存可见性问题 3.2、指令重排序问题 3.3、解决方法 3.4、总结 volatile 关键字 1、线程安全问题 某个代码&#xff…

初识结构体(C语言)

目录 1、结构体声明 2、结构体访问 3、结构体传参 1、结构体声明 结构是一些值的集合,这些值称为成员变量。结构的每一个成员可以是不同类型的变量。有点像数组,但是一个数组只能存放同一种类型的变量。如果要描述复杂对象的时候,对象由多…

基于Java SSM框架实现留学生交流互动论坛网站项目【项目源码+论文说明】

摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

基于ant的图片上传组件封装(复制即可使用)

/*** 上传图片组件* param imgSize 图片大小限制* param data 上传数据* param disabled 是否禁用*/import React, { useState,useEffect } from react; import { Upload, Icon, message} from antd; const UploadImage ({imgSize 50,data { Directory: Image },disabled f…

Vue封装全局公共方法

有的时候,我们需要在多个组件里调用一个公共方法,这样我们就能将这个方法封装成全局的公共方法。 我们先在src下的assets里新建一个js文件夹,然后建一个common.js的文件,如下图所示: 然后在common.js里写我们的公共方法,比如这里我们写了一个testLink的方法,然后在main…

Apache Flink连载(三十):Flink 内存模型

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录