公司动态
多智能体强化学习:MADDPG算法原理与实践
1. 多智能体强化学习的关键挑战在传统的单智能体强化学习RL环境中智能体通过与固定环境互动来学习最优策略。但当多个智能体同时存在时环境会因其他智能体的行为而动态变化这带来了三个核心难题环境非平稳性每个智能体的策略都在持续更新导致其他智能体感知的环境状态转移概率不断变化。用数学表达对于智能体i其状态转移函数P(s|s,a_i)在单智能体场景中是固定的但在多智能体场景中变为P(s|s,a_i,a_-i)其中a_-i表示其他智能体的联合动作。信用分配问题当多个智能体共同获得团队奖励时难以确定每个个体的贡献程度。例如在足球比赛中虽然进球得分是团队成果但需要区分传球者、助攻者和射门者的各自贡献。策略收敛困难独立学习的智能体容易陷入策略震荡——当一个智能体改变策略时其他智能体需要重新适应形成恶性循环。这类似于金融市场中交易算法之间的相互影响。经典案例在简单的网格世界追逐游戏中两个独立训练的DQN智能体追捕目标时会出现绕圈跑现象——因为每个智能体都试图优化自己的即时奖励而忽略了协作堵截的最优策略。2. MADDPG算法架构解析2.1 核心设计思想MADDPGMulti-Agent Deep Deterministic Policy Gradient采用集中训练分散执行的范式其创新点主要体现在集中式Critic设计每个智能体的Q函数接收全局状态s和所有智能体的联合动作(a_1,...,a_N)作为输入但在执行时仅需要本地观察o_i。这种设计在训练时提供全局信息而在实际部署时保持分布式执行的可行性。策略集成训练在训练阶段每个智能体不仅学习自己的策略还维护其他智能体策略的估计版本。具体实现是通过经验回放池存储元组(s,o_1,...,o_N,a_1,...,a_N,r_1,...,r_N,s)其中包含所有智能体的观察和动作。参数共享机制对于同质化智能体如无人机群可以采用共享的Actor-Critic网络参数大幅降低训练复杂度。此时需要为每个智能体添加可区分的ID编码作为网络输入。2.2 算法数学表述对于N个智能体MADDPG的目标函数可表示为J(θ_i) [Q_i^π(s,a_1,...,a_N)|a_iπ_i(o_i)]其中Q_i^π是智能体i的集中式动作价值函数π{π_1,...,π_N}是所有智能体的策略集合。对应的梯度更新为∇θ_i J(θ_i) ≈ [∇θ_i π_i(a_i|o_i) ∇a_i Q_i^π(s,a_1,...,a_N)|a_iπ_i(o_i)]Critic的更新采用TD误差最小化L(φ_i) [(Q_i^π(s,a_1,...,a_N) - y)^2] y r_i γ Q_i^π(s,π_1(o_1),...,π_N(o_N))其中π和Q表示目标网络参数通过软更新τ通常取0.01保持训练稳定性 θ_i ← τθ_i (1-τ)θ_i3. 关键实现细节3.1 网络结构设计典型实现包含以下组件Actor网络输入层智能体局部观察o_i如LIDAR数据隐藏层3层全连接256-128-64单元输出层动作空间维度tanh激活批归一化层加速训练收敛Critic网络状态输入分支全局状态s如地图信息动作连接层所有智能体动作的拼接特征融合层多层感知机输出Q值实际编码建议使用LayerNormalization替代BatchNorm因为多智能体场景中batch内样本差异可能很大。3.2 经验回放优化针对多智能体特点的特殊处理优先级采样对包含重要交互事件的transition如碰撞、合作成功赋予更高采样概率。采用如下优先级计算p_i |δ_i| ε c*N_i其中δ_i是TD误差N_i是该transition被采样次数c是衰减系数。轨迹切片存储存储连续K步的transition片段通常K10便于学习时序依赖。这在追捕任务中尤为重要因为策略往往需要多步配合。重要性加权对不同智能体的experience进行非均匀采样对表现较差的智能体给予更多训练机会。4. 实战调参技巧4.1 超参数设置基准基于PyTorch实现的典型配置参数推荐值作用说明γ0.95-0.99折扣因子长期任务取较高值τ0.01-0.05目标网络更新系数buffer_size1e6-5e6经验回放池大小batch_size512-1024批处理大小lr_actor1e-4-5e-4Actor学习率lr_critic5e-4-1e-3Critic学习率noise_scale0.1-0.3动作探索噪声幅度noise_decay0.9995-0.9999噪声衰减率4.2 训练稳定技巧梯度裁剪对Critic网络的梯度进行L2范数限制通常设1.0防止因多个智能体耦合导致的梯度爆炸。策略延迟更新每更新Critic网络d次d通常取2-5才更新一次Actor网络这在竞争性环境中尤为重要。探索策略采用自适应噪声方案初始阶段高噪声鼓励探索σ_init0.5中期按指数衰减σ_decay0.999后期保持基础噪声σ_min0.05多阶段课程学习阶段1固定其他智能体训练单个智能体基础能力阶段2逐步增加活跃智能体数量阶段3全量智能体联合训练5. 典型问题诊断5.1 性能下降场景排查现象可能原因解决方案回报震荡智能体间策略冲突增加Critic网络容量收敛至次优解探索不足调整噪声参数或采用ε-greedy训练速度慢信用分配不清设计差异奖励函数过拟合样本相关性高增大回放缓冲区5.2 实际部署注意事项通信延迟补偿在分布式执行时若存在通信延迟Δt需要在策略网络中加入时间序列建模如LSTM层来预测其他智能体的状态。异构智能体处理当智能体能力不同时如速度、传感范围差异应在Critic输入中加入智能体类型编码。可扩展性优化对于大规模智能体群N50可采用以下技术邻居注意力机制只关注邻近智能体参数共享分组将智能体划分为多个同质组层次化Critic局部Q函数与全局Q函数结合6. 进阶应用方向混合合作-竞争场景在足球等既有合作又有竞争的环境中可采用分层MADDPG高层策略团队协作目标底层策略个体动作控制部分可观测扩展当全局状态不可获取时使用变分自编码器VAE从局部观察重构潜在状态表示。迁移学习应用跨任务迁移在模拟器中训练后迁移到真实机器人智能体数量扩展用小规模训练的策略初始化大规模系统结合图神经网络用GNN建模智能体间的拓扑关系特别适用于交通控制等场景。此时Critic网络可替换为Graph Attention网络。