第三部分 · 强化学习基础概念
目标:建立强化学习的整体思维框架——智能体如何在与环境的交互中学习, 以及贯穿全课程的几对核心概念。
有了第二部分的 MDP 语言,我们现在正式进入强化学习本身: 在不完全了解环境的情况下,通过“试错”学到好策略。
3.1 智能体—环境交互循环
强化学习的一切都发生在这个循环里:
┌───────────────► 动作 a_t ───────────────┐
│ ▼
┌─────────┐ ┌─────────┐
│ 智能体 │ │ 环境 │
│ (Agent) │ │ (Env) │
└─────────┘ └─────────┘
▲ │
└──── 状态 s_{t+1} , 奖励 r_{t+1} ◄────────┘
- 智能体观察状态
s_t; - 根据策略选择动作
a_t; - 环境返回奖励
r_{t+1}和新状态s_{t+1}; - 智能体据此更新策略,循环继续。
目标:最大化长期累积奖励(回报 G_t)。
🎮 王者荣耀里的这一圈:AI 看到战场快照
s_t(我残血、敌在近处)→ 选动作“1技能位移逃”→ 环境返回“成功脱离、略微掉血”的奖励和新战场s_{t+1}→ AI 记住“这种局势下逃是对的”。 一局约 2000+ 步,就是这个循环转 2000+ 次。你在第一课跑通的test_1v1_random.py正是这个循环(只是动作随机)。
3.2 强化学习和其他机器学习有什么不同?
| 范式 | 数据 | 学习信号 | 王者里的例子 |
|---|---|---|---|
| 监督学习 | 带标签样本 (x, y) |
正确答案 y |
给英雄头像分类 |
| 无监督学习 | 无标签样本 x |
数据结构本身 | 把对局录像聚成不同打法 |
| 强化学习 | 交互产生的轨迹 | 奖励(好/坏) | 鲁班学会瞄准命中、打赢 1v1 |
强化学习的三个独特难点:
- 反馈是评价性的:只告诉你“这步得几分”,不告诉你“正确动作是什么”;
- 反馈可能延迟:现在的动作,可能很多步之后才见分晓(信用分配问题);
- 数据是自己产生的:你的策略决定了你看到什么数据(不是独立同分布)。
3.3 探索 vs 利用 (Exploration vs Exploitation)
这是强化学习最经典的两难:
- 利用 (Exploitation):选目前已知最好的动作,稳拿收益;
- 探索 (Exploration):尝试没试过的动作,也许能发现更好的选择。
🎮 王者荣耀里的探索 vs 利用:AI 已经知道“稳稳补刀发育”能得分(利用); 但只有偶尔试试“越塔强杀”“新的连招顺序”(探索),才可能发现更高收益的打法。 全程只利用 → AI 永远学不会 gank 和越塔;全程只探索 → AI 一直乱送。衰减的
ε让它先浪后稳。在「鲁班瞄准」里同样如此:一开始要多试不同发射方向(探索), 试出"朝目标扇区打命中率最高"后,就多按这个来(利用)。
最常用的平衡方法是 ε-贪心 (ε-greedy):
import numpy as np
def epsilon_greedy(Q_row, epsilon):
if np.random.rand() < epsilon:
return np.random.randint(len(Q_row)) # 探索:随机选
return int(np.argmax(Q_row)) # 利用:选 Q 最大的
实践中常让 ε 从大到小衰减:初期多探索,后期多利用。
3.4 几对贯穿全课程的概念
预测 (Prediction) vs 控制 (Control)
- 预测:给定策略
π,评估它的价值V^π(“这套打法能得多少分?”); - 控制:寻找最优策略
π*(“最好的打法是什么?”)。
基于模型 (Model-based) vs 无模型 (Model-free)
- 基于模型:智能体知道/学习环境的
P和R,可以“在脑中推演”(如动态规划、规划); - 无模型:不知道
P、R,只能靠真实交互采样学习(如 Q-Learning、策略梯度)。
同策略 (On-policy) vs 异策略 (Off-policy)
- 同策略:用正在执行的策略产生的数据来改进它(如 Sarsa);
- 异策略:用另一套行为策略采集数据,来学习目标策略(如 Q-Learning、DQN)。
3.5 学习价值的两大思路:MC 与 TD
蒙特卡洛 (Monte Carlo, MC)
玩完整整一局,用真实回报 G_t 来更新价值:
V(s_t) ← V(s_t) + α [ G_t - V(s_t) ]
- 优点:无偏;缺点:必须等一局结束,方差大。
时序差分 (Temporal Difference, TD)
每走一步就更新,用“估计值”来引导“估计值”(bootstrapping):
V(s_t) ← V(s_t) + α [ r_{t+1} + γ V(s_{t+1}) - V(s_t) ]
└────────── TD 目标 ──────────┘
└──────────── TD 误差 δ ───────────┘
- 优点:可在线学习、方差小;缺点:有偏。
🎮 王者荣耀里的 MC vs TD:
- MC:打完整整一局,看最后赢没赢,再回头给这一路的每个决策“算总账”——问题是延迟太久、方差大(赢一局有运气成分)。
- TD:每一帧都更新——“我刚补到刀、血量还稳,比上一帧稍好一点”,立刻据此调整价值估计,不用等一局打完。 真实的开悟训练用的正是 TD 类方法(PPO 里的优势估计也基于 TD)。
TD 是现代强化学习的基石——第五部分的 Q-Learning、Sarsa、DQN 全都基于它。
其中 α 是学习率,控制每次更新的步长。
3.6 广义策略迭代 (GPI)
几乎所有 RL 算法都可以看成两个过程的反复交替:
┌──────────────────┐ ┌──────────────────┐
│ 策略评估 │ │ 策略改进 │
│ (算出当前策略价值) │ ─────► │ (对价值贪心得新策略)│
└──────────────────┘ └──────────────────┘
▲ │
└──────────────────────────────┘
不断循环 → 收敛到 π*
- 策略评估 (Evaluation):让价值函数逼近当前策略的真实价值;
- 策略改进 (Improvement):根据价值贪心地更新策略。
两者交替,最终收敛到最优策略 π*。这就是广义策略迭代 (Generalized Policy Iteration)。
✅ 小结
- RL = 在智能体—环境循环中,用奖励信号试错学习;
- 核心难点:评价性反馈、延迟奖励、非独立同分布数据;
- 探索 vs 利用用 ε-贪心平衡;
- 记住三对概念:预测/控制、有模型/无模型、同策略/异策略;
- MC vs TD 是两种学价值的方式,TD 是主流;
- GPI:评估 + 改进反复交替,通向最优策略。
📝 练习
- 举一个王者对局中“延迟奖励”的例子(如埋伏 gank),并说明为什么它让学习变难。
- 为「鲁班瞄准」实现一个
ε从 1.0 线性衰减到 0.05 的函数,并画出衰减曲线。 - 用一句话分别概括 MC 与 TD 更新的区别(可用"打完一局算账 vs 每帧算账"作答)。
- 判断:Q-Learning 是同策略还是异策略?为什么?(第五部分会验证你的答案)
- 王者场景:解释“越塔强杀”为什么是一个典型的延迟奖励 + 信用分配难题——人头奖励在最后一刻才出现,AI 怎么知道是前面哪几步走位的功劳?
📗 延伸参考:ZhiqingXiao/rl-book(MC / TD / Sarsa / Q-Learning 的对照实现,可延伸阅读)
⬅️ 上一部分:第二部分 · 马尔可夫决策过程 ➡️ 下一部分:第四部分 · 应用环境示例