深度学习精华:连续操控下的MADDPG强化学习指南
多智能体强化学习:合作关系设定下的多智能体强化学习_UQI-LIUWJ的博客-****博客
非合作关系设定下的多智能体强化学习_UQI-LIUWJ的博客-****博客
都是对A2C的多智能体改进,仅限于离散控制。
我们现在研究连续控制问题:也就是动作空间都是连续集合,动作是向量。
1 策略网络 和价值网络
设系统里有 m 个智能体。每个智能体对应一个策略网络和一个价值网络
- 策略网络是确定性的:对于确定的输入,输出的动作是确定的。
- 价值网络的输入是全局状态与所有智能体的动作,输出是一 个实数,表示“基于状态 s 执行动作 a”的好坏程度。
-
第 i 号策略网络用于控制 第 i 号智能体,
-
价值网络 则用于评价所有动作 a ,给出的分数可以指导第 i 号策略网络做出改进
2 算法推导
2.1 训练策略网络
这里的期望是关于状态S求的。我们可以使用蒙特卡洛近似,从经验回放数组中随机抽取一个状态
它可以看做是随机变量 S 的一个观测值。用所有 m 个策略网络计算动作
这里 ,于是用链式法则有:
进而我们可以用梯度上升更新参数
这里注意一点:
2.2 训练价值网络
记,我们计算TD目标
再计算 TD 误差:
3 中心化训练
- 从经验回放数组中取出的
- m个智能体的策略网络
- 第i 号智能体的价值网络
3.1 用行为策略收集经验
3.2 *控制器更新策略网络和价值网络
实际实现的时候,*控制器上还需要有如下目标网络
设第 i 号智能体当前的参数为:
和DPG一样,注意一下经验回放的at只有更新价值网络的使用用到过一次
3.3 和MAN-A2C的异同
我们横向看一下这两个模型
不难发现,虽然都是中心化训练+去中心化决策,但是MAN-A2C是策略函数直接内嵌在智能体上;MADDPG是先放在*控制器上,训练好了再挪下来。
为什么会这样呢?我个人觉得是通信要传输的量不同导致的:
假如MADDPG的策略网络一直在agent上的话:
没有经验回放的话,智能体需要多传一个a到价值网络中去(价值网络中同时需要 才能进行更新)——>传输的参数量比MAN-A2C大,这样会影响运行效率
如果有经验回放的话,*控制器得添加两次传输:将经验回放的o传给每个agent,每个agent将策略传回*控制器。这样的话运行时间就更没有保障了
综上,这可能是MADDPG在训练的时候将策略网络放在*控制器的原因
3.4 改进方法
和改进TD3 一样:
强化学习笔记:双延时确定策略梯度 (TD3)_UQI-LIUWJ的博客-****博客
还可以在策略网络和价值网络中使用RNN,记忆历史观测
强化学习笔记:不完全观测问题_UQI-LIUWJ的博客-****博客