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

训练目标

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

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

相关推荐
一隅论数智3 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20163 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本3 天前
离散数学第六课
学习·离散数学
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光3 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
霍霍的袁3 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
我爱cope3 天前
【操作系统 | 计算机硬件:CPU、内存与 I/O 如何支撑操作系统?】
学习·操作系统