本文首发于:行者AI

在多agent的强化学习算法中,前面咱们讲了QMIX,其实VDN是QMIX的一个特例,当求导都为1的时分,QMIX就变成了VDN。QTRAN也是一种关于值分化的问题,在实践的问题中QTRAN效果没有QMIX效果好,首要是QTRAN的算法的特征约束条件太过于松懈,导致实践没有理论效果好。可是QTRAN有两个版别,QTRAN_BASE和QTRAN_ALT,第二版别效果比第一要好,在大部分实践问题中和QM算法是什么IX的效果差不多。

上述的算法都是关于值分化的,每个age算法的有穷性是指nt的酬谢都是相同的。如果在一局王者荣耀的游戏中,我方大顺风,我方一名角色去1打5,导致阵亡,然后我方算法规划与剖析4打5,因为我方处于大优势,我方团灭对方,我方一切的agent都取得正的奖赏。开端去1打5的agnet也取得了一个正的奖赏,明显他的行为是不能取得正的奖赏。就呈现了“吃大锅饭”的状况,相信度分配不均。

COMA算法就强化学习处理了这算法的时刻复杂度是指什么种问题,运用反实际基线来处理相信度分配的问题。COMA是一种“非中心化”的战略控制体系。

1强化学习. Actor-Critic

COMA首要采样了Actor-Critic的首要思想,一种根据战略搜算法工程师索的方法,中心式点评,边沿式选择方案。

2. COMA

COMA首要运用反实际基线来处算法剖析的意图是理相信分强化学习配问题。在协作智能体算法导论的体系中,判别一算法的特征个智能体实施一个动作的的贡献有多少,智能体选取一个动作成为默许动作(以一种特别的方法承认默许动作),分别实施较默许动作和当时实施的动作,比较算法工程师出这两个动作的优劣性。这种方法需求仿照一次默许动算法的时刻复杂度取决于作进行点评,明显这种方法增加了问题的复杂性。在COMA中并没有设置默许动作,就不必额定仿算法的时刻复杂度是指什么照这基线,直接选用当时战略核算智能体的边沿散布来算法的有穷性是指核算这个基线。COMA选用这种方法大大减少了核算量。

基线的核算:

∑u′aa(u′a∣a)Q(s,(u−a,u′a))sum_{u’a}pi^a(u^{‘a}|tau^a)Q(s,(u^{-a},u^{‘a}))

COMA网络结构

强化学习 | COMA
图中(a)标明COMA的集中式网络结构,(b)标明acti算法是什么o算法规划与剖析r的网络结构,(c)标明Critic的网络结构。

3. 算法算法的时刻复杂度取决于流程

  • 初始化actor_network,eval_critic_ne算法工程师twork,target_critic_network,将eval_critic_network的网络参数拷贝给target_critic_network。初始算法剖析的意图是化buffer DD,容量为MM,总迭代轮数TT,targe算法的五个特性t_critic_network网络参数更新频率pp

  • forfor tt=11 to算法的特征to TT dodo

1)初始化环境

2)获取环境的SS,每个agent的查询值OO,每个agent的算法的特征availavail actionaction,奖赏RR

3)forfor step=1ste强化学习p=1 toto episodeepisode_limitlimit

a)每个agent通过算法的时刻复杂度是指什么actor_network,获取每个动作的概率,随机算法是什么sample获取动作actionaction。ac算法的有穷性是指tor_network,选用的GRU循环层,每次都要记录上一算法是什么次的躲藏层。

b)实施acti算法的时刻复杂度是指什么onaction,将SSSnextS_{next},每算法的时刻复杂度是指什么个agent的查询值OO,每个agent的availavail actionaction,每个agent的nextnext availavail actionaction,奖赏强化学习RR,选择的动作uu,env是否完毕terminatedterminat算法的时刻复杂度是指什么ed,存入履历池DD

c)ifif len(D)len(D) >=>= MM

d)随机从DD中采样一些数据,可是数据有必要是不算法导论同的episode中的相同transition。因为在选动作时不只算法的时刻复杂度是指什么需求输入当时的inputs,还要给神经网络输入hidden_state,hidden_state和之前的履历相关,因此就不能随机抽取履历进行学习。所以这儿一次抽取多个episode,然后一次给神经网络传入每个episode的同一算法的有穷性是指个位置的transition。

e)td_error=Gt−Q_eva算法的五个特性ltd_error =G_t-Q_eval核算loss,更新Critic参数。GtG_t标明从状态SS,到完毕,取得的总奖赏。

f)通过当时战略核算每个agent的每个step的基线,基线核算公式:

∑u′aa(u′a∣a)Q(s,(u−a,u′a))(边沿散布)sum_{u’a}pi^a(u^{‘a}|tau^a)Q(s,(u^{-a},u^算法工程师{‘a}))(边沿散布)

g)核算实施当时动作的优势advantage:

Aa(s,u)=Q算法的五个特性(s,u)−∑u′aa(u′a∣a)Q(s,(u−a,u′a))A^a(s,u) = Q(s,u)-sum_{u’a}pi^a(u^{‘算法工程师a}|tau^a)Q(s,(u^{-a},算法的时刻复杂度是指什么u^{‘a}))

h)核算loss,更新actor网络参数:

loss=((advantag算法的时刻复杂度是指什么e∗select_action_pi_log)∗mask).sum()/mask.sum()loss=((adv强化学习antage*select_action_pi_lo算法的五个特性g)*mask).sum()算法规划与剖析/mask.sum()

i)ifif tt p==0p==0 :

j强化学习)将eval_critic_network的网络参算法工程师数拷贝给target_critic_network。

4. 效果比照

强化学习 | COMA
我自己跑的数算法据,关于QMIX,VDN,算法的有穷性是指COMA,三者之间的比照,在相同场景下。

强化学习 | COMA

强化学习 | COMA

5. 算法总结

COMA在论文写的算法原理很好,可是在实践的场景中,正如上面的两张图所示,COMA的表算法工程师现并算法工程师不是很志向。在一般的场景中,并没有QMIX的体现好。笔者建议读者,在实践的环境中,能够试试V算法的有穷性是指DN,QMIX等等,COMA不适合“带头冲锋”。

6. 资料

  1. COMA:a算法导论rxiv.org/abs/1705.08…

PS:更多技能干货,快算法导论重视【大众号 | xingzhe算法规划与剖析_ai】,与行者一起议论吧!