跳到主要内容

9. DDPG 与 TD3 算法

(Deep Deterministic Policy Gradient)算法可以看作是 算法在连续动作空间上的扩展,但结构上更像是 算法。(Twin Delayed DDPG)算法则是对 算法的改进,主要是为了克服过估计偏差和训练不稳定等问题。

具身智能视角:DDPG 和 TD3 是机械臂控制、灵巧手操作等连续控制任务的经典算法。它们使用确定性策略直接输出关节力矩,配合经验回放实现 off-policy 训练,样本效率较高。

9.1 DPG 算法

在经典策略梯度算法中,我们学习的是随机性策略 。对于连续动作空间,通常选择高斯分布来表示这个概率分布,但这种策略计算成本较高,且对动作采样的方差较大。

在某些情况下,使用确定性策略更加高效。确定性策略直接将状态映射到一个具体的动作:

对应的策略梯度表达式:

这就是确定性策略梯度(DPG) 算法的核心。

9.2 DDPG 算法

基于 DPG 方法,DDPG 算法增加了几个关键要素:

9.2.1 OU 噪声

引入噪声的目的是为了增加策略的探索性。OU(Ornstein-Uhlenbeck)噪声是一种具有回归特性的随机过程:

代入到 DDPG 算法中,最终的动作选择为:

OU 噪声相比高斯噪声的优点在于:

  • 探索性:持续的、自相关的特性使得探索更加平滑稳定
  • 可控性:回归特性使噪声逐渐减小,早期探索多,后期利用多
  • 稳定性:避免剧烈抖动,保持动作的连续性

DDPG 算法的整体流程如图 1 所示:

DDPG 算法流程

DDPG 算法中目标网络使用软更新(Soft Update),使目标网络参数平滑变化,提高训练的稳定性和收敛性。

9.3 TD3 算法

DDPG 算法容易出现 值的过估计问题,导致策略学习不稳定甚至发散。TD3 算法提出了三种关键改进。

9.3.1 双 Q 网络

使用两个独立的 Critic 网络来估计动作的价值。在计算目标值时,取两个 值中的较小值,从而减少过估计:

对应损失函数:

9.3.2 延迟更新

Actor 网络的更新频率低于 Critic 网络。Critic 学得更快、决策更准确后,Actor 才跟进更新。实践中,Critic 每更新 10 次,Actor 只更新 1 次。

9.3.3 目标策略平滑

在计算目标值时给目标策略添加噪声,并增加裁剪:

这种噪声正则化提高了 Critic 本身的抗干扰性和稳定性。

9.4 思考

DDPG 算法是 off-policy 算法吗?为什么?

是的。DDPG 结合了经验回放、目标网络和确定性策略,是典型的 off-policy 算法。这意味着它可以重用历史数据,样本效率较高,适合与仿真环境结合使用。

软更新相比于硬更新的好处是什么?为什么不是所有的算法都用软更新?

好处:(1) 平滑目标更新:逐渐调整目标网络的参数,降低目标的变化幅度,减少训练中的不稳定性;(2) 降低方差;(3) 避免振荡:减少目标网络和主网络之间的振荡,有助于更稳定地收敛。缺点:(1) 速度较慢;(2) 一些算法可能需要更频繁地探索新策略,硬更新允许完全用新策略替代旧策略;(3) 某些算法对硬更新更敏感,硬更新是其关键组成部分。综上,选择哪种方式取决于具体的问题和算法要求。

TD3 相比 DDPG 的改进总结:

  1. 双 Q 网络 → 使用两个独立的 Q 网络减少 Q 值过估计
  2. 延迟更新 → Critic 更新频率高于 Actor,提高训练稳定性
  3. 目标策略平滑 → 给目标策略添加噪声正则化,提高 Critic 抗干扰性

TD3 算法中 Critic 的更新频率是更快还是更慢?

Critic 网络的更新频率要比 Actor 网络更快,即延迟策略更新。目的是减小策略更新的频率,避免过度优化。因为 Critic 网络更新更快,可以更快地适应环境变化,提供更准确的动作价值估计,从而帮助 Actor 网络生成更好的策略。