基于价值的 RL
本讲迁移自原课程讲义,经 AI 事实核查未发现存疑项,未逐页人工审核;如有出入,以原始论文和 CS285 课程资料为准。
学习目标
- 写出并理解贝尔曼期望/最优算子,掌握 $\gamma$-压缩性的完整证明及其推出的收敛性。
- 说清值迭代 → Q-learning → 拟合 Q 迭代的演化路径与 off-policy 的由来。
- 理解"函数逼近 + 自举 + off-policy"三者同时出现时为何可能发散。
- 从优化目标角度解释 DQN 的经验回放与目标网络为何是必需的。
- 推导 $\max$ 算子导致的过估计偏差,并理解 Double DQN 如何解耦"选"与"评"。
前四个模块沿”显式表示并优化策略”这条主线走到了 actor-critic。本模块转向另一大家族:完全不显式参数化策略,而是学习最优动作值 ,再对它贪心得到策略。我们从值迭代与贝尔曼最优算子出发,证明它是 -压缩映射(精确动态规划不动点分析的基石之一),再看当引入函数逼近后这些保证如何被”致命三要素”破坏,进而理解 DQN 的每一个设计(经验回放、目标网络)、过估计偏差的来源与 Double DQN 的修正,最后概览 Dueling/PER/Rainbow 与连续动作的 DDPG/TD3。
学习目标
- 写出并理解贝尔曼期望/最优算子,掌握 -压缩性的完整证明及其推出的收敛性。
- 说清值迭代 → Q-learning → 拟合 Q 迭代的演化路径与 off-policy 的由来。
- 理解”函数逼近 + 自举 + off-policy”三者同时出现时为何可能发散。
- 从优化目标角度解释 DQN 的经验回放与目标网络为何是必需的。
- 推导 算子导致的过估计偏差,并理解 Double DQN 如何解耦”选”与”评”。
编者按 · 批判性视角
编者判断: 当前公开的 LLM 后训练方法较少直接训练 ;本模块的”致命三要素""off-policy value 发散""过估计”主要对应需要长时域自举和数据复用的控制问题。RLHF 中的 PPO 也训练 value critic,但与学习最优动作值的设定不同。价值方法在样本受限控制和离线数据复用中仍有重要用途;具体选型取决于任务与数据条件。
1. 从策略优化到价值优化
回顾:若我们已知最优动作值函数 ,则可取确定性最优策略 。这暗示一条完全不同的路线——不去优化策略参数,而是设法逼近 。这一族方法的诱惑在于:
- 可 off-policy: 不依赖行为策略,因此可复用回放缓冲或其他策略的数据;但数据仍须充分覆盖要学习的状态–动作,不能从“任意历史数据”无条件恢复 。样本效率往往高于纯 on-policy 方法,但并非对所有问题保证。
- 无需策略梯度的高方差:更新目标是回归一个标量,方差来源不同。
代价(伏笔):一旦用神经网络逼近 ,表格情形下的收敛保证便不再直接适用——这正是本模块后半段的主题。
本质 Insight
策略梯度问”如何微调我的行为分布让回报更高”,是局部的一阶优化;价值方法问”每个状态-动作到底值多少钱”,试图直接求解贝尔曼最优这一不动点方程。前者稳但慢、样本贵;后者省样本但因为在做”自举估计的回归”,把估计误差沿时间反复放大,稳定性成为核心难题。这条”稳定性 vs 样本效率”的张力贯穿整个 RL。
2. 值迭代与贝尔曼最优算子
先接上已知的地面。 模块 02 的贝尔曼期望方程(式(2.12))已经能评估一个给定的固定策略 :——它对动作按 求平均,回答的是”照这个策略走,值多少”。可本模块要的是另一回事:不评估某个给定策略,而是直接求最优 。于是问题变成——最优值函数应当满足什么自洽条件?
把方程”逼”出来。 设想我们已握有真正的 。站在任一状态 ,一个最优的智能体不会再按某个固定分布碰运气,而会挑期望回报最高的那个动作:即时奖励 加上折扣后的未来最优值 ,谁大选谁。因此 必须自洽地满足
,
这就是贝尔曼最优方程。把它与期望方程并排看:唯一的改动是把”对动作求平均” 换成了”取最大” ——正是这一个 的替换,把”评估一个固定策略”升级成了”寻找最优策略”。
再抽象成一个算子。 把上式右端看成一台”喂进一个值函数、吐出一个新值函数”的机器,就得到贝尔曼最优算子 ;用它,最优方程被简记为不动点条件 —— 就是在 反复作用下”再也不变”的那个值函数。
不动点怎么解?——反复施加算子。 既然 是 的不动点,最朴素的解法就是从任意 出发、一遍遍作用 :,这就是值迭代。它一定收敛,因为 是压缩映射——每作用一次就把误差按 收缩,以几何速率逼近唯一的 (完整证明见下一节 §3,理论背景见模块 11)。小数值直觉:若某状态当前估计偏低,一次 就用”最好动作的一步回看”把它抬高一截,如此逐轮把远处的高价值一格格倒灌回来(模块 02 §6 的手算小例正是这一过程的可视化)。
形式化—— 把上面逼出的算子 正式写成作用在任意值函数 上的映射:
逐块读一遍这台机器: 是”选最好的动作”(“最优”正由它而来); 是当下这一步的即时奖励; 则是”走一步转移到 后、折扣的未来价值”的期望。最优值函数 是它的不动点:(即上面逼出的贝尔曼最优方程)。值迭代就是反复施加该算子:。对应的 版本更常用(因为贪心只需 、不需模型):
为什么这样 · 能不能不这样
为什么式(5.2) 里对下一步动作取 ,而不是取均值或 softmax? 因为贝尔曼最优算子要刻画的是”最优”这件事,而最优即在每个状态挑价值最高的那个动作(贪心);正是这个 让不动点 是最优动作值、而非某个给定策略的值。换一种会怎样? 若把 换成按某分布对 取期望(均值),得到的是贝尔曼期望算子——它只做策略评估(评估那个固定的动作分布值多少),根本不寻优,反复施加只会收敛到该策略的值而非 。若换成 softmax(log-sum-exp),则把”硬 “软化成”soft max”,不动点变成带熵正则的 soft 值函数——这并不是错误,而恰好定义了另一族方法(最大熵 / soft Q-learning,见 模块 07);代价是引入温度参数、最优策略变成玻尔兹曼分布而非确定性贪心,只有温度趋于 0 时才退回这里的硬 。
图 1:值迭代在函数空间中以几何速率 收敛到唯一不动点 。
3. 贝尔曼算子是 γ-压缩映射
定理 在精确算子、 的设定下,值迭代收敛的核心理由是 在无穷范数 下是 -压缩映射。
推导:(点开看完整步骤)
关键假设
(i) 折扣 ;(ii) 奖励有界 ,保证值函数有界、算子良定义;(iii) 以下用有限动作集保证 存在;一般动作空间可改用 ,若要取得最大值还需紧致性与适当的连续性条件 [1]。
先备引理(max 的非扩张性)
对同一指标集上的任意两函数 ,有 。证:设 ,则 ;对调 得另一侧,故绝对值成立。这条引理是整个压缩性证明的唯一”技术核心”——它保证”先取 max 再作差”不会把逐点差放大。
第 1 步(用:上面的 max 非扩张引理):任取两个值函数 与任意状态 ,令 、,代入引理:
第 2 步(用: 逐点相消 + 期望是凸组合 + 三角不等式): 在 中完全相同、逐点抵消;把常数 提出;期望 是以转移概率为权重、权重和为 的凸组合,故 (此三步无任何近似,均为恒等或确界放缩):
第 3 步(用:右端不含 ,对左端取 ):式(5.4)右端与 无关,故对左端取 后不等式仍成立:。
推论(收敛性与几何速率):由巴拿赫不动点定理, 有唯一不动点 ,且把式(5.4)的压缩性对 反复套用得 ,误差每迭代一次严格乘以 。量化到迭代次数:要把误差压到 ,需 ,即 (末步用 )。可见所需迭代数正比于有效时域 : 越接近 ,收敛越慢。
局限 / 陷阱
Bellman 最优算子对有界值函数空间在无穷范数下是压缩,并不要求必须用表格表示;表格情形只是能精确施加算子的典型实现。一旦用神经网络加有限数据回归,实际迭代通常含 投影/优化误差,而该投影在无穷范数下未必非扩张——复合算子 可能不再压缩,原收敛证明不能直接沿用(见第 5 节)。
4. Q-learning 与拟合 Q 迭代
值迭代需要已知模型 来算期望。Q-learning 把期望换成单样本随机近似:从环境采到转移 ,用样本目标 做一步随机梯度式更新:
这里的关键是 与产生数据的行为策略无关——所以 Q-learning 天然 off-policy,可以从回放缓冲、他人演示、任意探索策略学习。表格 Q-learning 在 Robbins–Monro 步长条件()与充分探索下收敛到 。
举例
在一个 网格里,右下角是终点(到达得 )。此刻你在格子 ,“向右”一步到达非终点格 、途中奖励 。设 ,当前 ,而在 处四个动作里最大的是 。则 TD 目标 ,更新 。这一步就把”右边更靠近终点”这条信息,从 往回传播了一格;反复迭代,终点的高价值会像涟漪一样逐格倒灌回起点。
为什么这样 · 能不能不这样
为什么 TD 目标 用”自举”(拿当前的估计 接力),而不用整条回合的真实回报? 因为自举只依赖一步真实奖励加下一步的现有估计,无需等回合结束:更新可以在线、增量地做,每次只引入一步的随机性,方差小,还能天然 off-policy 地复用数据、让价值信息一格格快速回传。换成蒙特卡洛(用整条轨迹的真实回报当目标)会怎样? MC 目标无偏、不自举,天然绕开”用估计更新估计”的不稳定,因此不受下一节致命三要素里”自举”这一环的困扰;但代价很实在——必须等回合终止(对持续/无限时域任务不适用),且整条轨迹的随机性层层累加使方差极大、收敛慢、样本利用差。所以这是一场偏差-方差权衡:TD 用一点偏差(自举估计本身不准)换来大幅降方差与在线能力,代价则是把这点偏差喂进了第 5 节的致命三要素、埋下发散隐患(n-step 回报即是在这条谱上取折中)。
把它推广到神经网络:拟合 Q 迭代(Fitted Q-Iteration, FQI)——收集一批数据,计算所有目标 ,然后用回归拟合 ,再重复:
式中带上标减号的 是目标网络参数:它不是另一个新网络,而是把 的参数暂时冻结下来的一份”旧副本”,专门用来计算自举目标 。为何要区分:若目标 里直接用当前正在训练的 ,就等于”追一个随自己一起动的标签”,极易发散;把它换成缓慢更新的 (每隔若干步才与 同步一次)就得到一个近似固定的回归目标。怎么取值:初始 ,之后按第 6 节的”硬同步”或”Polyak 软同步”周期性刷新——完整动机与做法见第 6 节。
本质 Insight:这不是真正的梯度下降
注意目标 里也含 。若把它当作”固定标签”回归,我们其实忽略了目标对参数的依赖——这叫半梯度(semi-gradient)。它不对应任何良定义损失的真实梯度,因此没有一般的收敛保证。DQN 的一切稳定化技巧,本质都是在”假装 是固定标签”这个近似能成立的条件下做文章。
批判性追问
课本常一句话带过”Q-learning 会收敛到 “——但这句保证的成立范围极窄:它只对表格表示、且在 Robbins–Monro 步长()与充分探索下才有。一旦把表格换成神经网络(式(5.6) 的 FQI),我们做的其实是半梯度回归而非真正的随机梯度下降(见上一条 Insight),那条收敛定理便失去理论依托。更要命的是:当”函数逼近 + 自举 + off-policy”三者同时到场(下一节的致命三要素),带逼近的 Q-learning 不但可能不收敛,还会指数发散——Baird 反例里奖励全为 、真值恒为 , 却越学越大。所以更严谨的陈述是:表格 Q-learning 收敛;带函数逼近的 Q-learning 没有一般收敛保证,DQN 的种种技巧只是把发散风险压低,并不能把这条定理原样搬回函数逼近的世界。
5. 致命三要素与发散
Sutton 提出的致命三要素(deadly triad) 指出:当以下三者同时出现时,值方法可能发散:
图 2:致命三要素。三者交集处, 可能不再压缩,值估计发散到无穷。
为什么会发散(直觉):贝尔曼算子 在无穷范数是压缩的;但神经网络拟合是在数据分布加权的 范数下做投影 。当数据分布(由行为策略决定)与被自举的目标分布不匹配(off-policy)时,投影会在某些方向放大误差。复合 的谱半径可能 ,于是每次迭代误差被乘性放大——著名的 Baird 反例就展示了一个线性逼近下 值指数爆炸的星形 MDP。
推导骨架:为什么 off-policy 是”压垮骆驼的稻草”
在线性、on-policy、固定策略评估并满足标准步长与特征条件时,半梯度 TD 有收敛结果;这不能直接推广到最优控制算子或非线性逼近。off-policy、自举与函数逼近同时出现时可能发散,但”致命三要素”描述的是高风险组合,并不意味着任意去掉一项即可无条件稳定 [1]。
Baird 星形反例:一个奖励全为 0、值却指数爆炸的 MDP
上面的谱半径论证是抽象的;Baird(1995)给了一个手可触摸的反例,展示”off-policy + 自举 + 线性逼近”三者同时出现时值估计如何发散。它的诡异之处在于:所有奖励都是 0,目标策略的真值 ,可半梯度 TD 学出来的 却越来越大。
构造:状态 / 特征 / 动作 / 更新
为何 会发散(数值直觉)。 行为策略产生的更新分布与目标策略不同,而共享特征又让一次局部更新同时改变多个状态的估计;自举目标随之被下一轮更新继续放大。用期望更新矩阵可以看到该构造存在发散方向。这个反例说明三要素齐备时可能发散,而不是给出”缺一项即无条件稳定”的充要定理 [1]。
图 3:Baird 星形反例。目标策略把所有外圈状态送入中心 S₇,行为策略却把访问撒向外圈——off-policy 分布错配叠加共享权重 的自举正反馈,使 指数爆炸,尽管真值恒为 0。
6. DQN:回放与目标网络
DQN(Mnih et al., 2015)用两个工程手段把上面这个不稳定的过程”驯服”到可用,首次在 Atari 上用同一套超参从像素端到端达到人类水平、并在约半数游戏上超越人类。
图 4:DQN 数据流。回放缓冲解耦样本相关性、把 off-policy 数据复用起来;目标网络冻结自举目标,缓解”追逐移动靶”的不稳定。
为何两者有助于稳定训练(从优化目标角度)
经验回放:SGD 的理论建立在样本近似 i.i.d.。而在线轨迹数据强时序相关(相邻状态几乎一样),直接训练等于在极窄分布上过拟合、灾难性遗忘。回放缓冲随机抽样 → 近似打散相关性、稳定梯度;同时让每条昂贵样本被多次复用(off-policy 的红利)。
目标网络:半梯度更新中目标 随 一起变——你在”追一个自己移动的靶”,正反馈易发散。把目标里的参数冻结为 (每 步硬拷贝,或用 Polyak 软更新 ),可让目标变化更慢。两者都是延缓目标变化的实现,但更新轨迹并不等价; 与 都应按算法和任务调节。
举例
经验回放像备考用的”错题本”:做过的题(转移样本)不是做完就扔,而是记下来反复复习——一条昂贵样本被多次利用。更关键的是打散顺序:若总按做题先后连着复习(相邻样本高度相关,像连着刷同一章),大脑会对这一小段过拟合、转头就忘别的;随机抽题复习才让”训练分布”接近均匀、梯度更稳。
举例
目标网络治的是”别追一个自己在动的靶子”。没有它时,你朝目标 开枪,可 里也含 ——你每开一枪(更新一次 )靶子自己就挪一下,越追越乱。把靶子里的参数冻结成 、隔一段时间才挪一次,就等于让靶子先站定,再周期性移动;这通常能缓解训练震荡,但不保证收敛。
深化 · 更新频率 / Polyak 的”稳定性 vs 追踪速度”定量权衡
把软同步写成对在线参数的指数滑动平均(EMA):。它等价于一个时间常数约 步的低通滤波——把最近约 步的 做加权平均。设在线参数每步大致以速度 漂移,则稳态下目标网络对在线网络的滞后约为
于是”稳定性 vs 追踪速度”是一对此消彼长的量: 越小,EMA 目标越平滑但通常越滞后;硬同步的 越大,目标保持不变的区间越长。 可作为 EMA 记忆尺度的粗略直觉,但不能据此把软更新换算成等价硬同步周期;合适取值依算法、优化器与任务而异。
批判性追问
“上了目标网络,训练就稳了”——这话把缓解说成了解决。目标网络做的只是把自举标签冻结一段时间,让每个内层回归近似成一个良定义的监督问题;它并没有拆掉致命三要素,函数逼近、自举、off-policy 依旧同时在场。而且它还引入了新的代价——滞后偏差(式(5.6’)):目标是一份旧参数的估计,与当前 系统性偏离,本质上是拿”更慢但更稳”去换”更快但会追移动靶”。更关键的是,冻结目标本身不提供一般收敛保证。正确的定位是——目标网络是减慢”移动靶”的工程稳定器,而不是把表格情形的 -压缩收敛保证搬回函数逼近的定理。
前沿实验室视角
DQN(DeepMind,Mnih 等,2013/2015) 第一次证明了”直接从像素输入、端到端学一个深度价值网络”是可行的:用同一套超参在几十款 Atari 游戏上达到甚至超过人类水平,把深度学习正式带进了价值 RL。此后 DeepMind 沿”价值网络 + 搜索/模型”这条主线一路推进——AlphaGo(2016) 用价值网络加蒙特卡洛树搜索击败顶尖围棋手;AlphaZero(2017/2018) 去掉人类棋谱、纯自博弈就通吃围棋、国际象棋与将棋;MuZero(2020) 更进一步,连环境规则都不预先给定,改为学一个隐式动力学模型再在其上做规划搜索。按我的理解,这条脉络凝练出 DeepMind 的招牌认知:把 “学习”(价值/策略网络)与”搜索/规划”结合,用学到的评估去替代或加速昂贵的展开搜索——本模块的价值网络正是这套方法论最早的基石。
7. 过估计与 Double DQN
Q-learning 的 目标在特定噪声条件下会产生过估计。即使各动作价值估计无偏,取 后的期望也不小于真实最大值,但具体偏差取决于误差结构 [2]。
举例
设某状态下两个动作的真实价值都恰好是 ,但估计带噪声:这一轮采样得到 ,下一轮可能反过来 ,两种情况各占一半。可无论哪一轮, 总是 ——取 max 后的期望是 ,而真实的 只有 。凭空多出的这 就是过估计:max 会系统性地挑中”恰好被噪声抬高”的那个,动作越多、噪声越大,这份虚高越严重,还会经自举一层层滚雪球。
推导: 与偏差来源
关键假设
估计噪声 ,(无偏),各动作估计含独立噪声、方差 。
第 1 步(用: 的凸性 + Jensen 不等式): 是逐坐标取上确界,是凸函数(多个线性函数的上包络)。对凸函数 有 Jensen ,取 、:
等号条件取决于动作价值差异与噪声支撑;不应概括为仅当噪声退化。该不等式说明 可能带来正偏差,但不保证每个状态、每次训练都过估计。
第 2 步(偏差来源):偏差恰等于 。考虑最能暴露问题的情形—— 个动作真值全相等(),则 ,而偏差 ,正好是” 个零均值噪声取最大”的期望。 倾向选中恰好被误差抬高的动作;自举还可能把这种偏差传播到其他状态,但偏差大小取决于误差结构 [2]。
第 3 步(Double 修正:解耦”选/评”):偏差来自”用同一套估计既选动作又评估其价值”——选中的和被高估的是同一个随机量,正相关放大了 Jensen 间隙。Double Q-learning 用一套网络选贪心动作、另一套网络评其价值:
动作由在线网络 选、价值由目标网络 评。两者是延迟关联的网络,并非独立;这种部分解耦在论文实验中显著降低了过估计,但不提供一般无偏保证 [2]。
图 5:DQN 在论文实验中出现 值上偏;Double DQN 通过部分解耦”选/评”降低过估计 [2]。
8. Dueling / PER / n-step / Rainbow
| 改进 | 核心思想 | 解决的问题 |
|---|---|---|
| Dueling 架构 | 把 拆成 两支( 减去均值以可辨识) | 许多状态下动作无关紧要,单独学 更高效、泛化更好 |
| 优先经验回放 (PER) | 按 TD 误差 大小采样,配重要性权重纠偏 | 让”信息量大”的转移被更频繁重放,加速学习 |
| n-step 回报 | 目标用 | 在偏差-方差谱上折中,加快奖励传播(呼应模块 04) |
| 分布式 RL (C51/QR) | 学回报的整个分布而非期望 | 更丰富的学习信号、更稳定 |
| NoisyNet | 参数化噪声实现状态相关探索 | 替代 -greedy 的启发式探索 |
| Rainbow | 组合 Double、PER、Dueling、multi-step、distributional、NoisyNet 共六项扩展 | 论文以组合实验与逐项消融评估互补性 [3] |
本质 Insight
Rainbow 的消融表明,多项扩展可以在其 Atari 设置中组合并贡献不同程度的收益;这不证明收益近乎线性,也不证明各组件严格正交 [3]。
分布式 RL:C51 / QR-DQN / IQN——学分布而非期望
标准 DQN 学的是期望回报 。分布式 RL 的核心一跃是:直接学随机回报 的整个分布。它满足分布式贝尔曼方程( 表分布相等):
三种代表方法的差别,恰好是”分布用什么参数化”的三种正交选择:
| 方法 | 固定什么 / 学什么 | 训练损失 | 关键差异 |
|---|---|---|---|
| C51 | 固定支撑( 上 51 个等距原子 ),学各原子概率 | 把贝尔曼更新后的分布投影回固定原子,最小化交叉熵/KL | 须预设值域;分布是”竖着”离散的(概率可变、位置固定) |
| QR-DQN | 固定概率( 个均匀分位 ),学分位点位置(quantile 值) | 分位数回归(quantile / pinball + Huber) | 无需预设值域;“横着”离散(位置可变、概率固定),与 C51 恰好对偶 |
| IQN | 连概率也不固定:采样 ,学一个把 分位值的隐式函数 | 对采样 的分位数回归 | 逼近整条连续分位函数;可做风险敏感策略(对 加权) |
本质 Insight:为什么”学分布”即便只按期望行动也更好?
我们最终仍按期望(或分位加权)贪心,那学整条分布图什么?——分布目标提供了远比标量更丰富的监督信号:网络被迫区分”稳拿 5 分”与”半概率 0 分半概率 10 分”,这像一个强力的辅助任务,逼出更好的表征、让自举更稳。C51→QR→IQN 是同一思想”把分布的哪一维交给网络”的逐步放松:C51 固定位置学概率,QR 固定概率学位置,IQN 两头都不固定、直接学函数。
优先经验回放:采样概率与重要性权重的偏置修正
均匀回放对所有转移一视同仁,但”TD 误差大”的转移信息量更大。优先经验回放(PER) 按优先级 采样,(比例式, 防零)或 (排名式)。样本 的采样概率为
这里的 是优先级指数(控制”多大程度按优先级采样”的旋钮),与式(5.5) 里 Q-learning 那个学习率 只是碰巧同名、含义无关,切勿混淆。 退回均匀采样, 完全按优先级。问题:非均匀采样改变了样本的期望分布——SGD 想估计的是”在回放分布下的期望梯度”,如今被这个偏置扭曲了。修正:给每个样本乘一个重要性采样(IS)权重抵消偏置:
直觉:被过采样( 大)的样本权重被压小,正好抵消它出现太频繁带来的偏置;除以 只做归一化、保证权重 、稳住更新尺度。 从小值退火到 1——训练早期允许有偏(快、无所谓精确),后期 做完全无偏的修正(此时估计需要更准)。TD 更新即变为 。
Rainbow:各组件消融的定性收益
Rainbow(Hessel et al., 2018)的消融实验回答了”哪个 trick 最值钱”。定性结论(逐个拿掉某组件看性能掉多少):
- 优先回放(PER)与多步(n-step)回报:贡献最大——拿掉任一个,性能与学习速度下降最明显。二者一个管”用好样本”、一个管”快传奖励”。
- 分布式(C51):贡献显著,尤其在训练后期决定最终水平。
- Double:边际贡献较小(在其他组件已抑制部分过估计后),但几乎零成本,留着无妨。
- Dueling 与 NoisyNet:贡献温和、任务相关——某些游戏受益明显,另一些几乎无差别。
前沿实践
编者判断: 分布式价值、n-step 与优先回放常被作为可组合组件研究,但是否采用取决于任务和代码库,不能笼统称为默认配置。Rainbow 的消融方法论提醒后来者:报告组合方法时应做组件消融,避免把组合收益归给单一创新。
9. 连续动作:DDPG 与 TD3
Q-learning 的 (式(5.2) 里那个内层 )在连续动作下无法枚举。两条思路:(1) 用优化/采样近似 ;(2) 学一个确定性策略网络 来替代 。后者即 DDPG(确定性策略梯度 + DQN 式 critic,off-policy actor-critic):
TD3(Fujimoto 2018)针对 DDPG 的过估计与脆弱做三项修补:双 critic 取最小(抑制过估计,对应第 7 节式(5.7) 的偏差)、目标策略平滑(对目标动作加噪声,正则化尖锐 )、延迟策略更新(critic 多更新几次再动 actor,稳住目标)。
TD3 三处修补:逐处拆解
① 双 Q 取最小(clipped double-Q)——治过估计
维护两个独立 critic ,目标取二者较小值:
第 7 节(式(5.7))说 在特定误差条件下会产生高估;这里主动取 是悲观侧的对冲,用来限制高估经自举传播。这是 Double DQN “解耦选/评”(式(5.8))思想在连续控制里的变体。
② 目标策略平滑(target policy smoothing)——治尖锐 Q 峰
算目标时给目标动作加一点截断噪声,再进 critic:
确定性策略容易钻 critic 的空子——若 在某个动作附近有个虚高的尖峰(函数逼近误差),策略会一头扎进去。加噪声等于在动作邻域做局部平均,把尖峰抹平,是一种”期望 SARSA”式的正则化,让学到的值对动作扰动更鲁棒。
③ 延迟策略更新(delayed policy updates)——稳目标
每更新 critic 次(常 )才更新一次 actor 与目标网络。理由:actor 在追一个还没学准的 critic,若二者同频更新,critic 的估计误差会被 actor 立刻放大并反馈回目标,误差累积。让 critic 先”沉淀”几步、方差降下来,actor 再动,显著降低目标的抖动与发散风险。
图 6:TD3 在 DDPG 之上的三处修补——双 critic 取 min(治过估计)、目标动作加截断噪声(治尖锐 峰)、延迟 actor/目标更新(稳住自举目标)。
本质 Insight
把本模块的两个”修补”并排看,会发现乐观与悲观其实是同一台”不确定性估计”机器的正负号。探索时我们对不确定的动作加一个奖励(乐观,见模块 10 的 UCB);而这里 Double DQN、TD3 的双 critic 取 恰恰相反——对可能被高估的动作减一个量,是悲观侧的同一操作(这条悲观主线在 模块 09 的 CQL 里会被推到极致)。另一处统一:连续动作下 无法枚举,DDPG/TD3 用一个确定性策略网络 把这个昂贵的内层 摊销(amortize) 成一次前向——这与模块 07 用策略网络摊销 采样、模块 08 用策略网络摊销规划,是同一种”用学习替代搜索”的套路(统一视角见 模块 15)。
前沿实践
编者判断: SAC 是连续控制中常用的 off-policy actor-critic 方法之一。PPO-in-RLHF 使用 value critic,而 GRPO 用组内相对奖励替代 critic;省显存和减少 critic 训练成本是其公开动机之一,具体收益仍依任务与实现而定。
讨论课 · Section 4:DQN and SAC(DQN 部分)
本节取自 CS285 Discussion Section 4(DQN and SAC),这里只覆盖 DQN 的工程实现——完整的训练循环、一份实践清单、以及发散时的排查表。SAC(最大熵 off-policy AC)的理论与实现细节见 模块 07。目标是把第 6–7 节的原理落成”能跑且不发散”的代码。
4.1 DQN 训练循环伪代码
把回放采样、目标 、Huber 损失、目标网络同步四件事拼进一个 step 循环:
# DQN 训练循环(每步:一次环境交互 + 一次 learn)
D = ReplayBuffer(capacity=1_000_000)
φ = init_Q_network()
φ⁻ = copy(φ) # 目标网络(冻结的标签来源)
ε = 1.0
for step in range(total_steps):
# —— 交互:ε-greedy 采样 ——
if random() < ε: a = random_action()
else: a = argmax_a Q_φ(s, a)
s2, r, done = env.step(a)
D.add(s, a, r, s2, done)
s = env.reset() if done else s2
# —— ε 线性退火:从 1.0 退到 ε_end(如 0.01)——
ε = max(ε_end, ε − (1.0 − ε_end) / anneal_steps)
# —— 学习:热身后每 train_freq 步抽一个 minibatch ——
if len(D) >= learn_start and step % train_freq == 0:
(s, a, r, s2, done) = D.sample(batch=32)
with no_grad():
y = r + γ * (1 − done) * max_a2 Q_φ⁻(s2, a2) # 目标网络算 y
td = Q_φ(s, a) − y
loss = mean( huber(td, δ=1.0) ) # Huber / smooth-L1
g = grad(loss, φ)
φ ← φ − lr * clip_grad_norm(g, max_norm=10.0) # 梯度裁剪
# —— 目标网络同步:每 C 步硬同步(或 Polyak 软同步)——
if step % C == 0: φ⁻ ← φ # 硬同步
# 软同步替代: φ⁻ ← τ*φ + (1−τ)*φ⁻
Double DQN:只改目标 y 的一行
把”选动作”和”评价值”用不同网络解耦(呼应第 7 节的过估计分析),实现上只是把 的计算换成两行:
# Double DQN:在线网络“选”,目标网络“评” a_star = argmax_a2 Q_φ (s2, a2) # 选:在线网络 φ y = r + γ * (1 − done) * Q_φ⁻(s2, a_star) # 评:目标网络 φ⁻对比原始 DQN 的目标 (即式(5.6) 的样本目标)与 Double 目标 式(5.8)——差别仅在于 用 而非 ,几乎零额外成本却显著抑制过估计。
4.2 实践清单(抄下来自查)
必做项
- 退火:线性从 退到 ,退火步数常占总步数的 10%~20%;退完保持一个小的探索底噪。
- frame stacking:Atari 把最近 4 帧叠成通道输入,让网络能感知速度/方向(单帧无法区分运动状态),并做灰度化 + 84×84 缩放。
- 梯度裁剪:对全局范数裁剪(如 )或用 Huber 隐式限幅,防止个别大 TD 误差把网络一步打崩。
- target 更新频率 :太小 → 目标乱抖、退化成”追移动靶”;太大 → 目标太旧、学习变慢。硬同步周期或软更新系数应按算法、任务与训练尺度调节,二者不能直接等价换算。
- Huber loss: 时用平方、之外用线性,兼顾小误差的灵敏与大误差的鲁棒,是 DQN 稳定的关键之一。
- learn_start 热身:先随机策略填充回放缓冲(如 5 万步)再开始学习,避免早期在极窄分布上过拟合。
4.3 发散/不收敛排查
Q 值爆炸或不学时,按此排查
- Q 值单调飙升到很大 → 目标网络失效或 太小;确认 确实用 且已
no_grad;考虑上 Double DQN 抑制过估计。- loss 突然爆炸/NaN → 未做梯度裁剪或未用 Huber;学习率过大;奖励未裁剪/归一化(Atari 常把奖励 clip 到 )。
- 完全不学(回报平坦) → 退火太快导致探索不足;
learn_start太小;train_freq 与 batch 不匹配导致更新过稀。- 训练中途崩塌 → 回放缓冲太小、被近期高度相关样本主导;增大 capacity 或用 PER 并配重要性权重纠偏。
- 致命三要素自检:函数逼近 + 自举 + off-policy 同时在场(见第 5 节),任何不稳都优先怀疑”目标不够稳定”,从加大 target 稳定性入手。
方法溯源:动机 · 启发 · 局限
价值方法这一族的演化,可以读成一部”为把自举稳住而不断打补丁”的历史:从表格 Q-learning 的收敛保证,到函数逼近下的发散风险,再到 DQN 的两个稳定化技巧、Double 的过估计修正,最后是 Rainbow 的组件组合与连续动作的 DDPG/TD3。下表逐一给出每个关键方法针对上一个的局限而生的动机。
| 方法 / 代表作(年代) | 动机(要解决什么) | 启发 / 脉络 | 关键局限(→ 引出谁) |
|---|---|---|---|
| TD 学习(Sutton, 1988) | 不等回合结束,就从”下一步的预测”里自举地更新价值,加速估计 | 动物学习的时序差分预测;动态规划的自举 | 本身只做预测(策略评估),不含控制/寻优 → 引出 Q-learning |
| Q-learning(Watkins, 1989) | 无模型地学最优动作值 ,且天然 off-policy、可复用任意数据 | 值迭代 + 随机近似(Robbins–Monro 步长条件) | 表格式,状态空间一大就不可行 → 需要函数逼近(FQI/DQN) |
| 致命三要素(Sutton 归纳;Baird 反例 1995) | 诊断:解释”函数逼近 + 自举 + off-policy”三者同现时的发散风险 | Baird 星形反例;投影与贝尔曼更新的复合可能不再压缩 | 它描述的是高风险组合;移除某一要素可避开该组合,但不构成无条件稳定保证 |
| DQN(Mnih et al., 2013/2015) | 让神经网络 能从 Atari 像素输入训练 | 经验回放(去相关 + 复用)+ 目标网络(冻结自举标签) | 在部分游戏中出现明显过估计 → 引出 Double DQN |
| Double DQN(van Hasselt, 2016) | 治 算子的 Jensen 型正偏差(过估计) | Double Q-learning:把”选动作”与”评价值”用不同网络解耦 | 只解决过估计这一个病灶 → 其余病灶引出 Dueling/PER/… |
| Dueling(Wang et al., 2016) | 许多状态下动作选择影响较小时,分开表示 与 | 把 分解为两支 | 只改架构,不直接改变回放采样或目标构造 |
| 优先经验回放 PER(Schaul et al., 2016) | 让”信息量大”( 大)的转移被更频繁重放,加速学习 | 规划中的优先扫描(prioritized sweeping) | 非均匀采样引入偏置,须用重要性采样权重纠偏 |
| 分布式 RL / C51(Bellemare et al., 2017) | 学整个回报分布 而非期望,提供更丰富的监督信号 | 分布式贝尔曼方程;把分布当强力辅助任务 | C51 须预设值域、投影回固定原子 → 引出 QR-DQN/IQN |
| Rainbow(Hessel et al., 2018) | 把 Double/Dueling/PER/n-step/C51/NoisyNet 六项组合 | 在统一实验设置中检验这些组件能否互补 | 组件多、调参与消融复杂;报告组合效果时需要组件消融 |
| DDPG / TD3(Lillicrap 2016 / Fujimoto 2018) | 把价值方法推广到连续动作( 无法枚举) | 确定性策略梯度 + DQN 式 critic;双 取 的悲观对冲 | 探索弱、仍脆弱 → 引出最大熵的 SAC(模块 07) |
演进故事线:从收敛保证到”驯服自举”
故事始于一个漂亮的定理:表格 Q-learning 因贝尔曼算子在无穷范数下是 -压缩映射,能收敛到 。但把表格换成神经网络,保证立刻崩塌——拟合是在数据加权的 范数下做投影,当”函数逼近 + 自举 + off-policy”三者同时在场(致命三要素),复合算子 的谱半径可 ,误差被乘性放大,Baird 反例里奖励全 0、真值恒为 0, 却指数爆炸。这就是所有后续工作的共同敌人。
DQN 用经验回放降低样本时序相关并复用数据,用目标网络减慢自举目标的变化;这些措施缓解不稳定,但不提供一般收敛保证。 算子在特定估计误差下会产生过估计,Double DQN 用”选/评”部分解耦来降低该偏差。PER、n-step、C51、Dueling 与 NoisyNet 分别改变采样、目标、回报表示、网络结构和探索;Rainbow 的实验表明它们可在其 Atari 设置中组合,但收益并非线性叠加,也不能据此认定组件严格正交 [3]。
遗留局限如何催生下一步
连续动作下 无法靠枚举求解,DDPG 用确定性策略网络 近似这一内层优化;TD3 再引入双 取 、目标平滑与延迟更新。编者判断: 这些稳定价值估计的困难有助于理解为何部分 LLM 后训练方法选择不用独立 value critic;具体动机与收益仍应以各方法论文和实现为准。
10. 小结与要点
- 价值方法的地基是贝尔曼最优算子的 -压缩性(无穷范数、表格情形),由此得几何收敛。
- Q-learning = 值迭代的随机近似,天然 off-policy、样本高效;FQI 是其函数逼近版本,但只是半梯度、无一般收敛保证。
- 致命三要素(函数逼近 + 自举 + off-policy)同时出现时可能发散;DQN 的回放与目标网络正是针对性的稳定化解药。
- 在特定估计误差下会导致过估计,Double DQN 用”选/评”部分解耦来抑制;Rainbow 组合六项扩展并用消融评估其贡献。
- 连续动作用 DDPG/TD3 以确定性策略近似内层 ;SAC 是常用的连续控制方法之一(→ 模块 07)。
承上启下
我们已经看清价值方法的”稳定性”命门。回到策略这条线——朴素策略梯度步长极其敏感:走小了慢、走大了策略崩溃。模块 06 将从”参数空间 vs 分布空间”的几何出发,推导自然梯度、TRPO 的单调改进界与 PPO 的 clip,这套思想也正是现代 LLM RL 的直接前身。