📘策略梯度(Policy Gradient)完整数学推导
1️⃣ 问题定义:最大化期望回报
我们有一个参数化策略:
目标是找到最优参数 ,使得期望折扣累积回报最大:
其中:
是一条轨迹(trajectory)
:初始状态分布
:策略采样动作
:环境转移(与 无关)
:折扣因子
2️⃣ 核心目标:计算梯度
直接对期望求导:
其中 是轨迹 在策略 下的概率密度:
注意:只有 依赖 ,环境动力学 和初始分布 不依赖 。
3️⃣ 关键技巧:Log-Derivative Trick(似然比方法)
我们使用恒等式:
代入梯度表达式:
即:
4️⃣ 展开
对 求导,不含 的项导数为 0:
代入梯度:
交换求和与期望:
5️⃣ 重要重构:按时间步分配回报
注意到 是整条轨迹的回报,但我们可以将它“归属”到每个时间步:
定义从时间 开始的折扣回报:
于是:
(因为 中只有 与 之后的动作有关,前面的动作不影响 )
6️⃣ 转换为状态-动作期望形式
我们可以将轨迹期望,写成在“折扣状态访问分布”下的期望:
其中:
是折扣状态分布
是动作值函数
7️⃣ 引入优势函数(降低方差)
因为 包含环境噪声,方差大,我们引入基线 :
只要 不依赖 ,就不会引入偏差。
最优选择是状态值函数:
于是我们定义优势函数:
最终策略梯度公式:
8️⃣ 实际算法:REINFORCE with Baseline
因为我们不知道 ,实践中用采样估计:
用 采样一条完整轨迹:
计算回报:
估计优势:( 可用另一个网络估计,或忽略)
梯度估计:
更新参数:
这就是著名的 REINFORCE 算法。
9️⃣ 示例:高斯策略(连续动作空间)
设策略为高斯分布:
则:
梯度:
(如果 固定)
更新方向:如果动作 比均值 大,且优势为正 → 鼓励增大 → 下次更可能选大动作!
🔟 为什么 PG 不稳定?(为 TRPO/PPO 做铺垫)
虽然数学正确,但:
梯度是“一阶局部近似”,步长 难选
如果 更新太大,采样分布 和优势估计 就不准了
可能“一步天堂,一步地狱” → 训练崩溃
👉 这就是为什么我们需要 约束策略更新的幅度 —— 于是 TRPO 登场!
🧩 小明骑车的数学映射
:车身倾斜角度、速度
:把手转动角度
:神经网络输出的“推荐动作分布”
:这个动作比“平均动作”好多少
:如果这次右转5度稳住了车(),就让网络下次在类似状态下更倾向输出“右转5度”
但如果一次更新让网络从“右转5度”变成“右转50度”, 的估计就失效了 → 翻车!
✅ 至此,Policy Gradient 的数学推导完成!
📎 附:常用符号表
$$\pi_\theta(a
s)$$
期望总回报目标函数
从时间 开始的折扣回报
优势函数 =
折扣状态访问分布
策略梯度方向(似然比)
最后更新于