图解强化学习 |手算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

目录
相关文章
|
1天前
|
机器学习/深度学习 存储 人工智能
图解人工智能的数学基础(线性代数)
本文系统讲解线性代数核心概念,涵盖向量(定义、几何/坐标表示、内积)、矩阵(含义、运算、秩、逆、相似、分解)、行列式(几何意义与变换关系)、线性方程组、特征值与特征向量、二次型、向量空间及范数等,强调其在AI与神经网络中的实际应用。
42 7
|
1天前
|
机器学习/深度学习 人工智能 算法
图解强化学习 |手算近端策略优化算法(PPO)
PPO(近端策略优化)是当前最主流的强化学习算法,以训练稳定、上手简单、泛化性强著称。它通过Actor-Critic双网络架构,结合PPO-Clip损失函数限制策略更新幅度,并利用GAE优势估计提升样本效率,广泛应用于游戏AI、机器人控制、大模型对齐等领域。
39 3
|
1天前
|
机器学习/深度学习 算法 机器人
图解强化学习 |手算SAC算法
SAC(Soft Actor-Critic)是最稳定、强大的连续动作强化学习算法,广泛应用于机器人控制与决策任务。其核心是最大熵强化学习:通过双Q网络抑制过估计,柔性策略网络增强探索,自适应温度系数α动态平衡利用与探索,兼顾最优性与鲁棒性。(239字)
42 0
|
云栖大会 开发者
收到阿里云【乘风者计划】博主证书和奖励
收到阿里云【乘风者计划】博主证书和奖励 2023年2月对我来说是一个很好的开端,因为我在1号就收到了阿里云寄给我的【乘风者计划】博主证书和奖励。好兆头啊! 我收到的是我获得的【技术博主】【星级博主】【专家博主】三个的奖品和证书,一快给我寄过来哒!
3276 2
收到阿里云【乘风者计划】博主证书和奖励
社区活动礼品兑换攻略
社区活动礼品兑换攻略
14772 1
|
4天前
|
弹性计算 前端开发 Ubuntu
阿里云服务器ECS的租用教程和简单的前端页面部署
本文详解阿里云学生福利领取(含300元卡券)及ECS轻量服务器选购与部署全流程:涵盖学生机免费申领、配置选型建议(Ubuntu/CentOS/Windows)、安全组设置、Nginx安装、网页部署及Xshell远程连接等实操步骤,新手友好。
172 8
|
7月前
|
人工智能 vr&ar UED
获奖公布|第十九届"挑战杯"竞赛2025年度中国青年科技创新"揭榜挂帅"擂台赛阿里云“AI技术助力乡村振兴”专题赛拟授奖名单公示
获奖公布|第十九届"挑战杯"竞赛2025年度中国青年科技创新"揭榜挂帅"擂台赛阿里云“AI技术助力乡村振兴”专题赛拟授奖名单公示
|
3月前
|
机器学习/深度学习 人工智能 物联网
烧显卡不烧钱:学生党个人开发者GPU选购指南,看完不再被割韭菜
本文为学生与个人开发者量身打造大模型微调硬件选购指南:解析LoRA/QLoRA等高效微调技术如何大幅降低显存需求,对比RTX 3060/3090/4090等显卡的显存、带宽、算力与性价比,提供2000–8000元梯度配置方案,并分享混合精度、梯度累积等显存优化技巧及云资源省钱策略。
|
6月前
|
机器学习/深度学习 人工智能 缓存
让AI评测AI:构建智能客服的自动化运营Agent体系
大模型推动客服智能化演进,从规则引擎到RAG,再到AI原生智能体。通过构建“评估-诊断-优化”闭环的运营Agent,实现对话效果自动化评测与持续优化,显著提升服务质量和效率。
3224 86
让AI评测AI:构建智能客服的自动化运营Agent体系
|
人工智能 Java 程序员
《通义灵码2.0 AI 程序员体验官招募》 获奖名单公布
《通义灵码2.0 AI 程序员体验官招募》 获奖名单公布
459 1