PPO学习笔记

PPO(近端策略优化) 绝对是目前工业界和学术界最受欢迎的算法,经常用来当baseline

概念:

1.优势函数

2.优化目标

影响策略该更新多少步长

主要部分
结论:

策略函数在比值超过设定的范围的时候,就会触发截止,然后直接把梯度设置为0,不再进行状态动作对的概率的更新了,因为动作更新幅度已经超过一定阈值了,不再进行梯度上面对参数的优化。

价值损失在工程上一般不做截断,因为被证明了,有时候正确的识别价值比稳健的识别价值好。价值损失用的是MSE。

3.价值估计

蒙特卡洛方法(MC)model free online

蒙特卡洛方法是从一个状态出发,完成了一整个回合后,获取到了一条轨迹。然后通过对多条轨迹获取的累计奖励求平均来得到这个状态的价值。本质是大数定律。

优点:直观,正确

致命的缺点:方差极大

MC是一种基于完整轨迹求均值的无偏估计,本质是大数定律;它是回合制(Episodic)的无模型方法。

时序差分误差(TD)model free online

时序差分误差是自举法,采用的是真实获取的奖励 𝑅 + 对未来的价值估计 𝛾𝑉(𝑠′)作为目前价值的估计。本质是不动点定理,初始值不管设为什么,最终都会收敛到一个确定的值。

TD 是一种基于 自举法的方法,它用单步真实奖励加上对未来的估值作为目标,产生 TD 误差来更新当前状态。它不依赖大数定律,而是利用贝尔曼算子的压缩映射/不动点原理,保证了无论初始值是什么都会收敛。它是一种单步的在线、无模型算法。

广义优势估计(GAE)

GAE是MC和TD的中和

TD和MC的优缺点

公式

GAE是MC和TD的中和(更加趋近于MC,TD增加了一些平滑效果)

4.主体网络

Actor(策略网络):输出动作的概率分布(连续空间下为均值 + 标准差),负责生成策略;

Critic(价值网络):输出状态的价值V(s),负责估计优势函数。

两者可共享骨干网络(降低参数规模),也可分离;连续动作空间中,Actor 通常输出动作分布的均值(μ)和标准差(σ),通过高斯分布采样动作。

5.KL散度

KL散度用来衡量两个概率分布之间的差异。是在算智能体更新策略后,新策略的行为模式和老策略相比,偏离了多少

最终理解:

既然贝尔曼方程是真理,为什么还要搞出 MC、TD、GAE 这么多花样?

因为动态规划 (DP) 有一个致命弱点:它必须知道"转移概率 P"(也就是说,你必须有这个宇宙的上帝视角的源码,这叫 Model-based)。

但在现实中,机器人不知道风刮多大它会摔倒,它没有 P。面对未知的 MDP,机器人不能"算",只能去"试错(采样)"。

MC,TD,GAE这种估计价值的函数,本质上是在估计底层的贝尔曼公式中的价值,因为转移概率P是没有办法知道的(model-free)。

策略迭代和值迭代都是贝尔曼公式的变体。贝尔曼公式又是可以由马尔可夫过程推出来的,所以说,这两者是等价的。

贝尔曼期望方程 (Bellman Expectation Equation): 描述的是在特定策略下,当前状态价值等于"当前奖励 + 下一个状态价值的期望"。(策略迭代里的策略评估,用的就是这个)。

贝尔曼最优方程 (Bellman Optimality Equation): 描述的是在最优策略下,当前状态价值等于"所有可能动作中,收益最大的那个动作的价值"。(值迭代,用的就是这个)。

它们在学术上统称为 动态规划(Dynamic Programming, DP),本质上就是用全微分的思想,暴力求解贝尔曼方程。

一个完整的现代 RL 算法 = 如何评估价值 + 如何更新策略

我对PPO的理解:

GAE是负责估计价值的,也就是用来算价值头的损失MSE的,更新价值头的参数。

同时GAE也可以算优势函数A,从而得到优化目标最重要的一项,动作策略截断项,如果发现策略更新过多,就进行梯度截断,停止更新策略头的参数。

相关推荐
大龄程序员狗哥11 小时前
第25篇:Q-Learning算法解析——强化学习中的经典“价值”学习(原理解析)
人工智能·学习·算法
南境十里·墨染春水11 小时前
linux学习进展 线程同步——互斥锁
java·linux·学习
balance_rui12 小时前
FreeRTOS
笔记·stm32
nashane12 小时前
HarmonyOS 6学习:旋转动画优化与长截图性能调优——打造丝滑交互体验的深度实践
学习·交互·harmonyos·harmonyos 5
华清远见IT开放实验室13 小时前
智能手表完整项目实现,比赛求职双向加分,基于嵌入式大赛推荐开发板(STM32U5)
stm32·单片机·嵌入式硬件·学习·智能手表·嵌入式大赛
炽烈小老头13 小时前
【 每天学习一点算法 2026/04/22】四数相加 II
学习·算法
uncle_ll13 小时前
LangChain基础学习笔记
笔记·学习·langchain·llm·rag
三品吉他手会点灯14 小时前
C语言学习笔记 - 14.C编程预备计算机专业知识 - 本讲内容概述
c语言·笔记·学习
Thanwind14 小时前
从0开始的机器学习之旅(二):监督学习,从线性回归说起
学习·机器学习·线性回归
2501_9423264414 小时前
易速乐考,轻松备考
学习·教育电商