ESC
输入关键词搜索文章
目录

RL 基础概念

模块 01 · 马尔可夫决策过程与贝尔曼方程
把'在环境中试错学习'变成一个严谨的数学问题
什么是强化学习?

强化学习(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$ 的回报为:

$$G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}$$

$\gamma$ 越接近 0,智能体越短视(只看眼前);越接近 1,越注重长远。

Section 02
马尔可夫决策过程(MDP)

强化学习问题通常被建模为马尔可夫决策过程(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$,衡量未来奖励的当前价值
马尔可夫性:"未来只与现在有关,与过去无关"。当前状态包含了做出最优决策所需的全部历史信息。这是整个 MDP 框架的基石。

核心概念速查

概念定义类比
轨迹(Trajectory)$\tau$状态和动作交替的序列 $(s_0, a_0, s_1, a_1, \ldots)$棋谱:每一步怎么走的完整记录
回合(Episode)从初始状态到终止状态的完整轨迹一局棋:从开局到终局
采样智能体与环境交互,收集轨迹数据下棋:实际对局积累经验
有限任务存在终止状态的任务(如一局游戏)围棋:终局明确
无限任务没有终止状态的任务(如过程控制)自动驾驶:永远在开

状态与观测:完全可知 vs 部分可知

强化学习要求输入的是状态,而不是观测。区别在于马尔可夫性:

  • 完全可知(MDP):智能体能获取环境的底层状态。如围棋棋盘完全可见。
  • 部分可知(POMDP):智能体只能获取带噪声或局部的观测。如机器人第一视角摄像头。此时需要堆叠多帧观测或使用 RNN 来近似还原状态。
策略(Policy)

策略 $\pi$ 是智能体的行为规则——给定状态,决定执行什么动作。

  • 确定性策略$a = \pi(s)$,给定状态直接输出动作。
  • 随机策略$\pi(a|s) = P[A=a | S=s]$,输出每个动作的概率分布。
注意:同样的策略 + 同样的 MDP,会产生不同的轨迹。随机性来源于三个方面:动作的随机性、状态转移的随机性、奖励的随机性。

探索与利用困境

经典的"午饭去哪吃"问题:

  • 去吃过的饭馆:好吃、风险小,但可能错过更好的
  • 去没吃过的饭馆:可能踩雷,但也可能发现宝藏

这就是探索与利用困境(Exploration vs. Exploitation)。过度探索浪费机会,过度利用陷入局部最优。

$\epsilon$-Greedy 策略

最简单且最常用的平衡方案:

  • 以概率 $\epsilon$ 随机选择动作(探索)
  • 以概率 $1 - \epsilon$ 选择当前最优动作(利用)

通常结合衰减机制$\epsilon$-decay):训练初期 $\epsilon$ 大(多探索),后期 $\epsilon$ 趋向 0(多利用)。训练时使用 $\epsilon$-Greedy,部署时用纯贪婪策略。

Section 03
价值函数

价值函数是 RL 中最核心的概念——它量化了"某个状态(或状态-动作对)到底有多好"。

状态价值函数 $V^\pi(s)$

从状态 $s$ 出发,一直遵循策略 $\pi$,能获得的期望累积回报:

$$V^\pi(s) = \mathbb{E}_\pi\Bigl[\sum_{k=0}^{\infty} \gamma^k r_{t+k} \mid s_t = s\Bigr]$$

在有限任务里,终止状态的价值为 0(因为游戏已经结束了)。

最优状态价值函数:所有策略中最好的那个:$V_*(s) = \max_\pi V_\pi(s)$

动作价值函数 $Q^\pi(s,a)$

在状态 $s$ 执行动作 $a$ 后,再遵循策略 $\pi$ 的期望回报:

$$Q^\pi(s,a) = \mathbb{E}_\pi\Bigl[\sum_{k=0}^{\infty} \gamma^k r_{t+k} \mid s_t = s, a_t = a\Bigr]$$

最优动作价值函数$Q_*(s,a) = \max_\pi Q_\pi(s,a)$

$V$$Q$ 的关系

$V$ 函数回答"这个状态有多好";$Q$ 函数回答"在这个状态下做这个动作有多好"。它们的关系:

$$V^\pi(s) = \sum_a \pi(a|s) \cdot Q^\pi(s,a)$$

策略 $\pi$ 把每个动作的 $Q$ 值按概率加权,就得到了状态的 $V$ 值。

Section 04
贝尔曼方程

价值函数需要考虑未来所有的情况,计算量很大。贝尔曼方程的核心思想是递归:把"未来所有奖励的总和"分解为"当前奖励 + 未来奖励的折扣和"。

从回报到递归

回报的定义:

$$G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots$$

提取一个 $\gamma$,后面恰好是 $G_{t+1}$

$$G_t = R_{t+1} + \gamma G_{t+1}$$

这就是递归的起点。

贝尔曼期望方程

把递归思想应用到价值函数上:

$$V^\pi(s) = \mathbb{E}_\pi\Bigl[R_{t+1} + \gamma V^\pi(S_{t+1}) \mid s_t = s\Bigr]$$

展开期望(对所有可能的动作和转移求和):

$$V^\pi(s) = \sum_a \pi(a|s) \Bigl[r(s,a) + \gamma \sum_{s'} P(s'|s,a) V^\pi(s')\Bigr]$$

类似地,动作价值函数的贝尔曼期望方程:

$$Q^\pi(s,a) = r(s,a) + \gamma \sum_{s'} P(s'|s,a) \sum_{a'} \pi(a'|s') Q^\pi(s',a')$$
直觉:当前状态的价值 = 即时奖励的期望 + $\gamma$ × 下一状态价值的期望。这个"当前步的价值等于即时奖励加上折扣后的下一步价值"的关系,就是贝尔曼方程的精髓。

贝尔曼最优方程

当我们把 $\pi$ 换成"每一步都选最优动作"的贪婪策略时,就得到贝尔曼最优方程:

$$V^*(s) = \max_a \sum_{s'} P(s'|s,a)\bigl[R(s,a,s') + \gamma V^*(s')\bigr]$$
$$Q^*(s,a) = \sum_{s'} P(s'|s,a)\bigl[R(s,a,s') + \gamma \max_{a'} Q^*(s',a')\bigr]$$

注意这里用的是 $\max$ 而非 $\sum$——因为我们不再按策略的概率加权,而是直接选最好的。

Worked Example 01
例题:贝尔曼方程手动计算

环境设定:一个简单的三状态 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)$

第一步:写出贝尔曼期望方程

$$V^\pi(s) = \sum_a \pi(a|s) \Bigl[r(s,a) + \gamma \sum_{s'} P(s'|s,a) V^\pi(s')\Bigr]$$

第二步:对 $s_2$ 列方程

$s_2$ 的终止状态是 $s_3$$V(s_3) = 0$

$$V(s_2) = 0.5 \times (10 + 0.9 \times 0) + 0.5 \times (-2 + 0.9 \times V(s_1))$$
$$V(s_2) = 5 - 1 + 0.45 \times V(s_1) = 4 + 0.45 V(s_1)$$

第三步:对 $s_1$ 列方程

$$V(s_1) = 0.5 \times (5 + 0.9 \times V(s_2)) + 0.5 \times (1 + 0.9 \times V(s_1))$$
$$V(s_1) = 3 + 0.45 V(s_2) + 0.45 V(s_1)$$
$$0.55 V(s_1) = 3 + 0.45 V(s_2)$$
$$V(s_1) = \frac{3 + 0.45 V(s_2)}{0.55}$$

第四步:联立求解

$V(s_2) = 4 + 0.45 V(s_1)$ 代入:

$$V(s_1) = \frac{3 + 0.45(4 + 0.45 V(s_1))}{0.55} = \frac{3 + 1.8 + 0.2025 V(s_1)}{0.55}$$
$$0.55 V(s_1) = 4.8 + 0.2025 V(s_1)$$
$$0.3475 V(s_1) = 4.8$$
$$V(s_1) \approx 13.81$$
$$V(s_2) = 4 + 0.45 \times 13.81 \approx 10.22$$

结果解读

$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_2) = 10 + 0.9 \times 0 = 10$$
$$V^*(s_1) = 5 + 0.9 \times 10 = 14$$

果然,最优策略下的 $V^*(s_1) = 14$ 高于均匀随机策略下的 $13.81$。这也验证了一个关键定理:全局最优策略的任意局部片段,也必然是该局部的最优策略

贝尔曼方程的直观理解

贝尔曼方程为什么能成立?关键在于递归结构

考虑一个生活类比:你想评估"从昆明开车到北京要多久"。你不需要一口气规划全部 2000 公里,只需要知道:

  • 昆明到西安:10 小时(已知)
  • 西安到北京的预估时间:$V(\text{西安})$

总时间 = 已知段 + 折扣后的剩余估计。这就是贝尔曼方程的精神——把一个长远问题分解为"一步 + 剩余"。

在最优策略下,每一步都选当前最好的动作:

$$V^*(s) = \max_a \Bigl\{\text{即时奖励} + \gamma \times V^*(\text{下一个状态})\Bigr\}$$

这就是贝尔曼最优方程。它构成了一张"自洽的价值网络"——每个状态的最优价值,都建立在后续状态的最优价值之上。

下一步

现在你了解了 RL 的数学基础:MDP 框架、价值函数、贝尔曼方程。下一步,我们来看当环境模型已知时,如何用动态规划直接求解最优策略 → 模块 02:动态规划

参考来源