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')(用来造训练目标)

训练目标

希望神经网络最终预测出的标准答案 / 理想数值

网络现在的预测值和这个目标值有差距,就用反向传播更新网络参数,缩小差距

相关推荐
传奇开心果编程1 分钟前
【Rust入门知识点学与练】第5课:函数
开发语言·学习·rust
留白_22 分钟前
【tableau入门学习】2、柱状图、折线图、饼图、散点图
学习·tableau
AI视觉网奇32 分钟前
blende 下载安装学习笔记
笔记·学习
传奇开心果编程32 分钟前
【Rust入门知识点学与练】第9课:Vec 动态数组
开发语言·学习·rust
是翎37 分钟前
Vibe Coding零基础入门:六步工作流拆解
大数据·人工智能·学习·机器学习·数据挖掘
my059240 分钟前
市场学习,不止看资讯,数据查阅与思维练习同样重要
python·学习
斑马1391 小时前
Linux软件编程学习笔记(十一)——HTTP协议
linux·笔记·学习
传奇开心果编程1 小时前
【Rust入门知识点学与练】第1课变量与打印
开发语言·学习·rust
浔溺1 小时前
al+大数据每日学习笔记32
大数据·笔记·学习
xian_wwq1 小时前
【学习笔记】深度认知系列-第10讲AI绘画与设计——从Stable Diffusion到Midjourney
笔记·学习·ai作画