多智能体强化学习值函数分解论文调研

背景

基于AC网络的CTDE:

        分布式执行actor网络采集数据以及模型推理,中心化critic网络训练actor网络。缺点:难以扩展到大规模agent环境中,原因:MADDPG(a)论文中证明随着agent数量增加,集中式critic网络会积累高方差问题,值函数很难收敛。当所有智能体都共用一个系统奖励时,每个智能体所学习的critic实际上是全局critic,评估的是所有智能体的整体观测-动作对的好坏,因此单个智能体无法从中判断自身观测-动作对整个系统的影响,这也就是所谓的信用分配credit assignment)问题。

独立训练:

        另外一个多agent训练思路,每个agent单独训练,将其他agent视为环境,例如IQL(b),对于这种同构的agent可以用参数共享的形式训练一个网络解决agent数量增加所带来的训练模型负担问题,缺点:忽略其他agent策略联合,对于合作型比较强的环境中很难获得较好训练结果。

奖励设计问题:

        每个agent的奖励函数在大规模agent环境中较难设计。而共用一个系统全局团队回报的TD更新,在上述两种训练方式中无法体现出来agent之间的信用分配。

 


值函数分解

具体描述

        介于两种极端训练方式以及解决多agent之间的信用分配问题的方法——值函数分解,如下图所示:


        在值函数分解方法中,每个agent都有自己的“行为值函数”,中心式的行为值函数可以分解为每个行为值函数的某种组合。在这里我们把个体的行为值函数打了引号,是因为{Q_i}({o^i},{a^i})并非真正的行为值函数。为了区分行为值函数,我们这里称个体“行为值函数”为效用函数。行为值函数的分解可以表示为每个agent效用函数的组合。关于效用函数的引入,有以下几个方面的作用:
(1)效用函数细化了值函数的结构形式,使得联合行为-值函数的训练更方便和有针对性。
(2)该分解式的结构可以用于集中式训练,因此克服了多agent中动态环境的问题。
(3)效用函数用于从集中式值函数中构造和提取每个agent的局部策略,从而可以使得该算法用于大规模多agent系统中。例如,每个agent的贪婪策略为:a = {\arg \max }_{a^i} {Q_i}({o^i},{a^i})。这一点很关键,也是值函数分解的精华。

        值函数分解的条件IGM(Individual-Global-Max),即局部最优即为联合最优的某个组合:


\arg \max _{\boldsymbol{u}} Q_{j t}(\boldsymbol{\tau}, \boldsymbol{u})=\left(\begin{array}{c} \arg \max _{u_{1}} Q_{1}\left(\tau_{1}, u_{1}\right) \\ \cdots \\ \arg \max _{u_{N}} Q_{N}\left(\tau_{N}, u_{N}\right) \end{array}\right)


近年经典论文

VDN(2018)

分解方式:
Q_{j t}(\boldsymbol{\tau}, \boldsymbol{u})=\sum_{i=1}^{N} Q_{i}\left(\tau_{i}, u_{i}\right),对效用函数进行简单加和,即\frac{\partial Q_{j t}(\boldsymbol{\tau}, \boldsymbol{u})}{\partial Q_{i}\left(\tau_{i}, u_{i}\right)} \equiv 1, \forall i \in \mathcal{N},显而易见其为IGM的充分条件。
缺点:线性分解值函数对于复杂协作任务你和能力较差。

QMIX(2018)

分解方式:
        qmix使用超网络给出了更一般、非线性的值函数分解方式:

\frac{\partial Q_{j t}(\boldsymbol{\tau}, \boldsymbol{u})}{\partial Q_{i}\left(\tau_{i}, u_{i}\right)} \geq 0, \forall i \in \mathcal{N}

        这样保证了局部最优就是联合最优,适合具有单调非线性收益的合作问题。
缺点:不适合具有非单调收益的合作问题。

 

WQMIX(2020)

        本质上就是:限制学习率或者更新步长,解决以非单调值函数作为target,避免qmix算法陷入局部最优,同时保证了qmix的输出满足单调性约束。
\Pi_{w} Q:=\underset{q \in \mathcal{Q}^{m i x}}{\operatorname{argmin}} \sum_{\mathbf{u} \in \mathbf{U}} w(s, \mathbf{u})(Q(s, \mathbf{u})-q(s, \mathbf{u}))^{2}
        其中论文中提供两种赋权方式。
中心赋权:
w(s, \mathbf{u})=\left\{\begin{array}{ll} 1 & \mathbf{u}=\mathbf{u}^{*}=\operatorname{argmax}_{\mathbf{u}} Q(s, \mathbf{u}) \\ \alpha & \text { otherwise } \end{array}\right.,目的减少次优策略的权重进行更新(稳定收入)。
乐观赋权:
w(s, \mathbf{u})=\left\{\begin{array}{ll} 1 & Q_{\text {tot }}(s, \mathbf{u})<Q(s, \mathbf{u}) \\ \alpha & \text { otherwise } \end{array}\right.,目的使得次优动作成为最优动作(潜力股)。

 

不足之处:论文中权重函数设计比较简单;并且由于各种近似关系,部分实验场景中会导致整体性能下降。

QTRAN(2019)

        给出了IGM可分解的更为广泛的充分条件。但定理给出的条件约束太多;负样本采集不足会导致算法陷入局部最优;算法方面做了很多的近似工作,实际算法性能在很多实验任务中并不如qmix的表现。

Qatten(2020)

优点:从理论上分析了多头注意力机制的设计灵感来源。
具体做法:
        根据多元泰勒展开式:

\begin{array}{l} \mathrm{Q}_{t o t}(s, \vec{a})=Q\left(s, Q^{1}, Q^{2}, \cdots Q^{n}\right)=\text { t}+\sum_{i} \mu_{i} Q^{i}+ \\ \sum_{i j} \mu_{i j} Q^{i} Q^{j}+\cdots+\sum_{i_{1} \cdots i_{k}} \mu_{i_{1} \cdots i_{k}} Q^{i_{1}} \cdots Q^{i_{k}}+\cdots \end{array}

其中 \mu_{i}=\frac{\partial Q_{\text {tot }}}{\partial Q^{i}}, \mu_{i j}=\frac{1}{2} \frac{\partial^{2} Q_{\text {tot }}}{\partial Q^{i} \partial Q^{j}}, \mu_{i_{1} \cdots i_{k}}=\frac{1}{k !} \frac{\partial^{k} Q_{\text {tot }}}{\partial Q^{i_{1}} \ldots \partial Q^{i_{k}}}

        对于 效用函数在极值点处展开得:Q^{i}\left(a^{i}\right)=\alpha_{i}+\beta_{i}\left(a^{i}-a_{o}^{i}\right)^{2}+o\left(\left(a^{i}-a_{o}^{i}\right)^{2}\right),将效用函数局部展开式带入上式联合值函数多元泰勒展开式中,忽略高阶项,将联合值函数$Q_{tot}$近似为效用函数$Q^i$的一阶线性组合,如下式所示:

Q_{t o t}(s, \vec{a})=c(s)+\sum_{i, h} \lambda_{i, h}(s) Q^{i}\left(s, a^{i}\right)

        其中\lambda_{i, h}=k \sum_{i_{1} \cdots, i_{k}} \mu_{i_{1} \cdots, i_{k}} \alpha_{i_{1}} \cdots \alpha_{i_{k-1}},进而使用多头attention机制拟合\lambda_{i, h}系数,此时attention head个数表示近似多少阶,每个头的注意力权重表示每阶的智能体系数。

         上图中weighted超网结构是为了应对更加复杂的环境,Qatten提出的权重头Q值,以捕获复杂的效用函数之间的关系:Q_{tot}=c(s)+\sum_{h=1}^{H} w_{h} \sum_{i=1}^{N} \lambda_{i, h} Q^{i}

QPLEX(2020)

Dueling DQN:
        普通的DQN只学习状态state下动作action的Q值,而Dueling DQN将Q函数拆成了state的Value和每个动作的Advantage之和:Q=V+A进行分解。这种分解的好处是让Q值的学习更稳健一点,因为它区分了状态的价值和动作的价值。即究竟是 s 是一个好的状态,无论做什么都会得到很高的回报,还是说这个动作a很好,可以解燃眉之急。
具体做法:
        QPLEX利用advantage IGM 与IGM 为等价的条件,对效用函数Q_i进行单调分解,区分了状态的价值和动作的价值,使得QPLEX对IGM具有完全的表达能力。

Transformation网络:将局部的值函数与优势函数V_i(\tau_i),A_i(\tau_i,a_i) 与全局信息s_t(或联合观测历史 τ )结合,获得基于全局观测信息的局部值函数 V_i(\tau),A_i(\tau,a_i) 。具体实现方式是:

V_{i}(\boldsymbol{\tau})=w_{i}(\boldsymbol{\tau}) V_{i}\left(\tau_{i}\right)+b_{i}(\boldsymbol{\tau}) \quad \text { and } \quad A_{i}\left(\boldsymbol{\tau}, a_{i}\right)=w_{i}(\boldsymbol{\tau}) A_{i}\left(\tau_{i}, a_{i}\right)+b_{i}(\boldsymbol{\tau})。其中w_i 是正权值,保证了局部函数和全局函数之间的单调性。

Duplex Dueling网络:类似于QMIX中的Mixing网络,通过 V_{i}(\tau ),A_{i}(\tau,a_i) 获得联合函数V_{tot}(\tau ),A_{tot}(\tau,a_i)

\begin{array}{c} V_{\text {tot }}(\boldsymbol{\tau})=\sum_{i=1} V_{i}(\boldsymbol{\tau}) \\ A_{\text {tot }}(\boldsymbol{\tau}, \boldsymbol{a})=\sum_{i=1}^{n} \lambda_{i}(\boldsymbol{\tau}, \boldsymbol{a}) A_{i}\left(\boldsymbol{\tau}, a_{i}\right), \text { where } \lambda_{i}(\boldsymbol{\tau}, \boldsymbol{a})>0 \end{array}

        最后使用两个联合函数生成联合动作值函数Q_{tot}:

Q_{t o t}(\boldsymbol{\tau}, \boldsymbol{a})=V_{\text {tot }}(\boldsymbol{\tau})+A_{t o t}(\boldsymbol{\tau}, \boldsymbol{a})=\sum_{i=1}^{n} Q_{i}\left(\boldsymbol{\tau}, a_{i}\right)+\sum_{i=1}^{n}\left(\lambda_{i}(\boldsymbol{\tau}, \boldsymbol{a})-1\right) A_{i}\left(\boldsymbol{\tau}, a_{i}\right)

        实际上前半部分\sum_{i=1}^{n} Q_{i}\left(\boldsymbol{\tau}, a_{i}\right)与VDN保持一致,后半部分\sum_{i=1}^{n}\left(\lambda_{i}(\boldsymbol{\tau}, \boldsymbol{a})-1\right) A_{i}\left(\boldsymbol{\tau}, a_{i}\right)修正了Q^{VDN}_{tot}与真实的联合Q值之间的误差。

FACMAC(2022)

集大成者
        将值函数分解(QMIX)与集中式critic(MADDPG)相结合,使得值函数分解可以应用于多agent适用于连续任务(MPE)之中。

 


critic更新:对于Q_{tot}采用TD更新方式(与QMIX保持一致):

\mathcal{L}(\phi, \psi)=\mathbb{E}_{\mathcal{D}}\left[\left(y^{t o t}-Q_{\text {tot }}^{\mu}(\boldsymbol{\tau}, \mathbf{u}, s ; \phi, \psi)\right)^{2}\right]
其中,y^{\text {tot }}=r+\gamma Q_{\text {tot }}^{\mu}\left(\tau^{\prime}, \boldsymbol{\mu}\left(\tau^{\prime} ; \boldsymbol{\theta}^{-}\right), s^{\prime} ; \phi^{-}, \psi^{-}\right)

actor更新:对于策略网络采用集中式的critic策略梯度更新的方式:


\nabla_{\theta} J(\boldsymbol{\mu})=\mathbb{E}_{\mathcal{D}}\left[\nabla_{\theta} \boldsymbol{\mu} \nabla_{\mu} Q_{\text {tot }}^{\boldsymbol{\mu}}\left(\boldsymbol{\tau}, \mu_{1}\left(\tau_{1}\right), \ldots, \mu_{n}\left(\tau_{n}\right), s\right)\right]

其中\boldsymbol{\mu}=\left\{\mu_{1}\left(\tau_{1} ; \theta_{1}\right), \ldots, \mu_{n}\left(\tau_{n} ; \theta_{n}\right)\right\} 是所有智能体策略的集合 


优点:实验对比了QMIX和MADDPG两类多agent算法,表明了QMIX的优势。
缺点:论文实验结果同时也表明FACMAC效果可能还不如直接使用QMIX


 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大章鱼(张文哲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值