当前位置: 首页 > news >正文

图解强化学习 |手算DDPG

🌞欢迎来到图解强化学习的世界
🌈博客主页:卿云阁

💌欢迎关注🎉点赞👍收藏⭐️留言📝

📆首发时间:🌹2026年5月22日🌹

✉️希望可以和大家一起完成进阶之路!


目录

DDPG算法的基础认识

DDPG的网络结构

网络更新

手算DDPG

DDPG算法的基础认识

DDPG 全称:Deep Deterministic Policy Gradient

深度确定性策略梯度,专门解决连续动作空间强化学习问题。


DDPG的网络结构

Actor 网络(策略网络):

输入:状态 s 输出:确定性动作 a

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

输入:下一个状态 s' 输出:下一个确定性动作 a'

Critic 网络(Q 网络):

输入:状态 s + 动作 a 输出:Q 值 Q (s,a)

Target Critic 网络(目标 Q 网络):

输入:下一个状态 s' + 下一个动作 a' 输出:目标 Q 值 Q_target (s',a')


网络更新

Critic的更新

目的:让在线 Critic预测的 Q 值,尽可能贴合真实长期收益。

(1)使用经验回放缓冲区(Experience Replay)从中采样一批经验 (s, a, r, s'),即:当前状态、

动作、奖励、下一个状态。

(2)计算目标 Q 值(y_i):使用 Target Actor 网络 根据下一个状态 s' 生成下一个动作 a',

再使用 Target Critic 网络 估计 Q_target(s', a'),最终结合折扣因子计算目标 Q 值:

y_i = r + γ * Q_target(s', a')

(3)使用均方误差损失函数(MSELoss)更新 在线 Critic 网络 的参数,使得 Critic 网络预测的

Q (s,a) 尽可能逼近 目标 Q 值 y_i。

Actor的更新:

目的:让在线 Actor 输出的策略动作,尽可能最大化在线 Critic 评估的 Q 值,持续优化决策策

略。

(1)从经验回放缓冲区中采样一批状态样本 s。

(2)将当前状态 s 输入在线 Actor 网络,得到网络输出的策略动作 (a=(s))。

(3)将状态 s 与 Actor 输出动作 a 输入在线 Critic 网络,得到当前策略对应的评估Q 值

(Q(s,a))

(4)依据确定性策略梯度原理更新在线 Actor 网络参数,通过最大化 Critic 输出的 Q 值,不断优

化策略,使智能体在当前状态下输出更优的连续动作。

目标Actor和目标Critic

软更新(Polyak Averaging),每训练一步,把当前网络的参数缓慢 “挪一点点” 到目标网络,目

标网络参数始终更稳定、更平滑。目标网络保留 99.5% 自己原来的参数,只吸收 0.5% 来自当前

网络的新参数。

完整的结构:


手算DDPG

演员网络(策略网络)

输入:

state = [ 0.12, # x 横坐标 1.45, # y 高度 -0.05, # vx 水平速度 -0.30, # vy 垂直速度 0.08, # 角度 -0.02, # 角速度 0.00, # 左腿未触地 0.00 # 右腿未触地 ]

输出:

action = tanh(0.73) ≈ 0.62

评论家网络(价值网络)

输入 1:状态 state(8 个数字,飞船状态)

state = [ 0.12, # x 坐标 1.45, # y 高度 -0.05, # vx 水平速度 -0.30, # vy 垂直速度 0.08, # 角度 -0.02, # 角速度 0.00, # 左腿未触地 0.00 #右腿未触地 ]

输入 2:动作 action(1 个数字,来自 Actor)

action = [0.62] # 范围一定在 [-1, 1]

最终输出

q_value = 12.73

输入:8 个状态数字 + 1 个动作数字

输出:1 个 Q 值分数(评价这个动作好不好)

动作选择(choose_action)

观测(状态):随便给一组 8 维数字 observation = [0.1, 0.2, 0.05, -0.3, 0.02, -0.01, 0, 0]

Actor 输出(前向传播后):假设算出 0.4

噪声标准差:action_noise = 0.1

随机噪声:假设抽到 0.07(正态分布)

如果在测试阶段:a=0.4

如果在训练阶段:a=0.4+0.07=0.47

a=clip(0.47, −1, 1)=0.47

为了在训练时通过加噪声来探索环境、找到更好策略,同时在测试时直接使用确定性动作,保

证策略稳定可靠,所以设计了训练/测试两种模式。

网络更新

1️⃣ 计算目标 Q 值(target)

next_actions = target_actor(s') → 0.38

q_ = target_critic(s', next_actions) → 10.0

target = r + gamma * q_

target = 2.5 + 0.99 * 10.0

target = 2.5 + 9.9

target = 12.4

2️⃣ 计算当前 Q 值

q = critic(s, a) → 10.0

3️⃣ 计算 Critic 损失(均方误差)

critic_loss = MSE(q, target) = (q - target)²

critic_loss = (10.0 - 12.4)²

critic_loss = (-2.4)²

critic_loss = 5.76

反向传播:更新 Critic,让 q 逼近 12.4

4️⃣ 计算 Actor 损失

new_actions = actor(s) → 0.4

q = critic(s, new_actions) → 10.0

actor_loss = -q

actor_loss = -10.0

反向传播:更新 Actor,让 q 越大越好!

5️⃣ 软更新目标网络

target_actor = 0.005 * actor + 0.995 * target_actor

target_critic = 0.005 * critic + 0.995 * target_critic

目标Q值 target = 12.4

Critic 损失 = 5.76

Actor 损失 = -10.0

DDPG 是「单步采样、按批次更新」的方式。

http://www.cnnetsun.cn/news/2513142.html

相关文章:

  • CANN asc-devkit SIMT-API协作组函数
  • 化学工程论文降AI工具免费推荐:2026年化学工程毕业论文AIGC超标免费4.8元达标完整方案
  • 如何用嘎嘎降AI处理机械工程论文:机械工程研究生毕业论文降AI4.8元完整操作教程
  • 终极Dell G15散热控制指南:免费开源神器tcc-g15完全解析
  • 终极快速文件搜索指南:如何在Linux上实现毫秒级文件查找
  • 2026 降AI工具实测:知网维普AI痕迹可压至10%
  • 对比直接使用厂商API体验Taotoken在用量观测上的优势
  • 《Sysinternals实战指南》Autologon 学习笔记(9.13):安全启用“自动登录”的边界、风险与替代方案
  • 如何在 date 命令中使用时间戳?
  • Windows平台ADB驱动终极安装指南:3分钟快速搭建Android开发环境
  • AICoverGen:3分钟让任何AI声音唱出你的歌曲![特殊字符]
  • Go语言工具链集成:IDE与编辑器
  • 【DeepSeek部署实战指南】:百度智能云零基础30分钟完成模型API上线(含避坑清单)
  • 抖音内容高效获取:开源下载工具如何解决创作者素材收集难题
  • OpencvSharp 算子学习教案之 - Cv2.SetWindowProperty
  • 安徽话语音合成从0到商用,11步完成ElevenLabs API对接、情感注入与皖北/皖南口音校准
  • 彻底卸载微软Edge浏览器:EdgeRemover工具完全指南
  • 汇编 内联汇编与混合编程 (逆向分析)
  • 6.1 网络故障排查基础:连通性测试与抓包分析
  • 4.8.3 利用SparkSQL统计每日新增用户
  • 如何用3步将B站缓存视频变回可播放的MP4文件?
  • 短视频文案为什么总能让你心甘情愿停下来?
  • 抖音内容批量下载解决方案:告别手动保存的智能工具指南
  • 小白入门AI|跟着吴恩达学AI for Everyone,用Prompt轻松撸出一个生日贺卡应用✨
  • 博德之门3模组管理器终极指南:5分钟快速上手解决模组冲突
  • 在taotoken模型广场中根据任务与预算选择合适模型的实践
  • 彻底搞懂ARP协议:从底层原理到安全攻防,万字长文带你吃透局域网通信的“隐形桥梁”
  • 3步快速搞定抖音资源批量下载:免费高效的开源工具完整指南
  • Cursor Free VIP深度解析:如何永久突破AI编程助手试用限制的完整指南
  • SMAPI模组加载器:终极星露谷物语模组管理完全指南