多智能体强化学习入门Qmix

本文首发于:行者AI

Qmix是多智能体强化学习中比较经典的算法之一,在VDN的基础上做了一些改进,与VDN相比,在各个agent之间有着较大差异的环境中,表现的更好。

1. IQL与VDN

IQL(Independent Q_Learning),是一种比较暴力的解决问题的方法,每个agent都各自为政,自己学习自己的,没有一个共同的目标。导致算法最终很难收敛。但是在实际一些问题中有不错的表现。

VDN(Value-Decomposition Networks For CooperativeMulti-Agent Learning),每个agent都有自己的动作价值函数 Q a Q_a Qa,通过各自的价值函数的 a r g m a x Q a argmaxQ_a argmaxQa,选取动作。 Q t o t = ∑ i = 1 n Q i Q_{tot}=\sum_{i=1}^nQ_i Qtot=i=1nQi,主要将系统的联合 Q t o t Q_{tot} Qtot近似成为多个单智能体的 Q a Q_a Qa函数的和。因为VDN的联合函数的求和形式表现力有限,在有复杂组合的环境中,表现的很差。例如非线性环境。

2. Qmix

2.1 Qmix的算法思想

QMIX的主要目的:找到一个完全去中心化的策略,并没有像VDN一样完全分解,为了保持策略一致性,我们只需要是全局的 Q t o t Q_{tot} Qtot的执行与 a r g m a x Q a argmaxQa argmaxQa上的执行的结果相同:


要达到这个效果只需要满足 Q t o t Q_{tot} Qtot对于任何一个 Q a Q_a Qa都是单调递增的:

不难看出,当 ∂ Q t o t ∂ Q a = 1 \frac {\partial Q_{tot}}{\partial Q_a}=1 QaQtot=1的时候就是VDN,VDN是QMIX的一种特殊情况。

2.2 Qmix的网络结构

QMIX的模型由两大部分组成(三个网络组成),一个是agent network,输出单智能体的 Q i Q_i Qi的函数,mixing network则是以 Q i Q_i Qi作为输入,输出为联合 Q t o t Q_{tot} Qtot。为了保证单调性,mixing network的网络参数权重和偏置通过hypernetworks网络计算得出,并且hypernetworks输出的网络权重都必须大于0,对偏置没有要求。

3. 算法流程

  • 初始化网络eval_agent_network,eval_mixing_network这两个网络,分别将这两个网络的参数复制给target_agent_network,targent_mixing_network.初始化buffer D D D,容量为 M M M,总迭代轮数 T T T,target_agent_network,targent_mixing_network两个网络参数更新频率 p p p

  • f o

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值