图解强化学习 |手算PG算法 欢迎来到图解强化学习的世界博客主页卿云阁欢迎关注点赞收藏⭐️留言首发时间2026年5月23日✉️希望可以和大家一起完成进阶之路目录PG算法的基础认识PG的网络结构策略网络Policy Network网络更新网络更新过程带基线的 PG手动计算PG算法的基础认识Policy Gradient策略梯度算法传统价值算法DQN只能选离散最优动作连续动作场景难以适配PG直接优化决策策略离散、连续动作空间都能适用不靠估值选动作直接更新策略参数需跑完完整回合汇总数据后再更新。PG的网络结构策略网络Policy NetworkPG 只有一个网络Actor 网络没有 Critic没有价值输出。输入当前的状态S输出动作的概率输入状态 s (6维) ↓ 全连接层 1 (ReLU) ↓ 全连接层 2 (ReLU) ↓ 输出层 → Softmax → 动作概率 [p0, p1, p2]PG 不输出价值只输出动作概率网络更新网络更新过程目的让总奖励高的动作被选中的概率变大让总奖励低的动作概率变小直接优化决策策略。1采集一整条回合数据。从游戏开始到结束收集所有的状态 s、动作 a、奖励 r、是否结束 donePG 必须等一整局玩完才能更新2计算每一步动作的 累计折扣回报 Gₜ。从当前步开始到回合结束所有未来奖励的加权总和Gₜ 越大 → 这个动作越好Gₜ 越小 → 这个动作越差3前向传播计算动作的对数概率将状态 s 输入 PG 策略网络得到动作概率 π(a|s)再取对数4计算 PG 损失函数5反向传播更新网络参数最小化损失 → 等价于 最大化总奖励→ 好动作概率上升坏动作概率下降PG 更新 收集整局数据 → 算总回报 G → 用 -logπ * G 做损失 → 让好动作更容易被选中log_prob log( 你刚才选的那个动作的概率 )用 log_prob乘积求导转为加减求导梯度计算数学上更简便最大化动作概率等价最大化对数概率适配深度学习最小损失的优化范式。作用只有一个告诉网络我刚才选了哪个动作。因为概率永远 1所以log_prob 永远是负数。0.9 → -0.10.5 → -0.690.1 → -2.3G累计奖励G 代表你刚才做的这个动作到底好不好G 越大 → 动作越好G 越小 → 动作越差带基线的 PG下面的流程图中我们并没有使用回报而是使用了优势函数区别在于之前用 G_t两个动作都被强化因为 G_t 都是正的现在用 Advantage只强化“比平均好”的动作抑制“比平均差”的动作baseline的确定最简单的方式比如可以使用用当前 batch 的平均回报G [2.8, 2.0]b (2.8 2.0) / 2 2.4b0 b1 2.4手动计算动作空间{左(0), 右(1)}折扣因子γ 0.9批次先看单条轨迹B1长度 T2策略网络给定状态输出动作概率softmax 后t 0输入当前状态s输出 logitsz0 [0.2, 1.0]softmax 得到概率πθ(a|s0) softmax(z0)≈ [0.31, 0.69] P(左)0.31 P(右)0.69采样动作a0 1右环境反馈奖励r0 1进入下一状态s1t 1z1 [1.2, 0.3]πθ(a|s1) ≈ [0.71, 0.29]a1 0左r1 2τ {s0, a01, r01,s1, a10, r12}计算 Return回报1PG算法叫做策略梯度算法因为直接对策略进行梯度优化2策略梯度公式3回合制更新