您的位置首页生活百科

强化学习中的COMA算法该如何理解?

强化学习中的COMA算法该如何理解?

的有关信息介绍如下:

强化学习中的COMA算法该如何理解?

之前看到这个问题,今天刚写完笔记,这里摘了核心部分贴过来了,望指正。

文章针对multi-agent设置下存在的三个挑战:

别提出centralised critic、counterfactual baseline、efficient critic representation,在一定程度上缓解了这三个问题。

正如上文提到的第一个挑战,每个单独的agent如何对其他agent的信息进行建模?在过去的independent actor-critic,每个agent各自训练一个actor-critic,相互之间的信息共享不足,导致agent之间的协作能力较差。故而在COMA中首先引入centralised critic来给出解决这个问题的初步方案。

Centralised critic,顾名思义也就是集中训练一个critic作为全局的critic,下图是它的具体结构:

Critic仅仅在learning过程中使用,它可以基于所有joint action和state information进行训练。当global state 存在的时候,它直接利用它进行训练,否则使用joint action-observation history 进行训练。

而对于actor,它在learning和execution的时候都需要,它的训练仅仅依靠来自自己的action-observation history。

2. 作用:

在这种设置下的critic能够得到来自全局的信息,而在actor-critic框架中,往往会利用critic来指导每个agent的学习,将全局的信息传输到每个agent,从而提高每个agent对其他agent的信息的建模能力。

在前面引入了centralised critic,那么作为一个critic,它的核心功能自然是辅助policy gradient训练,所以我们可以通过什么样的方式使用它呢?

最简单的方式,就是和原始的actor-critic一样,直接利用它估计TD-error,并用于计算梯度。

这样做的方法是无法解决credit assignment的问题:TD-error考虑的是global reward的影响,故而对于每个actor而言,难以显式确认它对于global reward贡献,从而导致优化方向不正确。

2. Difference reward

直接看关于体现它核心思想的Per-agent shaped reward的定义

其中, 是人为指定的默认action。在表达式中,我们将其他agent的action固定,只研究当前agent的action变化的影响。这个Difference reward,顾名思义也就是对reward作difference,而difference的对象分别是当前agent选择的action的reward和当前agent被人为指定的action的reward。从而得到当前agent选择的action相对默认action的优势。

那么如果agent 选择了能够提高D的action,那么这个action对global reward也是有贡献的,这样也就部分解决了credit assignment的问题。

然而这种方法存在如下两个局限:

这两个问题也就是引入counterfactual baseline的原因。

3. Counterfactual baseline

首先名称拆分,counterfactual部分表示它继承了difference reward的思想,这体现了对credit assignment的解决方向,baseline则体现了它在policy gradient中的作用:也说明引入它之后的无偏性(参照policy gradient with baseline的相关内容)

下面直接引入它的advantage计算方式:

方程中的第一项是当前选择的action的global q-value,这表明在centrailsed critic中估计的是Q值。方程中的第二项,表征在agent a的所有可能选择状态下能够获得的golbal q-value的期望,也就是常规理解的baselines。两者做差也正是体现了当前agent选择的agent相对平均结果的优势。

那么为什么说它解决了上面的两个问题:

接下来解决关于curse of dimensionality的问题。在上节中引入了counterfactual baseline,考虑到它的实际实现,就暴露了问题:

基于这两个问题,文章提出了Efficient critic representation,用于提高算法的运行效率,它的结构如下:

在这个结构中,将其他agents的actions ​ , 结合其他历史信息作为输入。输出则是基于输入的其他agent的action下的当前agent的所有action的Q值。利用这个信息,取出所有q-value计算baselines,并与当前action的q-value作差得到Advantage funciton,最终用于梯度下降。

这种方法直接将critic的输出节点从 降低到 ,从而在一定程度缓解了curse of dimensionality的问题。