第 31 天|TD3:给 DDPG 的价值误差加三道约束
原论文与版本:Fujimoto 等,Addressing Function Approximation Error in Actor-Critic Methods,2018。正文。
先接住前作的问题
DDPG用Critic的动作导数训练Actor,但Actor会主动寻找估值最高的区域,包括错误尖峰。TD3直接修补这个反馈循环;它与Soft Actor-Critic是同期平行工作,双Q最小值虽有模块联系,熵目标与延迟确定性更新并不相同。
五个前置概念
- Clipped Double Q:目标用两估值较小者。
- 延迟策略更新:让 Critic 多学几步再改 Actor。
- 目标平滑:对邻近目标动作平均化评价。
- 高估传播:自举把局部误差传到其他状态。
- 消融:移除组件检验其作用。
一、问题设定:Actor越会提高Q,为何真实控制反而可能变差
Critic的误差不是被动报告给策略的噪声,策略优化会有方向地利用它。只增加一个评价器还不够:目标怎样取值、Actor多快跟随、是否过分依赖单个尖锐动作点,都可能决定误差如何被反复放大。
| 要素 | 本文设定 |
|---|---|
| 研究场景 | off-policy、无模型、确定性连续 Actor–Critic |
| 状态/观测 | MuJoCo低维状态 |
| 动作 | 连续动作向量 |
| 奖励或学习信号 | 环境回报 |
| 终止/边界 | 任务终止/时间限制 |
二、在目标、更新频率和动作邻域各加一道约束
连续Actor同样会最大化价值误差:它沿Critic的动作梯度爬坡,可能专门找到网络误估的尖峰。TD3的三项改动分别落在目标、更新时间尺度和动作邻域,不能简化为“多一个Critic”。
双目标Critic取较小值,避免把某个网络的孤立高估直接传回;延迟Actor与目标网络更新,让Critic先多做几次拟合;目标动作加截断噪声,在邻域平均意义上平滑自举目标,减少对尖锐峰值的依赖。这里的噪声不是探索环境用的行为噪声。
取min会引入低估,两个Critic若高度相关也可能同时犯错。Actor通常通过一个在线Critic更新,不是对min目标整条计算图反传。三项机制是工程折中,不能从双表收敛理论直接推出现代TD3神经网络必然稳定。
先扰动目标动作,再取双Q较小值
两个 Critic 回归同一冻结 y;每隔 d_policy 次 Critic 更新再更新 Actor。符号 d_policy 与终止标志不要混用。
把目标逐项读出来: 是真实转移后的状态, 是本次奖励, 是折扣, 只表示任务真正终止;时间上限截断是否自举另按任务定义。横杠参数表示缓慢跟随在线网络的目标网络。内层 clip 把高斯噪声限制在 ,外层 clip 再投回合法动作区间。先在这个邻近动作上取双 Q 较小值,再加即时奖励,得到停止梯度的 Bellman 回归标签。反复抽噪声近似的是邻域平均,单次更新并没有精确积分。可对照原文§5.3、式15及Algorithm 1。
两次裁剪不能合并成一次
内层裁剪限定扰动相对目标动作的幅度,外层裁剪保证最后动作合法。若目标动作已贴边,即使扰动在允许噪声范围内,叠加后仍可能越界;两次clip各保护不同条件。
区别延迟策略更新与延长环境动作
以下是可手算的教学构造,不是论文实验。
某目标动作附近两Critic估值为(10,6),r=1、γ=0.9,目标用而非10。若偏移后的邻近动作估值更低,目标平滑会降低依赖这个尖峰的收益。
设每两次Critic更新才更新一次Actor,四次Critic迭代只发生两次策略更新。它不是把环境动作保持两步,也不是把奖励折扣改为γ²。
三、先拟合双Critic再延迟更新Actor
采集带行为探索噪声的经验到 replay
每次梯度步骤:
抽 minibatch
目标动作 ← 目标Actor(s_next)+截断高斯噪声
再截断到合法动作区间
y ← r+γ*(1-done)*min(目标Q1,目标Q2)
更新两个 Critic 的 TD 损失
若 update_index % policy_delay == 0:
Actor 最大化在线 Q1(s,Actor(s))
软更新目标 Actor 与两个目标 Critic
输出:评价时无探索噪声的 Actor
实现要点:可能引入低估,不能把双 Critic 最小值当真值下界。
四、读三组件消融与重配DDPG基线
| 实验要素 | 原文设定与证据范围 |
|---|---|
| 环境与任务 | 七个连续控制任务 |
| 数据来源与规模 | 在线交互1百万步 |
| 对比基线 | DDPG、重调DDPG、PPO/TRPO/SAC等原文版本 |
| 训练预算与资源 | 10训练种子;每5000步做10回合无探索评价 |
| 指标及其含义 | 表1为原文汇总回报,不是2026排行榜 |
| 随机性与不确定性 | 10种子均值及标准差 |
| 实际验证的假设 | 误差控制能否独立于普通调参改善性能 |
实验解读(本文分析):表2报告10次试验、各100万步、最后10次评估平均回报,并分别加入/去掉延迟、平滑、双Q。某些单任务去掉一项仍可能更高,说明不是每项都处处获益。原文重新配置DDPG本身就显著改变比较基线,因此应同时看算法组件和网络/超参数影响。
表2按共同预算检验各组件的条件收益
原引用定位:原文。

先读坐标再比较颜色:七个面板的横轴都是环境时间步,以百万步为单位;纵轴是各任务的平均评估回报,量纲与范围随任务改变,不能跨面板直接比较高度。蓝色TD3在HalfCheetah等任务较高,但倒立摆面板有多个方法接近上限,不能只用饱和任务判断三项机制的贡献。绿色重调DDPG与橙色原DDPG的差距还提醒我们:比较对象包含实现和调参变化。
误差分析说明连续Actor同样会选择Critic的乐观区域;图1和图2分别检验clipped double-Q及其他交叉估计变体的估值行为。表1在七任务比较整体性能,表2逐项移除机制,但不能当完全独立的因果分解。图5的阴影为十次试验平均评估的半个标准差,并经过平滑,不是95%置信区间;真实样本预算也不包含额外Critic更新的全部计算。 查看原文。

读图提示:左(a)为Hopper,右(b)为Walker2d。实线估值与带圆点的真实回报估计应配对读,曲线高低不等于策略性能排名。

读图提示:左(a)为Hopper,右(b)为Walker2d。红色DQ-AC与紫色DDQN-AC各自对照同色带点真值,检查交叉估计仍保留多少乐观误差。
五、低估与相关错误仍会穿过三道约束
表1 HalfCheetah中TD3约9636.95、原DDPG约3305.60、作者重调DDPG约8577.29,比较对象改变就显著改变增益。双Q共享数据仍可能相关,min的悲观程度也会影响回报;目标平滑还可能抹掉尖锐但真实的最优动作。这些条件不能用于断言所有今日SAC实现弱于TD3。
六、继续追问:平滑、时钟与误差相关性
1. 两 Critic 完全相关时还有多少作用?
若两者逐点完全相同, 就等于单个 Q,没有额外抑制高估;部分相关时收益取决于误差差异,而 min 又会带来低估。不同初始化不保证独立,因为数据、目标和结构往往共享。可同时测误差相关、Q差值与真实回报,判断保守目标是在压低噪声峰还是过度压低好动作。
2. 为什么目标噪声不等于探索噪声?
目标噪声加入用于计算自举目标的下一动作,平滑 Critic 所评价的局部动作价值,避免目标依赖极窄错误峰。探索噪声加入实际执行动作,决定收集哪些真实数据。前者可以在完全离线的数据更新中发挥作用,后者才直接改变环境访问分布;两者噪声尺度、裁剪与使用位置应分别记录。
3. 同样交互预算下更频繁 Critic 更新是否公平?
若只比较真实样本效率,固定交互量可以合理,但要明确更多 Critic 更新使用了额外计算。系统效率还应匹配墙钟或总梯度更新预算,并记录 update-to-data ratio。增加更新次数也可能更严重地过拟合回放池,不能默认计算更多就是公平或一定更好;应同时画回报对环境步、更新时间和总运行时间。
七、从在线误差控制走向离线行为约束
直接后作承接:TD3+BC。没有新增环境交互时,估值约束还不够,后作再限制Actor偏离数据行为。
历史机制对照:Double Q。交叉选择评价与取双Q最小值都处理高估,但目标定义和偏差性质不同。
原论文与图表入口。§4—5三机制;§6.2表2及其统计口径。
教学阅读:Twin Delayed DDPG。仅借用本节的解释顺序与接口视角;具体算法、版本和实验以本篇原论文为准。
自测两题
第一题考查核心机制,第二题考查边界与辨析。建议先自行作答,再对照参考答案。以下数值小例子均为教学构造。
问题 1:TD3 的三项改动分别针对什么?
参考答案:双 Critic 取较小值,抑制乐观估计;延迟 Actor 更新,让价值估计有更多机会稳定;目标策略平滑,在邻近动作上平滑目标,降低尖锐虚假高值的吸引力。它们共同减弱 Actor 利用 Critic 误差的反馈。
问题 2:取两个 Q 的较小值,为什么不是可信下界?
参考答案:两个 Critic 可能共享数据偏差,在同一区域同时高估;它们也可能同时低估。取最小值是一种抑制高估的机制,没有自动附带统计置信水平或对真实价值的逐点下界保证。