带有MADDPG的网球:在Pytorch上实现MADDPG
去发现同类优质开源项目:https://gitcode.com/
项目简介
本项目是“合作与竞争”系列的第三部分,通过一个网球环境模拟了两个智能体(特工)之间的互动。在这个环境中,两名特工分别控制一个球拍,目标是使球在球网上弹跳,从而获得奖励。具体的,当特工成功将球击中网时,将获得+0.1的奖励;而当球被击中地面或越界时,特工将得到-0.01的惩罚。因此,每个特工的核心目标就是尽可能长时间地保持球权。
环境描述
在该环境中,观察空间由8个变量组成,这些变量分别表示球和球拍的位置与速度。每个特工只能获得自己的局部观察结果。此外,每个特工可以执行两种连续动作,分别对应于朝向(或远离)球网的运动以及跳跃。
算法介绍
为了解决这一环境,本项目采用了Multi-DDPG(多智能体深度确定性策略梯度)算法。在该算法中,每个特工都拥有独立的演员(Actor)和评论家(Critic)网络进行训练。每个特工的评论家网络不仅将自身的演员行为和状态作为输入,还会将其他所有特工的状态和行为考虑在内。这样的设计使得在测试过程中,每个特工可以独立地学习自己的奖励结构,而不会受到其他特工的干扰。
效果展示
以下图展示了最终的奖励进度。从图中可以看出,所实现的MADDPG算法在1820集训练后成功解决了该环境。
(此处应有图,但由于要求不包含链接,故省略)
注意事项
- 本项目基于Pytorch深度学习框架实现。
- 为了获得最佳效果,建议按照项目提供的训练步骤进行详细训练。
- 在实际应用中,可以根据需要对环境参数和算法设置进行适当调整。
去发现同类优质开源项目:https://gitcode.com/
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考