梁芳 發表於 2025-10-9 08:51:00

多智能体强化学习算法(MAPPO, Multi-Agent Proximal Policy Optimization)

<p>多智能体强化学习算法分为 中心式和分散式</p>
<p><span style="font-size: 16px">中心式</span>的思想是考虑一个合作式的环境,直接将单智能体算法扩展,让其直接学习一个<span style="color: rgba(255, 0, 0, 1)">联合动作的输出</span>,但是并不好给出单个智能体该如何进行决策。<br><span style="font-size: 16px">分散式</span>是每个智能体独立学习自己的奖励函数,对于每个智能体来说,其它智能体就是环境的一部分,因此往往需要去考虑环境的非平稳态,并且分散式学习到的并不是全局的策略。</p>
<p>最近的一些工作提出了两种框架连接中心式和分散式这两种极端方法,从而得到折衷的办法:<span style="color: rgba(255, 0, 0, 1)">中心式训练分散式执行</span>(centealized training and decentralized execuation,CTDE)<em id="__mceDel">和值分解(value decomposition,VD)</em></p>
<p>&nbsp;</p>
<p><em>PPO 是近年来最流行的强化学习算法之一,它通过引入裁剪的策略更新,解决了传统策略梯度方法(如TRPO)中<span style="color: rgba(255, 0, 0, 1)">策略更新步长过大导致训练不稳定</span>的问题。在多智能体环境中,多个智能体同时学习策略,每个智能体的行为会影响其他智能体的决策,因此需要一个鲁棒且稳定的策略优化方法。</em></p>
<p><em>MAPPO通过<span style="color: rgba(255, 0, 0, 1)"><strong>中心化的Critic</strong>和去中心化的Actor</span>来实现多智能体的协同训练,并采用PPO的优势来提高多智能体环境下的学习效率和稳定性。</em></p>
<p>MAPPO继承了PPO的核心思想,并结合了多智能体系统的特点,采用了集中式<strong>训练,分布式执行</strong>的架构:</p>
<ul>
<li><strong>集中式训练</strong>:在训练阶段,所有智能体的Critic网络都能够访问全局的状态和其他智能体的动作信息,以便于学习到更准确的价值函数。</li>
<li><strong>分布式执行</strong>:在执行阶段,每个智能体只使用自己观测到的局部状态和策略进行动作选择,保证了系统的分布式控制。</li>
</ul>
<p><em id="__mceDel"><em id="__mceDel">&nbsp;</em></em></p>
<h2 id="H24">具体公式</h2>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MAPPO算法主要分为两部分:<strong>策略更新</strong>和<strong>价值函数估计</strong>。我们将分别介绍这两部分的公式。</p>
<ol><ol>
<li>
<p><strong>策略更新</strong>:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在PPO中,策略更新的目标是通过最大化策略的期望回报来更新策略。然而,直接使用策略梯度更新容易导致大的策略变化。因此,PPO引入了一个裁剪目标函数来限制每次更新的策略变化幅度。MAPPO也遵循相同的原则,但应用在每个智能体 ( i ) 的策略上。</p>
</li>
<li>
<p><strong>价值函数估计</strong>:</p>
<p>每个智能体&nbsp;的价值函数由一个中心化的Critic网络估计。Critic网络使用全局状态和所有智能体的动作&nbsp;来估计全局的价值函数。MAPPO通过使用中心化Critic保证每个智能体在训练过程中可以考虑到其他智能体的策略,从而学到更有效的策略。</p>
<p>Critic的目标是最小化均方误差(MSE)损失函数。</p>
</li>
<li>
<p><strong>优势函数的计算</strong>:</p>
<p>优势函数<em>&nbsp;用于衡量某个动作&nbsp;相对于当前策略下平均动作的优劣程度。</em></p>
</li>
</ol></ol>
<h2 id="H25">算法流程</h2>
<ol>
<li>
<p><strong>初始化</strong>:为每个智能体初始化策略网络&nbsp;和Critic网络&nbsp;,并初始化对应的目标网络。</p>
</li>
<li>
<p><strong>交互与经验收集</strong>:每个智能体根据当前策略与环境交互,并存储每个时间步的状态、动作、奖励、下一状态、价值等信息。</p>
</li>
<li>
<p><strong>计算回报和优势</strong>:通过时间差分法计算每个智能体的回报&nbsp;和优势函数。</p>
</li>
<li>
<p><strong>更新Critic网络</strong>:根据Critic损失函数更新每个智能体的Critic网络参数,最小化均方误差。</p>
</li>
<li>
<p><strong>更新Actor网络</strong>:根据裁剪的PPO目标函数,使用策略梯度法更新每个智能体的策略网络参数。</p>
</li>
<li>
<p><strong>软更新目标网络</strong>:使用软更新机制逐步更新目标网络的参数。</p>
</li>
<li>
<p><strong>重复</strong>:循环进行以上步骤,直到智能体策略达到收敛。</p>
</li>
</ol>
<h2 id="H27">优势与应用场景</h2>
<ul>
<li>
<p><strong>鲁棒性与稳定性</strong>:PPO算法引入的裁剪更新机制使策略梯度更新更加稳定,避免了更新幅度过大的问题。MAPPO继承了这一优势,能够在多智能体环境中提供更稳定的策略更新。</p>
</li>
<li>
<p><strong>集中式训练与分布式执行</strong>:通过中心化的Critic结构,智能体可以利用全局信息进行策略训练,而去中心化的Actor使得智能体在执行过程中只依赖局部观测,提高了算法的灵活性和扩展性。</p>
</li>
<li>
<p><strong>适应复杂的多智能体环境</strong>:MAPPO可以处理多智能体环境中的协作、竞争或混合型任务,非常适用于复杂的多智能体系统,如机器人集群、自动驾驶车队、多人游戏等。</p>
</li>
</ul><br><br>
来源:https://www.cnblogs.com/pass-ion/p/19130416
頁: [1]
查看完整版本: 多智能体强化学习算法(MAPPO, Multi-Agent Proximal Policy Optimization)