[控场AI]
· 5 分钟阅读· 2,600 字

双强化学习智能体协同“筷子夹火箭”:Mechazilla 捕获超重型助推器实战

双强化学习智能体协同“筷子夹火箭”:Mechazilla 捕获超重型助推器实战

开发者用双智能体强化学习在浏览器中模拟超重型助推器被机械臂捕获,采用分阶段课程学习解决协作难题。

本文介绍了一个用强化学习模拟超重型助推器被发射塔机械臂捕获的项目。两个 PPO 智能体分别控制助推器和塔臂,在 JAX 单 GPU 上训练,并施加了重度域随机化。作者发现两个智能体无法同时从零训练,于是采用分阶段课程学习:先训练助推器配规则塔,再冻结助推器训练塔,最后联合微调。过程中解决了短 rollout 导致的遗忘问题,并发现联合微调时需大幅降低学习率。项目验证了课程学习、rollout 长度匹配、辅助策略替换和低学习率微调等实用经验,但协作仍依赖分阶段训练而非端到端优化,部分细节未公开。

从猎鹰9号到超重型:一次更复杂的 RL 挑战

几天前,一位开发者在 Reddit 上分享了用 PPO 智能体在无人船上降落猎鹰 9 号的项目。现在,他把问题升级了:让两个相互依赖的强化学习智能体协作,完成超重型助推器(Super Heavy)被发射塔机械臂(即“Mechazilla”)捕获的任务。一个智能体负责飞行助推器,另一个负责控制塔臂和滑车。整个模拟运行在浏览器中,可以实时观看两个智能体的表现。

据作者介绍,训练环境使用 JAX 实现的 PPO,在单块 GPU 上运行,并施加了重度域随机化:风、阵风、发动机失效、重新点火失败、传感器噪声与延迟、质量和推力变化、推进剂受限。每次尝试都从数公里高空、发动机熄火状态开始。

Mechazilla 双智能体模拟截图

双智能体训练的核心难题:不能同时从零开始

作者很快发现,两个智能体无法同时从零训练。塔臂在助推器从未出现时没有任何可学习信号,而助推器在塔臂从不闭合时也永远得不到捕获奖励。这是一个典型的稀疏奖励多智能体协作问题。

他的解决方案是分阶段训练:先训练助推器,配一个简单的基于规则的塔(当助推器靠近时闭合臂);然后冻结助推器,从零训练塔智能体;最后再微调助推器,与已学会的塔配合。这个课程学习(curriculum learning)策略是项目能跑通的关键。

第一阶段:助推器 + 规则塔

即便有规则塔辅助,助推器学习完整进近过程也花了很长时间。作者发现,短 rollout(1.6 秒)会导致智能体“忘记”如何捕获,因为一次捕获需要数秒的缓慢稳定下降,同时塔臂闭合。将 rollout 延长到 6.4 秒并设置 λ = 0.99 后,这个问题得到解决。这提示我们,在长时序任务中,rollout 长度必须覆盖完整的成功行为周期。

PPO(Proximal Policy Optimization) 是一种基于策略梯度的强化学习算法,通过限制策略更新的幅度来保证训练的稳定性。其核心是使用裁剪的替代目标函数,避免新策略与旧策略差异过大。PPO 属于 on-policy 算法,需要收集当前策略的轨迹进行更新。在本文中,rollout 长度(即每次采样轨迹的长度)直接影响 PPO 对长时序任务的建模能力:如果 rollout 太短,优势估计(advantage estimation)无法覆盖完整的成功行为周期,导致策略“遗忘”长程依赖。作者将 rollout 从 1.6 秒延长到 6.4 秒,正是为了让 PPO 能够观测到捕获的完整过程,从而正确分配奖励。

第二阶段:从零训练塔智能体

冻结助推器后,塔智能体从零开始训练。初期它只是乱挥臂,不断撞到助推器。作者也尝试过将规则塔慢慢淡出(fading),但一旦辅助消失,训练立刻崩溃。经过若干修复后,从零训练的塔最终胜出,捕获可靠性甚至高于规则塔。

课程学习(Curriculum Learning) 是一种训练策略,通过逐步增加任务难度或改变环境分布来引导智能体学习。在强化学习中,课程学习常用于解决稀疏奖励和探索困难问题。本文的分阶段训练正是课程学习的体现:先让助推器在简单规则塔下学习基本进近,再冻结助推器训练塔智能体,最后联合微调。这种“由易到难”的课程设计避免了两个智能体同时从零开始导致的“鸡生蛋”困境。值得注意的是,课程学习的关键在于阶段间的平滑过渡,作者尝试的规则塔淡出(fading)策略失败,说明直接改变环境分布可能破坏已学策略的稳定性,而分阶段替换更为稳健。

第三阶段:助推器适应学习型塔

再次训练助推器、与已学会的塔配合时,出现了意外:性能迅速变差。助推器进近速度略快,从臂上滑脱。将学习率大幅调低后问题解决,两者配合如今明显优于规则塔方案。这说明在联合微调时,较低的学习率有助于稳定策略更新,避免破坏已经学到的精细行为。

稀疏奖励(Sparse Reward) 指的是智能体只有在完成整个任务(如成功捕获)时才能获得奖励信号,中间步骤缺乏反馈。在超重型捕获任务中,只有当塔臂闭合且助推器稳定悬停时,才能判定为成功,因此智能体在随机探索中极少能偶然触发该奖励,学习效率极低。稀疏奖励问题通常通过奖励塑造(reward shaping)、课程学习(curriculum learning)或分层强化学习来缓解。本文中,作者利用规则塔在早期提供密集的“接近”信号,本质上是通过环境设计将稀疏奖励转化为可学习的稠密反馈,这是解决多智能体稀疏奖励协作的常见思路。

技术细节与工程启示

项目采用 PPO + JAX 单 GPU 训练,域随机化覆盖了真实火箭回收中的主要不确定性来源。浏览器实时演示降低了公众理解 RL 的门槛。作者坦言自己并非 ML 专家,特别欢迎对多智能体部分的反馈。

从工程角度看,这个项目验证了几条实用经验:课程学习对稀疏奖励协作任务是必要的;rollout 长度需匹配任务时间尺度;辅助规则策略直接淡出不如分阶段替换稳健;联合训练阶段使用更小学习率可防止策略崩溃。

域随机化(Domain Randomization) 是一种提升强化学习策略鲁棒性和泛化能力的技术,通过在训练过程中随机化环境参数(如物理属性、噪声、延迟等),使智能体学会适应各种不确定性,从而缩小仿真到现实的差距。本文中,作者对风、阵风、发动机失效、传感器噪声与延迟、质量和推力变化、推进剂受限等进行了重度随机化,覆盖了真实火箭回收中的主要扰动源。域随机化的代价是训练难度增加,但能显著提升策略在未见场景下的表现。对于超重型捕获这类高风险任务,域随机化是必不可少的工程手段。

局限与待解问题

目前两个智能体的协作仍依赖分阶段训练,而非端到端联合优化。规则塔的辅助在第二阶段被完全替换,但淡出策略失败的原因尚未深入分析。域随机化的具体参数分布、奖励函数设计细节也未在原文中展开。对于多智能体强化学习研究者,这些是值得进一步探索的方向。

作者提供的在线演示地址为 https://qforge-dev.github.io/hoverslam ,同时还有此前猎鹰模拟的实验场。

#强化学习#PPO#多智能体#Mechazilla#超重型助推器#JAX#课程学习#火箭回收
分享:

相关推荐