这一组方法体现了双 critic、目标动作加噪声和延迟策略更新这些经典稳定化技巧。
如果把 DDPG 理解成“critic 指导 actor”,那 TD3 可以看成“让这个指导过程更稳一些”。TD3_NB 则在此基础上再加入 BC 正则。
TD3:双 critic,目标动作加噪声,actor 延迟更新。
TD3_NB:在 TD3 主线上加入 BC 项和 reward scaling。
很适合用来展示“经典稳定化技巧 + 离线增强”的组合。
通俗理解:
TD3 像找两个老师给同一个动作打分,然后采用更低的分数。这样模型不会因为某个老师过于乐观就误以为动作特别好。
技术对应:
两者都使用两个 Q 网络,并在目标值中取 min(Q1, Q2),这是 TD3 用来降低 Q 值高估的核心技巧。
通俗理解:
给目标动作加一点小噪声,相当于检查“附近动作是不是也还可以”。这样 actor 不容易钻某个 critic 评分尖峰的空子。
技术对应:
两者都会对 target action 加 policy_noise,并用 noise_clip 截断,再将动作限制在合法范围内,用于平滑 target critic 的估计。
通俗理解:
critic 要先多学几步,把评分标准变稳一点,actor 再根据这个评分去改动作。否则 actor 太早跟着不稳定评分跑,训练会抖。
技术对应:
actor 不会每一步都更新,而是按 policy_delay 延迟更新;critic 更新更频繁,actor 和 target networks 按固定间隔更新。
通俗理解:
NB 版在“追求高 Q 值”的同时,加上“别偏离数据动作太远”的提醒,更适合不能在线试错的离线数据训练。
技术对应:
TD3_NB 在 actor 更新中组合 q_term 与 bc_term,并支持 reward_scale,让策略优化、行为克隆约束和奖励尺度处理同时参与训练。
| data_path / save_dir | 路径参数 |
|---|---|
| batch_size | 批大小 |
| lr_actor / lr_critic | 学习率 |
| gamma / tau | 折扣与软更新 |
| policy_noise / noise_clip | 目标动作噪声 |
| policy_delay | 延迟更新步长 |
| hidden | 隐藏层结构 |
| max_action | 动作范围上限 |
|---|---|
| TD3_NB.alpha_bc / bc_coef | BC 正则参数 |
| TD3_NB.reward_scale | reward 标准化 |
| grad_clip / weight_decay | 训练稳定性参数 |
建议先理解常用参数,再看进阶参数。
Base 版本训练器,实现双 critic 与延迟更新。
目标动作加噪声并更新 critic,再按延迟更新 actor。
NB 版本训练器,在 actor 更新中引入 BC 项。
将 q_term 与 bc_term 组合成 actor_loss。
| 对比项 | TD3 | TD3_NB |
|---|---|---|
| 核心主线 | 经典 TD3 稳定化训练 | TD3 + BC 正则 |
| critic 设计 | 双 critic | 双 critic |
| actor 更新 | 纯 Q 导向更新 | Q 项 + BC 项 |
| 额外增强 | 目标动作加噪声、延迟更新 | 再加 reward_scale 与 BC 正则 |