← RL 知识库RL / 3 OF 8策略梯度、基线与 Actor–Critic
理解奖励如何改变动作概率。
学习指南与本课目录
LEARNING CONTRACT理解 → 实现 → 研究
目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。
- 理解层:写明假设、形状/单位和一个反例。
- 实现层:复算数值例子并检查边界。
- 研究层:在匹配预算下比较一个替代方法。
理解机制
策略梯度提高与超越基线结果相关动作的对数概率。在标准假设下,不依赖采样动作的状态基线可降低方差,而不改变 score-function 梯度期望。Actor–Critic 学习价值估计来构造基线,也引入估计和 bootstrap 问题。
机制图与逐步推导
原创机制示意图,按从上到下顺序阅读。 SVG ↓- 动作奖励 0.8 与 0.2 时,。
- 求导 。 时概率 0.5、期望奖励 0.5、梯度 0.15,小幅梯度上升会提高动作 1 概率。
- 基线在期望中抵消,因为 Σₐ。这要求基线不依赖采样动作。
实验检查点 时将 Monte Carlo 梯度均值与精确 0.15 比较,增加样本应降低估计噪声。
LOCAL / SYNTHETIC / INTERACTIVE改变一个变量,解释结果为什么变。
原创教学计算,并非论文 benchmark 复现。条形在面板内相对缩放,具体数值与单位以标注为准。
原创练习与分析
使用奖励 0.8 和 0.2 的双动作 bandit,动作 1 概率为 σ(θ)。期望奖励精确为 0.2+0.6σ(θ),导数为 0.6σ(θ)(1−σ(θ))。用多个种子比较采样梯度估计与解析基准。
依赖动作的基线通常需校正,不能随意减去一个函数就声称无偏。
负 advantage 表示动作总是不好吗?
不是。它表示在该上下文和估计器下低于基线,绝对奖励仍可能为正。
下一章 → PPO、裁剪与 On-policy 数据MATHEMATICAL REVIEW · 2026-10-26假设、参考实现与验收
使用 δ__(t+1)+γ(1−d_t)V(s_(t+1))−V(s_t),d 表示真正终止,不是采样截断。GAE 为到 T−1 的有限遮罩求和。基线不依赖动作,advantage 停止梯度;推导 ∇J 时明确折扣占用分布的归一化。
已复核公式条件、单位及算例。实现隔离一个数值机制,不训练完整策略,也不控制真实硬件。
运行前:预测一个边界情况
在 用中心差分比较解析梯度 0.15。
提示:隔离假设
固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。
最小可运行算例
将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node policy-gradient.mjs. 无需第三方运行依赖。
const solve=()=>{
const theta=0, p=1/(1+Math.exp(-theta));
return [.2+.6*p, .6*p*(1-p)];
};
const actual=solve();
const expected=[0.5,0.15];
if(JSON.stringify(actual)===JSON.stringify(expected)){console.log('PASS',actual)}else{
const a=[actual].flat(), b=[expected].flat();
if(a.length!==b.length||a.some((v,i)=>!Number.isFinite(v)||Math.abs(v-b[i])>1e-10))throw Error('Numerical mismatch');
console.log('PASS within 1e-10',actual);
}
参考输出——先预测再展开
[
0.5,
0.15
]
测试与迁移
在 用中心差分比较解析梯度 0.15。
在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。
下载完整代码包(.tar.gz) · 完整参考代码与回归检查预测、检验与证据记录
展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。
打开记录/导出/清除 →数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围