【PPO、GRPO的理论基础】【策略梯度】value-based强化学习算法 策略梯度定理的完整数学推导 reinforce算法
Value-Based的缺点
通过评估状态-动作的价值($Q$值),来间接决定策略

问题的本质
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(θ)$最大




| $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$)由两部分力量共同决定:
-
(Agent)的选择: 在状态 $s_t$ 下,你的策略网络 $\pi_\theta$ 决定采取动作 $a_t$ 的概率。即 $\pi_{\theta}(a_t s_t)$。 - (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算法(蒙特卡洛策略梯度)
- 用当前策略走一条完整的轨迹
- 倒推计算这条轨迹中每个时间步的累计回报
- 相乘得到一条轨迹的梯度估计
- 沿着梯度上升的方向更新策略θ
- 重复上述步骤,直到策略收敛