图解强化学习 |手算MADDPG

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: MADDPG是一种多智能体强化学习算法,采用“集中式训练、分布式执行”框架:各智能体拥有独立Actor网络(基于局部观测输出连续动作),共享一个Critic网络(利用全局状态与联合动作评估Q值)。通过双网络结构(主网+目标网)和软更新机制,提升训练稳定性,有效缓解多智能体环境的非平稳性问题。(239字)

MADDPG算法的基础认识

采用集中式训练、分布式执行框架,解决多智能体环境非平稳问题

每个智能体拥有独立 Actor所有智能体共享全局信息训练 Critic

继承 DDPG 确定性策略 + 双网络(主网络 + 目标网络)软更新,训练稳定

image.gif


MADDPG的网络结构

策略网络:Actor(主策略网络)

数量:3 个(Agent0 / Agent1 / Agent2 各 1 个,参数相互独立)

网络类型:全连接神经网络,确定性策略(输出连续动作,非概率分布)

输入:单个智能体局部观测,维度 = 18

               内容:自身速度、自身位置、地标相对位置、其他智能体相对位置、通信向量

输出:单个智能体连续动作,维度 = 5

               对应动作:无动作、左移、右移、下移、上移 的连续控制量,值域 ([0,1])

功能与工作流程

环境交互阶段:接收自身 18 维观测,直接输出 5 维动作;训练时叠加高斯噪声做探索,再截断到

合法区间。

网络更新阶段:拆分全局 54 维状态,分段送入对应 Actor,生成新动作用于计算 Actor 损失。

特点:只关心自己的观测,不感知全局信息,保证部署时分布式运行。

image.gif

价值网络:Critic(主价值网络)

数量:1 个(3 个智能体全局共享,唯一的价值评估网络)

输入:

全局联合状态:54 维

来源:3 个智能体的局部观测直接拼接(18* 3 = 54),包含所有智能体位置、速度、相对地标、相对

队友等全部全局信息。

全局联合动作:15 维

来源:3 个智能体的动作直接拼接 (5*3 = 15),包含所有智能体当前执行的动作。

输出

输出:1 维标量 Q 值

含义:评估「当前全局状态 + 所有智能体联合动作」能获得的长期累积回报,分数越高代表当前

行为越优。

功能与工作流程

训练核心:唯一负责打分的网络,是连接所有智能体的桥梁。

计算 Critic 损失:拟合 TD 目标,让 Q 值预测更精准。

指导 Actor 更新:以 Q 值为依据,引导所有 Actor 朝着 “提升全局回报” 的方向优化。

特点:全局视角,能感知智能体之间的协作、碰撞关系,解决多智能体环境非平稳问题。

image.gif

策略网络:Target Actor(目标策略网络)

基础信息

数量:3 个,和主 Actor 一一对应

结构:和对应主 Actor完全一致(层数、神经元、激活函数、维度全相同)

参数来源:不独立训练,仅由主 Actor软更新同步参数

输入 & 输出

和主 Actor 完全一致:

输入:单智能体局部观测(18 维)

输出:单智能体连续动作(5 维)

功能与工作流程

仅用于训练阶段,环境交互 / 部署时不使用。

作用:生成下一时刻目标动作,配合 Target Critic 计算 TD 目标,切断梯度、平滑训练,防止单步

更新幅度过大导致震荡、发散。

更新规则(软更新)

价值网络:Target Critic(目标价值网络)

数量:1 个,和主 Critic 成对存在

结构:和主 Critic 完全一致,输入 69 维,输出 1 维 Q 值

参数来源:由主 Critic 软更新同步,不单独反向传播训练

输入 & 输出和主 Critic 完全一致:全局状态 (54) + 联合动作 (15) → 输出 Q 值

功能与工作流程

仅训练阶段使用,专门计算TD 目标值 y。

输入:下一时刻全局状态 + 所有 Target Actor 生成的下一时刻联合动作。

更新规则:和 Target Actor 共用一套软更新公式

网络名称 数量 输入维度 输出维度 训练 / 更新方式 运行阶段
Actor(主) 3 18(局部观测) 5(动作) 反向传播梯度更新 交互 + 训练
Target Actor 3 18(局部观测) 5(动作) 软更新(跟随主 Actor) 仅训练
Critic(主) 1 69(全局拼接) 1(Q 值) 反向传播梯度更新 仅训练
Target Critic 1 69(全局拼接) 1(Q 值) 软更新(跟随主 Critic) 仅训练

网络更新

策略网络:Actor(主策略网络)

image.gif

价值网络:Target Critic(目标价值网络)

image.gif

image.gif

其它网络

image.gif

image.gif


手动计算

agent_0_Actor(主策略网络)

输入观测(18 维):

[ -0.122, -0.156, -0.343, 0.371, 0.590, -0.136,
  0.622, -0.635, -0.316, -0.383, -0.077, -0.410,
  0.080, -1.219, 0,0,0,0 ]

image.gif

Actor 生成动作

[0.21, 0.77, 0.34, 0.11, 0.89]

image.gif

最终的动作

[0.23, 0.74, 0.35, 0.09, 0.93]

image.gif

主价值网络

states = 全局状态 54 维

3 个智能体观测拼在一起:

states = [
    # agent_0 (18维)
    -0.122, -0.156, -0.343, 0.371, 0.590, -0.136,
    0.622, -0.635, -0.316, -0.383, -0.077, -0.410,
    0.080, -1.219, 0, 0, 0, 0,
    
    # agent_1 (18维)
    0.175, 0.145, -0.420, -0.039, 0.667, 0.274,
    0.699, -0.224, -0.239, 0.026, 0.077, 0.410,
    0.157, -0.808, 0, 0, 0, 0,
    
    # agent_2 (18维)
    -0.028, 0.555, -0.263, -0.847, 0.510, 1.083,
    0.542, 0.583, -0.396, 0.835, -0.080, 1.219,
    -0.157, 0.808, 0, 0, 0, 0
]

image.gif

actions = 全局动作 15 维    3 个智能体动作拼在一起:

actions = [
    # agent_0 (5维)
    0.23, 0.74, 0.35, 0.09, 0.93,
    
    # agent_1 (5维)
    0.44, 0.12, 0.88, 0.56, 0.23,
    
    # agent_2 (5维)
    0.65, 0.33, 0.21, 0.90, 0.10
]

image.gif

rewards = 1 个数字

全局奖励:

rewards = [-0.791]

image.gif

目标策略网络和目前价值网络的输入输出和上面类似

损失函数的计算

一步全局局面(54) + 下一步全局动作(15) → 送入 Target Critic → 得到未来奖励 q_ → 如果

结束,q_=0 → 最终标准答案 target = 当前奖励 + 0.99×q_

q_ = self.target_critic(next_states, next_actions).view(-1)
q_[dones] = 0.0
target = rewards + self.gamma * q_

image.gif

target = 0.398 + 0.99 * 0.0
target = 0.398

image.gif

计算评论家网络的损失

critic_loss = F.mse_loss(q, target)

image.gif

MSE = (预测值 - 标准答案)² 的平均值

计算评论家网络的损失

critic_loss = F.mse_loss(q, target)

image.gif

MSE = (预测值 - 标准答案)² 的平均值

预测分数 q = 0.42

标准答案 target = 0.398

误差 = 0.022

误差平方 = 0.000484

critic_loss = 0.000484

Actor 损失的计算

Actor 训练:让动作获得更高的分数,所以 loss 是负的 Q 值!

actor_loss = -torch.mean( 评论家对当前动作的打分 Q )

假设有5个样本的话:

5个Q值:[0.85, 1.20, 0.45, 0.90, 1.10]

求和:0.85+1.2+0.45+0.9+1.1 = 4.5

平均值:4.5 / 5 = 0.9        actor_loss = -0.9

目录
相关文章
|
5天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
2365 8
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
12天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3413 11
|
15天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
3480 25
|
9天前
|
人工智能 Linux BI
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
JeecgBoot AI专题研究 一键脚本:Claude Code + JeecgBoot Skills + DeepSeek 全平台接入 一行命令装好 Claude Code + JeecgBoot Skills + DeepSeek 接入,无需翻墙使用 Claude Code,支持 Wind
2601 5
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
|
6天前
|
人工智能 自然语言处理 供应链
|
6天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全+三种模式+记忆体系+实战工作流完整手册
Claude Code 是当前最流行的终端级 AI 编程助手,能够直接在命令行中完成代码生成、项目理解、文件修改、命令执行、错误修复等全流程开发工作。它不依赖图形界面、不占用额外资源,却能深度理解项目结构,自动生成规范代码,大幅提升研发效率。
1152 3
|
28天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23609 15
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」