TD-Learning 时序差分学习 和 Q-Learning 最优动作价值学习

TD-Learning - 时序差分学习


用来学习状态价值 V(s),对应前文不带 max 的贝尔曼期望方程

核心特点

一步更新,不用等整段轨迹结束
传统蒙特卡洛 MCTS 必须等完整对话 / 游戏结束才能算总奖励;TD 走一步、拿一个即时奖励R,立刻用下一个状态的预估价值 V(s’) 更新当前V(s),效率极高

完全跟着当前策略 π 走
采样动作、计算期望E都服从 Actor 策略,只做策略评估,不主动找最优动作

和 PPO 强绑定
PPO 里的 Critic 网络,训练用的损失就是 TD 损失,Critic 本质就是 TD 学习拟合出来的 V(s)

只做策略评估,不主动找最优动作

选动作严格按照 a ~ π :Actor 输出什么概率,就按这个概率随机采样 token,不会强行替换成高分 token
计算价值 V(s) 的目的:客观打分,告诉你「用现在这个 Actor 生成回答,平均能拿到多少奖励」
全程没有 max 操作:不会去主动搜下一状态里收益最高的动作

LLM 例子
现有 Actor(策略 π)回答问题,70% 概率输出 “好”、30% 输出 “难”

TD 只做一件事:
分别算出两种回答的总分,按 7:3 加权平均,得到当前提问的平均收益 V(s)
它不会主动把 30% 的 “难” 删掉、强制换成 “好”,只是如实评估现有模型的平均水平

Q-Learning


用来学习动作价值 Q(s, a),对应前文带 max 的贝尔曼最优方程
注意:前文是期望方程,这里的是最优方程

哪怕当前策略大概率会选低分 token,更新时也直接假设:下一步会选全场收益最高的动作
相当于直接无视现有模型,强行朝着满分答案学习

同样 70% 出 “好”、30% 出 “难”
Q-learning 计算时直接忽略 30% 的 “难”,只取下一状态里收益最高的 token 来更新,相当于在教模型:别再输出低分内容,直接选最优答案

对比


只做策略评估(TD):如实评价现在这个模型表现如何,不干涉它的生成选择,不强行优化
主动找最优动作(Q-learning):跳过当前策略的随机选择,直接拿最高分动作当目标,倒逼模型变更好

TD 不是先精确算出完美的 V(s’) 再更新,而是把两段不同上下文 s、s’ 先后输入同一个 Critic 网络,两次前向推理得到两个估值V(s) 和 V(s’)

单步TD更新流程

Actor(策略网络 π):不输出价值,只负责生成 token、采样回答,属于策略网络,不是价值网络
Critic(价值网络 V):唯一的价值网络,TD 学习只训练它,用来预估长期回报

Actor 的 采样回答
Actor 大模型拿到 prompt 上下文后,会给词汇表里每一个候选 token(字 / 词)输出一个 0~1 之间概率,所有 token 概率加起来 = 1,这就是概率分布。采样 = 不固定选概率最高的字,而是按概率大小随机抽签选下一个字。
举个例子:输入上下文:夏天适合去。Actor 输出概率分布:海边:0.6(60%);山里:0.3(30%);超市:0.1(10%)
贪心输出(不采样):永远只选概率最高的海边,回答永远一模一样,没有多样性
随机采样 a ~ π:像抽奖一样,60% 概率抽海边,30% 抽山里,10% 抽超市

训练流程里 Actor 和 Critic 二者同步更新,但一个是策略、一个是价值,不是两个价值网络

自举(bootstrap)

自举(bootstrap)是同一个网络用自身下一时刻的预测做目标

全程只用同一个 Critic 网络,只是输入两段不同上下文:
输入当前上下文 s → 网络输出 V(s)(本次要修正的预测值)
输入下一步新上下文 s’ → 同一个网络前向推理,临时算出 V(s’)(用来造训练目标)

训练目标

希望神经网络最终预测出的标准答案 / 理想数值
网络现在的预测值和这个目标值有差距,就用反向传播更新网络参数,缩小差距