强化学习基础:智能体、环境与交互框架
当我们谈论机器学习时,通常首先想到的是监督学习——在标注好的数据上训练模型,或者无监督学习——从无标注数据中发现模式。然而,智能体(Agent)在与动态环境交互中学习如何做出序列决策,构成了另一类独特且强大的范式:强化学习(Reinforcement Learning, RL)。与依赖静态数据集的范式不同,强化学习的核心在于通过试错(trial-and-error)与环境的持续互动来学习最优行为策略。这种范式更接近人类和动物的自然学习方式:一个婴儿通过不断尝试站立、跌倒、再尝试,最终学会行走;一位棋手通过对弈 thousands 局,逐渐领悟棋局的奥妙。本章将系统性地建立强化学习的基本分析框架,定义其核心组件,并通过一个经典的网格迷宫(Grid World)示例,直观展现智能体与环境的交互全貌。我们将深入探讨强化学习区别于其他范式的本质特征——延迟奖励(Delayed Reward)与探索-利用困境(Exploration-Exploitation Dilemma),并为后续章节所需的概率论基础奠定基石。
1.1 强化学习范式:与监督、无监督学习的核心区别
要理解强化学习,最有效的方式是将它置于机器学习的全景中进行对比。下表从多个维度厘清了三种主要范式的差异:
| 维度 | 监督学习 (Supervised Learning) | 无监督学习 (Unsupervised Learning) | 强化学习 (Reinforcement Learning) | | :--- | :--- | :--- | :--- | | 数据形式 | 带标签的静态数据集 $(x_i, y_i)$ | 无标签的静态数据集 $\{x_i\}$ | 智能体与动态环境的交互序列 | | 学习目标 | 学习输入到输出的映射函数 $f: X \rightarrow Y$ | 发现数据内在结构(聚类、降维等) | 学习策略 $\pi$ 以最大化累积奖励 | | 反馈信号 | 即时的、精确的标签(真值) | 无显式反馈,依赖数据自身统计特性 | 延迟的、稀疏的、标量的奖励信号 $r_t$ | | 决策性质 | 单步、独立预测(如分类一张图片) | 描述性分析(如客户分群) | 序列决策,当前动作影响未来状态与奖励 | | 核心挑战 | 过拟合、泛化能力 | 评估聚类/降维质量 | 信用分配问题、探索-利用权衡、部分可观测性 |
关键洞见:强化学习的核心挑战源于其交互性与时间维度。在监督学习中,每个训练样本的“正确答案”是明确且独立的;而在强化学习中,智能体在时间步 $t$ 采取动作 $a_t$ 后,环境返回的奖励 $r_t$ 不仅反映当前动作的优劣,更与之前所有动作的长期后果紧密相关。例如,在围棋中,一步棋的最终价值可能要到几百步之后落子时才能确定。这种延迟 credit assignment 问题,是监督学习所不面临的。
1.2 核心组件定义:马尔可夫决策过程的五元组
强化学习问题通常被形式化为马尔可夫决策过程(Markov Decision Process, MDP)。MDP 提供了一个严谨的数学框架,用于建模智能体在不确定环境中进行序列决策的问题。一个(离散时间、有限MDP)由以下五元组定义:
$$ \mathcal{M} = (\mathcal{S}, \mathcal{A}, P, R, \gamma) $$
下面我们逐一解析每个组件,并辅以“网格迷宫”示例进行说明。
1.2.1 智能体与环境
- **智能体 (Agent)**:学习者与决策者。它根据对环境的观察,选择动作以执行。在我们的上下文中,智能体是强化学习算法本身(如 Q-learning 算法),或更具体地说,是算法所实现的策略。
- **环境 (Environment)**:智能体之外的所有事物。它接收智能体的动作,并据此改变自身的状态,向智能体反馈新的状态和奖励。环境是智能体无法直接控制的“外部世界”。
交互循环:智能体与环境在每个时间步 $t$ 进行如下交互: 1. 观察当前状态 $s_t \in \mathcal{S}$。 2. 根据策略 $\pi$ 选择动作 $a_t \in \mathcal{A}$。 3. 环境接收动作 $a_t$,根据状态转移概率 $P$ 转移到新状态 $s_{t+1}$,并产生奖励 $r_{t+1}$。 4. 智能体接收新状态 $s_{t+1}$ 和奖励 $r_{t+1}$,循环往复。
这个过程可以清晰地用序列图表示:
```plantuml @startuml actor "智能体\n(Agent)" as Agent participant "环境\n(Environment)" as Env
Agent -> Env: 在状态 s_t,执行动作 a_t Env --> Agent: 返回奖励 r_{t+1} 和新状态 s_{t+1} note right: 时间步 t 到 t+1 的交互 @enduml ```
1.2.2 状态与动作
- **状态 (State), $s$**:对环境在某一时刻的完整描述。状态 $s_t$ 包含了智能体做决策所需的所有历史信息(在**马尔可夫性质**下,未来仅依赖于当前状态)。例如,在迷宫问题中,状态可以是智能体当前所在的格子坐标 $(x, y)$。
- **动作 (Action), $a$**:智能体可以执行的决策。动作空间 $\mathcal{A}$ 可以是离散的(如“上、下、左、右”)或连续的(如机器人关节的扭矩值)。在网格迷宫中,动作空间通常是离散的有限集合。
1.2.3 奖励
- **奖励 (Reward), $r$**:环境对智能体动作的**即时标量反馈信号**。它是定义任务的“目标函数”,指示什么是“好”的,什么是“坏”的。智能体的终极目标是最大化**长期累积奖励**,而非单个奖励。例如,在迷宫中,到达终点可能获得 +10 奖励,撞墙获得 -1 奖励,每走一步获得 -0.1 奖励(鼓励走最短路径)。
奖励设计至关重要:它必须精确地编码我们期望智能体实现的目标。错误的奖励函数可能导致智能体学会“钻空子”的意外策略(如机器人学会通过快速抖动来“欺骗”速度传感器)。
1.2.4 策略
- **策略 (Policy), $\pi$**:智能体的行为准则,定义了在给定状态下选择动作的方式。它是强化学习算法最终要学习的东西。
- **确定性策略**:$\pi(s) = a$,在状态 $s$ 下总是选择同一动作 $a$。
- **随机性策略**:$\pi(a|s)$ 是一个概率分布,表示在状态 $s$ 下选择动作 $a$ 的概率。例如,$\pi(\text{右}|s) = 0.7$,$\pi(\text{下}|s) = 0.3$。
1.2.5 状态转移概率与奖励函数
- **状态转移概率 (Transition Probability), $P$**:描述了环境的动力学模型。$P(s'|s, a)$ 表示在状态 $s$ 下执行动作 $a$ 后,转移到状态 $s'$ 的概率。在确定性环境中,$P(s'|s, a)=1$ 对于某个特定的 $s'$;在 stochastic 环境中,则存在概率分布(如动作执行可能因摩擦力而失败)。
- **奖励函数 (Reward Function), $R$**:$R(s, a, s')$ 或 $R(s, a)$ 表示从状态 $s$ 执行动作 $a$ 并转移到 $s'$ 后获得的期望奖励。通常我们将其视为随机变量,其期望值由函数给出。
1.2.6 折扣因子
- **折扣因子 (Discount Factor), $\gamma \in [0, 1]$**:用于计算**累积折扣奖励**(Return)。它衡量未来奖励相对于当前奖励的重要性。$\gamma$ 接近 1 表示智能体具有“远见”,重视长期回报;$\gamma$ 接近 0 表示智能体“短视”,只关心即时奖励。累积折扣奖励 $G_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$ 的数学益处包括:保证无限和式收敛(当 $|\gamma|<1$),并适用于无限时域问题。
1.3 网格迷宫示例:一个完整的交互流程
让我们通过一个具体的 4x4 网格迷宫,将上述抽象概念具象化。智能体的目标是从起点 $S$ 到达终点 $G$,同时避免陷阱 $X$。
``` +----+----+----+----+ | S | | | | +----+----+----+----+ | | X | | | +----+----+----+----+ | | | | | +----+----+----+----+ | | | | G | +----+----+----+----+ ``` *图 1.1: 4x4 网格迷宫示意图。S: 起点, G: 终点 (+10奖励), X: 陷阱 (-10奖励), 普通格子每步 -0.1 奖励。边界外移动无效,保持原位。*
MDP 形式化定义:
- **状态空间 $\mathcal{S}$**:所有格子的坐标集合,共 16 个状态,例如 $s_1=(1,1)$(左上角起点),$s_{16}=(4,4)$(右下角终点)。
- **动作空间 $\mathcal{A}$**:{上, 下, 左, 右}。
- **状态转移 $P$**:**确定性**。例如,在 $(2,2)$ 状态(陷阱)执行“右”动作,必然转移到 $(3,2)$。若动作导致撞墙(如从 $(1,1)$ 向上),则状态不变。
- **奖励函数 $R$**:
- 到达终点 $G$:$r = +10$,回合结束。
- 踩到陷阱 $X$:$r = -10$,回合结束。
- 其他移动:$r = -0.1$(每步生存代价)。
- **折扣因子 $\gamma$**:设为 0.9,表示未来奖励仍重要,但有所折现。
- **初始状态**:固定为起点 $S$。
一次完整交互轨迹(Episode)示例: 1. $t=0$: 智能体在 $s_0 = (1,1)$。根据策略 $\pi$(例如,随机策略),选择动作“右”。 2. $t=1$: 环境执行转移,新状态 $s_1 = (2,1)$。奖励 $r_1 = -0.1$(普通移动)。 3. $t=2$: 在 $s_1$,策略选择“右”,转移到 $s_2 = (3,1)$,$r_2 = -0.1$。 4. ...(继续移动)... 5. $t=7$: 在 $s_7 = (4,3)$,策略选择“下”,尝试进入 $G$,但环境规则设定为必须精确到达 $(4,4)$。此动作撞墙(无效),状态保持 $s_8 = (4,3)$,$r_8 = -0.1$。 6. $t=8$: 在 $s_8$,策略选择“右”,成功进入 $s_9 = (4,4) = G$。环境返回 $r_9 = +10$,并发出“回合结束”信号。 7. 本次轨迹(Episode)结束。累积折扣奖励(从 $t=0$ 开始)为: $G_0 = r_1 + \gamma r_2 + \gamma^2 r_3 + \cdots + \gamma^8 r_9$ $= (-0.1) + 0.9*(-0.1) + 0.9^2*(-0.1) + \cdots + 0.9^8*(+10)$ $≈ -0.1 * \frac{1-0.9^9}{1-0.9} + 0.9^8 * 10 ≈ -0.645 + 4.304 = 3.659$
这个轨迹展示了智能体如何通过一系列动作与环境互动,最终获得总奖励。强化学习的目标,就是找到一个策略 $\pi^*$,使得从任意初始状态出发,期望累积折扣奖励 $V^{\pi}(s) = \mathbb{E}_{\pi}[G_t | s_t=s]$ 最大化。
1.4 价值函数与目标:我们究竟在优化什么?
策略 $\pi$ 的优劣不能由单次轨迹的奖励衡量,而应由其期望性能来衡量。这引出了两个核心的价值函数概念:
1.4.1 状态价值函数 $V^\pi(s)$
定义为:在策略 $\pi$ 下,从状态 $s$ 开始,所能获得的期望累积折扣奖励。 $$ V^\pi(s) = \mathbb{E}_{\pi} \left[ G_t \mid s_t = s \right] = \mathbb{E}_{\pi} \left[ \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} \mid s_t = s \right] $$ 它回答了:“如果我遵循策略 $\pi$,从状态 $s$ 出发,长期来看能获得多少平均回报?” $V^\pi(s)$ 是策略 $\pi$ 的评价指标。
1.4.2 动作价值函数 $Q^\pi(s, a)$
定义为:在状态 $s$ 下执行动作 $a$,然后遵循策略 $\pi$ 继续行动,所能获得的期望累积折扣奖励。 $$ Q^\pi(s, a) = \mathbb{E}_{\pi} \left[ G_t \mid s_t = s, a_t = a \right] $$ 它回答了:“如果我在状态 $s$ 采取动作 $a$,之后都按策略 $\pi$ 行事,长期总回报期望是多少?”
策略与价值函数的关系:给定策略 $\pi$,状态价值函数是动作价值函数在策略分布下的期望: $$ V^\pi(s) = \sum_{a \in \mathcal{A}} \pi(a|s) Q^\pi(s, a) $$
最优价值函数与最优策略:
- **最优状态价值函数** $V^*(s) = \max_{\pi} V^\pi(s)$:从状态 $s$ 出发,任何策略能获得的**最大可能期望回报**。
- **最优动作价值函数** $Q^*(s, a) = \max_{\pi} Q^\pi(s, a)$:在状态 $s$ 执行动作 $a$ 后,再采取最优策略能获得的最大期望回报。
- **最优策略** $\pi^*$:任何使得 $V^{\pi^*}(s) = V^*(s)$ 对所有 $s$ 成立的策略。它总是选择使 $Q^*(s, a)$ 最大的动作:
$$ \pi^*(a|s) = \begin{cases} 1 & \text{if } a = \arg\max_{a'} Q^*(s, a') \\ 0 & \text{otherwise} \end{cases} $$ (对于确定性最优策略)
强化学习的核心任务:在环境模型 $P, R$ 未知的情况下,通过与环境交互,学习到最优价值函数 $V^*, Q^*$ 或最优策略 $\pi^*$。
1.5 探索-利用困境:强化学习的核心张力
在网格迷宫例子中,一个简单的策略可能是:总是向 reward 高的方向移动(例如,看到终点就冲过去)。但这在更复杂的环境中会失败。想象一个多臂老虎机(Multi-Armed Bandit)问题:你有多个老虎机摇臂,每个摇臂有未知的、不同的期望奖励分布。你只有有限的尝试次数。
- **利用 (Exploitation)**:选择当前已知奖励最高的动作,以获取最大即时收益。例如,发现某个摇臂平均给 1 元,就总是拉它。
- **探索 (Exploration)**:尝试当前看似次优的动作,以获取更多信息,可能发现潜在更好的动作。例如,尝试一下那个平均只给 0.5 元的摇臂,万一它其实有更高概率给 10 元呢?
困境的本质:有限的交互次数必须分配给探索和利用。过度探索会浪费机会在已知较差的动作上;过度利用可能永远错过全局最优解。这是强化学习区别于许多其他机器学习范式的根本挑战之一——学习过程本身(探索)会损害短期性能,但又是获得长期最优性能的必要途径。
1.5.1 探索策略举例
1. $\epsilon$-贪婪策略 ($\epsilon$-greedy):以概率 $1-\epsilon$ 选择当前估值最高的动作(利用),以概率 $\epsilon$ 随机选择所有动作(探索)。$\epsilon$ 通常随时间衰减。 2. 上置信界 (Upper Confidence Bound, UCB):基于“ optimism in the face of uncertainty” 原则。选择动作 $a$ 使得: $$ a_t = \arg\max_a \left[ Q_t(a) + c \sqrt{\frac{\ln t}{N_t(a)}} \right] $$ 其中 $Q_t(a)$ 是动作 $a$ 的当前平均奖励估计,$N_t(a)$ 是其被选择次数,$c$ 是探索系数。第二项是“不确定性 bonuses”,被选择次数越少, bonuses 越大,鼓励探索。 3. 汤普森采样 (Thompson Sampling):为每个动作的奖励分布维护一个先验概率模型(如 Beta 分布),每次根据当前后验分布采样一个期望奖励,选择采样值最大的动作。这是一种贝叶斯探索方法。
在迷宫中的应用:假设智能体发现一条通往终点的短路径(高 $Q$ 值)。是永远走这条路(利用),还是偶尔试试其他方向(探索)?如果迷宫有隐藏的捷径(未知),探索才能发现它。但探索可能撞墙或掉入陷阱(负奖励)。如何平衡,取决于任务的性质(探索成本、环境稳定性等)。
1.6 概率论基础铺垫:随机变量与期望
强化学习天然具有随机性(随机策略、随机环境)。理解概率论的基本概念是后续学习价值函数估计、策略梯度等算法的基石。
- **随机变量 (Random Variable)**:一个其值由随机现象决定的变量。例如,在状态 $s$ 执行动作 $a$ 后获得的奖励 $R$ 是一个随机变量。我们用大写字母 $R$ 表示随机变量本身,小写 $r$ 表示其具体 realization。
- **概率分布 (Probability Distribution)**:描述随机变量取不同值的概率。离散随机变量用概率质量函数 $P(R=r)$ 描述;连续随机变量用概率密度函数 $p(r)$ 描述。
- **期望 (Expectation)**:随机变量取值的**加权平均**,权重为其概率。对于离散随机变量 $X$:
$$ \ma