LLM WIKI · 课程精读

LEARNING UNIT · 20

强化学习与偏好优化

从策略、价值、折扣回报和策略梯度连接 DQN、DPO 与语言模型交叉熵。

已整理章节
6 节
单元来源
5 条视频
总时长
16:25
状态
已发布
学习位置
20 / 20
01

主题讲解 · 03:22

游戏 AI 与语言模型怎样共享一套强化学习语言

学习目标

  • 能用状态、动作、策略、奖励、回报和参数描述一条交互轨迹。
  • 能写出策略 πθ(as)\pi_\theta(a\mid s) 的条件概率含义。
  • 能区分策略分布、贪心选择和随机采样。
  • 能区分单步奖励 rtr_t 与折扣回报 GtG_t
  • 能说明游戏 AI 与自回归 LLM 的状态、动作空间和奖励密度有哪些常见差异。
  • 能指出 token 前缀与 KV Cache 在“状态”说法上的语义边界。

前置与衔接

前面的课程讨论过模型结构、推理与多模态任务。

这一单元转向强化学习与偏好优化。第一步不是记算法名,而是统一基本对象:

statrt,st+1.s_t\rightarrow a_t\rightarrow r_t,s_{t+1}.

游戏 AI 和语言模型都可以放进这条时序链,但二者的观测、动作集合与奖励来源并不相同。

核心讲解

1. 状态是决策所依赖的信息

在强化学习记号中,状态写作 sts_t

它应包含在时刻 tt 做决策所需的信息。

游戏中常见的输入有:

  • 当前画面与前几帧画面;
  • 从环境接口读出的血量、位置、冷却时间;
  • 由 CNN 等编码器产生的特征向量。

自回归语言模型中,最直观的决策上下文是已经出现的 token 前缀:

st=(x1,x2,,xt).s_t=(x_1,x_2,\ldots,x_t).
图 1

游戏 AI 可用连续画面或环境特征表示状态;自回归 LLM 的状态可用已生成 token 前缀表示。

原视频 · 00:20 ↗

每生成一个新 token,前缀改变,下一步的条件分布也随之改变。

2. KV Cache 是状态的计算表示,不宜与语义状态画等号

视频把 token ids 与 KV Cache 都放在“如何存储状态”的讨论里。

更严格地说:

  • token 前缀描述了语言决策的可读历史;
  • KV Cache 是 Transformer 为这段历史保存的中间计算结果;
  • 两者能支持同一个 next-token 条件分布,但角色不同。

KV Cache 还依赖模型参数、层数、位置编码和实现方式。

因此“KV Cache 是隐藏状态”可作为工程直觉,却不表示它天然就是环境的最小 Markov state。

这是编者对视频类比的边界补充。

3. 策略是状态条件下的动作分布

参数为 θ\theta 的随机策略写为

πθ(as)=Pr(At=aSt=s).\pi_\theta(a\mid s) =\Pr(A_t=a\mid S_t=s).

对固定状态 ss,合法动作概率之和为

aA(s)πθ(as)=1.\sum_{a\in\mathcal A(s)}\pi_\theta(a\mid s)=1.

游戏 AI 可以对“移动、回城、释放技能”等动作分配概率。

语言模型则对词表中的下一个 token 分配概率:

πθ(atst)=pθ(xt+1=atxt).\pi_\theta(a_t\mid s_t) =p_\theta(x_{t+1}=a_t\mid x_{\le t}).
图 2

策略 πθ(a|s) 是给定状态后对可行动作的条件概率分布,游戏动作集合与 LLM 词表的结构不同。

原视频 · 01:00 ↗

注意:语言模型选的是 token,不一定对应一个完整汉字或单词。

4. “短粗”与“细长”只是动作空间直觉

视频用“游戏策略短粗、LLM 策略细长”描述动作集合。

可把它理解为:

  • 许多游戏在单个决策层上的离散动作数较少;
  • LLM 每一步往往要在很大的词表中选择一个 token;
  • 游戏动作可能具有层级结构或连续参数。

例如先选择“释放技能”,再选择具体技能和目标位置。

所以游戏动作空间并不必然更简单。

连续控制、组合动作和多单位控制都可能产生极大的动作空间。

5. 动作掩码先改变合法集合

若某技能正在冷却,它不应被执行。

在 softmax 策略中,常见实现是把非法动作的 logit 设为极小值:

za={za,aA(s),,aA(s),z'_a= \begin{cases} z_a,&a\in\mathcal A(s),\\ -\infty,&a\notin\mathcal A(s), \end{cases}

再计算

π(as)=softmax(z)a.\pi(a\mid s)=\operatorname{softmax}(z')_a.

于是非法动作概率为零,合法动作重新归一化。

图 3

游戏动作可分层选择,并用动作掩码排除冷却中的技能;LLM 则在 token 候选上分配概率。

原视频 · 01:40 ↗

直接在 softmax 后把一个概率改成零却不归一化,会破坏概率和为一的条件。

这是编者补充的实现细节。

6. 策略分布不等于最终选出的动作

得到 πθ(s)\pi_\theta(\cdot\mid s) 后,还需要动作选择规则。

贪心选择为

at=argmaxaπθ(ast).a_t=\arg\max_a\pi_\theta(a\mid s_t).

概率采样为

atπθ(st).a_t\sim\pi_\theta(\cdot\mid s_t).
图 4

同一策略分布既可取最高概率动作,也可按概率采样;概率最大不等于一定被执行。

原视频 · 02:00 ↗

最高概率动作并非在随机采样中必然出现。

LLM 的 temperature、top-kk、top-pp 等解码规则也会在执行动作前改变或截断分布。

这些解码策略是编者补充;视频只强调贪心与概率采样的区别。

7. 动作让状态转移并产生单步奖励

执行动作 ata_t 后,环境从 sts_t 转移到 st+1s_{t+1},并产生单步奖励:

rt=r(st,at,st+1).r_t=r(s_t,a_t,s_{t+1}).

游戏中,奖励可以来自得分、存活、击败对手或失败惩罚。

语言模型中,奖励可以来自答案正确性、程序是否通过测试、奖励模型评分或规则校验。

图 5

动作使环境从一个状态转移到下一个状态,并产生单步奖励;多步奖励随后汇成回报。

原视频 · 02:20 ↗

奖励是某一步的反馈,不是整条轨迹的总评价。

8. 回报把当前及未来奖励汇总

从时刻 tt 开始的折扣回报写为

Gt=rt+γrt+1+γ2rt+2+=k=0γkrt+k.G_t =r_t+\gamma r_{t+1}+\gamma^2r_{t+2}+\cdots =\sum_{k=0}^{\infty}\gamma^k r_{t+k}.

其中 γ\gamma 是折扣因子。

因此:

  • rtr_t 是单步奖励;
  • GtG_t 是从当前时刻向未来累积的回报;
  • 训练通常希望提高期望回报,而不是只提高某一步奖励。

这也解释了为什么一个眼前得分动作可能通向后续失败。

9. 奖励稀疏会带来信用分配问题

若只有完整答案结束后才知道对错,最终奖励要归因给前面许多 token 动作。

这就是时间信用分配:

视频把游戏奖励概括为较稠密、LLM 奖励概括为较稀疏,这是常见示例,不是普遍定律。

游戏也可能只有通关奖励;LLM 也可以加入过程监督或逐步奖励。

奖励密度取决于任务与奖励设计。

10. 参数训练改变的是整套策略

参数 θ\theta 是模型中的可训练权重。

训练根据轨迹回报或其估计量更新参数:

θθ+Δθ.\theta\leftarrow\theta+\Delta\theta.

参数变化后,许多状态下的动作概率都会变化:

πθ(as)πθ+Δθ(as).\pi_\theta(a\mid s) \longrightarrow \pi_{\theta+\Delta\theta}(a\mid s).
图 6

训练依据回报信号调整参数 θ,从而改变后续策略 πθ;游戏与 LLM 的奖励密度可能不同。

原视频 · 03:00 ↗

强化学习的核心不是手工把某个动作概率改大,而是构造一个更新规则,让期望回报更高。

11. 两类系统的对应关系

对象游戏 AI自回归 LLM
状态/上下文画面、数值、历史帧、特征prompt 与已生成 token 前缀
计算缓存循环状态或视觉特征KV Cache
动作移动、技能、连续控制下一个 token
策略合法游戏动作分布词表 token 分布
单步奖励得分、存活、惩罚过程反馈或终局评分
回报多步游戏奖励累计生成轨迹奖励累计
参数控制网络权重语言模型权重

这张表给出统一语言,不表示两边的训练数据采集方式完全相同。

跟练与练习

原视频练习

编者练习

一条三步轨迹的奖励为 rt=2,rt+1=3,rt+2=10,r_t=2,\qquad r_{t+1}=3,\qquad r_{t+2}=10, 折扣因子 γ=0.5\gamma=0.5。求 GtG_t

查看参考答案

Gt=2+0.5×3+0.52×10=2+1.5+2.5=6.G_t =2+0.5\times3+0.5^2\times10 =2+1.5+2.5 =6.
不能直接写成 2+3+10=152+3+10=15,因为后两步奖励分别乘了 γ\gammaγ2\gamma^2

编者练习 2

某状态下三个动作 logits 为 (2,1,0)(2,1,0),第三个动作非法。怎样构造合法策略?

查看参考答案

先把第三个 logit 设为 -\infty,再对 (2,1,)(2,1,-\infty) 做 softmax。
结果为
(e2e2+e,ee2+e,0).\left( \frac{e^2}{e^2+e}, \frac{e}{e^2+e}, 0 \right).
合法动作概率重新归一化,概率和仍为一。

常见误区

  • 把状态等同于单张截图:部分可观测任务常需历史帧、内部记忆或其他观测。
  • 把 KV Cache 与 token 前缀完全等同:前者是依赖模型实现的计算缓存,后者是语义历史。
  • 把策略当成一个动作:策略是条件分布,动作是从分布中选择或采样的结果。
  • 认为最高概率动作一定执行:随机采样时它只是更可能出现。
  • 把 reward 与 return 混用:奖励属于一步,回报累计当前与未来奖励。
  • 认为所有游戏奖励都稠密、所有 LLM 奖励都稀疏:这取决于任务与奖励设计。
  • 把 token 说成字或词:tokenization 与自然语言边界不总一致。

本课小结

  • 游戏 AI 与 LLM 都可用 st,at,πθ,rt,Gts_t,a_t,\pi_\theta,r_t,G_t 描述决策过程。
  • 策略 πθ(as)\pi_\theta(a\mid s) 是状态条件下的动作概率分布。
  • 动作掩码限定合法集合,贪心或采样规则再决定实际动作。
  • 单步奖励 rtr_t 与折扣回报 GtG_t 必须分开。
  • LLM 的 token 前缀可作决策状态,KV Cache 更准确地说是该历史的计算表示。
  • 奖励密度是任务属性,不能仅凭“游戏”或“语言模型”类别绝对判断。
02

主题讲解 · 03:39

从动态规划直觉走到 DQN 的价值估计

学习目标

  • 能区分动态规划、记忆化搜索、Q-table 与 DQN。
  • 能解释状态价值 V(s)V(s) 和动作价值 Q(s,a)Q(s,a) 的不同条件。
  • 能写出确定性示例中的贝尔曼最优递推。
  • 能从终止状态向前算出 V(S3)V^*(S_3)Q(S2,a)Q^*(S_2,a)V(S1)V^*(S_1)
  • 能说明 DQN 为什么用神经网络近似 Q 函数。
  • 能指出板书的“上帝视角回推”与真实 DQN 采样训练的边界。

前置与衔接

上一课建立了状态、动作、奖励和回报。

这一课要回答:如果一个动作的影响延伸到未来,怎样给当前状态和动作赋值?

视频用动态规划与记忆化搜索建立递推直觉,再用一个小鸟过障碍的确定性例子计算 QQVV

核心讲解

1. 动态规划复用已解子问题

斐波那契递推为

Fn=Fn1+Fn2.F_n=F_{n-1}+F_{n-2}.

若从小到大保存 F0,F1,F_0,F_1,\ldots,每个新值都由已知值构造。

图 1

斐波那契 DP 用较小子问题的已知值递推较大子问题,示意局部信息怎样维护后续结果。

原视频 · 00:20 ↗

这种“把局部已知结果传向更大问题”的视角,与价值函数从后继状态向前传播有相似之处。

相似的是递推结构,不是说强化学习一定有一张按顺序填写的数组。

2. 记忆化搜索避免重复展开

自顶向下计算 F5F_5 时,递归树会多次遇到 F3F_3F2F_2

记忆化把第一次算出的结果存起来:

memo[n]=Fn.\operatorname{memo}[n]=F_n.

后续再次访问同一子问题时直接读取,不再展开。

图 2

记忆化搜索缓存重复子问题的结果,避免在递归树中重复展开同一个 dp 状态。

原视频 · 00:40 ↗

视频将 memo 数组类比为 Q-table,二者都保存已经估计的数值。

但 Q-table 的条目会随新经验反复更新,不是某次递归求值后永久正确。

3. Q-table 保存状态—动作价值

表格型 Q-learning 为每个状态—动作对保存

Q(s,a).Q(s,a).

若状态集与动作集有限,表的形状可写为

S×A.|\mathcal S|\times|\mathcal A|.

每个条目回答:

当画面每移动一个像素就可能成为新状态时,枚举所有状态非常困难。

4. DQN 用函数逼近替代巨大表格

DQN 使用神经网络

Qθ(s,a)Q_\theta(s,a)

近似动作价值。

网络输入状态,输出各离散动作的 Q 值,或在给定状态—动作后输出单个值。

图 3

Q-table 显式保存状态—动作价值,而 DQN 用神经网络 Qθ(s,a) 对大量状态进行函数逼近。

原视频 · 01:00 ↗

相近状态可以通过共享参数得到相关估计,不必各占一个独立表格单元。

不过 DQN 并不是把记忆化搜索“换成神经网络”这么简单。

它学习的是从经验样本到价值的函数逼近,估计值可能有误差,也会随训练变化。

5. QQVV 条件不同

动作价值固定了第一个动作:

Q(s,a)=从 s 先做 a,之后最优行动的期望回报.Q^*(s,a) =\text{从 }s\text{ 先做 }a\text{,之后最优行动的期望回报}.

最优状态价值只固定状态:

V(s)=maxaQ(s,a).V^*(s) =\max_a Q^*(s,a).

所以:

  • Q(s,a)Q^*(s,a) 评价“这个动作在这个状态下好不好”;
  • V(s)V^*(s) 评价“从这个状态出发,最好的可达结果有多好”。
图 4

在最优控制示例中,状态价值由可选动作价值的最大值给出:V(s)=max_a Q(s,a)。

原视频 · 02:40 ↗

板书用 max\max,因为讨论的是最优控制。

若评估固定随机策略 π\pi,则一般是

Vπ(s)=aπ(as)Qπ(s,a),V^\pi(s)=\sum_a\pi(a\mid s)Q^\pi(s,a),

而不是直接取最大值。这是编者补充的符号边界。

6. 贝尔曼最优方程把未来价值折回当前

一般形式为

Q(s,a)=E[rt+γmaxaQ(st+1,a)st=s,at=a].Q^*(s,a) =\mathbb E \left[ r_t+\gamma\max_{a'}Q^*(s_{t+1},a') \mid s_t=s,a_t=a \right].

V(s)=maxaQ(s,a)V^*(s')=\max_{a'}Q^*(s',a') 可写成

Q(s,a)=E[rt+γV(st+1)].Q^*(s,a) =\mathbb E[r_t+\gamma V^*(s_{t+1})].

视频示例的转移是确定性的,因此省略期望,直接写

Q(s,a)=r+γV(s).Q^*(s,a)=r+\gamma V^*(s').

7. 终止状态给出递推边界

S3S_3

  • 向上动作直接获胜,奖励 +100+100
  • 向下动作直接失败,奖励 100-100

终局后没有下一状态价值,可约定

V(sterminal)=0.V^*(s_{\mathrm{terminal}})=0.

因此

Q(S3,aup)=100,Q^*(S_3,a_{\mathrm{up}})=100,
Q(S3,adown)=100.Q^*(S_3,a_{\mathrm{down}})=-100.
图 5

到达终止状态后没有未来价值项,因此终局动作的 Q 值等于该步即时奖励。

原视频 · 02:00 ↗

再取最大值:

V(S3)=max(100,100)=100.V^*(S_3)=\max(100,-100)=100.

8. 从 S3S_3 向前回推 S2S_2

S2S_2

  • 向上碰撞,直接得到 100-100 并终止;
  • 向下存活,先得 +10+10,再进入 S3S_3

γ=0.99\gamma=0.99,则

Q(S2,aup)=100,Q^*(S_2,a_{\mathrm{up}})=-100,
Q(S2,adown)=10+0.99V(S3)=10+0.99×100=109.Q^*(S_2,a_{\mathrm{down}}) =10+0.99V^*(S_3) =10+0.99\times100 =109.

所以

V(S2)=max(100,109)=109.V^*(S_2)=\max(-100,109)=109.
图 6

用 Q(s,a)=r+γV(s') 从终局向前回推,示例得到 Q*(S2,down)=10+0.99×100=109。

原视频 · 03:20 ↗

9. 再向前回推 S1S_1

S1S_1 的安全动作同样先得 +10+10 再进入 S2S_2,则

Q(S1,asafe)=10+0.99V(S2)=10+0.99×109=117.91.Q^*(S_1,a_{\mathrm{safe}}) =10+0.99V^*(S_2) =10+0.99\times109 =117.91.

板书四舍五入为

V(S1)118.V^*(S_1)\approx118.

展开可看出不同时间的奖励获得不同权重:

10+0.99×10+0.992×100.10+0.99\times10+0.99^2\times100.

这正是折扣回报的递推写法。

10. “上帝视角 DP”与真实 DQN 的边界

视频中的小例子已经知道:

  • 每个动作去往哪个状态;
  • 每一步奖励是多少;
  • 哪些状态会终止。

因此可以从叶节点精确向前回推。

真实 DQN 通常没有完整环境模型,只能从交互样本

(st,at,rt,st+1,dt)(s_t,a_t,r_t,s_{t+1},d_t)

学习,其中 dtd_t 表示是否终止。

常见的一步 TD 目标为

yt={rt,dt=1,rt+γmaxaQθˉ(st+1,a),dt=0.y_t= \begin{cases} r_t,&d_t=1,\\ r_t+\gamma\max_{a'}Q_{\bar\theta}(s_{t+1},a'),&d_t=0. \end{cases}

损失可写为

L(θ)=E[(Qθ(st,at)yt)2].\mathcal L(\theta) =\mathbb E[(Q_\theta(s_t,a_t)-y_t)^2].

这里的目标网络参数 θˉ\bar\theta、经验回放等是编者补充的标准 DQN 训练边界,视频未展开这些机制。

11. 类比的有效范围

动态规划、记忆化与 DQN 可以沿“复用后续价值”形成直觉链:

  1. DP 用已解子问题构造新结果;
  2. 记忆化缓存重复子问题;
  3. Q-table 保存状态—动作价值估计;
  4. DQN 用参数共享近似大量 Q 值;
  5. 贝尔曼目标把后继价值传回当前。

但 DQN 还有采样噪声、函数逼近误差、策略探索和非平稳目标,不能把它视为普通递归搜索的同义词。

跟练与练习

原视频练习

编者练习

在某状态 ss 有两个动作: 当 γ=0.8\gamma=0.8 时,求两个动作的 QQ^*V(s)V^*(s)

  1. a1a_1 立即得到 55 并终止;
  2. a2a_2 得到 11,进入价值为 1010 的下一状态。
查看参考答案

终止动作没有未来项:
Q(s,a1)=5.Q^*(s,a_1)=5.
非终止动作:
Q(s,a2)=1+0.8×10=9.Q^*(s,a_2)=1+0.8\times10=9.
因此
V(s)=max(5,9)=9.V^*(s)=\max(5,9)=9.

编者练习 2

为什么 DQN 的网络输出不能称为“已经记住的精确 Q-table”?

查看参考答案

网络通过共享参数近似大量状态—动作价值。
一个参数更新可能同时改变许多状态的预测;有限样本、bootstrap 目标和优化误差也会使估计不精确。它不像表格那样为每个离散状态—动作对保存一个彼此独立的数值。

常见误区

  • 把记忆化搜索听成“计划搜索”或“减脂”:本课术语是 memoized search 与剪枝式避免重复展开。
  • 把 DQN 当成递归搜索算法:DQN 是用神经网络近似 Q 函数的价值学习方法。
  • 混淆 V(s)V(s)Q(s,a)Q(s,a):前者尚未固定当前动作,后者已经固定。
  • 任何策略下都写 V=maxQV=\max Q:这是最优价值;固定随机策略应对动作按策略概率求期望。
  • 终局还添加 γV(s)\gamma V(s'):若终局后的价值约定为零,Q 只剩终局奖励。
  • 把板书精确回推等同真实 DQN 训练:真实训练通常用采样到的转移和近似网络做 TD 更新。
  • 忽略 117.91 到 118 的近似:板书最后结果经过四舍五入。

本课小结

  • DP 与记忆化提供“复用子问题”的递推直觉。
  • Q-table 显式保存 Q(s,a)Q(s,a),DQN 用 Qθ(s,a)Q_\theta(s,a) 进行函数逼近。
  • 最优状态价值满足 V(s)=maxaQ(s,a)V^*(s)=\max_aQ^*(s,a)
  • 确定性示例中 Q(s,a)=r+γV(s)Q^*(s,a)=r+\gamma V^*(s'),终止后未来价值为零。
  • S3S_3 向前回推得到 V(S3)=100V^*(S_3)=100V(S2)=109V^*(S_2)=109V(S1)118V^*(S_1)\approx118
  • 真实 DQN 是基于经验的 bootstrap 学习,不等同于已知完整环境的上帝视角动态规划。
03

主题讲解 · 02:31

用一组数字拆开 DPO 的三行核心损失

学习目标

  • 能写出 DPO 样本中的 prompt、preferred response 与 rejected response。
  • 能解释策略模型和参考模型各自的 log-ratio。
  • 能把概率比、对数概率差与参考校正间隔互相转换。
  • 能写出 logσ(βΔ)-\log\sigma(\beta\Delta) 并复算视频中的数值。
  • 能说明 β\beta 改变的是损失对偏好间隔的尺度与约束权衡。
  • 能区分离线偏好优化与 on-policy 策略梯度采样。

前置与衔接

上一课讨论 DQN 如何估计未来回报。

DPO 处理的是另一种信号:针对同一个提示,人类或规则更偏好哪一个回答。

视频把实现浓缩成三行:参考模型 log-ratio、策略模型 log-ratio,以及负 log-sigmoid 损失。

核心讲解

1. 一条偏好数据包含什么

典型 DPO 样本写为

(x,yw,yl),(x,y_w,y_l),

其中:

  • xx 是 prompt;
  • ywy_w 是 preferred/chosen response;
  • yly_l 是 rejected response;
  • 下标 ww 表示 winner,ll 表示 loser。

两个回答必须对应同一个 xx,这样比较才有共同条件。

图 1

DPO 样本针对同一提示 x 给出偏好回答 y_w 与被拒回答 y_l,并分别由策略模型和参考模型打分。

原视频 · 00:20 ↗

ASR 把 DPO、ref、sigmoid 等多处识别成相近读音;文稿按板书与公式统一为标准术语。

2. 这里的概率是整段回答的条件概率

对回答 token 序列

y=(y1,,yT),y=(y_1,\ldots,y_T),

自回归模型给出

πθ(yx)=t=1Tπθ(ytx,y<t).\pi_\theta(y\mid x) =\prod_{t=1}^{T} \pi_\theta(y_t\mid x,y_{<t}).

因此序列 log-probability 为

logπθ(yx)=t=1Tlogπθ(ytx,y<t).\log\pi_\theta(y\mid x) =\sum_{t=1}^{T} \log\pi_\theta(y_t\mid x,y_{<t}).

视频用 0.50.50.050.05 等单个数字讲直觉,相当于把整段回答概率视作一个量。

真实实现通常从 response token 的 log-probabilities 聚合得到,不能把它误解成仅看回答第一个 token。

3. 第一行:参考模型的偏好间隔

固定参考策略记为 πref\pi_{\mathrm{ref}}

定义

mref=logπref(ywx)logπref(ylx).m_{\mathrm{ref}} =\log\pi_{\mathrm{ref}}(y_w\mid x) -\log\pi_{\mathrm{ref}}(y_l\mid x).

根据对数性质,等价于

mref=logπref(ywx)πref(ylx).m_{\mathrm{ref}} =\log \frac{\pi_{\mathrm{ref}}(y_w\mid x)} {\pi_{\mathrm{ref}}(y_l\mid x)}.
图 2

参考模型的偏好间隔是 log π_ref(y_w|x)−log π_ref(y_l|x),等价于好坏回答概率比的对数。

原视频 · 00:40 ↗

视频假设参考模型给两个回答的概率都是 0.10.1

mref=log0.1log0.1=log1=0.m_{\mathrm{ref}} =\log0.1-\log0.1 =\log1 =0.

这只是便于演算的例子,不表示真实参考模型总是无法区分回答。

4. 第二行:当前策略模型的偏好间隔

正在训练的策略写为 πθ\pi_\theta

定义

mθ=logπθ(ywx)logπθ(ylx).m_\theta =\log\pi_\theta(y_w\mid x) -\log\pi_\theta(y_l\mid x).

视频令

πθ(ywx)=0.5,πθ(ylx)=0.05.\pi_\theta(y_w\mid x)=0.5, \qquad \pi_\theta(y_l\mid x)=0.05.

于是

mθ=log0.5log0.05=log0.50.05=log102.3026.m_\theta =\log0.5-\log0.05 =\log\frac{0.5}{0.05} =\log10 \approx2.3026.
图 3

当前策略模型的偏好间隔是 log πθ(y_w|x)−log πθ(y_l|x),示例 0.5/0.05 对应 log 10≈2.3。

原视频 · 01:00 ↗

2.32.3 是 log-ratio,不是概率,也不是一个有固定单位的“训练进步分数”。

5. DPO 比较的是相对参考模型的间隔变化

核心差值为

Δθ=mθmref.\Delta_\theta =m_\theta-m_{\mathrm{ref}}.

完整展开:

Δθ=[logπθ(ywx)logπθ(ylx)][logπref(ywx)logπref(ylx)].\Delta_\theta =\left[ \log\pi_\theta(y_w\mid x) -\log\pi_\theta(y_l\mid x) \right] -\left[ \log\pi_{\mathrm{ref}}(y_w\mid x) -\log\pi_{\mathrm{ref}}(y_l\mid x) \right].
图 4

DPO 比较当前策略与参考策略的偏好间隔,形成 Δ=(policy margin)−(reference margin)。

原视频 · 01:40 ↗

本例中

Δθ=2.30260=2.3026.\Delta_\theta=2.3026-0=2.3026.

所以视频说“进步了 2.3”时,更准确的含义是:当前策略的偏好 log-ratio 比参考策略高约 2.32.3

6. 第三行:负 log-sigmoid 偏好损失

单样本 DPO loss 写为

LDPO=logσ(βΔθ),\mathcal L_{\mathrm{DPO}} =-\log\sigma(\beta\Delta_\theta),

其中

σ(z)=11+ez.\sigma(z)=\frac1{1+e^{-z}}.
图 5

第三行把 βΔ 送入 log-sigmoid,并取负号形成二元偏好交叉熵:−log σ(βΔ)。

原视频 · 02:00 ↗

它可以看成一个二元交叉熵:目标标签表示 ywy_w 应战胜 yly_l,而

σ(βΔθ)\sigma(\beta\Delta_\theta)

是模型赋给这一偏好事件的 logistic 概率。

7. 复算视频中的 0.560.560.580.58

β=0.1.\beta=0.1.

先缩放:

βΔθ=0.1×2.3026=0.23026.\beta\Delta_\theta =0.1\times2.3026 =0.23026.

再做 sigmoid:

σ(0.23026)0.55730.56.\sigma(0.23026) \approx0.5573 \approx0.56.

最后取负对数:

log0.55730.5840.58.-\log0.5573 \approx0.584 \approx0.58.

板书的 0.560.560.580.58 都经过小数近似。

8. 最小化损失推动哪一个量

Δθ\Delta_\theta 增大时:

σ(βΔθ),\sigma(\beta\Delta_\theta)\uparrow,
logσ(βΔθ).-\log\sigma(\beta\Delta_\theta)\downarrow.

所以优化直接推动的是

mθmrefm_\theta-m_{\mathrm{ref}}

增大。

图 6

最小化 DPO loss 会推动相对参考模型的偏好间隔增大,使偏好回答相对被拒回答更占优。

原视频 · 02:20 ↗

常用直觉是提高 chosen、压低 rejected。

更严谨地说,损失约束的是二者的相对 log-probability;由于语言模型参数和归一化共享,单次更新不保证两个绝对序列概率严格一升一降。

9. β\beta 不是普通 softmax 温度的简单复制

在公式中,β\beta 乘在间隔前:

z=βΔθ.z=\beta\Delta_\theta.

增大 β\beta 会让同一间隔对应更大的 logistic logit。

视频称它为“逆温度”,这能描述乘法尺度。

在 DPO 推导中,β\beta 还与相对参考策略的 KL 正则权衡相关。

因此调 β\beta 不只是改变曲线视觉陡峭程度,也会改变偏好拟合与靠近参考模型之间的权衡。

后一句是编者补充的算法边界,视频没有展开 KL 推导。

10. 参考模型为什么不能直接省略

若只最大化

mθ=logπθ(ywx)logπθ(ylx),m_\theta =\log\pi_\theta(y_w\mid x)-\log\pi_\theta(y_l\mid x),

就只比较当前模型的好坏回答。

DPO 使用

mθmrefm_\theta-m_{\mathrm{ref}}

衡量当前策略相对于一个固定基准改变了多少。

参考模型一般冻结,不参与梯度更新。

否则比较基线也在移动,公式的约束解释会改变。

11. DPO 的离线边界

经典 DPO 训练通常读取固定偏好数据集:

D={(xi,yw,i,yl,i)}i=1N.\mathcal D=\{(x_i,y_{w,i},y_{l,i})\}_{i=1}^{N}.

训练当前策略时,不要求每一步都从最新 πθ\pi_\theta 在线采样新回答并向环境领取奖励。

因此它通常属于离线偏好优化,而不是标准 on-policy policy gradient。

对比而言,on-policy 方法要求数据来自当前策略或足够接近当前策略,并根据采样轨迹估计梯度。

存在迭代式数据刷新、在线 DPO 变体等扩展,但不能把这些变体反推为本视频三行基础公式已经包含在线采样。

跟练与练习

原视频练习

编者练习

给定 mθ=1.5,mref=0.5,β=0.2.m_\theta=1.5, \qquad m_{\mathrm{ref}}=0.5, \qquad \beta=0.2. 写出 DPO loss,不要求算到最终小数。

查看参考答案

参考校正间隔为
Δθ=1.50.5=1.0.\Delta_\theta=1.5-0.5=1.0.
缩放后为
βΔθ=0.2.\beta\Delta_\theta=0.2.
所以
LDPO=logσ(0.2).\mathcal L_{\mathrm{DPO}} =-\log\sigma(0.2).

编者练习 2

若策略模型与参考模型都对 chosen/rejected 给出相同概率比,DPO logit 是多少?

查看参考答案


mθ=mref,m_\theta=m_{\mathrm{ref}},

Δθ=0,σ(βΔθ)=σ(0)=0.5.\Delta_\theta=0, \qquad \sigma(\beta\Delta_\theta)=\sigma(0)=0.5.
对应单样本损失为
log0.5=log2.-\log0.5=\log2.

常见误区

  • 把 DPO 听成 DPU:板书与标题均为 Direct Preference Optimization,缩写 DPO。
  • ywy_wyly_l 当成两个不同 prompt:它们应在同一个 xx 条件下形成偏好对。
  • 2.32.3 当成概率:它是自然对数概率比,概率事件经 sigmoid 后才落在 (0,1)(0,1)
  • 漏掉参考模型间隔:DPO 比较当前策略与参考策略的相对偏好变化。
  • 把 loss 写成 logσ\log\sigma 而忘记负号:训练做最小化,标准单样本项是 logσ(βΔ)-\log\sigma(\beta\Delta)
  • 认为优化保证 chosen 绝对概率单调升、rejected 单调降:直接约束的是相对 log-ratio。
  • 把 DPO 当作每步 on-policy 采样:经典形式通常在固定离线偏好对上训练。

本课小结

  • DPO 样本是同一 prompt 下的 preferred/rejected response 对。
  • 参考模型和策略模型都计算 logπ(ywx)logπ(ylx)\log\pi(y_w\mid x)-\log\pi(y_l\mid x)
  • 二者之差 Δθ\Delta_\theta 衡量当前策略相对参考策略的偏好间隔变化。
  • 单样本损失为 logσ(βΔθ)-\log\sigma(\beta\Delta_\theta)
  • 视频数字给出 Δ2.3\Delta\approx2.3σ(0.23)0.56\sigma(0.23)\approx0.56、loss 0.58\approx0.58
  • 经典 DPO 是离线偏好优化,不能与 on-policy 策略梯度的数据采集机制混为一谈。
04

主题讲解 · 03:16

折扣因子怎样逐步改变未来奖励的权重

学习目标

  • 能区分即时奖励、动作价值、状态价值与折扣回报。
  • 能写出 V(s)=maxaQ(s,a)V^*(s)=\max_aQ^*(s,a)Q(s,a)=r+γV(s)Q^*(s,a)=r+\gamma V^*(s')
  • 能解释距离当前 kk 步的奖励为何乘 γk\gamma^k
  • 能复算 γ=0.99\gamma=0.99 时的 100100109109 与约 118118
  • 能比较 γ=0\gamma=00.990.9911 三种情形。
  • 能说明 γ=1\gamma=1 在有限回合与持续任务中的不同边界。

前置与衔接

上一课的 DQN 示例已经出现贝尔曼 backup。

这一课只改变一个量:折扣因子 γ\gamma

板书用同一条小鸟轨迹比较三种 γ\gamma,让“近视”与“远视”从口号变成可计算的权重。

核心讲解

1. 先分清四个量

单步奖励是

rt.r_t.

从时刻 tt 开始的折扣回报是

Gt=rt+γrt+1+γ2rt+2+.G_t =r_t+\gamma r_{t+1}+\gamma^2r_{t+2}+\cdots.

动作价值是先固定当前动作后的期望回报:

Qπ(s,a)=Eπ[GtSt=s,At=a].Q^\pi(s,a) =\mathbb E_\pi[G_t\mid S_t=s,A_t=a].

状态价值是在状态下依策略行动的期望回报:

Vπ(s)=Eπ[GtSt=s].V^\pi(s) =\mathbb E_\pi[G_t\mid S_t=s].

四者不能只用“奖励”一个词代替。

2. 最优状态价值选择最好的动作

视频讨论最优控制,所以写

V(s)=maxaQ(s,a).V^*(s)=\max_aQ^*(s,a).
图 1

最优状态价值取所有可行动作价值的最大值:V(s)=max_a Q(s,a)。

原视频 · 00:40 ↗

一个状态可能同时有好动作和坏动作。

V(s)V^*(s) 只看最优可选动作,因此其他动作很差,不代表这个状态的最优价值也很差。

固定随机策略的 VπV^\pi 应按 π(as)\pi(a\mid s) 求期望,不一定取最大值。

3. 动作价值把即时结果与未来连接

一般的贝尔曼最优方程为

Q(s,a)=E[rt+γV(St+1)St=s,At=a].Q^*(s,a) =\mathbb E \left[ r_t+\gamma V^*(S_{t+1}) \mid S_t=s,A_t=a \right].

视频中的转移是确定性的,可简化为

Q(s,a)=r+γV(s).Q^*(s,a)=r+\gamma V^*(s').
图 2

动作价值同时包含即时奖励与下一状态价值,折扣因子 γ 控制后者进入当前判断的权重。

原视频 · 01:00 ↗

这条式子说明动作好不好,不只看立刻奖励,也要看动作会把系统带到什么状态。

4. 终止状态没有后续价值

在最后的 S3S_3

  • 向上越过障碍,奖励为 +100+100 并终止;
  • 向下碰撞,奖励为 100-100 并终止。

约定终止后的价值为零:

V(sterminal)=0.V^*(s_{\mathrm{terminal}})=0.

于是

Q(S3,aup)=100,Q^*(S_3,a_{\mathrm{up}})=100,
Q(S3,adown)=100.Q^*(S_3,a_{\mathrm{down}})=-100.
图 3

终止转移没有后续价值项,获胜与失败动作的 Q 值分别退化为 +100 与 −100。

原视频 · 01:20 ↗

取最大值得到

V(S3)=100.V^*(S_3)=100.

这个 100100γ\gamma 无关,因为奖励就在当前终止动作上。

5. γ=0.99\gamma=0.99 时向前回传

S2S_2 选择安全的向下动作:

  • 当前存活奖励为 1010
  • 下一状态为 S3S_3
  • V(S3)=100V^*(S_3)=100

所以

Q(S2,adown)=10+0.99×100=109.Q^*(S_2,a_{\mathrm{down}}) =10+0.99\times100 =109.

若另一个动作立即失败,Q 值为 100-100,则

V(S2)=max(109,100)=109.V^*(S_2)=\max(109,-100)=109.
图 4

当 γ=0.99 时,S2 向下动作的价值为 10+0.99×100=109,再由 max 得到 V*(S2)=109。

原视频 · 02:00 ↗

6. 再向前一步为何约等于 118118

S1S_1 再执行一次安全动作:

V(S1)=10+0.99V(S2)=10+0.99×109=117.91.V^*(S_1) =10+0.99V^*(S_2) =10+0.99\times109 =117.91.

板书把它四舍五入为

118.118.

把递推展开:

V(S1)=10+0.99×10+0.992×100.V^*(S_1) =10+0.99\times10+0.99^2\times100.

离当前两步后的 100100 乘了 0.9920.99^2,而不是只乘一次 0.990.99

7. 一般地,未来第 kk 步乘 γk\gamma^k

展开回报:

Gt=rt+γrt+1+γ2rt+2+.G_t =r_t +\gamma r_{t+1} +\gamma^2r_{t+2} +\cdots.

kk 步后的奖励权重为

wk=γk.w_k=\gamma^k.

0<γ<10<\gamma<1,权重随距离指数衰减。

例如 γ=0.99\gamma=0.99 时:

w1=0.99,w10=0.99100.904,w100=0.991000.366.w_1=0.99, \qquad w_{10}=0.99^{10}\approx0.904, \qquad w_{100}=0.99^{100}\approx0.366.

最后两项是编者补充,用于显示“接近 1”也会在足够长时域产生明显衰减。

8. γ=0\gamma=0:完全只看即时奖励

γ=0,\gamma=0,

Q(s,a)=r.Q^*(s,a)=r.

所有未来状态价值都被乘成零。

在视频起点,安全动作的即时奖励为 1010,所以

V(S1)=10.V^*(S_1)=10.
图 5

当 γ=0 时,所有未来项被消去,示例起点价值只剩当前一步奖励 10。

原视频 · 02:40 ↗

“近视”在这里不是比喻:未来奖励的数学权重确实全部为零。

9. γ=1\gamma=1:有限回合中不衰减

γ=1,\gamma=1,

视频的三步安全路径回报为

10+10+100=120.10+10+100=120.
图 6

在该有限回合示例中 γ=1 不衰减未来奖励,起点回报为 10+10+100=120。

原视频 · 03:00 ↗

因此在这个有限回合里,当前与未来同样大小的奖励具有相同权重。

但这不代表所有任务都能安全取 γ=1\gamma=1

若持续任务永不终止且每步都获得正奖励,和式可能发散。

在有限 horizon、几乎必然终止的 episodic task 或满足其他收敛条件时,γ=1\gamma=1 才更容易有明确的有限回报。

后两句是编者补充的收敛边界。

10. γ\gamma 改变的不只是“愿不愿等”

调节 γ\gamma 会同时影响:

  • 远期奖励的权重;
  • 有效规划时域;
  • 价值函数的数值尺度;
  • bootstrap 误差传播距离;
  • 持续任务的回报是否容易保持有界。

所以“越大越远视”是正确直觉,但不是完整的工程结论。

较大 γ\gamma 可能保留长期收益,也可能让估计方差、误差传播与训练难度增加。

这是编者补充,视频聚焦数值权重本身。

11. 奖励位置决定它被折扣几次

折扣次数取决于相对当前时刻的距离。

如果终局奖励从转移后才记录为 rt+1r_{t+1},其指数会随采用的时间索引约定变化。

关键不是机械记某张图的指数,而是先写清:

  • 当前决策时刻;
  • 奖励属于哪次转移;
  • 回报从哪个 rtr_t 开始累加。

同一套索引下保持一致,贝尔曼方程与展开式才会对齐。

跟练与练习

原视频练习

编者练习

一条轨迹从当前开始依次获得 2,4,8.2,\quad4,\quad8. 分别计算 γ=0\gamma=00.50.511 时的回报。

查看参考答案

γ=0\gamma=0
G=2.G=2.
γ=0.5\gamma=0.5
G=2+0.5×4+0.52×8=6.G=2+0.5\times4+0.5^2\times8=6.
γ=1\gamma=1
G=2+4+8=14.G=2+4+8=14.

编者练习 2

γ=0.9\gamma=0.9 时,距离当前三步后的奖励 100100 在当前回报中的权重贡献是多少?

查看参考答案

三步后的折扣权重为
γ3=0.93=0.729.\gamma^3=0.9^3=0.729.
所以该奖励贡献
0.729×100=72.9.0.729\times100=72.9.

常见误区

  • rtr_tGtG_t 混为一个量:前者是一时刻反馈,后者是折扣累计。
  • V(s)=aQ(s,a)V^*(s)=\sum_aQ^*(s,a):最优状态价值取最大动作价值,不求和。
  • 终止状态还加未来价值:约定终止后的价值为零。
  • 每个未来奖励都只乘一次 γ\gamma:距离 kk 步应乘 γk\gamma^k
  • 把 118 当作精确整数:按板书数值计算为 117.91117.91,118 是近似。
  • 认为 γ=1\gamma=1 在任何无限任务中都安全:持续正奖励可能让回报发散。
  • 认为 γ\gamma 越大一定越好:长期信息、方差、误差传播和收敛性存在权衡。

本课小结

  • 折扣回报为 Gt=k0γkrt+kG_t=\sum_{k\ge0}\gamma^kr_{t+k}
  • 最优价值满足 V(s)=maxaQ(s,a)V^*(s)=\max_aQ^*(s,a) 与贝尔曼递推。
  • 在视频例子中,γ=0.99\gamma=0.99 得到 V(S3)=100V^*(S_3)=100V(S2)=109V^*(S_2)=109V(S1)=117.91118V^*(S_1)=117.91\approx118
  • γ=0\gamma=0 消去所有未来奖励,示例起点价值为 10。
  • 有限回合中 γ=1\gamma=1 不衰减未来奖励,示例回报为 120。
  • γ=1\gamma=1 的“不折扣”结论必须与终止性和回报收敛条件一起理解。
05

主题讲解 · 03:37

交叉熵更新何时与策略梯度写成同一个向量

学习目标

  • 能从 logits 写出 softmax 概率与 one-hot 交叉熵。
  • 能分别推导错误类别和正确类别的 logit 梯度。
  • 能得到向量结论 xL=py\nabla_xL=p-y
  • 能推导 categorical 策略的 xlogπ(a)=eaπ\nabla_x\log\pi(a)=e_a-\pi
  • 能列出两种更新向量重合所需的全部条件。
  • 能区分代数上的单样本更新同形与 on-policy 策略梯度目标。

前置与衔接

前几课分别出现了策略 π(as)\pi(a\mid s)、DPO 的 logistic loss 与 DQN 的价值目标。

这一课回到最基础的 softmax 分类,比较:

  • 交叉熵做梯度下降时怎样更新 logits;
  • REINFORCE 做梯度上升时怎样更新 categorical 策略 logits。

二者在一组特殊条件下写成相同向量,但这是一条有边界的结论。

核心讲解

1. 从三分类 logits 开始

设模型输出未归一化分数

x=(x1,x2,x3).x=(x_1,x_2,x_3).

softmax 概率为

pi=exik=13exk.p_i =\frac{e^{x_i}} {\sum_{k=1}^{3}e^{x_k}}.

向量写作

p=softmax(x).p=\operatorname{softmax}(x).
图 1

三分类 logits x 经 softmax 得到概率向量 p,为交叉熵与分类策略分布提供同一个参数化形式。

原视频 · 00:40 ↗

每个 pi(0,1)p_i\in(0,1),且

ipi=1.\sum_i p_i=1.

2. one-hot 标签与交叉熵

视频令正确类别为第二类:

y=(0,1,0).y=(0,1,0).

一般 one-hot 交叉熵是

LCE=iyilogpi.L_{\mathrm{CE}} =-\sum_i y_i\log p_i.

因为只有 y2=1y_2=1,本例化为

LCE=logp2.L_{\mathrm{CE}}=-\log p_2.
图 2

标签 y=(0,1,0) 指定第二类,单样本交叉熵为 L=−log p2。

原视频 · 01:20 ↗

交叉熵越小,说明正确类概率 p2p_2 越接近 11

3. softmax 雅可比的统一公式

softmax 对 logits 的偏导为

pixj=pi(δijpj),\frac{\partial p_i}{\partial x_j} =p_i(\delta_{ij}-p_j),

其中 δij\delta_{ij} 是 Kronecker delta。

因此:

  • i=ji=jpi/xi=pi(1pi)\partial p_i/\partial x_i=p_i(1-p_i)
  • iji\ne jpi/xj=pipj\partial p_i/\partial x_j=-p_ip_j

后面的正确类与错误类推导都来自这一式。

4. 错误类别 x1x_1 的梯度

由链式法则:

Lx1=Lp2p2x1.\frac{\partial L}{\partial x_1} =\frac{\partial L}{\partial p_2} \frac{\partial p_2}{\partial x_1}.

第一项为

Lp2=1p2.\frac{\partial L}{\partial p_2} =-\frac1{p_2}.

因为 121\ne2,第二项为

p2x1=p2p1.\frac{\partial p_2}{\partial x_1} =-p_2p_1.

所以

Lx1=(1p2)(p2p1)=p1.\frac{\partial L}{\partial x_1} =\left(-\frac1{p_2}\right)(-p_2p_1) =p_1.
图 3

对错误类别 logit x1,链式法则把 −1/p2 与 ∂p2/∂x1=−p2p1 相乘,得到 ∂L/∂x1=p1。

原视频 · 02:00 ↗

同理:

Lx3=p3.\frac{\partial L}{\partial x_3}=p_3.

错误类当前概率越高,梯度下降对它的 logit 压低得越多。

5. 正确类别 x2x_2 的梯度

对正确类别:

p2x2=p2(1p2).\frac{\partial p_2}{\partial x_2} =p_2(1-p_2).

因此

Lx2=(1p2)p2(1p2)=p21.\frac{\partial L}{\partial x_2} =\left(-\frac1{p_2}\right) p_2(1-p_2) =p_2-1.

p2<1p_2<1 时,这一梯度为负。

梯度下降会沿负梯度方向增大 x2x_2

6. 三个分量合成 pyp-y

把结果排列为

xL=[p1p21p3].\nabla_xL = \begin{bmatrix} p_1\\ p_2-1\\ p_3 \end{bmatrix}.

因为

y=(0,1,0),y=(0,1,0),

所以

xL=py.\boxed{\nabla_xL=p-y}.
图 4

三个分量合并后得到 ∇xL=p−y,梯度下降的 logit 更新方向为 η(y−p)。

原视频 · 02:40 ↗

这个结论对任意类别数的 one-hot 单标签 softmax 分类都成立。

7. 交叉熵的 logit 更新方向

梯度下降更新为

xxηxL.x\leftarrow x-\eta\nabla_xL.

因此单步改变量

ΔxCE=η(py)=η(yp).\Delta x_{\mathrm{CE}} =-\eta(p-y) =\eta(y-p).

正确类分量为

η(1p2)>0,\eta(1-p_2)>0,

错误类分量为

ηpi<0.-\eta p_i<0.

所以它提高正确类相对 logit,并降低错误类相对 logit。

8. categorical 策略也可以由同一 softmax 参数化

设动作集合有三项,策略 logits 同样记为 xx

π=softmax(x).\pi=\operatorname{softmax}(x).

实际动作 aa 用 one-hot 向量 eae_a 表示。

例如采到第二个动作:

ea=(0,1,0).e_a=(0,1,0).

对 categorical 分布,有 score-function 恒等式:

xlogπ(a)=eaπ.\nabla_x\log\pi(a) =e_a-\pi.

这可以逐分量写为

logπ(a)xj=1[j=a]πj.\frac{\partial\log\pi(a)}{\partial x_j} =\mathbb 1[j=a]-\pi_j.

9. 单样本 REINFORCE 的更新方向

若用标量回报 RR 做梯度上升,单样本更新为

ΔxPG=ηRxlogπ(a)=ηR(eaπ).\Delta x_{\mathrm{PG}} =\eta R\nabla_x\log\pi(a) =\eta R(e_a-\pi).
图 5

categorical 策略的单样本 REINFORCE logit 更新方向为 ηR(ea−π),对应梯度上升。

原视频 · 03:00 ↗

视频用 RR 表示奖励标量。

在更一般的实现中,常用 return、advantage 或减去 baseline 的估计量替代裸 RR

Δx=ηA^t(eatπt).\Delta x =\eta\hat A_t(e_{a_t}-\pi_t).

这是编者补充;不改变视频比较的核心向量结构。

10. 两条更新何时逐项相同

交叉熵更新:

ΔxCE=η(yp).\Delta x_{\mathrm{CE}}=\eta(y-p).

策略梯度更新:

ΔxPG=ηR(eaπ).\Delta x_{\mathrm{PG}}=\eta R(e_a-\pi).

若同时满足:

  1. R=1R=1
  2. 实际动作 one-hot 等于监督标签,即 ea=ye_a=y
  3. 策略概率就是分类概率,即 π=p\pi=p
  4. 两边使用相同学习率与 logits 参数化;

ΔxPG=η(yp)=ΔxCE.\Delta x_{\mathrm{PG}} =\eta(y-p) =\Delta x_{\mathrm{CE}}.
图 6

当 R=1、动作 one-hot ea 等于标签 y 且策略 π=p 时,两条单样本 logit 更新向量代数相同。

原视频 · 03:20 ↗

这就是视频所说的“特殊策略梯度”。

11. 参数梯度也可沿同一个 Jacobian 传回

若 logits 由模型参数产生:

x=fθ(s),x=f_\theta(s),

θL=(xθ)TxL.\nabla_\theta L =\left(\frac{\partial x}{\partial\theta}\right)^T \nabla_xL.

只要两边共享同一个 fθf_\theta,且 logit 更新向量相同,链式法则传给参数的单样本方向也相同。

但若网络结构、正则项、batch 权重或优化器状态不同,实际参数步长仍可能不同。

12. 最重要的边界:监督标签不是 on-policy 样本

交叉熵训练直接从数据集读取正确标签 yy

它不会先按当前 pp 随机采一个类别,再等采到正确类别时才更新。

标准 on-policy 策略梯度则要求动作

aπθ(s),a\sim\pi_\theta(\cdot\mid s),

并用该动作产生的回报估计期望梯度。

因此视频的等价条件应理解为:

它不表示监督数据的生成机制等于 on-policy 交互。

13. “正确动作奖励为 1”也不会自动变成交叉熵

假设策略真实采样动作,并定义

R(a)=1[a=c],R(a)=\mathbb 1[a=c],

其中 cc 是正确类别。

只有采到 cc 才得到奖励 11

其期望单样本 logit 更新为

Eaπ[R(a)(eaπ)]=πc(ecπ).\mathbb E_{a\sim\pi} [R(a)(e_a-\pi)] =\pi_c(e_c-\pi).

它比交叉熵方向

ecπe_c-\pi

多一个 πc\pi_c 系数。

这说明“奖励恒为 1 且动作等于标签”是条件化后的特殊样本描述,不是把一个稀疏奖励环境直接求期望后仍严格等同交叉熵。

本节是编者补充,用来避免把视频结论过度推广。

14. 两种训练的典型差别

维度交叉熵监督学习on-policy 策略梯度
动作/标签来源数据集给定标签当前策略采样动作
标量权重通常为 1 或样本权重return / advantage
优化符号最小化 loss最大化期望回报
单样本向量ypy-pA^(eaπ)\hat A(e_a-\pi)
随机性batch 抽样等动作采样与回报估计
信用分配标签直接监督多步回报归因

两者共享 softmax 几何,不等于所有训练性质都相同。

跟练与练习

原视频练习

编者练习

三分类概率为 p=(0.2,0.3,0.5),p=(0.2,0.3,0.5), 正确标签为第一类 y=(1,0,0).y=(1,0,0).xL\nabla_xL 与学习率为 η\eta 时的 logit 更新量。

查看参考答案

xL=py=(0.8,0.3,0.5).\nabla_xL=p-y =(-0.8,0.3,0.5).
梯度下降更新量为
Δx=ηxL=η(0.8,0.3,0.5).\Delta x=-\eta\nabla_xL =\eta(0.8,-0.3,-0.5).
正确类 logit 上升,两个错误类 logits 下降。

编者练习 2

沿用上题,若策略采到第一类、R=2R=2π=p\pi=p,求单样本 REINFORCE logit 更新量。它与交叉熵更新是否相等?

查看参考答案

采样动作 one-hot 为
ea=(1,0,0)=y.e_a=(1,0,0)=y.
因此
ΔxPG=ηR(eaπ)=2η(0.8,0.3,0.5).\Delta x_{\mathrm{PG}} =\eta R(e_a-\pi) =2\eta(0.8,-0.3,-0.5).
方向相同,但大小是交叉熵更新的两倍。只有 R=1R=1 且其余条件相同时才逐项相等。

常见误区

  • 把 logits 叫概率:logits 未归一化,softmax 输出才是概率。
  • 把梯度写成 ypy-pxL=py\nabla_xL=p-yypy-p 是梯度下降的更新方向。
  • 错误类梯度也写成 pi1p_i-1:只有正确类分量减一,错误类分量为 pip_i
  • 忘记策略梯度是梯度上升:最大化回报时符号与最小化 loss 的写法不同。
  • 漏掉奖励或 advantage 权重:一般策略梯度为 A^(eaπ)\hat A(e_a-\pi),不是总等于 eaπe_a-\pi
  • 把监督标签当成当前策略采样动作:两者的数据来源不同。
  • 从单样本向量同形推出一般 RL 等于交叉熵:多步信用分配、采样分布和目标函数仍不同。

本课小结

  • one-hot softmax 交叉熵满足 xL=py\nabla_xL=p-y
  • 梯度下降的 logit 更新方向为 η(yp)\eta(y-p)
  • categorical 策略满足 xlogπ(a)=eaπ\nabla_x\log\pi(a)=e_a-\pi
  • 单样本 REINFORCE 更新为 ηR(eaπ)\eta R(e_a-\pi)
  • R=1R=1ea=ye_a=yπ=p\pi=p 且参数化一致时,两条更新向量重合。
  • 这种重合是代数层面的特殊情形;监督标签不是 on-policy 动作,不能把一般强化学习训练等同于交叉熵训练。
06

单元综合

从状态价值到偏好间隔:强化学习与语言模型对齐的统一坐标系

单元能力目标

完成本单元后,应能把游戏决策、DQN、语言模型生成、DPO 和交叉熵放进同一组数学对象中,同时保留它们的数据来源与优化机制差异。

具体需要做到:

  • 用状态、动作、策略、奖励和回报描述一个序列决策问题;
  • 区分 rtr_tGtG_tQ(s,a)Q(s,a)V(s)V(s)
  • 用贝尔曼递推解释动态规划、Q-table 与 DQN 的关系;
  • 逐项计算 DPO 中 policy/reference 的偏好 log-ratio;
  • 说明折扣因子如何改变未来奖励的贡献;
  • 推导 softmax 交叉熵与 categorical 策略梯度何时同形;
  • 识别“公式相似”与“训练范式相同”之间的边界。

概念连接

1. 先建立序列决策的共同语言

在时刻 tt,智能体观察状态 sts_t,从策略

πθ(ast)\pi_\theta(a\mid s_t)

选择动作 ata_t,环境返回奖励 rtr_t 并转移到下一状态。

折扣回报为

Gt=k=0Ttγkrt+k.G_t = \sum_{k=0}^{T-t} \gamma^kr_{t+k}.

在游戏中,状态可以是棋盘或画面,动作可以是移动或技能。

在语言模型中,token 前缀可以作为决策状态,下一 token 是动作,模型输出是条件策略分布。

KV Cache 是前缀历史的计算表示,不是强化学习定义中的状态本体。

2. 动作分布与合法动作约束是两层

策略模型产生动作 logits 或概率。

若环境只允许一部分动作,需要先用动作掩码限定合法集合,再归一化或选择动作。

随后还需决定是:

  • 贪心选择最大概率动作;
  • 按策略分布采样;
  • 使用温度、top-k 或其他探索规则。

“策略给出概率”与“执行哪个动作”不能混为一谈。

3. 即时奖励不等于长期价值

即时奖励 rtr_t 只评价当前转移。

回报 GtG_t 汇总从当前时刻开始的未来奖励。

动作价值为

Qπ(s,a)=Eπ[Gtst=s,at=a],Q^\pi(s,a) = \mathbb E_\pi[G_t\mid s_t=s,a_t=a],

状态价值为

Vπ(s)=Eπ[Gtst=s].V^\pi(s) = \mathbb E_\pi[G_t\mid s_t=s].

最优值满足

V(s)=maxaQ(s,a).V^*(s)=\max_aQ^*(s,a).

所以一个动作的即时奖励较小,并不代表它的长期价值较低;它可能通往更高的后续奖励。

4. 动态规划提供递推结构

在已知、确定性、有限回合的简化环境中:

Q(s,a)=r(s,a)+γV(s),Q^*(s,a) = r(s,a)+\gamma V^*(s'),
V(s)=maxaQ(s,a).V^*(s)=\max_aQ^*(s,a).

终止状态之后的未来价值为零。

从末端状态向前回推,就能复用已经计算的子问题。

这与记忆化搜索的直觉相通:相同状态的后续最优值不应重复求解。

5. Q-table 与 DQN 的差别是表示,不是目标概念

Q-table 为每个离散状态—动作对显式保存一个数值。

DQN 用神经网络

Qθ(s,a)Q_\theta(s,a)

近似动作价值函数,从而在巨大或连续状态空间中共享统计结构。

二者都围绕价值递推,但 DQN 的值不是通过完整已知环境一次性精确回推得到,而是从经验转移中 bootstrap 学习。

目标网络、经验回放等稳定化机制属于真实 DQN 训练的重要实现层,不能由玩具动态规划图自动推出。

6. 折扣因子决定未来奖励的时间权重

对奖励序列

rt,rt+1,rt+2,,r_t,r_{t+1},r_{t+2},\ldots,

各项权重为

1,γ,γ2,.1,\gamma,\gamma^2,\ldots.
  • γ=0\gamma=0:只保留当前奖励;
  • 0<γ<10<\gamma<1:未来奖励随距离指数衰减;
  • γ=1\gamma=1:有限回合中不衰减未来奖励。

γ=1\gamma=1 并不在所有持续任务中都安全;还需终止性或回报收敛条件。

7. DPO 的训练数据是偏好对

对同一个 prompt xx,数据给出 preferred response ywy_w 与 rejected response yly_l

策略模型的偏好 log-ratio 为

dθ=logπθ(ywx)logπθ(ylx).d_\theta = \log\pi_\theta(y_w\mid x) - \log\pi_\theta(y_l\mid x).

参考模型对应为

dref=logπref(ywx)logπref(ylx).d_{ref} = \log\pi_{ref}(y_w\mid x) - \log\pi_{ref}(y_l\mid x).

DPO 关注策略相对参考的偏好间隔变化:

Δθ=dθdref.\Delta_\theta=d_\theta-d_{ref}.

单样本损失为

LDPO=logσ(βΔθ).L_{DPO} = -\log\sigma(\beta\Delta_\theta).

8. DPO 优化的是相对间隔

Δθ\Delta_\theta 增大,说明当前策略相对参考策略更偏向 preferred response。

但这个约束作用于两个 response 的 log 概率差,不保证每一步更新都让 preferred 的绝对概率严格上升、rejected 的绝对概率严格下降。

它们还与词表中其他序列共享归一化概率质量。

视频示例中的 2.3 是 log-ratio 差,不是概率;经过 β\beta 缩放和 sigmoid 后才进入二分类式损失。

9. DPO 与 on-policy 策略梯度不能混为一谈

经典 DPO 在固定偏好对上进行离线优化,并显式使用参考模型。

on-policy 策略梯度通常从当前策略采样动作或轨迹,再使用奖励或优势加权更新。

二者都在改变策略分布,但:

  • 数据采集机制不同;
  • 目标函数不同;
  • 是否显式使用参考模型不同;
  • 归因到 token/trajectory 的方式不同。

10. 交叉熵与策略梯度的局部代数连接

设 logits 为 zz,softmax 概率为 pp,one-hot 标签为 yy

交叉熵

LCE=iyilogpiL_{CE}=-\sum_i y_i\log p_i

满足

zLCE=py.\nabla_zL_{CE}=p-y.

梯度下降的 logit 更新方向为

ΔzCE=η(yp).\Delta z_{CE}=\eta(y-p).

对 categorical 策略,采样动作 aa 的 one-hot 向量为 eae_a

zlogπ(a)=eaπ.\nabla_z\log\pi(a)=e_a-\pi.

单样本 REINFORCE 更新为

ΔzPG=ηR(eaπ).\Delta z_{PG} = \eta R(e_a-\pi).

11. 两条更新何时同形

若同时满足:

R=1,ea=y,π=p,R=1, \qquad e_a=y, \qquad \pi=p,

并且 logits 参数化相同,则

ΔzPG=ΔzCE.\Delta z_{PG}=\Delta z_{CE}.

这是单样本 logit 更新向量的特殊代数重合。

它不意味着监督学习的一般训练过程等于强化学习:

  • 监督标签由数据集给定;
  • on-policy 动作由当前策略采样;
  • 强化学习奖励可以为负、稀疏或延迟;
  • 真实策略梯度还可能使用回报、优势、baseline 和轨迹期望。

对比与决策

1. 该用值函数还是直接优化策略

  • 若需要评估“在某状态采取某动作后长期能得到多少回报”,使用 Q(s,a)Q(s,a)
  • 若只关心状态本身在后续最优行为下的价值,使用 V(s)V(s)
  • 若目标是直接提高采样动作的期望回报,考虑策略梯度视角。
  • 若已有固定偏好对并希望约束相对参考模型的偏好间隔,考虑 DPO 视角。

2. 该用动态规划、Q-table 还是 DQN

  • 环境模型已知、状态有限且可穷举:动态规划可以精确递推。
  • 状态—动作空间小、离散且可访问:Q-table 可显式保存。
  • 状态空间巨大,需要从表示中泛化:用 DQN 等函数逼近方法,但必须处理 bootstrap 稳定性。

3. 看到“RL 与交叉熵相同”时的检查清单

依次检查:

  1. 比较的是损失、梯度,还是某一步 logit 更新?
  2. 奖励是否恰好为 1?
  3. 动作 one-hot 是否恰好等于监督标签?
  4. 策略概率与分类概率是否来自同一参数化?
  5. 数据来自固定标签还是当前策略采样?

只要其中一项不成立,就不能把局部同形推广成完整训练范式等价。

综合训练

编者练习

一个有限回合环境从 S1S_1 出发,唯一最优路径依次获得奖励 10、10、100。分别计算 γ=0\gamma=00.50.511 时的起点回报,并解释结果。

查看参考答案

G1=10+γ10+γ2100G_1=10+\gamma\cdot10+\gamma^2\cdot100。当 γ=0\gamma=0 时,G1=10G_1=10;当 γ=0.5\gamma=0.5 时,G1=10+5+25=40G_1=10+5+25=40;当 γ=1\gamma=1 时,G1=120G_1=120γ\gamma 越小,较远的 100 权重越低。γ=1\gamma=1 的计算依赖有限回合终止;不能直接外推到不终止且奖励和发散的任务。

编者练习 2

某 DPO 样本中,策略模型的 preferred/rejected log 概率分别为 2-25-5,参考模型分别为 2.5-2.54-4。取 β=0.1\beta=0.1,写出 Δθ\Delta_\theta 和损失表达式,并判断当前策略相对参考是否更偏向 preferred。

查看参考答案

策略偏好 log-ratio 为 dθ=(2)(5)=3d_\theta=(-2)-(-5)=3,参考偏好 log-ratio 为 dref=(2.5)(4)=1.5d_{ref}=(-2.5)-(-4)=1.5,所以 Δθ=1.5\Delta_\theta=1.5。损失为 logσ(0.1×1.5)=logσ(0.15)-\log\sigma(0.1\times1.5)=-\log\sigma(0.15)。因为 Δθ>0\Delta_\theta>0,当前策略相对参考模型扩大了 preferred 与 rejected 的 log 概率间隔。

编者练习 3

给定三分类 logits 的 softmax 概率 p=(0.2,0.5,0.3)p=(0.2,0.5,0.3),监督标签与策略采样动作都为第二类。分别写出交叉熵下降方向和奖励 R=2R=2 的策略梯度上升方向,并判断是否相同。

查看参考答案

y=ea=(0,1,0)y=e_a=(0,1,0)。交叉熵梯度下降方向为 yp=(0.2,0.5,0.3)y-p=(-0.2,0.5,-0.3)。策略梯度上升方向为 R(eap)=2(0.2,0.5,0.3)=(0.4,1.0,0.6)R(e_a-p)=2(-0.2,0.5,-0.3)=(-0.4,1.0,-0.6)。二者方向相同但尺度相差 2;只有 R=1R=1 时更新向量才完全重合。训练数据来源仍不同,因此不能据此把一般监督训练等同于 on-policy 强化学习。

进入下一单元前

  • 已能区分即时奖励、折扣回报、动作价值与状态价值。
  • 已能用贝尔曼递推解释有限环境回推,并说明 DQN 为何不是记忆化搜索。
  • 已能逐项计算 DPO 的 policy/reference 偏好 log-ratio 与 sigmoid 损失。
  • 已能说明 γ=0\gamma=00<γ<10<\gamma<1γ=1\gamma=1 的含义及终止边界。
  • 已能推导 zLCE=py\nabla_zL_{CE}=p-yzlogπ(a)=eaπ\nabla_z\log\pi(a)=e_a-\pi
  • 若仍会把前缀的 KV Cache 当作 MDP 状态定义,回看 P170。
  • 若仍会把 DPO 当作 on-policy 策略梯度,回看 P172。
  • 若仍会由局部更新同形推出训练范式等价,回看 P174。