强化学习算法比较与学习路线
从数据、策略归属、动作空间、Replay、Target、保守性与偏好数据比较主要算法。
学习目标
- 按交互权限、数据类型与动作空间筛选算法,再比较学习机制与预算。
- 独立复核“依据数据与动作空间过滤候选,而不是输出万能冠军”的输入、计算和解释。
- 选择先看数据和允许的行动,再看更新公式。
为什么重要
按交互权限、数据类型与动作空间筛选算法,再比较学习机制与预算。
学习前需要掌握
背景与问题
问“PPO 和 CQL 哪个更好”往往漏掉了前提:前者通常持续采样近期策略,后者针对固定 transition。若只有偏好对而没有奖励转移记录,问题又转到 DPO 一类目标;算法名称不能代替数据契约。
概念定义
算法比较首先对齐任务和可用证据,再分析价值或策略路线、on/off-policy、模型使用、动作空间与资源成本。单一排名无法覆盖在线控制、固定日志和语言偏好优化等不同问题;候选列表只是研究起点。
直观理解
选择车辆先看路面、载重和能否补能,再比较速度。同一把尺子比较不同前提下的成绩,可能把根本无法使用的工具排在最前。
核心原理
小型已知模型可先用 DP 建基准;小型未知离散环境可用表格 Q-learning 或 SARSA 检查任务。高维离散动作可考虑 DQN 家族,连续在线控制可比较 PPO、SAC、TD3 等,但仍需检查约束与假设。
固定 transition 要先处理覆盖与外推,CQL 与 IQL 是不同保守取舍;只有状态动作示范时行为克隆是直接基线。只有偏好对时,DPO 的离线偏好目标不能当作普通 MDP 算法的无缝替代。
筛选后应在相同交互量、评测协议和调参成本下比较。高最终回报、快墙钟时间、低约束违规和少环境试验可能互相冲突,结论必须绑定具体预算与失败分布。
数学表达
回报与资源应分开比较
回报、真实交互数、墙钟时间和约束违规属于不同指标;本式是报告清单,不是自动加权排名。
变量含义
J固定评测协议下的期望回报N_env真实环境交互次数T_wall墙钟时间C_violation按任务定义的违规成本
计算步骤
- 1任务一可研究 CQL、IQL,并用合适行为基线。
- 2任务二可比较 PPO、SAC、TD3 等,按预算与约束验证。
- 3任务三首先匹配 DPO 类偏好优化的数据接口,不冒称已有 MDP 回报。
代码对应位置
示例 1依据数据与动作空间过滤候选,而不是输出万能冠军:不同数据契约产生不同候选集合;过滤结果不是性能排名。
变量解释
| 变量 | 含义 |
|---|---|
J | 固定评测协议下的期望回报 |
N_env | 真实环境交互次数 |
T_wall | 墙钟时间 |
C_violation | 按任务定义的违规成本 |
完整数值示例
依据数据与动作空间过滤候选,而不是输出万能冠军
已知条件
- 任务一:固定带奖励 transition。
- 任务二:在线连续控制。任务三:只有离线偏好对。
计算步骤
- 任务一可研究 CQL、IQL,并用合适行为基线。
- 任务二可比较 PPO、SAC、TD3 等,按预算与约束验证。
- 任务三首先匹配 DPO 类偏好优化的数据接口,不冒称已有 MDP 回报。
计算结果
不同数据契约产生不同候选集合;过滤结果不是性能排名。
处理前后对比
- 选择先看数据和允许的行动,再看更新公式。
- 表中方法需要进一步的假设、基线和独立评测。
计算与实现步骤
- 先判断训练阶段能否新增环境数据
- 选择在线或离线学习路线
- 完成最小数值例
- 运行教学代码
- 比较回报、偏移与失败
- 写含数据版本的实验报告
代码实现
示例 1
依据数据与动作空间过滤候选,而不是输出万能冠军
example_01.py用途:不同数据契约产生不同候选集合;过滤结果不是性能排名。
def candidates(data_contract):
choices = {
"fixed_transitions": ["CQL", "IQL"],
"online_continuous": ["PPO", "SAC", "TD3"],
"preference_pairs": ["DPO"],
}
return choices[data_contract]
for contract in ["fixed_transitions", "online_continuous", "preference_pairs"]:
print(contract + ": " + ", ".join(candidates(contract)))代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
不同数据契约产生不同候选集合;过滤结果不是性能排名。
Step 1 · 1–9 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
def candidates(data_contract):
choices = {
"fixed_transitions": ["CQL", "IQL"],
"online_continuous": ["PPO", "SAC", "TD3"],
"preference_pairs": ["DPO"],
}
return choices[data_contract]
for contract in ["fixed_transitions", "online_continuous", "preference_pairs"]:
print(contract + ": " + ", ".join(candidates(contract)))预期输出或运行结果
fixed_transitions: CQL, IQL online_continuous: PPO, SAC, TD3 preference_pairs: DPO
常见错误 · 3 条
- 忽略数据类型与交互许可,直接按算法流行度选择。
- 把 on/off-policy 与 online/offline 当成同一分类。
- 用不同预算或挑选过的最好运行排算法名次。
实际应用
- 序贯决策
- 控制与资源分配
常见错误
- 忽略数据类型与交互许可,直接按算法流行度选择。
- 把 on/off-policy 与 online/offline 当成同一分类。
- 用不同预算或挑选过的最好运行排算法名次。
扩展内容说明
本页数值均为解释机制的构造案例,不能解读为真实训练或基准性能。定义和适用条件参见 OpenAI Spinning Up:Kinds of RL Algorithms。
完整比较表
15 种算法的训练属性
“样本效率”是相对、定性的教学标记,不能脱离环境和实现直接排名。
| 算法 | 方法类别 | 策略归属 | 动作空间 | Replay/数据复用 | Target/Reference | Reward Model | Preference Data | 样本效率 | 典型场景 |
|---|---|---|---|---|---|---|---|---|---|
| Q-Learning | Value-based | off-policy | 离散 | 否 | 否 | 否 | 否 | 低/中 | 表格控制 |
| SARSA | Value-based | on-policy | 离散 | 否 | 否 | 否 | 否 | 低/中 | 风险敏感在线控制 |
| DQN | Deep Value | off-policy | 离散 | 是 | 是 | 否 | 否 | 中 | 高维离散控制 |
| REINFORCE | Policy-based | on-policy | 离散/连续 | 否 | 否 | 否 | 否 | 低 | 教学与概率策略 |
| Actor-Critic | Actor-Critic | 常见 on-policy | 离散/连续 | 可选 | 可选 | 否 | 否 | 中 | 低方差策略学习 |
| A2C | Actor-Critic | on-policy | 离散/连续 | 否 | 否 | 否 | 否 | 中 | 同步并行环境 |
| A3C | Actor-Critic | on-policy | 离散/连续 | 否 | 否 | 否 | 否 | 中 | 异步并行环境 |
| DDPG | Actor-Critic | off-policy | 连续 | 是 | 是 | 否 | 否 | 高 | 确定性连续控制 |
| TD3 | Actor-Critic | off-policy | 连续 | 是 | 是 | 否 | 否 | 中/高 | 稳健连续控制 |
| SAC | Actor-Critic | off-policy | 连续 | 是 | 是 | 否 | 否 | 高 | 最大熵连续控制 |
| CQL | Offline conservative Q | 固定离线数据 | 离散/连续 | 静态数据集 | Target network | 否 | 否 | 高(离线) | 数据外价值保守化 |
| IQL | Offline implicit Q | 固定离线数据 | 离散/连续 | 静态数据集 | Target Q / V | 否 | 否 | 高(离线) | 数据动作上的隐式改进 |
| PPO | Actor-Critic | on-policy | 离散/连续 | rollout | 否 | RLHF 可用 | 否 | 中 | 机器人、游戏、RLHF |
| GRPO | Policy optimization | on-policy 组采样 | 文本序列 | 组内 rollout | reference | 规则或模型奖励 | 组奖励 | 中 | 可验证推理任务 |
| DPO | Preference objective | 离线 | 文本序列 | 偏好对 | reference | 无需显式 RM | 是 | 高 | 离线偏好对齐 |
初学者
GridWorld → Q-Learning → SARSA → Bellman/TD
深度强化学习
DQN → Actor-Critic → PPO / SAC
Offline RL
固定数据边界 → 分布偏移 → 行为约束 → CQL / IQL → 离线评测
大模型对齐
Reward/Preference → PPO → GRPO → DPO 对照
实践项目
环境协议 → 基线 → 多 seed → 评测与错误分析
算法属性与数据边界
失败模式、风险与性能
失败模式
- 忽略数据类型与交互许可,直接按算法流行度选择。
- 把 on/off-policy 与 online/offline 当成同一分类。
- 用不同预算或挑选过的最好运行排算法名次。
风险
- 奖励函数与真实目标不一致会诱发奖励黑客。
- 部署策略的行动权限必须由环境和应用层约束。
性能考虑
- 样本效率、墙钟时间和显存占用需要分别报告。
- 应使用多个随机种子、置信区间和固定评测策略。
常见问题
有覆盖所有场景的最好算法吗?
没有脱离任务和预算的统一结论。先排除违反数据接口或交互边界的方法,再用基线和固定评测协议比较候选。
网页是否会训练模型?
不会。所有图表使用固定种子或解析公式在浏览器本地计算,不执行页面中的示例代码。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。