# Ml Rl Decision Loop

> 判断任务是否该用强化学习、选哪条路线。用户问"强化学习适不适合/reward 怎么设计/ Q-learning 和 Sarsa 区别/exploration exploitation/agent 训练不动"时激活。 动作: 验资格(延迟奖赏+序贯决策缺一不可)→模型可知否(有模型→动态规划; 免模型→蒙特 卡罗 vs 时序差分)→配探索利用折中(ε贪心/Softmax)→状态大时表格升级函数逼近。 不适用于: 一次性预测、有即时标签任务。 trigger: reinforcement learning, MDP, reward design, Q-learning, Sarsa, exploration exploitation, 奖赏函数。

- Skill: `fieldlu/ml-rl-decision-loop` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add fieldlu/ml-rl-decision-loop`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fieldlu/ml-rl-decision-loop/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: fieldlu (https://skillmd.com/u/fieldlu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fieldlu/ml-rl-decision-loop

---


# 强化学习决策环 — 先验资格，再选路线，最后配探索

## R — 原文 (Reading)

> "当我们执行某个操作（例如，施肥）时，并不能立即获得这个最终奖赏，甚至难以判断当前操作对最终奖赏的影响，仅能得到一个当前反馈（例如，瓜苗看起来更健壮了）。我们需多次种瓜，在种瓜过程中不断摸索，然后才能总结出较好的种瓜策略。"
>
> — 周志华, 《机器学习》第16章 16.1节 "任务与奖赏"

> "若学习算法不依赖于环境建模，则称为'免模型学习'(model-free learning)，这比有模型学习要困难得多。"
>
> — 周志华, 《机器学习》第16章 16.4节 "免模型学习"

> "'探索'和'利用'这两者是矛盾的，因为尝试次数(即总投币数)有限，加强了一方则会自然削弱另一方，这就是强化学习所面临的'探索-利用窘境'(Exploration-Exploitation dilemma)。"
>
> — 周志华, 《机器学习》第16章 16.2.1节 "探索与利用"

---

## I — 方法论骨架 (Interpretation)

强化学习处理的是"没有老师告诉你在某状态下该做什么、只有事后结算的累积奖赏"的学习问题：机器在环境中不断尝试，学得策略 π 使长期累积奖赏最大。形式上是四元组 E=(X,A,P,R)——状态空间、动作空间、转移概率、奖赏函数。它相当于"具有延迟标记信息的监督学习"，延迟二字就是一切困难的根源。

方法论是一条三级决策链。

**第一级：资格审。** 任务必须同时满足两个特征——序贯决策（动作影响后续状态）+ 延迟奖赏（好坏要许多步之后才揭晓）。缺任何一个都别用 RL：有即时标签是监督学习；一步定输赢退化成单步优化。种瓜是好例子：施肥的效果要收获时才知道，当下只有"瓜苗更健壮"这类即时信号。

**第二级：路线分岔——环境模型知道吗？** 转移概率和奖赏函数已知（或能在机器内可靠模拟）→ 有模型学习，归结为动态规划：策略评估（Bellman 递归展开）与策略改进（换入当前最优动作）交替迭代至收敛，或直接值迭代。未知 → 免模型学习，困难得多：无法全概率展开就只能真实交互采样，且估计对象要从状态值 V 换成状态-动作值 Q。采样后批更新是蒙特卡罗（整条轨迹跑完再平均，简单但慢）；每走一步就更新是时序差分 TD（结合 DP 与 MC 的思想，效率更高）——Sarsa 是同策略版本（评估和执行都是 ε-贪心策略），Q-learning 是异策略版本（评估原始策略、执行 ε-贪心）。

**第三级：全程配探索纪律。** 尝试次数有限，探索（估准各动作）与利用（选当前最优）零和拉扯：仅探索估得准却没机会赢，仅利用会被开局运气锁死。折中的标配是 ε-贪心（ε 按不确定性调、可随时间衰减如 1/√t）或 Softmax（温度 τ 控制软硬）；免模型评估时 ε-贪心还兼任"制造轨迹多样性"的职责——确定性策略采一万条轨迹其实是同一条。

**边界提醒**：以上全部建立在表格值函数上（每个状态一格）。状态空间连续/巨大时表格失效，需离散化（难）或值函数近似（线性起步，可换核方法/神经网络）——这是表格方法到函数逼近的分界线，跨线会引入新的不稳定来源。

---

## A1 — 书中的应用 (Past Application)

### 案例 1: 种西瓜的 MDP 具象化 (c37)
- **问题**: 种瓜从选种到浇水施肥除草杀虫，要等收获才知道瓜好不好——如何把这个过程变成机器能学的形式？
- **方法论的使用**: 作者将其映射为 MDP 四元组：状态=瓜苗长势的描述；动作=浇水、施不同的肥、用不同的农药等；转移概率=如缺水状态下浇水，瓜苗有一定概率恢复健康也有一定概率无法恢复；奖赏=健康苗 +1、凋零 -10、最终好瓜 +100。核心困难被点破：执行"施肥"时拿不到最终奖赏，甚至难以判断它对最终奖赏的影响，只有"瓜苗看起来更健壮了"这种即时反馈——所以必须多次种瓜摸索策略。配套最小算例"给西瓜浇水"只有四个状态（健康/缺水/溢水/凋亡）、两个动作（浇水/不浇水），可直接写出最优策略：缺水浇、溢水不浇。
- **结论**: 延迟奖赏 + 序贯决策正是 RL 与监督学习的分界；RL 可看作"具有延迟标记信息的监督学习问题"——策略对应分类器，但没有"示例-标记"对可学。
- **结果**: 该具象化成为整章的公理级场景，四元组每一项都有瓜田对应物，后续算法（赌博机→动态规划→MC/TD）全部回扣到此。

### 案例 2: 2-摇臂赌博机的数值对照实验
- **问题**: ε-贪心与 Softmax 孰优孰劣？空谈无益，作者给出可复算的对照。
- **方法论的使用**: 构造最小实验：摇臂1以 0.4 概率返回奖赏1、0.6 概率返回 0；摇臂2以 0.2 概率返回 1、0.8 概率返回 0。对仅探索、仅利用、不同参数的 ε-贪心与 Softmax 各跑重复 1000 次实验取平均累积奖赏曲线。
- **结论**: Softmax(T=0.01) 曲线几乎与仅利用重合；两算法孰优"主要取决于具体应用"——不存在普适赢家，参数（ε 大小/衰减、温度 τ）才是实际杠杆。
- **结果**: 确立"折中参数按不确定性调"的操作口径：奖赏分布宽 → 加大 ε 或升温；分布窄且尝试次数极大 → 让 ε 随 t 衰减（如 1/√t）。

---

## A2 — 触发场景 (Future Trigger) ★

### 用户会在什么情境下需要这个 skill?

1. 用户描述的问题里动作会影响后续局面、好坏要很久才揭晓（定价、推荐序列、调度、游戏 AI、机器人调参），但没意识到这和普通预测任务的根本差异。
2. 用户想给训练 agent 设计奖励函数，纠结"每步给 0 还是 -1"、"稀疏奖励训不动怎么办"。
3. 用户实现了 Q-learning/Sarsa 但 agent 行为怪异：要么从不试新动作（固化），要么全程乱试不收敛，或者采样日志里轨迹一模一样、Q 值从不更新。
4. 用户问"我知道环境的模拟器/规则（棋盘规则、仿真器），还要不要免模型算法"。
5. 用户的状态是连续向量（传感器读数、图像特征），表格 Q 表存不下，不知道何时及如何过渡到函数逼近。

### 语言信号 (用户的话里出现这些就应激活)

- "**强化学习**适不适合" / "**RL** 能不能做 X" / "reward **怎么设计**" / "奖赏函数"
- "**Q-learning** 和 **Sarsa** 区别" / "on-policy off-policy 同策略异策略" / "**DQN** 入门"
- "**exploration exploitation**" / "**探索利用**窘境" / "epsilon greedy / ε-贪心 / Softmax 温度"
- "agent **训练不动**" / "累积奖赏不涨" / "reward 太稀疏" / "MDP 四元组"

### 与相邻 skill 的区分

- 与 `ml-task-matching` 的区别: 那边管"监督学习族内部选哪个算法"；本 skill 管"要不要进 RL 这个范式"及范式内路线。用户手里是有标签数据集 → 选型；问题是序贯决策且无标签 → 本 skill。
- 与 `ml-diagnosis` 的区别: 训练不动在本 skill 内先按结构性病因排查（探索失衡/确定性策略零信息/奖赏设计缺陷/表格容量爆掉）；排除这些后若涉及值函数近似的偏差-方差问题（神经网络逼近引入的不稳定），移交诊断流程深查。
- 与 `ml-semisupervised` 的区别: 都属于"标签稀缺"家族，但半监督靠未标注样本的分布信息提泛化，RL 靠环境交互的延迟奖赏学策略——数据形态完全不同（静态数据集 vs 交互轨迹），别混淆。

---

## E — 可执行步骤 (Execution)

当 skill 被激活后, agent 应按以下步骤执行:

1. **资格审查**
   - 检查两个必要特征：动作是否影响后续状态（序贯性）？结果好坏是否延迟揭晓（延迟奖赏）？能否定义出状态、动作、奖赏三要素？
   - 完成标准: 写出任务的 (X, A, P?, R?) 四元组草稿——P/R 可以先留空但必须确认"存在"。
   - **判停条件**: 若动作不影响后续状态且奖赏即时 → 不是 RL 问题：有标签走监督学习，无标签走聚类/优化，明确告知用户退出本流程。

2. **奖赏设计审查**
   - 检查奖赏函数：是否与最终目标一致（避免代理指标劫持）？量级是否合理（正负奖赏比例决定风险偏好）？稀疏程度（只在终点给 vs 全程塑形 shaping）？
   - 完成标准: 输出奖赏表（状态/动作 → 数值）及其设计理由一句话；标注已知风险（如"每步 -1 会催促赶路"类副作用）。

3. **路线分岔：模型可知吗**
   - 有可靠模拟器/已知转移规律 → 有模型：策略迭代或值迭代（动态规划），无需真实试错；未知且难以模拟 → 免模型：继续第 4 步。
   - 完成标准: 给出"有模型/免模型"判定及依据（谁能提供 P 和 R？）。
   - **判停条件**: 有模型 → 直接给动态规划方案（策略评估+改进迭代环，或值迭代），跳过第 4 步。

4. **免模型的算法细分**
   - 更新粒度选择：允许整轨迹批更新、实现最简 → 蒙特卡罗；需要每步在线更新、样本效率优先 → 时序差分。TD 内部再选：希望最终使用的是探索性策略本身 → Sarsa（同策略）；希望学到确定性最优策略、探索只为服务评估 → Q-learning（异策略）。
   - 完成标准: 写出所选算法名 + "为什么不是另一个"的一句话理由（更新粒度/策略口径二选一说清）。

5. **配置探索机制**
   - 为执行策略配 ε-贪心（初值较大逐步衰减，如 ε=1/√t）或 Softmax（温度 τ）；免模型评估场景必须保证非零探索概率，否则轨迹无多样性、估计零信息。
   - 完成标准: 输出探索参数（ε 初值/衰减计划或 τ 值）及调整依据（奖赏分布的不确定性宽窄）。

6. **容量边界检查**
   - 状态空间规模估算：|X|×|A| 在万级以内且离散 → 表格法成立；连续/巨大 → 明确警告表格失效，给出升级路径（离散化风险提示 → 线性值函数近似起步 → 必要时核方法/神经网络，并预告近似引入的新不稳定）。
   - 完成标准: 输出"表格 vs 函数逼近"判定与容量数字依据。
   - **判停条件**: 若训练不动且已定位为探索失衡/确定性策略零信息（轨迹完全相同）/奖赏设计缺陷之一 → 先修该项并重跑，不要急于换更复杂算法。

7. **验收口径**
   - 报告累积奖赏学习曲线（多随机种子平均）；声明所用累积奖赏口径（T 步 or γ 折扣）及 γ 取值理由。
   - 完成标准: 曲线含方差带、口径声明齐全。

---

## B — 边界 (Boundary) ★

### 不要在以下情况使用此 skill

- 一次性预测任务（给 X 出 ŷ，动作不改变世界状态）：这是监督学习，套 RL 是自找延迟信用分配的苦吃。
- 有即时完整反馈的控制（每步都知道正确动作）：直接模仿学习/监督学习更高效——书中明言专家范例可直接构造"状态-动作对"数据集用分类回归求解，不必让 agent 盲试。
- 无法定义合理奖赏且没有专家范例：奖赏是 RL 的燃料，燃料造不出来时逆强化学习（从范例反推奖赏）是前置依赖而非本 skill 能绕开的。

### 作者在书中警告的失败模式

- **探索-利用两极失败（x50）**: 仅探索估准了每个摇臂却几乎没机会玩最优臂；仅利用被开局运气无限锁定次优动作。两者皆败是结构性矛盾而非工程瑕疵——任何单边策略都无法最大化累积奖赏，折中参数是必备品而非装饰。
- **确定性策略零信息死局（x51）**: 免模型情形下用确定性策略采样，"只能得到多条相同的轨迹"——一万条轨迹等于一条，值函数估计毫无统计效力，策略改进链断裂。修复：执行侧加 ε-贪心制造多样性；若要评估的恰是原始策略而非 ε-贪心策略 → 异策略 + 重要性采样加权修正。
- **奖赏设计的坑（习题 16.9 点名）**: 目标驱动任务中"每步未达目标的奖赏为 0、-1 还是 1"会产生截然不同的行为——0 催促尽快到达、-1 惩罚拖延但也催促赶路、正奖赏可能鼓励原地徘徊刷分；奖赏函数是策略的真正目标，写错一行代码 agent 就在忠实 optimizing 错误的东西。
- **样本效率的现实警告**: 免模型学习"比有模型学习要困难得多"；蒙特卡罗须完成整条轨迹才能更新、效率低得多；而种瓜式任务每次试验成本高昂（多次种瓜才摸得出策略）——真实交互昂贵时先考虑有模型/模拟器/模仿学习冷启动，别默认裸 RL 划得来。
- **逐状态独立赌博机的天真方案**: 把每个状态当独立 K-摇臂赌博机处理忽略了 MDP 结构——"若能有效考虑马尔可夫决策过程的特性，则可有更聪明的办法"。

### 作者的盲点 / 时代局限 (2016 成书)

- 书中值函数近似止步于线性 + 一句"可换神经网络"；DQN 及之后的深度 RL 全部缺位——经验回放、目标网络、策略梯度/PPO 等现代标配不在覆盖范围，深度化后的训练不稳定问题需另行参考专门文献。
- 奖赏设计的系统性方法论（reward hacking、reward modeling）书中仅有习题级提示；当代实践中这是 RL 项目失败的第一大因，本 skill 的审查步骤只是起点不是终点。
- 书中任务均为状态完全可观察的 MDP；部分可观察（POMDP）仅在阅读材料中提及——现实任务中观测不全时，四元组要先扩展再套用。
- 工程视角薄弱：交互数据的日志化、离线 RL（batch RL）、sim-to-real 迁移均未讨论；生产环境落地时这些常比算法选择更致命。

### 容易混淆的邻近方法论

- **上下文老虎机(contextual bandit)**: 有状态信息但不影响后续状态的"一步 RL"；不需要完整 MDP 机器，别为了"像 RL"上重型武器。
- **最优控制/运筹优化**: 模型已知时 RL 退化为动态规划——这正是书中口径（运筹学界称近似动态规划）；能写出精确模型时经典优化往往更稳，RL 的独特价值在模型未知。
- **模仿学习**: 有专家轨迹时的替代/加速路线——直接模仿（状态作特征动作作标记的监督学习）或逆强化学习（反推奖赏函数）；有示范数据时先模仿再 RL 微调远快于从零盲试。
- **A/B 测试**: 单次分流对比，无序贯自适应；探索-利用的在线分配（bandit 类）是其动态版，两者别混称。

---

## 相关 skills

- contrasts-with: ml-task-matching（监督族内选型 vs 进不进 RL 范式）
- composes-with: ml-diagnosis（值函数近似层面的偏差-方差诊断接力）

---

## 审计信息

- **验证通过**: c37 在阶段1.5 判为"教学演示类（低值降级）"淘汰、f43 判 V3 未过、x50/x51 因当时"无挂靠出口"淘汰——本 skill 属扩充批A·第2组新增（覆盖 ch16），为其提供归属；R 引文已逐字核对章节文本，B 段失败模式均出自原书明言（含习题16.9）
- **测试通过率**: 待阶段 3 测试 (详见 test-prompts.json)
- **skill_version**: 0.0.1
- **蒸馏时间**: 2026-08-24

