图解强化学习 |手算近端策略优化算法(PPO)

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: PPO(近端策略优化)是当前最主流的强化学习算法,以训练稳定、上手简单、泛化性强著称。它通过Actor-Critic双网络架构,结合PPO-Clip损失函数限制策略更新幅度,并利用GAE优势估计提升样本效率,广泛应用于游戏AI、机器人控制、大模型对齐等领域。

 PPO 算法的基础认识

PPO = Proximal Policy Optimization(近端策略优化算法)

PPO 是目前落地最广、上手最简单、训练稳定性极强的通用强化学习算法,兼顾离散与连续动

作场景,游戏AI、机器人控制、大模型对齐、工业决策等任务普遍首选它。它属于策略梯度类算

法,核心思想是严格限制新旧策略的更新幅度,在保证策略稳步提升的同时,避免参数更新幅

度过大导致训练震荡、模型崩溃,还支持重复利用采样样本,大幅提升数据效率。

image.gif


PPO 算法的网络结构

① Actor —— 策略网络

输入:状态 s

输出:动作分布(均值 + 方差)、动作 a、对数概率 log π(a|s)

作用:根据状态输出要执行的动作,是负责 “做决策” 的网络

image.gif

② Critic —— 价值网络

输入:状态 s

输出:状态价值 V (s)(评估当前状态好不好、未来能拿多少奖励)

作用:评价 Actor 做得好不好,计算优势函数 A

image.gif


网络更新

① Actor 网络更新(策略更新)

使用:PPO-Clip 损失函数

目的:更新策略,让好动作概率变高,坏动作变低,但更新幅度被限制,不会崩。

输入:

  • 状态 s
  • 旧动作概率 π_old
  • 新动作概率 π_new
  • 优势函数 A

计算:

  1. 求概率比 r = π_new / π_old
  2. 裁剪到 [1-ε, 1+ε]
  3. 取 min (r*A, clip (r)*A) → 得到最终损失
  4. 反向传播更新 Actor

特点:

  • 只在 “近端” 小范围更新
  • 训练超级稳定
  • 不会像传统策略梯度那样炸掉

image.gif

image.gif

image.gif

image.gif

image.gif

② Critic 网络更新(价值评估更新)

使用:MSE 均方误差损失

目的:让价值估计 V (s) 更准,从而让优势函数 A 更准。

输入:

        状态 s

         实际回报 G / TD 目标值

计算:

Critic 输出 V (s)

计算 V (s) 与 目标回报 的误差

MSE 损失反向传播更新 Critic

特点:

简单、稳定

帮助 Actor 获得更准确的优势信号

image.gif

image.gif

image.gif


手动计算

当前执行 → 永远用旧策略动作

更新网络 → 只用新策略算旧动作的概率

新策略的动作,要等到【下一轮】才会执行!

广义优势估计

image.gif

TD 误差(td_delta)

td_delta = 即时奖励 + 折扣×下一个状态价值 - 当前状态价值

image.gif

GAE 优势(advantage)

advantage = 当前TD误差 + 衰减系数 × 下一步的advantage

image.gif

td_delta = [10, 5, -10]
gamma * lamda = 0.81 (衰减系数)

image.gif

t=2

r = -10
advantage = -10 + 0.81×0 = -10
r = 5
advantage = 5 + 0.81×(-10) = -3.1
r = 10
advantage = 10 + 0.81×(-3.1) = 7.489
GAE 优势 = [7.489, -3.1, -10]

image.gif

模型更新(update)

gamma = 0.9
lamda = 0.9
clip_eps = 0.2      → 裁剪范围 [0.8, 1.2]
# 两条样本
state0 = [1.0, 0.0, 1.0, 0.0, 0.0, 0.0]
state1 = [0.9, 0.1, 0.8, 0.2, 0.5, 0.1]
action0 = 0
action1 = 2
advantage = [-0.82, -2.0]

image.gif

新旧概率比 ratio

旧策略 s0 动作 0 概率 = 0.70
旧策略 s1 动作 2 概率 = 0.10
old_log_prob0 = ln(0.70) ≈ -0.357
old_log_prob1 = ln(0.10) ≈ -2.303
新策略 s0 动作 0 概率 = 0.91  → ratio≈1.3
新策略 s1 动作 2 概率 = 0.05
new_log_prob0 = ln(0.91) ≈ -0.094
new_log_prob1 = ln(0.05) ≈ -3.000
new_log_prob0 - old_log_prob0
= (-0.094) - (-0.357)
= 0.263
ratio0 = exp(0.263) ≈ 1.30
new_log_prob1 - old_log_prob1
= (-3.000) - (-2.303)
= -0.697
ratio1 = exp(-0.697) ≈ 0.50
ratio0 = 1.30   (超过 1.2,需要裁剪)
ratio1 = 0.50  (低于 0.8,需要裁剪)

image.gif

PPO Clip 损失

adv0 = -0.82
adv1 = -2.0

image.gif

part1 = 1.30 * (-0.82) = -1.066
part2 = clamp(1.30) → 1.2  → 1.2 * (-0.82) = -0.984
取 min:
min(-1.066, -0.984) = -1.066

image.gif

part1 = 0.50 * (-2.0) = -1.0
part2 = clamp(0.50) → 0.8 → 0.8 * (-2.0) = -1.6
取 min:
min(-1.0, -1.6) = -1.6

image.gif

策略损失 policy_loss

policy_loss = - [ (-1.066) + (-1.6) ] / 2
policy_loss = - [ -2.666 / 2 ]
policy_loss = - [ -1.333 ]
policy_loss = 1.333

image.gif

价值损失 value_loss

V(s0) = -3.18
V(s1) = 0.0
td_target0 = -1.0 + 0.9*0 = -1.0
td_target1 = 0.0
loss0 = (-3.18 + 1.0)^2 = ( -2.18 )^2 = 4.75
loss1 = 0
value_loss = (4.75 + 0)/2 = 2.375

image.gif

手算结果

ratio0        = 1.30
ratio1        = 0.50
policy_loss   = 1.333
value_loss    = 2.375

image.gif

image.gif


目录
相关文章
|
1月前
|
机器学习/深度学习 算法 机器人
图解强化学习 |手算SAC算法
SAC(Soft Actor-Critic)是最稳定、强大的连续动作强化学习算法,广泛应用于机器人控制与决策任务。其核心是最大熵强化学习:通过双Q网络抑制过估计,柔性策略网络增强探索,自适应温度系数α动态平衡利用与探索,兼顾最优性与鲁棒性。(239字)
396 1
|
1月前
|
JSON 缓存 人工智能
【剪映小助手】媒体处理接口
CapCut Mate 是基于 FastAPI 的剪映自动化媒体处理接口,支持视频、音频、图片、贴纸的批量添加与轨道管理,提供草稿创建/保存/获取及标准化错误处理,助力高效、可控的AI视频编辑流程。(239字)
社区活动礼品兑换攻略
社区活动礼品兑换攻略
14918 2
|
1月前
|
机器学习/深度学习 存储 人工智能
图解人工智能的数学基础(线性代数)
本文系统讲解线性代数核心概念,涵盖向量(定义、几何/坐标表示、内积)、矩阵(含义、运算、秩、逆、相似、分解)、行列式(几何意义与变换关系)、线性方程组、特征值与特征向量、二次型、向量空间及范数等,强调其在AI与神经网络中的实际应用。
283 7
|
28天前
|
数据采集 人工智能 分布式计算
多Agent集群中的"情报官"设计:为什么系统需要一个RDD
在多Agent系统中,信息采集环节的失误往往是级联错误的根源。本文从行业实践和学术研究两个维度,论证了专职情报采集Agent的必要性,并详细解析了枢衡RDD(资源探测)的五大架构设计原则,包括与CAD的对抗性协作机制等。最后提供了一套可落地的自检清单,帮助开发者判断自己的Agent集群是否需要引入专职情报官角色。
|
1月前
|
人工智能 API Python
GEO工作流搭建指南:用AI自动化你的内容优化
本文详解一套可落地的5节点GEO内容自动化工作流:选题→写作→质检→格式→输出,全程基于Coze零代码搭建,无需编程,市场营销专业学生半天即可上手,已应用于多所高校实训与政校企合作项目。(239字)
|
2月前
|
XML 前端开发 程序员
初级程序员必备的十大技能之 API 接口与前后端联调(一)
教程来源 http://qeext.cn/ 本文系统讲解API设计规范(RESTful/GraphQL)、HTTP协议核心(方法、状态码、头信息)、前后端联调流程及调试工具,助你打造标准化、高可用接口,打破前后端协作孤岛。
|
1月前
|
机器学习/深度学习 人工智能 算法
图解人工智能的数学基础(高数)
本文系统讲解微积分核心概念:数列与递推、极限(含无穷小/大)、导数(含中值定理、泰勒公式)、积分(不定/定/变上限/反常)及微分方程,并延伸至多元函数、偏导数、链式法则与二重积分,结合Sigmoid函数、药物衰减等实例及SymPy代码演示,突出其在AI与工程中的应用基础。
255 5
|
1月前
|
人工智能 API 决策智能
解锁智能体新纪元:Qwen3.7-Max 正式发布,开启长程自主执行新时代
Qwen3.7-Max 是面向Agentic时代的全能基座模型,实现从“说得好”到“做得到”的范式跃迁。它以35小时全自主芯片优化、顶尖推理与编程能力(GPQA 92.4、SWE-80.4)、双模式推理及全栈Agent化架构,树立国产大模型新标杆。
|
1月前
|
人工智能 调度
如何独自完成工作任务
在AI智能体时代,“一个人干一个部门的活”成为现实:关键不在加班,而在任务拆解、工具协同与流程复用。善用大模型、AI工具与自动化工作流,将重复劳动交给智能体,人专注判断、创意与交付。本质是构建“人+AI+系统”的高效协同范式。
196 4

热门文章

最新文章