多智能体强化学习:合作关系设定下的多智能体强化学习

0 前言

        在多智能体系统中,一个智能体未必能观测到全局状态 S。设第 i 号智能体有一个局部观测O^i,它是S的一部分。
        
        我们假设所有的局部观测的总和构成了全局状态

 1 合作关系设定下的策略学习

        MARL 中的 完全合作关系 (Fully-Cooperative) 意思是所有智能体的利益是一致的,它们具有相同的奖励
         因此,所有的智能体都有 相同的回报

 

         因为价值函数是回报的期望,所以所有的智能体都有相同的(状态/动作)价值函数Q_\pi(S,A)V_\pi(S)

        注意Q_\pi(S,A)V_\pi(S)依赖于所有智能体的策略:

         如果做策略学习(即学习策略网络参数\theta^1, \cdots,\theta^m),那么所有智能体都有一个共同目标函数:

         所有智能体的目的是一致的,即改进自己的策略网络参数\theta^i,使得目标函数 J 增大。那么策略学习可以写作这样的优化问题:

         注意,只有“完全合作关系”这种设定下,所有智能体才会有共同的目标函数,其原因在于

        对于其它设定——“竞争关系”、“混合关系”、“利己主义”—— 智能体的目标函数是各不相同的
合作关系设定下的策略学习的原理很简单,即让智能体各自做策略梯度上升,使得目标函数 J 增长。

 

 判断策略学习收敛的标准是目标函数 不再增长。。

在实践中,当平均回报不再增长,即可终止算法。

由于无法直接计算策略梯度\nabla _{\theta^i} J ,我们需要对其做近似。

合作设定下的多智能体 A2C

强化学习笔记:带基线的策略梯度_UQI-LIUWJ的博客-CSDN博客

“完全合作关系”设定下的多智能体 A2C 方法 (Multi-Agent Cooperative A2C) ,缩写 MAC-A2C

 2.1 策略网络和价值网络

本章只考虑离散控制问题,即动作空间 \mathcal{A}^1,\mathcal{A}^2,\cdots,\mathcal{A}^m 都是离散集合。
MAC-A2C 使用 两类神经网络 :价值网络 v 与策略网络 π
所有智能体共用一个价值网络 ,记作 v ( s ; w ),它是对状态价值函数V_\pi(s)的近似。 它把所有观测 s=[o^1,\cdots,o^m]作为输入,并输出一个实数,作为对状态 s 的评分。
每个智能体有自己的策略网络。 把第 i 号策略网络记作\pi(a^i|s;\theta^i)。它的输入是所有智能体的观测 s=[o^1,\cdots,o^m]。它的输出是一个向量,表示动作空间 \mathcal{A}^i 上的概率分布。

2.1.1 训练价值网络

我们用 TD 算法训练价值网络 v(s; w)。观测到状态s_t,s_{t+1}和奖励 rt,计算 TD 目标:

定义损失函数:

上述 TD 算法与单智能体 A2C 的 TD算法完全一样。

2.1.2 训练策略网络

 把基线设置为状态价值:b=V_\pi(s),然后定义

 这是策略梯度的无偏估计:

 此时我们还不知道Q_\pi, V_\pi

和A2C强化学习笔记:带基线的策略梯度_UQI-LIUWJ的博客-CSDN博客类似,我们把Q_\pi(s_t,a_t)近似成r_t+\gamma v(s_{t+1};w),把V_\pi(s_t)近似成v(s_t;w)

于是近似策略梯度g^i(s_t,a_t;\theta^i)可以进一步近似成

3 整体训练流程 

实际实现的时候,应当使用目标网络缓解自举造成的偏差。
目标网络记作 v(s;w^-),它的结构与 v 相同,但是参数不同。
设当前价值网络和目标网络的参数分别是w_{now},w_{now}^-

设当前 m 个策略网络的参数分别是 \theta_{now}^1,\cdots,\theta_{now}^m
MAC-A2C 重复下面的步骤更新参数:

 MAC-A2C 属于同策略 (On-policy),不能使用经验回放。

4  决策与控制

 在完成训练之后,不再需要价值网络 v(s; w)。每个智能体可以用它自己的策略网络做决策。

在时刻 t 观测到全局状态s_t=[o_t^1,\cdots,o_t^m],然后做随机抽样得到动作

注意, 智能体并不能独立做决策 ,因为一个智能体的策略网络需要知道其他所有智能体的观测。

 5 实现中的难点

MARL 的常见设定下,第 i 号智能体只知道自己的观测值 o^i ,而观测不到全局状态:

但是全局状态在多智能体A2C中又是必须的:
  • 每个智能体有自己的策略网络 \pi(a^i|s;\theta^i),可以用它做决策。但是它的决策需要全局状态 s
  • 训练的过程中,价值网络 v(s; w) 需要知道全局状态 s 才能计算 TD 误差 与梯
  • 训练的过程中,每个策略网络都需要知道全局状态s来计算梯度
所以, 如果智能体之间不交换信息,那么智能体既无法做训练,也无法做决策。
要做训练和决策,有两种可行的途径:
  • 一种办法是让智能体共享观测。这需要做通信,每个智能体把自己的o^i传输给其他智能体
    • 这样每个智能体都有全局的状态
  • 另一种办法是对策略网络和价值函数做近似。通常使用\pi(a^i|o^i;\theta^i)替代\pi(a^i|s;\theta^i)甚至可以进一步用v(o^i;w^i) 代替 v(s; w)

但是他们都是有不足之处的:

  • 共享观测的缺点在于通信会让训练和决策的速度变慢。
  • 而做近似的缺点在于不完全信息 造成训练不收敛、做出错误决策。

6 三种实现架构

6.1 中心化训练+中心化决策

本小节用完全中心化 (Fully Centralized) 的方式实现 MAC-A2C ,没有做任何近似。
这种实现的缺点在于通信造成延时,使得训练和决策速度变慢。

         最上面是中央控制器 (Central Controller),里面部署了价值网络 v(s; w) 与所有 m 个策略网络        训练和决策全部由中央控制器完成。智能体负责与环境交互,执行中央控制器的决策a^i并把观测到的o^i汇报给中央控制器。如果智能体观测到奖励 r^i,也发给中央控制器。

6.1.1 中心化训练

在时刻 t t + 1,中央控制器收集到所有智能体的观测值

 在“完全合作关系”的设定下,所有智能体有相同的奖励:


r_t可以是中央控制器直接从环境中观测到的,也可能是所有智能体本地的奖励 \tilde{r}_t^i的加和:

 决策是中央控制器上的策略网络做出的,中央控制器因此知道所有的动作:

——> 中央控制器知道

——> 因此,中央控制器有足够的信息训练 MAC-A2C,更新价值网络的参数 w 和策略网络的参数

\theta^1,\cdots,\theta^m 【训练方法见第三小节】

6.1.2 中心化决策

        在 t 时刻,中央控制器收集到所有智能体的观测值s_t=[o_t^1,\cdots,o_t^m],然后用中央控制器上部署的策略网络做决策:
        
        中央控制器把决策 a_t^i传达给第 i 号智能体,该智能体执行a_t^i。综上所述,智能体只需要执行中央下达的决策,而不需要自己“思考”。

6.1.3 完全中心化的优缺点

中心化训练 + 中心化决策的 优点 在于完全按照 MAC-A2C 的算法实现,没有做任何改动,因此可以确保正确性。
基于全局的观测 s_t=[o_t^1,\cdots,o_t^m]做中心化的决策, 利用完整的信息,因此作出的决策可以更好。

中心化训练和决策的 缺点 在于延迟 (Latency) 很大,影响训练和决策的速度。
在中心化执行的框架下,智能体与中央控制器要做通信。
i 号智能体要把 o_t^i传输给中央控制器,而控制器要在收集到所有观测 [s_t=[o_t^1,\cdots,o_t^m]
后才会做决策,做出的决策 a_t^i还得传输给第 i 号智能体。
这个过程通常比较慢,使得实时决策不可能做到。
机器人、无人车、无人机等应用都需要实时决策,比如在几十毫秒内做出决策;如果出现几百毫秒、甚至几秒的延迟,可能会造成灾难性的后果。

 

6.2 去中心化训练+去中心化决策

“中心化训练 + 中心化决策”严格按照 MAC-A2C 的算法实现,其缺点 在于训练和决策都需要智能体与中央控制器之间通信,造成训练的决策的速度慢。

想要避免通信代价,就不得不对策略网络和价值网络做近似。

MAC-A2C 中的策略网络

 和价值网络 v(s; w) 都需要全局的观测s_t=[o_t^1,\cdots,o_t^m]

“去中心化训练 + 去中心化决 策”的基本思想是用局部观测o_t^i代替 s,把策略网络和价值网络近似成为:

 

在每个智能体上部署一个策略网络和一个价值网络,它们的参数记作 \theta^j w^j
智能体之间不共享参数\theta^i \ne \theta^j, w^i \ne w^j
这样一来,训练就可以在智能体本地完成,无需中央控制器的参与,无需任何通信。

 6.2.1  去中心化训练

        假设所有智能体的奖励都是相同的,而且每个智能体都能观测到奖励 r
        每个智能体独立做训练,智能体之间不做通信,不共享观测、动作、参数。
        这样一 来, MAC-A2C 就变成了标准的 A2C ,每个智能体独立学习自己的参数 \theta^j w^j

        实际实现的时候,每个智能体还需要一个目标网络,记作v(s;w^{i-}),它的结构与v(s;w^i)相同,但是参数不同。

        设第 i 号智能体的策略网络、价值网络、目标网络当前参数分别为

\theta_{now}^i,w_{now}^i,w_{now}^{i-}。该智能体重复以下步骤更新参数:

 

不难发现,上面的这一套训练流程和单智能体的A2C类似。

去中心化训练的本质就是单智能体强化学习 (SARL) ,而非多智能体强化学习 (MARL)
MARL 中,智能体之间会相互影响,而本节中的“去中心化训练”把智能体视为独立个体,忽视它们之间的关联,直接 用 SARL 方法独立训练每个智能体。
用上述 SARL 的方法解决 MARL 问题, 在实践中效果往往不佳

6.2.2 去中心化决策

完成训练后,智能体只需要用其本地部署的策略网络\pi(a^i|o^i;\theta^i)做决策即可,决策过程无需通信。

去中心化执行的速度很快,可以做到实时决策。

6.3 中心化训练+去中心化决策

  •  前面小两节讨论了完全中心化与完全去中心化,两种实现各有优缺点。当前更流行的MARL 架构是“中心化训练 + 去中心化决策”。
    • 训练的时候使用中央控制器,辅助智能体做训练;见图 15.7
    • 训练结束之后,不再需要中央控制器,每个智能体独立根据本地观测o^i做决策;见图 15.8

 

         本小节与“完全中心化”使用相同的价值网络 v(s; w) 及其目标网络v(s;w^{i})

        本小节与“完全去中心化”使用相同的策略网络:

         

        第 i 号策略网络的输入是局部观测 o^i,因此可以将其部署到第 i 号智能体上。

        价值网络 v(s; w) 的输入是全局状态s_t=[o_t^1,\cdots,o_t^m],因此需要将其部署到中央控制器上。

6.3.1 中心化训练

        训练的过程需要所有 m 个智能体共同参与,共同改进策略网络参数\theta^1,\cdots,\theta^m与价值网络参数 w

                
        设当前 m 个策略网络的参数为\theta_{now}^1,\cdots,\theta_{now}^m
        设当前价值网络和目标网络的参数分别是w_{now},w_{now}^-。训练的流程如下:

 

(和去6.2中心化训练类似) 

和6.1中心化训练类似 

(和去6.2中心化训练类似) 

6.3.2 去中心化决策 

     在完成训练之后,不再需要价值网络 v ( s ; w)。智能体只需要用本地部署的策略网络 \pi(a^i|o^i;\theta^i)
做决策,决策过程无需通信。去中心化执行的速度很快, 可以做到实时决策。

 

  • 11
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
强化学习模仿学习于robot 写在前⾯: 分享知识是再好不过的事情。这篇⽂章主要是总结⾃⼰最近看的⼀些⽂章以及相关知识。⾃⼰在暑假实习的时候学习的就 是在物理仿真平台上做robot的强化学习,未来读PhD的时候也被⽼师继续分配到了这个⽅向,哈哈。可能要⼀直从⼊门到⼊⼟了,趁 着最近写research proposal的时候,将最近的理解记录⼀下。鉴于笔者知识⽔平有限,若有不妥当之处,还请指出。 摘要: 摘要:robot 强化学习 强化学习 模仿学习 模仿学习 介绍 介绍 从Google的alphago以绝对优势接连战胜⼈类围棋中的佼佼者(李世⽯, 柯洁)之后,这总结果当然是震撼的,从此⼈⼯智能声名⼤噪。但是 纵使⽬前能使机器智⼒超群,围棋上的造诣⽆⼈能⽐,但是它还是连⼀颗棋⼦都拿不起来。⼤家总在畅想未来各种家居机器⼈会成为我们得 ⼒的助⼿,洗碗做饭洗⾐服,任劳任怨不叫苦。当然理想还是要有的,只不过实现起来路还是很长的。现在让机器⼈学会倒杯⽔都是很困难 的。。。 早在1921年karel Capek就为我们第⼀次描述了⼀个机器⼈应该长什么样⼦:it should look like a human being。⾃从那时起,⼩说家 们开始将这⼀想法发扬光⼤,在各式各样的科幻⼩说中,很多超过⼈的智能机器层出不穷。⽽现实呢,研究员们还在为实现最简单的可称得 上"智能"的机器⽽夜以继⽇(artist的创作⼒真是远超scientist)。在做⼯程与研究的⼈眼中,类⼈的机器⼈就是合适材料组装的,质量 尽可能轻的,有各种各样的motors还有各种各样的传感器的集合。但是在这样的基础上让机器学会推理(reasoning)是很困难的。⽬前 为⽌,机器⼈也就只能重复性的完成那些被⼈为设计好,写在程序中的任务。为了克服这种需要⼈为给每个动作编程的繁琐步骤,我们迫切 的需要⼀种新的算法。然后强化学习(Reinforcement Learning)被拿来⽤了。 Reinforcement Learning ⼀张图简单介绍下强化学习,我们前⾯提到的robot就是图中的智能体agent。每个agent都是肩负⼀个使命的,并且要为这个使命在环境 (environment)中不断探索(actions),每探索⼀次都会到达⼀个新的状态(state)也会得到环境对这个action的反馈(reward)。 往往我们的reward就是根据target来设定的,所以要实现的⽬标也等价于获得最⼤的累计回报。举个简单的例⼦(例⼦才是最能说明问题 的),flabbybird 相信⼤部分⼈都玩过,没玩过可以玩⼀玩(强迫症绝对停不下来。。。)。 这个游戏⾥⾯呢,⼩鸟就是我们的agent,环境就是各种各样的⽔管,state就是对环境的观测值(包括鸟的速度啊,⽔管距离啊等等),我 们的⽬标呢就是穿越尽可能多的⽔管,能采取的action就是点⼀下或者不点,每穿越⼀个⽔管就会得到⼀个值是1的reward,若是不⼩⼼撞 到⽔管那就得到-1的reward然后游戏结束。这个例⼦中动作空间是离散的也⽐较简单,⽤的就是DQN的算法,是很不错的强化学习的⼊门 例⼦,有兴趣可以去玩⼀玩。 关于强化学各种各样的算法,诸如Q-learning,SARSA,policy gradient等,我就不在这⾥列公式了,看见公式我也晕,讲的也可能没有 ⼈家好,建议有兴趣的⼈可以去看下CS294课程,还有这⾥有⼀些博客链接: 做了基本的了解之后,我们⾔归正传,强化学习真的在近些年来被证明是做motion control 任务的⾮常有效的⽅法。基于各种各样的仿真 平台⽐如gym,dart,以及很多优秀的物理模拟⼯具 mujoco,bullet。让研究者们可以⾮常⽅便的搭建⾃⼰的agent,从⼈,动物甚⾄到 ⾃⾏车,再者还有集成各种强化学习算法的平台(如baseline, tensorflow agent)让研究者可以⾮常⽅便的调⽤或者编写⾃⼰的强化学 习算法。所以在图形学领域,这个⽅向算是成为了⼀个热点吧,⼯作⽐较突出的,最敬佩的应该是Berkeley的⼤神博⼠⽣ Xuebin Peng 吧。 他实现了⼀些列关于强化学习⽤于模拟智能体的⼯作,⽐如⼀维和三维的障碍跨越,在最近的⽂章⾥还实现了学杂技,也是让⼈眼前⼀亮 了。所以⼤家可⼀看到强化学习在这个⽅向上的潜⼒与效果。(⽆脑宣传⼀波,暑假张⽼师 提的idea做⾃⾏车的训练也是⾮常的 exciting)。 好,吹完了开始⿊了。 强化学习在做motion control是极好的,但是往往⼀开始产⽣的都是⼀些⾮常滑稽的,不对称的动作,为了解决这个问题,研究者们就开始 将⽬光投到cost function上去,⽐如Wenhao Yu()他们的设计了⼀种新颖的⽅式计算动作的协调对称
多智能体强化学习控制策略是一种基于多智能体强化学习的交通信号控制方法。通过这种方法,没有预设的控制模型,多个智能体可以学习在实时交通状况下的最优控制策略。每个智能体都有自己的策略网络,用于做出决策。在训练过程中,每个智能体都需要了解全局状态来计算梯度,因此必须进行信息交换或对策略网络和价值函数进行逼近。然而,需要注意的是,这种方法被称为去中心化训练,而不是真正的多智能体强化学习,因为它忽视了智能体之间的相互影响,而是独立地训练每个智能体。在实践中,使用这种方法解决多智能体强化学习问题的效果通常不佳。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [采用多智能体强化学习的交通信号优化控制.pdf](https://download.csdn.net/download/weixin_38743737/11731602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [多智能体强化学习合作关系设定下的多智能体强化学习](https://blog.csdn.net/qq_40206371/article/details/125091910)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

UQI-LIUWJ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值