RL 基础概念
强化学习(Reinforcement Learning, RL)是机器学习三大范式之一,与监督学习、无监督学习并列。它的核心场景是:一个智能体(Agent)在环境中通过试错学习最优策略。
想象一只老鼠走迷宫:它不知道哪条路通往奶酪,但它会不断尝试——撞墙就记住此路不通,吃到奶酪就记住这条路好。强化学习就是研究这类"通过与环境交互学会最优行为"的问题。
每个时间步 $t$,会发生四件事:
| 步骤 | 符号 | 含义 |
|---|---|---|
| 观察 | $s_t \in S$ | 智能体看到环境的当前状态 |
| 决策 | $a_t \in A$ | 根据策略 $\pi$ 选择一个动作 |
| 反馈 | $r_{t+1} \in \mathbb{R}$ | 环境返回一个奖励信号 |
| 转移 | $s_{t+1}$ | 环境转移到新状态 |
智能体的目标:最大化整条轨迹上所有奖励的累积值。这个累积值叫做回报(Return),记作 $G_t$。
回报的定义
对于折扣因子 $\gamma \in [0,1]$,时间步 $t$ 的回报为:
$\gamma$ 越接近 0,智能体越短视(只看眼前);越接近 1,越注重长远。
强化学习问题通常被建模为马尔可夫决策过程(Markov Decision Process, MDP),定义为五元组 $(S, A, P, R, \gamma)$:
| 符号 | 含义 | 说明 |
|---|---|---|
| $S$ | 有限状态空间 | 环境可能处于的所有状态的集合 |
| $A$ | 有限动作空间 | 智能体可以执行的所有动作 |
| $P(s'|s,a)$ | 状态转移概率 | 在状态 $s$ 执行动作 $a$ 后转移到 $s'$ 的概率 |
| $R(s,a,s')$ | 奖励函数 | 执行转移后获得的即时奖励 |
| $\gamma$ | 折扣因子 | $0 \leq \gamma \leq 1$,衡量未来奖励的当前价值 |
核心概念速查
| 概念 | 定义 | 类比 |
|---|---|---|
| 轨迹(Trajectory)$\tau$ | 状态和动作交替的序列 $(s_0, a_0, s_1, a_1, \ldots)$ | 棋谱:每一步怎么走的完整记录 |
| 回合(Episode) | 从初始状态到终止状态的完整轨迹 | 一局棋:从开局到终局 |
| 采样 | 智能体与环境交互,收集轨迹数据 | 下棋:实际对局积累经验 |
| 有限任务 | 存在终止状态的任务(如一局游戏) | 围棋:终局明确 |
| 无限任务 | 没有终止状态的任务(如过程控制) | 自动驾驶:永远在开 |
状态与观测:完全可知 vs 部分可知
强化学习要求输入的是状态,而不是观测。区别在于马尔可夫性:
- 完全可知(MDP):智能体能获取环境的底层状态。如围棋棋盘完全可见。
- 部分可知(POMDP):智能体只能获取带噪声或局部的观测。如机器人第一视角摄像头。此时需要堆叠多帧观测或使用 RNN 来近似还原状态。
策略 $\pi$ 是智能体的行为规则——给定状态,决定执行什么动作。
- 确定性策略:$a = \pi(s)$,给定状态直接输出动作。
- 随机策略:$\pi(a|s) = P[A=a | S=s]$,输出每个动作的概率分布。
探索与利用困境
经典的"午饭去哪吃"问题:
- 去吃过的饭馆:好吃、风险小,但可能错过更好的
- 去没吃过的饭馆:可能踩雷,但也可能发现宝藏
这就是探索与利用困境(Exploration vs. Exploitation)。过度探索浪费机会,过度利用陷入局部最优。
$\epsilon$-Greedy 策略
最简单且最常用的平衡方案:
- 以概率 $\epsilon$ 随机选择动作(探索)
- 以概率 $1 - \epsilon$ 选择当前最优动作(利用)
通常结合衰减机制($\epsilon$-decay):训练初期 $\epsilon$ 大(多探索),后期 $\epsilon$ 趋向 0(多利用)。训练时使用 $\epsilon$-Greedy,部署时用纯贪婪策略。
价值函数是 RL 中最核心的概念——它量化了"某个状态(或状态-动作对)到底有多好"。
状态价值函数 $V^\pi(s)$
从状态 $s$ 出发,一直遵循策略 $\pi$,能获得的期望累积回报:
在有限任务里,终止状态的价值为 0(因为游戏已经结束了)。
最优状态价值函数:所有策略中最好的那个:$V_*(s) = \max_\pi V_\pi(s)$
动作价值函数 $Q^\pi(s,a)$
在状态 $s$ 执行动作 $a$ 后,再遵循策略 $\pi$ 的期望回报:
最优动作价值函数:$Q_*(s,a) = \max_\pi Q_\pi(s,a)$
$V$ 与 $Q$ 的关系
$V$ 函数回答"这个状态有多好";$Q$ 函数回答"在这个状态下做这个动作有多好"。它们的关系:
策略 $\pi$ 把每个动作的 $Q$ 值按概率加权,就得到了状态的 $V$ 值。
价值函数需要考虑未来所有的情况,计算量很大。贝尔曼方程的核心思想是递归:把"未来所有奖励的总和"分解为"当前奖励 + 未来奖励的折扣和"。
从回报到递归
回报的定义:
提取一个 $\gamma$,后面恰好是 $G_{t+1}$:
这就是递归的起点。
贝尔曼期望方程
把递归思想应用到价值函数上:
展开期望(对所有可能的动作和转移求和):
类似地,动作价值函数的贝尔曼期望方程:
贝尔曼最优方程
当我们把 $\pi$ 换成"每一步都选最优动作"的贪婪策略时,就得到贝尔曼最优方程:
注意这里用的是 $\max$ 而非 $\sum$——因为我们不再按策略的概率加权,而是直接选最好的。
环境设定:一个简单的三状态 MDP,如下表所示。
| 状态 | 可选动作 | 转移与奖励 |
|---|---|---|
| $s_1$ | $a_1$(向前) | $P(s_2|s_1,a_1)=1$,$R=5$ |
| $s_1$ | $a_2$(停留) | $P(s_1|s_1,a_2)=1$,$R=1$ |
| $s_2$ | $a_1$(向前) | $P(s_3|s_2,a_1)=1$,$R=10$ |
| $s_2$ | $a_2$(后退) | $P(s_1|s_2,a_2)=1$,$R=-2$ |
| $s_3$(终止) | — | $V(s_3) = 0$ |
参数:$\gamma = 0.9$,策略 $\pi$ 为均匀随机策略(每个动作概率 $0.5$)。
求 $V^\pi(s_1)$ 和 $V^\pi(s_2)$
第一步:写出贝尔曼期望方程
第二步:对 $s_2$ 列方程
$s_2$ 的终止状态是 $s_3$,$V(s_3) = 0$:
第三步:对 $s_1$ 列方程
第四步:联立求解
将 $V(s_2) = 4 + 0.45 V(s_1)$ 代入:
结果解读
$V^\pi(s_1) \approx 13.81$,$V^\pi(s_2) \approx 10.22$。$s_1$ 的价值更高,因为它是起点,包含了从 $s_1 \to s_2 \to s_3$ 这条高奖励路径的全部期望回报。$s_2$ 虽然有一步直接得到奖励 10 的机会,但之后游戏就结束了。
换一个策略试试
如果策略改为"在 $s_1$ 总是选 $a_1$(向前),在 $s_2$ 总是选 $a_1$(向前)",即确定性最优策略:
果然,最优策略下的 $V^*(s_1) = 14$ 高于均匀随机策略下的 $13.81$。这也验证了一个关键定理:全局最优策略的任意局部片段,也必然是该局部的最优策略。
贝尔曼方程为什么能成立?关键在于递归结构。
考虑一个生活类比:你想评估"从昆明开车到北京要多久"。你不需要一口气规划全部 2000 公里,只需要知道:
- 昆明到西安:10 小时(已知)
- 西安到北京的预估时间:$V(\text{西安})$
总时间 = 已知段 + 折扣后的剩余估计。这就是贝尔曼方程的精神——把一个长远问题分解为"一步 + 剩余"。
在最优策略下,每一步都选当前最好的动作:
这就是贝尔曼最优方程。它构成了一张"自洽的价值网络"——每个状态的最优价值,都建立在后续状态的最优价值之上。
现在你了解了 RL 的数学基础:MDP 框架、价值函数、贝尔曼方程。下一步,我们来看当环境模型已知时,如何用动态规划直接求解最优策略 → 模块 02:动态规划
参考来源
- 马尔科夫决策过程《RethinFun强化学习》1.2
- Sutton, R. S., & Barto, A. G. (2018). Reinforcement Learning: An Introduction, Chapters 3-4. MIT Press.