强化学习笔记(5)——PPO

PPO视频课程来源

首先理解采样期望的转换

变量x在p(x)分布下,函数f(x)的期望 等于f(x)乘以对应出现概率p(x)的累加

经过转换后变成

x在q(x)分布下,f(x)*p(x)/q(x) 的期望。

起因是:求最大化回报的期望,所以对ceta求梯度


具体举例:上述公式计算的流程?如何求一条轨迹的梯度?

我理解就算是概率相乘> 一回合的回报乘以该回合梯度除以该轨迹(s,a,r,s,a...)出现概率
如何求一条轨迹的梯度?

然后PPO 推倒,对数 概率连乘,等于概率累加

但这样有问题:用一整个回合的回报来计算梯度,会导致"未来的动作"影响过去的状态 ,且 优势情况下,惩罚不明显

于是改成:


将优势函数 转换成值函数表示,然后写出多步优势函数即推导出GAE
其实就是用走了不同步的Q(s,a)-V(s) ,然后加权

加负号将最大化期望转成loss函数更新
PPO 使用了一个重要性采样比
这个比值衡量了新策略和旧策略在选择动作 at时的相对概率


为了防止:过去参数ceta' 和 ceta 差距不要太大,有两种衡量方式;
1:KL散度 :这貌似又叫TRPO
2:clip截断防止差的太大

伪代码

用old策略网络做动作和环境交互,然后梯度更新,每过K个epochs将old参数复制给new

相关推荐
夕除7 小时前
Redis 过期策略
redis·笔记·面试
Nuanyt8 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
叼烟扛炮10 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
叼烟扛炮10 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
songyuc10 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习
゛凌乱的记忆づ13 小时前
好用的md文件编辑器——TyporaS与Typora
笔记·git·typora·markdown
zroooo13 小时前
计算机学习-知识庞大而繁杂
笔记·学习
坤坤子吖13 小时前
算法学习——单调队列
开发语言·c++·笔记·学习·算法
Zhao-Jichao15 小时前
AI Prompting for Everyone 课程笔记 - 05 使用深度搜索 Using Deep Research
人工智能·笔记
云析赢指标公式网416 小时前
指标开发笔记|主图搭配双副图成套指标逻辑拆解
人工智能·笔记