COMA(二):Counterfactual Multi-Agent Policy Gradients 论文讲解

Counterfactual Multi-Agent Policy Gradients

论文链接:https://arxiv.org/pdf/1705.08926.pdf

1. 问题提出(解决了什么问题?)

在现实世界中,有非常多的问题需要多个单位之间的“合作”才能完成任务,这就需要学习一种非中心式策略的控制系统,即每个agent有着属于自己的决策大脑,而非靠拥有全局信息的决策系统下达指令(毕竟有时候全局的信息量过于庞大,并且agent到中心网络的通信不一定每时每刻都稳定,因此中心式的决策系统很难实现)。因此,该论文提出了一种方法用于学习非中心式的部分可观测的多智能体协同的控制策略。
COMA利用全局评价网络(critic)来评价Q值,利用非全局行为网络(actor)来决定agent的行为。由于在训练时使用的是全局网络进行评价,并且采用参数共享的方式,使得agent能够在做行为选择的时候参考其他agent的状态再做决定,这就加入了“协同”的功能。


2. 介绍

该论文分为以下三个部分:

  • 提出传统的RL算法在协同任务中不足

若使用传统的RL算法来解决多智能体的问题,则会存在以下三个不足之处:

  1. 输入的action space应该是所有agent的联合动作空间(joint action space),这个空间会随着agent数量增加而增加。
  2. 此外,由于部分可观测性(即单个agent在某一时刻只能观测到部分环境的信息,无法获得全局信息,比如一个小兵只能看到视野范围内的地图信息,视野外的地图信息是无法观测的),使得agent在做决策时只能依照自己当前的部分观测信息(local observation),没有与其他agent进行信息共享的能力。
  3. 使用联合动作空间获得的reward是来自所有agent采取的所有action共同得到的reward,这就很难知道每一个agent的action应该得到的多少子回报,这就是原文中提到的 “Individual Reward Assignment”。
  • COMA中的主要思想

COMA是一种基于actor-critic的变种方法,其中actor是依照critic评估出来的梯度值进行更新学习的。整个算法共有三个比较核心的思想:

  1. 学习过程中会有一个中心式评价网络, 这个网络主要用于对actor选择的决策进行好坏评价以此来教会actor如何做一个好的决策。为什么称为中心式的网络?这是因为该网络可以获取场景中的全局信息,包括所有agent在这一时刻采取的行为信息观测信息。但是,单个agent在利用actor做行为选择时只能依照自身的当前观测信息和经历过的历史信息进行决策,做决策时是无法获得全局信息的。这种方式被称为“中心式评价,边缘式决策”。
  2. COMA引入了一个概念叫做 “反事实准则(counterfactual baseline)” ,这个概念是整篇论文的重点。为了解决 Individual Reward Assignment 的问题,反事实准则提出,每个agent应该拥有不同的reward,这样才能知道在这一次的全局行为决策中单个agent的action贡献是多少。而单个agent的reward通过两个值计算得来:当前情况下的全局reward和将该agent行为替换为一个默认行为后的全局reward。可以这样理解:该回报值其实计算的是Agent a a a采取行为 u u u 会比采取默认行为 c a c_a ca 要更好( D a D^a Da > 0)还是更坏( D a D^a Da < 0)。这个特定agent特定动作reward就被称为counterfactual baseline,COMA使得每一个agent的每一个action都有一个自身的counterfactual baseline。
  3. 如上面所说,每一个agent的每一个动作都会有一个counterfactual baseline,如果要计算出所有动作的baseline,就需要把每一个行为替换成 ‘默认行为’ 并与环境互动得到一个reward。当agent数目很多且联合动作空间很大的时候,这种方法显然是不可取的。因此,COMA提出:使用中心critic网络来estimate每一个动作的Q值,来代替与环境交互后得到的reward
  • 验证场景及其结果分析


3. 背景
3.1 数学建模

论文中将多智能体协同任务想象成一个随机决策的游戏,这个游戏 G G G 包含以下几个因素:
G = < S , U , P , r , Z , O , n , γ > G = <S, U, P, r, Z, O, n, \gamma> G=<S,U,P,r,Z,O,n,γ>
其中,

  • S → S \quad \rightarrow \quad S 环境状态集: ∀ s ∈ S \forall s \in S sS.

  • U → U \quad \rightarrow \quad U 所有动作样本空间:在每一时刻,每个agent采取一个行为 u t a ∈ U u_t^a \in U utaU,并组成联合动作空间 u ∈ U \textbf{u} \in U uU.

  • P → P \quad \rightarrow \quad P 状态转移函数:根据当前状态 s s s和联合动作空间 u \textbf{u} u,计算一时刻状态 s ′ s' s P ( s ′ ∣ s , u ) P(s'|s, \textbf{u}) P(ss,u).

  • r → r \quad \rightarrow \quad r 全局回报值: r ( s , u ) r(s, \textbf{u}) r(s,u).

  • Z → Z \quad \rightarrow \quad Z 局部观测集:单个agent在每一时刻有一个局部观测 z ∈ Z z \in Z zZ.

  • O → O \quad \rightarrow \quad O 局部观测函数:Agent a a a 的局部观测 z z z 是根据全局环境信息 s s s 通过 O O O 函数计算得来, z = O ( s , a ) z = O(s, a) z=O(s,a).

  • n → n \quad \rightarrow \quad n agent的个数,共有 n n n 个.

  • γ → \gamma \quad \rightarrow \quad γ 折扣因子,用于指定计算未来回报时的衰减强弱.

此外,每个agent有一个 action-observation 的历史记录 τ a \tau^a τa,actor在做决策的时候是基于历史信息做的决策 π a ( u a ∣ τ a ) \pi^a(u^a|\tau^a) πa(uaτa). 其实这里基于历史记录做决策可以理解为:之前在做update决策网络参数的时候,是基于之前的历史信息做的更新,所以用更新后的actor去做决策就可以看作是记住了历史经验后做的决策了。

3.2 基本概念回顾

这里在回顾一下DQN中的一些基本概念,后续内容会用的到:

累计回报 R t = ∑ l = 0 ∞ γ l r t + l R_t = \sum_{l=0}^\infty{\gamma^lr_{t+l}} Rt=l=0γlrt+l,其中 γ \gamma γ 是折扣因子;
评价函数分为两个:对当前状态的评价函数 V π ( s t ) V^\pi(s_t) Vπ(st),对当前状态下当前联合动作空间的评价函数 Q π ( s t , u t ) Q^\pi(s_t, u_t) Qπ(st,ut);
V π ( s t ) = E [ R t ∣ s t ] Q π ( s t , u t ) = E [ R t ∣ s t , u t ] V^\pi(s_t) = E[R_t|s_t] \qquad Q^\pi(s_t, \textbf{u}_t) = E[R_t|s_t, \textbf{u}_t] Vπ(st)=E[Rtst]Q</

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值