Online Learning 与 Offline RL
在线 RL 可继续探索环境,离线 RL 只能使用固定数据集。
学习目标
- 定义Online Learning 与 Offline RL并复述输入输出。
- 从公式计算一个最小数值例子。
- 说明它与相邻算法的区别、失败模式和适用场景。
为什么重要
Online Learning 与 Offline RL位于“状态—行动—反馈—更新”学习链中的关键位置。
掌握它能帮助学习者判断算法使用的数据、策略归属和稳定性边界。
学习前需要掌握
背景与问题
强化学习面对序贯决策:动作会改变之后能看到的状态和奖励,因此样本通常并非独立同分布。
同一算法的效果取决于环境、探索策略、函数近似、随机种子和评测协议,单次曲线不足以下结论。
概念定义
Offline RL 从静态 transition 数据学习策略,训练阶段不能通过新试验纠正数据盲区。
本页使用“问题定义—数学目标—更新过程—代码—失败诊断”的顺序组织,避免只记算法缩写。
直观理解
在线像边开车边练,离线像只看旧行车记录:记录之外的动作后果不能靠试一次来确认。
把价值看作“未来累计收益的估计”,把策略看作“在状态下如何选动作的规则”;算法差异主要在估计谁、使用谁生成的数据以及如何更新。
核心原理
固定数据把探索问题改造成覆盖与外推问题。
分布外动作价值可能被严重高估。
行为数据覆盖决定可学策略范围。
DQN/SAC 虽是 off-policy,但其常规训练仍用环境交互刷新 replay;直接冻结 replay 并不自动成为可靠的 Offline RL。
数学表达
折扣回报
当前回报由下一奖励与折扣后的未来回报组成。
变量含义
G_t从时刻 t 开始的折扣累计回报。R_{t+1}执行动作后收到的下一步奖励。γ折扣因子,通常位于 [0,1)。
计算步骤
- 1计算 bootstrap 目标:1+0.9×2=2.8。
- 2目标与当前估计差为 2.8−0.5=2.3。
- 3若学习率 α=0.1,新估计为 0.5+0.1×2.3=0.73。
代码对应位置
示例 1Online Learning 与 Offline RL的本地数值骨架:用确定性数组展示状态、更新和结果,不连接远程环境,也不在网页内执行。
变量解释
| 变量 | 含义 |
|---|---|
G_t | 从时刻 t 开始的折扣累计回报。 |
R_{t+1} | 执行动作后收到的下一步奖励。 |
γ | 折扣因子,通常位于 [0,1)。 |
完整数值示例
Online Learning 与 Offline RL的最小计算
已知条件
- 即时奖励为 1
- 下一状态估计为 2
- 折扣因子 γ=0.9
- 当前估计为 0.5
- 1
计算 bootstrap 目标:1+0.9×2=2.8。
- 2
目标与当前估计差为 2.8−0.5=2.3。
- 3
若学习率 α=0.1,新估计为 0.5+0.1×2.3=0.73。
一次更新后估计从 0.5 变为 0.73;是否收敛需要持续采样与满足相应条件。
处理前后对比
- 较大 α 更新快但噪声和震荡更强。
- 较大 γ 更重视远期奖励,但误差传播范围更长。
- 使用真实回报与 bootstrap 目标会带来不同偏差—方差权衡。
计算与实现步骤
- 1
冻结并版本化数据集
- 2
审计状态—动作—回报覆盖
- 3
建立 BC 与朴素 DQN/SAC 基线
- 4
使用约束、保守或隐式目标
- 5
离线评测
- 6
小流量或受保护部署
代码实现
示例 1
Online Learning 与 Offline RL的本地数值骨架
example_01.py用途:用确定性数组展示状态、更新和结果,不连接远程环境,也不在网页内执行。
rewards = [0.0, 0.0, 1.0]
gamma = 0.9
G = 0.0
for reward in reversed(rewards):
G = reward + gamma * G
print(round(G, 3))代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
用确定性数组展示状态、更新和结果,不连接远程环境,也不在网页内执行。
Step 1 · 1–6 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
rewards = [0.0, 0.0, 1.0]
gamma = 0.9
G = 0.0
for reward in reversed(rewards):
G = reward + gamma * G
print(round(G, 3))预期输出或运行结果
0.81
常见错误 · 3 条
- 只报告最好的一次随机种子
- 训练回报与评测回报混用
- 终止状态仍错误 bootstrap
实际应用
- 序贯决策
- 控制与资源分配
常见错误
文档来源
D4RL: Datasets for Deep Data-Driven Reinforcement Learning原始文档
arXiv:2004.07219Conservative Q-Learning原始文档
arXiv:2006.04779- D4RL / Abstract 与 §1:固定数据设定和数据集性质
- CQL / §1:标准 off-policy 方法在分布偏移下的过估计问题
扩展内容说明
页面中的驾驶类比、六步学习流程、DQN/SAC 对照和部署边界是本站扩展解释;固定数据定义与分布偏移判断依据所列论文。
算法属性与数据边界
- 目标函数
- 从固定数据集 D 学习策略;训练期间不新增环境 transition
数据边界
- 允许读取固定的 (s,a,r,s′,done) 或轨迹数据。
- 训练阶段禁止用当前策略向环境索取新样本;调参不能偷看测试环境回报。
- 数据未覆盖区域没有反事实保证,部署必须受行动权限与回退策略保护。
与 DQN、SAC 及相邻方法对照
对照要点
- DQN:离散动作、max backup,冻结数据后容易选择 OOD 高估动作。
- SAC:连续动作、最大熵 actor-critic;actor 可能提出数据外动作并被 critic 错误奖励。
- Offline RL:额外管理策略支持、价值保守性或仅对数据动作更新。
失败模式、风险与性能
失败模式
- 探索不足
- 目标漂移
- 函数近似不稳定
目标与安全风险
- 奖励函数与真实目标不一致会诱发奖励黑客。
- 部署策略的行动权限必须由环境和应用层约束。
性能与复现
- 样本效率、墙钟时间和显存占用需要分别报告。
- 应使用多个随机种子、置信区间和固定评测策略。
常见问题
Online Learning 与 Offline RL是 on-policy 还是 off-policy?
这是基础或比较概念,具体归属取决于所讨论算法。
网页是否会训练模型?
不会。所有图表使用固定种子或解析公式在浏览器本地计算,不执行页面中的示例代码。
资料来源与核对日期
核对日期:2026-08-30。算法定义与公式依据以下外部教材或原论文;中文直觉、教学代码、对照与部署建议属于本站扩展解释。
推荐学习资料
Farama-Foundation/Minari
为离线强化学习提供标准化数据集 API、数据集目录和数据收集工具。
Farama Foundation · GitHub
仓库信息
加载、创建和管理离线 RL 数据集
主要语言:Python包含数据集或实验需要额外环境