强化学习中DQN、AC、TPRO、PPO、DDPG、SAC、TD3的区别及优缺点
的固定格式,把每个算法讲清楚并比较它们的差别。你列出的算法我把。
好——我按 算法简介 → 原理直观化 → 优缺点 → 典型使用场景/举例 → 工程实现要点与调参建议 的固定格式,把每个算法讲清楚并比较它们的差别。你列出的算法我把 TPRO 视作常见的 TRPO(Trust Region Policy Optimization),若你原意不是这个再告诉我但我先按 TRPO 来讲。准备好了,我们开始。
总览(一句话速览)
-
DQN:值函数(Q)为主的离线/离策略方法,适合离散动作(Atari、像素输入)。
-
AC(Actor-Critic):泛指一类方法,包含“策略(actor)+值函数/基线(critic)”,是许多现代算法的基础。
-
TRPO:基于策略梯度但加信赖域约束,保证每步更新不会太大,早期用于稳定训练大策略网络。
-
PPO:TRPO 的实用化替代(剪切/惩罚方式),在稳定性与效率间取得很好的平衡,常作为首选通用方法。
-
DDPG:结合 DQN 思想与 actor-critic,为连续动作设计的确定性策略算法(离策略)。适合高维连续控制但比较脆弱。
-
SAC:带熵正则化的离策略 actor-critic,使用随机策略和双 Q 网络,样本效率高且稳健,当前连续控制的热门选择。
-
TD3(Twin Delayed Deep Deterministic Policy Gradient): 是一种非常典型、实用的 强化学习算法,属于 连续控制领域的离策略(off-policy)actor-critic 算法,是对 DDPG(Deep Deterministic Policy Gradient) 的改进版本。
核心观点:
1.为什么DQN只能处理离散动作空间,而AC系列可以处理连续及离散动作空间呢?
因为DQN需要求的每个动作的Q值,相当于把策略与评价融合在一起了。而AC系列把策略与评价分开了,只需要输出动作本身(连续值)或动作的概率分布(离散),而评价只是用来改进动作的策略。
2.为什么PPO只能适用与在线策略更新,而DDPG适用于离线策略或在线策略呢?
PPO的critic函数里面包含了策略的内容,而DDPG的critic函数里面只有当前的动作价值,不包含策略的内容。所以DDPG更加适合用离线策略来训练。PPO通过比较动作概率的变化来更新策略。它默认数据是当前策略自己产生的。
3. SAC相比DDPG增加了熵增的策略,泛化性更好。SAC与TD3都是可以使用离线策略,区别是TD3是追求 “最贪婪” 的最优策略。SAC是追求 “最随机” 的最优策略。
7) TD3
1、TD3 的提出背景
DDPG 在连续控制任务中很好用,但有三个致命问题:
-
Q 值过估计问题(overestimation bias);
-
策略更新太频繁,critic 还没收敛就更新 actor,造成不稳定;
-
目标策略太确定,容易陷入局部最优(exploration 弱)。
👉 TD3(2018, Fujimoto et al.) 针对这三点提出三个关键改进:
Twin Delayed DDPG = DDPG + 3个trick(并不是新理论,而是经验工程改进)。
2、TD3 的三大核心改进

8)ACT、A2C/A3C的理解

| AC | ACT | |
|---|---|---|
| 定位 | 架构/范式 | 具体算法 |
| 关系 | 父类/蓝图 | 子类/实现 |
| 内容 | 定义了Actor和Critic分工协作的理念。 | 实现了用TD Error作为Critic信号来训练Actor的具体流程。 |
后来几乎所有主流的策略梯度算法,都是在这个AC框架和ACT基础之上,进行改进和增强而来的:
-
A2C/A3C:在ACT基础上,引入了优势函数 来替代TD Error,减少了方差,使训练更稳定。
-
TRPO/PPO:在ACT基础上,增加了信任域约束,限制了每次策略更新的幅度,防止策略崩溃。
-
DDPG/TD3/SAC:这些都是AC框架在连续动作空间和离线策略 setting下的杰出代表。
优势函数的核心意义是:将一个动作的绝对好坏,转变为它与“平均水平”相比的相对好坏。
这使得智能体的学习更加精准、高效和稳定。
更多推荐




所有评论(0)