MAAC算法总结

论文原文:Actor-Attention-Critic for Multi-Agent Reinforcement Learning

参考文章(这篇文章里写的非常详细!):MAAC注意力的演员评论家: Multi-Agent强化学习 - 知乎 (zhihu.com)

首先MAAC这个名字指代的是Multi-Actor-Attention-Critic,有一个Attention在里面,指的是神经网络中的注意力机制。注意力机制就是指,对于一个agent来说,它要关注别的agent的行动,但是对于其他agent关注的程度不同。例如在足球比赛中,一个队的后卫要关注的是对方队伍的前锋,而不是对方队伍的守门员。

论文先从最早的单智能体Policy-Gradient方法说起:

policy-gradient方法的actor网络的优化目标是这个:

policy-gradient的优化目标

但是公式后面这项在每次episode中变化很大,于是actor-critic方法把这一项用一个函数去拟合(也就是critic网络):

critic网络

所以critic网络的更新的loss就是估计的值和“实际”的值之间的差距,所谓“实际”其实是用另一个target-critic网络(网络结构相同,其参数定期更新)去计算出来的:

critic网络的更新

为了鼓励探索,并防止陷入局部最优动作,又有了Soft Actor Critic,该方法在损失函数中加入熵,actor的更新公式为:

新的actor更新公式

其中是一个只与状态有关的baseline,与此同时critic网络的也变成了:

公式(2)中新的y值

MAAC算法

MAAC算法也是中心化训练critic,分布式训练actor

MAAC的网络结构

为了计算每一个agent的值,critic网络接受输入为所有agent的观测以及他们的动作,我们令除智能体之外的所有智能体为“\i”,并以为序号,于是可以表示为这样:

公式(5)

这里面是一个"two-layer multi-layer perceptron(MLP)",是一个" one-layer MLP embedding function",是所有其他agent的value的加权之和(这里的加权应该就是注意力机制):

xi is a weighted sum of each agent’s value

其中,是一个固定的矩阵,是leaky Relu,注意力权重利用双线性映射(即query-key系统)将embedding 与进行比较,并将这两个嵌入之间的相似度值传入一个softmax,其中将转化为query,将转化为key,然后通过这两个矩阵的维度对匹配进行缩放,以防止消失的梯度

公式(6)

在有了上文的基础之后,critic网络的loss变为了:

公式(7)

actor网络的更新公式变成了:

公式(8)

Multi-Agent Advantage Function

通过对比一个特定动作和平均动作带来的value上的差别来判断这个特定动作是否有益(解决cridit assignment问题):


公式(9)

所以作者觉得不如只输入,然后输出每个对应的,也就是下面这样:

公式(10)

附录中的算法伪码:

训练过程
更新方法

你可能感兴趣的:(MAAC算法总结)