阅读时间约 10 分钟

【PPO、GRPO的理论基础】【策略梯度】value-based强化学习算法 策略梯度定理的完整数学推导 reinforce算法

PPO、GRPO 与策略梯度数学推导

Posted by LuckyE on July 4, 2025

【PPO、GRPO的理论基础】【策略梯度】value-based强化学习算法 策略梯度定理的完整数学推导 reinforce算法

Value-Based的缺点

通过评估状态-动作的价值($Q$值),来间接决定策略

image.png

问题的本质

1.Q值与感知态的强绑定

核心逻辑: 在 Value-based 算法中,核心任务是学习一个价值函数 $Q(s, a)$

意味着算法必须能够精准地评估每一个输入状态 $s$ 的价值。

  • 过分依赖输入特征: 策略的输出完全由 $Q$ 值决定。如果感知的状态 $s$ 稍微发生细微变化(例如图像中的噪声),或者状态空间过大导致 $Q$ 函数难以拟合, $Q$ 值的波动会导致动作的剧烈变化。
  • 缺乏对动作的直接控制: 算法不是在学习“我该怎么做”(策略),而是在学习“这里有多好”(价值)。这种间接性导致如果价值预估稍微不准,策略就会完全失效。
  • 举个例子: 想象你在走迷宫。Value-based 方法像是在给迷宫的每一块地砖打分。你必须清楚地认出每一块地砖(感知态),才能查表知道它的分数。如果你看不清地砖上的花纹,或者地砖太多记不住分数,你就瘫痪了。

2. 无法学习随机策略

Value-based 算法最终导出的策略通常是确定性策略 决策逻辑通常是贪婪的: $a^* = \arg\max_{a} Q(s, a)$ 这意味着在某个状态下,算法永远只会在 $Q$ 值最高的那个动作上投入 100% 的概率。

  • 局限性: 很多现实问题或最优解需要随机性。 例如,在探索阶段,虽然可以用 $\epsilon$-greedy 强行引入随机性,但这只是为了探索,最终收敛的策略依然是“认准一个死理”。 算法本身无法学会“在这个状态下,60%几率跳,40%几率跑”这种分布。
  • 举个例子: 玩“石头剪刀布”。最优策略是 1/3 出石头,1/3 出剪刀,1/3 出布(完全随机)。 如果用 DQN 玩,它会发现出“石头”赢了,就会认为“石头”价值高,下一把还出石头;直 到输了,它觉得“剪刀”价值高,又一直出剪刀。 它永远学不会“随机出拳”这个最优解,只能在几个动作间震荡。

3. 无法区分感知相同但需求不同的状态

感知混淆 (Perceptual Aliasing),通常出现在非完全可观测环境 (POMDP) 中。

  • 当两个真实的物理状态 $s_1$ 和 $s_2$ 在智能体的传感器(感知态)看来是一模一样的时候(即 $o_1 = o_2$),Value-based 算法会给它们赋同一个 $Q$ 值。
  • 如果 $s_1$ 需要向左,$s_2$ 需要向右,但智能体看着觉得它俩一样,那么智能体只能学到一个“平均化”的 $Q$ 值。
  • 结果就是:要么永远向左(在 $s_2$ 撞墙),要么永远向右(在 $s_1$ 撞墙),或者在两者之间震荡,无法根据上下文区分。
  • 举个例子: 这是一个经典的“灰色走廊”问题。你在一个 $T$ 字路口的长走廊里,不管你在走廊的左端还是右端,看到的都是两边白色的墙(感知相同)。 如果在左端,你需要向右走才能到路口。 如果在右端,你需要向左走才能到路口。
  • DQN 的困境: 因为看到的画面一样,它会认为这是同一个状态。它无法学会“有时候向左,有时候向右”。

4. 确定性(准确定性)策略无法应对非对称

这与第 2 点紧密相关,但更侧重于博弈论和多智能体对抗场景。 在非对称信息博弈(如德州扑克、星际争霸)中,信息的隐藏和欺骗至关重要。

  • 易被针对: Value-based 产生的确定性策略是可预测的。 如果面对一个智能的对手,对手可以通过观察你的行为,反推出你的价值判断逻辑,从而完美克制你。
  • 纳什均衡: 在这类博弈的纳什均衡点上,通常要求策略是混合策略(Mixed Strategy)。 既然 Value-based 只能输出 $argmax$ 的确定性动作,它就天然无法达到这种均衡。
  • 举个例子: 在玩 FPS(射击)游戏时,如果你是一个 Value-based 的 AI,当你遇到敌人,你计算出“向左躲避”的 $Q$ 值最高。
  • 结果:每次遇到这种情况都会向左躲。
  • 人类对手: 观察两次后,直接预瞄你的左边,瞬间将你击杀。你需要的是“不按套路出牌”,而 Value-based 恰恰最讲“套路”(数值逻辑)。

policy-based直接优化策略

将策略参数化$π_\theta(s)=P[A|s;θ]$通过优化$θ$,来让策略$π_θ(s)$变好 这样可以得到一个随机的策略,输出一个动作的概率分布 定义一个目标函数$J(θ)$,$J(θ)$代表的是预期的累计奖励 接下来,让$J(θ)$最大,就找到可最优策略

策略梯度方法

通过梯度上升的方法让$J(θ)$最大

image.png

image.png

image.png

image.png

$P(\tau; \theta) = \prod_{t=0} P(s_{t+1} s_t, a_t)\pi_{\theta}(a_t s_t)$

链式法则 解释: 这就好比你在问:“在这一局游戏中,我先后经历了 $s_0, a_0, s_1, a_1, \dots$ 这样一连串特定事情的概率是多少?” 一个完整的轨迹(Trajectory, $\tau$)由两部分力量共同决定:

  1. (Agent)的选择: 在状态 $s_t$ 下,你的策略网络 $\pi_\theta$ 决定采取动作 $a_t$ 的概率。即 $\pi_{\theta}(a_t s_t)$。
  2. (Environment)的反馈: 你采取动作 $a_t$ 后,环境决定跳转到下一个状态 $s_{t+1}$ 的概率。即 $P(s_{t+1}|s_t, a_t)$。 推导过程—概率是一步步乘起来的: • 第0步:初始状态 $P(s_0)$ (公式里略去了,通常假设它是给定的) • 第1步:你选动作 $P(a_0|s_0)$ $\times$ 环境跳转 $P(s_1|s_0, a_0)$ • 第2步:你选动作 $P(a_1|s_1)$ $\times$ 环境跳转 $P(s_2|s_1, a_1)$ 把所有这些时刻的概率乘在一起,就是连乘符号 $\prod$ 的含义。

策略梯度定理

  • 基于策略梯度定理
    • Reinforce算法(蒙特卡洛策略梯度)
  • 用当前策略走一条完整的轨迹
  • 倒推计算这条轨迹中每个时间步累计回报
  • 相乘得到一条轨迹的梯度估计
  • 沿着梯度上升的方向更新策略θ
  • 重复上述步骤,直到策略收敛