强化学习笔记:连续控制与 MADDPG
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强化学习笔记:连续控制与 MADDPG相关的知识,希望对你有一定的参考价值。
多智能体强化学习:合作关系设定下的多智能体强化学习_UQI-LIUWJ的博客-CSDN博客
非合作关系设定下的多智能体强化学习_UQI-LIUWJ的博客-CSDN博客
都是对A2C的多智能体改进,仅限于离散控制。
我们现在研究连续控制问题:也就是动作空间都是连续集合,动作
是向量。
1 策略网络 和价值网络
设系统里有 m 个智能体。每个智能体对应一个策略网络和一个价值网络
- 策略网络是确定性的:对于确定的输入
,输出的动作
是确定的。
- 价值网络的输入是全局状态
与所有智能体的动作
,输出是一 个实数,表示“基于状态 s 执行动作 a”的好坏程度。
-
第
i 号策略网络
用于控制 第 i 号智能体,
-
价值网络
则用于评价所有动作 a ,给出的分数可以指导第 i 号策略网络做出改进
![](https://image.cha138.com/20220606/49ebabfd80bb44c99729548a309e02cf.jpg)
2 算法推导
训练策略网络和价值网络的算法与单智能体 DPG 非常类似:用确定策略梯度更新策略网络,用 TD 算法更新价值网络。 强化学习笔记:连续控制 & 确定策略梯度DPG_UQI-LIUWJ的博客-CSDN博客![](https://image.cha138.com/20220606/36c1237d0c894436b4642633ee34d79b.jpg)
![](https://image.cha138.com/20220606/794204c532144b88bfaa7e2cee42796c.jpg)
![](https://image.cha138.com/20220606/d4255caa9e564295be155a9e74838a12.jpg)
2.1 训练策略网络
训练第 i 号策略网络![](https://image.cha138.com/20220606/b5751fc9b8ee473f986ae583c4525b1c.jpg)
![](https://image.cha138.com/20220606/c215ab22394c42188df4d5a044066c96.jpg)
![](https://image.cha138.com/20220606/5850746a6096445eb3452008c0c99314.jpg)
这里的期望是关于状态S求的。我们可以使用蒙特卡洛近似,从经验回放数组中随机抽取一个状态
它可以看做是随机变量 S 的一个观测值。用所有 m 个策略网络计算动作
![](https://image.cha138.com/20220606/a6e3e70e014e4fc7bd9dbfb0925b5a0a.jpg)
这里 ,于是用链式法则有:
进而我们可以用梯度上升更新参数
这里注意一点:
在更新第 i 号智能体的策略网络的时候,除了用到 全局状态 ,还需要用到 所有智能体的策略网络 ,以及 第 i 号智能体的价值网络2.2 训练价值网络
可以用 TD 算法训练第 i 号价值网络![](https://image.cha138.com/20220606/dd53bae739db41e694c06339508b75a4.jpg)
![](https://image.cha138.com/20220606/9819e5a42bb54cce9f64cb0a382950b3.jpg)
![](https://image.cha138.com/20220606/794204c532144b88bfaa7e2cee42796c.jpg)
![](https://image.cha138.com/20220606/e26bce270a2e449e811473e2f14a548c.jpg)
记,我们计算TD目标
再计算 TD 误差:
![](https://image.cha138.com/20220606/99dca9dcefc2464b93d4d7650a66b842.jpg)
![](https://image.cha138.com/20220606/fa5e51ab5d8b4a1b9f1696c8ff0728fe.jpg)
3 中心化训练
为了训练第 i 号智能体的策略网络和 价值网络,我们需要用到如下信息:- 从经验回放数组中取出的
- m个智能体的策略网络
- 第i 号智能体的价值网络
3.1 用行为策略收集经验
智能体把其观测![](https://image.cha138.com/20220606/b1f7d54204a5413aa2f292a09a1b529c.jpg)
![](https://image.cha138.com/20220606/b5751fc9b8ee473f986ae583c4525b1c.jpg)
![](https://image.cha138.com/20220606/2f595745605949528ff1b1a33e9045ba.jpg)
![](https://image.cha138.com/20220606/2f595745605949528ff1b1a33e9045ba.jpg)
![](https://image.cha138.com/20220606/ba77a28803ac4efcb3687008518c78bf.jpg)
![](https://image.cha138.com/20220606/b1f7d54204a5413aa2f292a09a1b529c.jpg)
![](https://image.cha138.com/20220606/2f595745605949528ff1b1a33e9045ba.jpg)
![](https://image.cha138.com/20220606/ba77a28803ac4efcb3687008518c78bf.jpg)
3.2 中央控制器更新策略网络和价值网络
实际实现的时候,中央控制器上还需要有如下目标网络
设第 i 号智能体当前的参数为:
![](https://image.cha138.com/20220606/794204c532144b88bfaa7e2cee42796c.jpg)
![]()
和DPG一样,注意一下经验回放的at只有更新价值网络的使用用到过一次
3.3 和MAN-A2C的异同
我们横向看一下这两个模型
不难发现,虽然都是中心化训练+去中心化决策,但是MAN-A2C是策略函数直接内嵌在智能体上;MADDPG是先放在中央控制器上,训练好了再挪下来。
为什么会这样呢?我个人觉得是通信要传输的量不同导致的:
假如MADDPG的策略网络一直在agent上的话:
没有经验回放的话,智能体需要多传一个a到价值网络中去(价值网络中同时需要
才能进行更新)——>传输的参数量比MAN-A2C大,这样会影响运行效率
如果有经验回放的话,中央控制器得添加两次传输:将经验回放的o传给每个agent,每个agent将策略传回中央控制器。这样的话运行时间就更没有保障了
综上,这可能是MADDPG在训练的时候将策略网络放在中央控制器的原因
3.4 改进方法
和改进TD3 一样:
还可以在策略网络和价值网络中使用RNN,记忆历史观测
强化学习笔记:不完全观测问题_UQI-LIUWJ的博客-CSDN博客
4 去中心化决策
以上是关于强化学习笔记:连续控制与 MADDPG的主要内容,如果未能解决你的问题,请参考以下文章