主题
字号
PART III · 强化学习速成
CHAPTER 15 ≈ 50 MIN READ

给未来定价——回报、价值函数与贝尔曼方程

上一章末尾留下的关卡是:奖励延迟而稀疏,决策却要每一步都做——第 40 步该往哪走,取决于三百步之后的胜负。要跨过这道关卡,RL 发明了它最核心的概念工具:价值(value)。这一章把它从零建起来。请耐心对待这一章,它是全卷数学密度最高的一章,但每个式子都会先讲清"为什么需要"再写"是什么"——而且它的回报丰厚:价值的语言一旦建立,后面三章的一切(advantage、critic、GRPO 的组内基线)都只是它的变奏。

2.1 回报:先把"总收成"定义清楚

从最容易的问题开始:一条已经走完的轨迹,收成怎么算?上一章说是"沿途奖励之和",现在补上一个必要的修饰。定义从时刻 $t$ 起的回报(return):

$$ G_t = r_{t+1} + \gamma\, r_{t+2} + \gamma^2 r_{t+3} + \cdots = \sum_{k=0}^{\infty} \gamma^k\, r_{t+k+1} $$

新面孔是 $\gamma$(gamma,折扣因子),一个 0 到 1 之间的数:下一步的奖励打一次折,下下步打两次折,越远折得越狠。为什么要打折?三层理由,从实用到深刻:

数学收敛。任务如果没有明确终点(机器人一直巡逻),奖励无穷多项加起来可能发散;$\gamma < 1$ 让无穷级数收敛成有限数(每步奖励有界时,总和不超过 $r_{\max}/(1-\gamma)$),一切分析才有立足点。未来不确定。转移是随机的、模型是近似的,十步之后的预言远不如下一步可靠——折扣是对"远期承诺"的合理怀疑。现值直觉。和金融里一模一样:明年的一百块不等于今天的一百块,利率就是时间的折价。$\gamma$ 就是 RL 世界的贴现率。

$\gamma$ 的取值直接塑造性格:$\gamma = 0$ 的智能体极度短视,只认下一步的即时奖励;$\gamma \to 1$ 则极有远见,为了终局愿意忍受眼前的负分。实践里常取 0.99 上下;而语言模型的场景(一次生成、有明确终点、奖励在末尾)通常干脆取 $\gamma = 1$——不打折,因为回合有限、且我们只关心最终成果。这个细节现在看是脚注,第五章会变成正文。

2.2 价值函数:评估局面的函数

回报是事后的记账——轨迹走完才能算。但决策需要事前的判断:站在此刻,往下会怎样?于是定义全卷最重要的概念,状态价值函数

$$ V^\pi(s) = \mathbb{E}_\pi\big[\,G_t \mid s_t = s\,\big] $$

读法:从状态 $s$ 出发、此后一直按策略 $\pi$ 行动,能拿到的回报的期望。三个成分各有分量。"期望"——策略和环境都可能随机,同一起点走出的未来是一束可能性,$V$ 是这束可能性的加权平均。"按策略 $\pi$"——价值从来不是状态孤立的属性,而是状态与策略的合谋:同一个棋局,在高手手里价值连城,在菜鸟手里一文不值,所以记号里那个上标 $\pi$ 一刻不能省。"从 $s$ 出发"——它给每个状态标了价,把"这个局面好不好"从一句棋感变成了一个数。

围棋解说员说"白棋此刻胜率 72%",就是在报一个 $V(s)$;你玩游戏时心里那句"这波稳了",也是一次粗糙的价值评估。价值函数就是直觉的数学化:把"局面判断"这种说不清道不明的能力,定义成一个原则上可以计算、可以学习的函数。

紧接着一个孪生概念,动作价值函数

$$ Q^\pi(s, a) = \mathbb{E}_\pi\big[\,G_t \mid s_t = s,\ a_t = a\,\big] $$

与 $V$ 只差一点:先指定第一步动作是 $a$,之后再按 $\pi$ 行动。$V(s)$ 回答"这个局面值多少",$Q(s,a)$ 回答"这个局面下走这一步值多少"。两者的关系很自然:$V$ 是 $Q$ 按策略的加权平均——$V^\pi(s) = \sum_a \pi(a|s)\, Q^\pi(s,a)$,局面的价值等于各种走法价值的期望。

为什么要两个函数?因为它们回答的问题不同,而两者的差恰好回答第三个、也是最关键的问题:"走这一步,比平常水平好多少?"——$Q^\pi(s,a) - V^\pi(s)$。这个差值下一章会正式登场并获得一个名字(advantage,优势),它是策略改进的方向盘。这里先埋下伏笔:$V$ 用来评估局面,$Q$ 用来评估动作,$Q-V$ 用来指导改进。

2.3 贝尔曼方程:价值的递归结构

定义有了,怎么算?按定义硬算意味着枚举从 $s$ 出发的所有未来轨迹——指数爆炸,死路。出路藏在价值的一个漂亮结构里,它是本章的技术核心。

观察回报的定义,把第一项拆出来:

$$ G_t = r_{t+1} + \gamma\,(r_{t+2} + \gamma\, r_{t+3} + \cdots) = r_{t+1} + \gamma\, G_{t+1} $$

回报天生是递归的:今天起的总收成 = 今天的收成 + 打折后的"明天起的总收成"。两边取期望,就得到贝尔曼期望方程(Bellman equation):

$$ V^\pi(s) = \mathbb{E}\big[\, r_{t+1} + \gamma\, V^\pi(s_{t+1}) \mid s_t = s \,\big] $$

一个状态的价值 = 即时奖励 + 折扣后的下一个状态的价值(的期望)。无穷远的未来被折叠进了"下一站"——不必看到底,只需看一步,前提是下一站的价值已知。这个"用价值定义价值"的自指结构之所以成立,靠的正是上一章的马尔可夫性:下一站的价值只取决于下一站本身,与怎么到达无关,所以未来可以被"打包"。

一定要亲手算一次才有体感。设想一条三格走廊 $A \to B \to C$,$C$ 是出口:策略固定为"一直向右",每步奖励 $-1$、到达 $C$ 得 $+10$ 并结束,取 $\gamma = 0.9$。从终点倒着用贝尔曼方程:$B$ 到 $C$ 一步收 $+10$,无后续,$V(B) = 10$;$A$ 走一步花 $-1$ 到达 $B$,所以 $V(A) = -1 + 0.9 \times V(B) = -1 + 9 = 8$。就这么朴素:价值从奖励处发源,沿着转移结构折扣着向外传播。真实算法本质上都在做这件事的大规模版本——把奖励的信息,经由贝尔曼方程,传播到每一个状态头上。

(顺带一提:把方程里的"按策略平均"换成"取最优动作",就得到刻画最优价值的贝尔曼最优方程——理论上解它就解了整个 MDP。这条"先求最优价值、再反推策略"的路线是 RL 的另半壁江山,我们在 2.5 节会说明为什么本卷不走它。)

2.4 从经验中学价值:蒙特卡洛与时序差分

贝尔曼方程需要知道转移概率和奖励函数——迷宫的地图。但真实世界(以及语言模型面对的世界)没有地图:你不知道 $P(s'|s,a)$,只能靠亲身经历的轨迹来估计价值。怎么从经验里学 $V$?两条路线,它们的对比是 RL 里最经典的一组权衡。

蒙特卡洛(MC):走完再算。最直白的办法——想知道 $V(s)$ 是期望回报?那就从 $s$ 出发走完很多条轨迹,把实际拿到的回报 $G$ 平均。它诚实(用真实回报,不引入任何假设,无偏),但有两个代价:必须等回合结束才能学(下完整盘棋才更新一次);而且方差大——单条轨迹的回报受一路上所有随机性的累积影响,同一起点的两次经历可能天差地别,要平均很多条才稳。

**时序差分(TD):走一步就学。**换个思路,把贝尔曼方程从"定义"用作"校验":走一步,拿到 $r$、到达 $s'$,用现有的估计拼出一个目标值 $r + \gamma V(s')$,跟出发前的估计 $V(s)$ 一比:

$$ \delta = \underbrace{r + \gamma V(s')}_{\text{走一步后的新认识}} - \underbrace{V(s)}_{\text{原来的认识}} $$

这个 $\delta$ 叫 TD 误差,直觉含义是惊讶程度:实际经历比预想的好,$\delta > 0$,把 $V(s)$ 上调一点;比预想的差就下调。每走一步都能学,不用等终局;方差也小(只涉及一步的随机性)。代价是引入了偏差:目标值里的 $V(s')$ 是自己的估计——用自己的猜测来更新自己的猜测(术语叫 bootstrap,自举)。估计不准时,误差会顺着更新传播。

MC 无偏但高方差、TD 低方差但有偏——偏差-方差的跷跷板,深度学习课上的老熟人在 RL 里换了个舞台。请把 TD 误差这个量记牢到条件反射的程度:$\delta$ 衡量"这一步带来的实际进展超出预期多少"——下一章你会发现,它几乎就是"这个动作比平常好多少"(advantage)的现成估计,是连接价值世界与策略世界的那座桥。

2.5 岔路口的告示牌:价值之路与策略之路

本章结束前,站上一个重要的岔路口。有了价值,通往"好策略"的路分成两条。

价值路线:不直接学策略,先学 $Q(s,a)$,然后策略就是"每步选 $Q$ 最大的动作"。这条路线的名将是 Q-learning 和它的深度版 DQN——2013 年从像素学会打几十款雅达利游戏、点燃深度强化学习热潮的正是它。策略路线:跳过"给所有动作估值",直接参数化策略 $\pi_\theta(a|s)$ 本身、直接优化它——这是下一章的主题。

本卷的主干走策略路线,原因值得说透,因为它正是 RL 与语言模型接轨的方式。其一,我们手里已经有一个策略:语言模型本身就是 $\pi_\theta(a|s)$——一个由几百亿参数编码、经过预训练的强大策略。从它出发做改进,远比从头学一张 Q 表自然。其二,语言需要随机策略:价值路线的"选 Q 最大者"是确定性的(同一状态永远同一动作),而生成任务需要保持一个健康的概率分布——多样性、创造性、对同一问题的多种解法,都住在分布里。其三,实践检验:在超大动作空间、超长轨迹的语言场景里,策略梯度一系久经生产验证,价值路线没有站住脚。所以对 Q-learning/DQN,你只需知道"存在这条支线、DQN 是它的高光时刻"即可——我们的火车不停靠这一站。

但注意一个精细的区分,它预示了后面两章的结构:不走价值路线 ≠ 不用价值函数。策略路线优化的是策略,但沿途急需价值函数来降低学习信号的噪声(那正是 $\delta$ 和 advantage 的用武之地)——价值将以"辅助评估员"的身份贯穿到底。评估的语言已经齐备,下一章开始学习"改进":怎么顺着后果的梯度,直接雕琢策略本身。


本章要点