• 多智能体强化学习整理


    1. Policy-based:

    1.1MADDPG(NIPS2017):

    参考博客:多智能体强化学习算法【二】【MADDPG、QMIX、MAPPO】
    超级经典,是基于DDPG算法改进的

    DDPG:相当于DQN+Actor-Critic,target网络,eval网络,同时使用了经验回放机制

    通过“集中式训练分布式执行”的思路,计算出每个智能体的最优策略。

    1. 每个agent都有一个中心化的critic,能够获取全局信息,给出值函数(Q value);每个智能体的actor根据局部观测信息做决策。该方法在完全合作、完全竞争和混合关系的问题中都能取得较好效果。
    2. 改进了experience replay, ( x , x ′ , a q , . . . , a n , r 1 , . . . , r n ) (x,x',a_q,...,a_n,r_1,...,r_n) (x,x,aq,...,an,r1,...,rn)
      在这里插入图片描述
      代码:多智能体连续行为空间问题求解——MADDPG
    • MADDPG 中的 Critic 是一个中心化网络,即传入的不只是当前 Agent 的(s,a)信息,还加入了其他 Agent 的(s,a)信息

    1.2 COMA(AAAI2018):

    Counterfactual Multi-Agent Policy Gradients:解决了合作式的MARL中,如何为各个agent分配奖励的问题。设置一个反事实基线(counterfactual baseline),将action与默认action的reward比较,若更高则说明做出了贡献。

    1. 使用一个集中式critic网络,在训练的过程中可以获取所有智能体的信息;
    2. 采用反事实基线(counterfactual baseline)来解决信用分配的问题(利用反事实的思维来推断每个智能体对整体任务的完成有多大的贡献);
    3. Critic网络要能够对反事实基线进行高效的计算。

    对比:

    a. COMA针对离散动作,学习的是 随机策略。而MADDPG针对连续动作,学习的是确定性策略。这在它们策略梯度函数的表达式上能够体现出区别。
    b. COMA主要针对多智能体 协作任务,因此只有一个critic评价团队整体的回报。MADDPG既可以做协作任务,也可以做竞争任务,每个智能体都对应一个奖励函数,因此每个智能体对应一个critic。
    c. 在原文中,COMA使用了 历史观测、动作序列作为网络的输入,而MADDPG没有使用历史序列。因此COMA的网络结构中包含了GRU层,而MADDPG的网络均为2-3个隐层的MLP。
    d. COMA中所有智能体的actor网络 共享参数,输入端加上智能体ID以示区别。而MADDPG则没有共享参数;
    d. COMA使用 反事实基线作为actor网络的优化目标,而MADDPG直接使用Q函数作为每个智能体actor网路的优化目标。

    1.3MAPPO

    多智能体强化学习(二) MAPPO算法详解
    主要是提升效率,偏工业

    2.Value-based

    前面提到的 policy-based 方法中,中心化的值函数是直接使用全局信息进行建模,没有考虑个体的特点。在多智能体系统是由大规模的多个个体构成时,这样的值函数是难以学习或者是训练到收敛的,很难推导出理想的策略。
    并且仅依靠局部观测值,无法判断当前奖励是由于自身的行为还是环境中其他队友的行为而获得的。如果给每个agent都配一个reward function,会把问题变复杂,并且通用性也不强。

    2.1 VDN(AAMAS2018)

    Value-Decomposition Networks For Cooperative Multi-Agent Learning:核心是将全局的 Q(s,a)值分解为各个局部 Qi(si,ai)的加权和,每个智能体拥有各自的局部值函数

    2.2QMIX(ICML2018)

    是对VDN算法的改善,作者改善了值函数分解的网络结构,考虑了系统全局状态 以及分布式策略的单调性约束,有效地增强了网络对整体Q函数的拟合能力。

    QMIX 在 VDN 的基础上实现了两点改进:

    1. 在训练过程中加入全局信息进行辅助;
    2. 采用混合网络对单智能体的局部值函数进行合并(而不是简单的线性相加)。

    模拟环境

    常见多智能体强化学习仿真环境介绍

  • 相关阅读:
    搭建开源元数据平台DataHub
    Pandas中的宝藏函数-map
    2022/08/26 day11:redis:删除策略
    抖音排名怎么做的?抖音视频排名规则是什么样的
    详解Git合并(Merge)错误如何回退。(包括Reset, Revert和页面回滚三种,并说明其优缺点)
    企业怎么优化固定资产管理
    前端面试(3)—— CSS盒模型及BFC
    电脑文件误删除怎么恢复?
    细品spring设计,可扩展性编程Aware接口,Adapter类
    数据结构-栈和队列(1)
  • 原文地址:https://blog.csdn.net/strawberry47/article/details/125516802