多智能体强化学习论文——SEAC(NIPS 2020)

2023-10-27 17:10

本文主要是介绍多智能体强化学习论文——SEAC(NIPS 2020),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

存在的问题&研究动机&研究思路

  1. 稀疏奖励的环境下,多智能体的exploration存在效率不足的问题
  2. 在IAC的基础上尝试加入重要性采样,使得每次更新智能体 i i i的参数时,不再仅仅使用智能体 i i i的数据,而是使用所有智能体的数据进行智能体 i i i数据的更新。
  3. 对于原始的IAC算法是on-policy的,而SEAC则是off-poligy的。

创新点

  1. 在每个智能体 i i i a c t o r i actor_i actori c r i t i c i critic_i critici的更新过程中,都加入了重要性采样
    在这里插入图片描述
    在这里插入图片描述
    每个智能体更新时都使用了所有智能体的梯度信息

算法框图

在这里插入图片描述

实验

  1. 实验算法共有三个:
    1. IAC:Independent Actor-Critic。
    2. SNAC:Shared Network Actor-Critic,即训练一个策略用于所有智能体,所有智能体的数据都更新着一套参数。此方法算是on-policy的,网络接受了相同的经验,学到了较为相似的策略。
    3. SEAC:Shared Experience Actor-Critic。和IAC类似,每个智能体都有自己的一套参数,但是每个智能体在更新的时候,使用所有智能体的数据进行,而IAC仅仅使用自己的数据进行更新
  2. 实验环境包括四个,都设置为sparse reward的形式。
  3. 对于QMIX这种接受集体reward的算法,即直接将每个智能体的 r e w a r d i reward_i rewardi相加当作集体的reward。(是否合理?既然VDN假设 总体效用函数等于每个智能体效用函数之和?。)
  4. 在协作任务中,当某个智能体的学习进度明显快于其他智能体时,会阻碍总体训练效果的提升。
  5. 实验结论:在多智能体中,当智能体学习速度不同时,会阻碍一部分agents的exploration,进而影响总体的学习进程,导致收敛到次优策略。SEAC通过结合当前智能体的梯度和其他所有智能体的weighted梯度信息,来解决这个问题。

这篇关于多智能体强化学习论文——SEAC(NIPS 2020)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/287110

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

基于Python实现智能天气提醒助手

《基于Python实现智能天气提醒助手》这篇文章主要来和大家分享一个实用的Python天气提醒助手开发方案,这个工具可以方便地集成到青龙面板或其他调度框架中使用,有需要的小伙伴可以参考一下... 目录项目概述核心功能技术实现1. 天气API集成2. AI建议生成3. 消息推送环境配置使用方法完整代码项目特点

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

利用Python实现Excel文件智能合并工具

《利用Python实现Excel文件智能合并工具》有时候,我们需要将多个Excel文件按照特定顺序合并成一个文件,这样可以更方便地进行后续的数据处理和分析,下面我们看看如何使用Python实现Exce... 目录运行结果为什么需要这个工具技术实现工具的核心功能代码解析使用示例工具优化与扩展有时候,我们需要将

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx