MADDPG论文理解

最近在研究多智能体深度强化学习方向方面的论文,想根据不同论文将自己的学习过程记录一下,最近看了MADDPG和COMA这两篇基于AC方法的文章,这篇主要记录下对于MADDPG论的理解。
MADDPG 针对合作竞争混合环境下的多智能体演员评论家算法
(Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments)
首先这是一篇17年发表在NISP上的论文,是基于DDPG针对多智能体环境下的改进,而DDPG又是基于经典AC算法解决不容易收敛问题提出的。

对于MADDPG来说,同样是解决的传统强化学习不适用于多智能体的应用环境下,这里我们重点关注一下它的三个主要贡献点

1、首先第一点,集中式训练分布式执行,指的是在训练过程中由critic集中式共享全局信息,执行过程中actor分布式获取局部信息(当前智能体的观察信息),在这里,每个智能体维持一个单独的critic和actor,如下图

2、 其中因为critic需要共享全局信息,就要获取到其他智能体的策略信息,所以又引出了第二点贡献,提出估计其他智能体策略的方法

公式L表示的是代价函数,这里的

表示的就是智能体i对智能体j的策略估计,当代价函数取得最小值时,这时我们就可以认为Uij就是j的策略。
3、但是针对这种策略估计的方法来说可能会为了过度适应智能体的动作而制定出强有力的策略,也就是说可能会产生过拟合的情况,针对这一点,文章由提出了一个新方法,策略集合优化,也就是将一个策略划分成k个子策略集合的思想,每次从k个子策略中特定选取一个Pk进行执行

文章中也给出了不同的实验分析,对于实验环境,文章设计了不同的场景,包括有合作通信,捕食者-猎物,合作导航,物理欺骗。

网上也有很多关于MADDPG实验复现的教程,大家可以尝试动手去复现,这里提醒大家一下,MADDPG对于实验的配置要求比较要个,像是python、gym、tensorflow的版本等等,大家多加注意。

最后提一点,通过实验发现,当智能体数量增多(大于5个的时候),环境就会出现紊乱情况,智能体不能得到很好的收敛,也就是说MADDPG目前可能并不适用于大规模的多智能体深度强化学习场景下,这个也有人说是因为集中式学习分布式执行导致的,下一步我也准备继续进行学习了解下。

### 集中式训练与分布式执行的区别 #### 定义与概念 集中式训练指的是所有的计算资源集中在单一位置完成模型的训练过程。这种模式下,数据集被加载到中心服务器上,并在此处进行迭代优化直至收敛[^1]。 相比之下,分布式执行意味着将任务分解成多个子任务并分配给不同的节点来共同完成整个工作流程。对于机器学习而言,这通常涉及到参数更新同步机制以及跨节点间通信开销管理等问题[^2]。 #### 实现方式差异 在具体实现方面: - **集中式训练** - 数据存储于中央仓库; - 所有运算都在一台或多台紧密耦合(即低延迟高带宽连接)计算机集群内完成; - 更容易控制环境变量,调试也相对简单; - **分布式执行** - 支持更大规模的数据处理能力,因为可以利用地理分布广泛的硬件设施; - 对网络质量依赖较大,需考虑容错性和负载均衡等因素[^3]。 ```python # 这里给出一个简单的例子展示两种架构下的伪代码对比 # 集中式训练 def centralized_training(data): model = initialize_model() while not converged: gradients = compute_gradients(model, data) update_parameters(model, gradients) # 分布式执行 (简化版) from multiprocessing import Pool def distributed_execution(chunk_of_data): local_model = load_latest_snapshot() # 假设有一个全局版本控制系统 chunk_gradients = compute_gradients(local_model, chunk_of_data) if __name__ == '__main__': pool = Pool(processes=number_of_workers) results = [] for worker_id in range(number_of_workers): result = pool.apply_async(distributed_execution, args=(data_chunks[worker_id],)) results.append(result) # 合并结果... ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值