Model-free 与 Model-based RL
区分直接学习价值/策略与学习或使用环境模型进行规划。
学习目标
- 依据是否显式预测环境后果区分学习路线,理解模型误差如何进入决策。
- 独立复核“微小一步误差如何随预测长度积累”的输入、计算和解释。
- 模型能减少真实采样,但预测误差会影响规划。
为什么重要
依据是否显式预测环境后果区分学习路线,理解模型误差如何进入决策。
学习前需要掌握
背景与问题
机器人可以直接从试错学习哪个动作价值更高,也可以先学习“推一下会移动多远”,再在预测模型里比较动作。后者可能节省真实试验,但错误模型会把规划引向不存在的捷径。
概念定义
model-free 方法直接学习价值、策略或其组合,不要求显式的环境转移模型。model-based 方法利用已知或学习到的动力学与奖励模型进行规划、产生模拟数据或构造训练目标。是否使用神经网络、是否有 critic,都不能单独决定归属。
直观理解
直接学会熟练骑车是一种经验控制;在脑中预测“向左打把后车会怎么走”再选择动作类似模型规划。两种能力可以同时存在,并非互斥的身份标签。
核心原理
环境模型可以预测下一状态分布、潜在状态或奖励;价值函数预测的是未来累计收益。一个 critic 并不因此成为 world model,二者预测对象和使用方式不同。
规划会反复查询模型,也会搜索模型最乐观的区域。因此训练集单步预测误差小,未必保证规划后策略好;长 rollout 中误差累积,分布外查询可能尤其严重。
Dyna 类方法混用真实与模型生成数据,MPC 每一步执行短期计划的首个动作再重规划。它们能提高部分任务的样本利用率,但要付出模型训练、规划计算与模型偏差的代价。
数学表达
确定性动力学模型的预测示例
这是连续状态确定性均值模型的教学目标;随机动力学可需要概率模型,价值函数不等于下一状态模型。
变量含义
fψ显式状态转移预测器s′数据中的后继状态D采样转移数据
计算步骤
- 1真实预测序列是 1、2、3。
- 2模型预测序列是 1.1、2.2、3.3。
- 3三步误差达到 0.3;非线性系统可能更复杂。
代码对应位置
示例 1微小一步误差如何随预测长度积累:构造线性例中,单步偏差 0.1 累积为三步位置误差 0.3。
变量解释
| 变量 | 含义 |
|---|---|
fψ | 显式状态转移预测器 |
s′ | 数据中的后继状态 |
D | 采样转移数据 |
完整数值示例
微小一步误差如何随预测长度积累
已知条件
- 真实系统为下一位置等于当前位置加动作。
- 模型每一步额外高估 0.1,连续施加三次动作 1。
计算步骤
- 真实预测序列是 1、2、3。
- 模型预测序列是 1.1、2.2、3.3。
- 三步误差达到 0.3;非线性系统可能更复杂。
计算结果
构造线性例中,单步偏差 0.1 累积为三步位置误差 0.3。
处理前后对比
- 模型能减少真实采样,但预测误差会影响规划。
- 本例是线性累加,不是所有系统误差增长率的通用公式。
计算与实现步骤
- 判断模型可得性
- 学习/使用模型
- 规划或直接更新
代码实现
示例 1
微小一步误差如何随预测长度积累
example_01.py用途:构造线性例中,单步偏差 0.1 累积为三步位置误差 0.3。
true_state = model_state = 0.0
for step in range(1, 4):
true_state += 1.0
model_state += 1.1
print(f"step={step} true={true_state:.1f} model={model_state:.1f} error={model_state-true_state:.1f}")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
构造线性例中,单步偏差 0.1 累积为三步位置误差 0.3。
model- 组合预处理和估计器的模型对象。
Step 1 · 1–5 行
按学习率和梯度更新参数。步长过小会缓慢,过大会越过最低点并震荡或发散。
true_state = model_state = 0.0
for step in range(1, 4):
true_state += 1.0
model_state += 1.1
print(f"step={step} true={true_state:.1f} model={model_state:.1f} error={model_state-true_state:.1f}")预期输出或运行结果
step=1 true=1.0 model=1.1 error=0.1 step=2 true=2.0 model=2.2 error=0.2 step=3 true=3.0 model=3.3 error=0.3
常见错误 · 3 条
- 把所有神经网络控制器都称为 model-free。
- 把价值网络误认成预测下一状态的动力学模型。
- 只评估单步模型误差,不验证规划产生的状态分布。
实际应用
- 序贯决策
- 控制与资源分配
常见错误
- 把所有神经网络控制器都称为 model-free。
- 把价值网络误认成预测下一状态的动力学模型。
- 只评估单步模型误差,不验证规划产生的状态分布。
扩展内容说明
本页数值均为解释机制的构造案例,不能解读为真实训练或基准性能。定义和适用条件参见 Sutton 与 Barto《Reinforcement Learning: An Introduction》(第 8 章)。
算法属性与数据边界
失败模式、风险与性能
失败模式
- 把所有神经网络控制器都称为 model-free。
- 把价值网络误认成预测下一状态的动力学模型。
- 只评估单步模型误差,不验证规划产生的状态分布。
风险
- 奖励函数与真实目标不一致会诱发奖励黑客。
- 部署策略的行动权限必须由环境和应用层约束。
性能考虑
- 样本效率、墙钟时间和显存占用需要分别报告。
- 应使用多个随机种子、置信区间和固定评测策略。
常见问题
学到了世界模型就一定更省样本吗?
不一定。优势取决于模型能否在策略查询区域准确预测、规划预算是否足够,以及训练模型所需的数据成本。
网页是否会训练模型?
不会。所有图表使用固定种子或解析公式在浏览器本地计算,不执行页面中的示例代码。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。