强化学习导论:智能决策的数学框架
强化学习导论:智能决策的数学框架
引言:智能决策的科学
当我们观察一个婴儿学习抓握物体的过程时,会注意到一个有趣的现象:婴儿并非通过观察他人的演示来学习这一技能,而是通过反复尝试、观察结果、调整动作的循环过程,逐渐掌握了如何协调手部肌肉以成功抓住眼前的玩具。这种从经验中学习、通过试错优化行为的方式,正是人类和动物获取复杂技能的基本机制。强化学习(Reinforcement Learning,简称RL)正是对这一学习范式的数学抽象和计算模拟。
强化学习作为机器学习三大范式之一,与监督学习和无监督学习有着本质的区别。监督学习依赖标注数据进行有导师学习,无监督学习则从未标注数据中发现隐藏结构,而强化学习独树一帜地强调智能体与环境的持续交互,通过最大化累积奖励来学习最优决策策略。这种学习范式使强化学习特别适用于那些缺乏完备训练数据、决策过程具有序列性和延迟反馈特征的实际问题。
从AlphaGo击败围棋世界冠军到自动驾驶汽车在复杂路况中做出驾驶决策,从推荐系统精准把握用户偏好到金融交易算法在波动市场中寻找套利机会,强化学习技术正在深刻改变人工智能的应用版图。然而,要真正掌握强化学习的精髓,不能仅停留在表面的算法调用层面,而需要深入理解其背后的数学框架、核心概念和算法设计思想。本章将作为全书的开篇,为读者建立对强化学习的系统性认知,为后续各章的深入学习奠定坚实基础。
一、基本概念与核心要素
1.1 智能体与环境的交互模型
强化学习的核心是一个智能体-环境交互模型(Agent-Environment Interaction Model)。在这一框架中,智能体(Agent)是学习和决策的主体,可以是一个控制算法、一个游戏玩家,或者一个自动驾驶系统;环境(Environment)是智能体外部的一切事物,是智能体观察和作用的对象。当智能体执行某个动作后,环境会相应地发生状态变化,并给予智能体即时的反馈信号。
这一交互过程在时间维度上以离散的时间步(Time Step)序列展开。设时间为 $t = 0, 1, 2, \ldots$,智能体在每个时间步 $t$ 会经历以下循环:首先,智能体观察环境的当前状态(State)$s_t \in \mathcal{S}$,其中 $\mathcal{S}$ 表示所有可能状态的集合;然后,基于当前状态和自身的策略(Policy),智能体选择一个动作(Action)$a_t \in \mathcal{A}(s_t)$,其中 $\mathcal{A}(s_t)$ 是在状态 $s_t$ 下所有可选动作的集合;接着,环境根据其动态特性(也称为转移函数或环境模型)产生下一个状态 $s_{t+1}$,并给出奖励信号(Reward)$r_{t+1}$ 作为对该动作的即时评价;最后,智能体根据新的状态和奖励更新自身策略,进入下一个时间步的决策过程。
这一交互循环可以用数学语言更精确地描述为:
$$\tau = (s_0, a_0, r_1, s_1, a_1, r_2, s_2, \ldots)$$
其中 $\tau$ 表示一条完整的轨迹(Trajectory)或情节(Episode),它记录了从初始状态开始的所有状态、动作和奖励的序列。智能体的目标是学习一个策略 $\pi$,使得遵循该策略产生的轨迹能够获得最大的累积奖励。
1.2 状态与动作空间
状态和动作的表达方式是强化学习问题建模的关键环节。根据状态和动作空间的性质,我们可以将强化学习问题分为不同类别。
离散空间问题中,状态空间 $\mathcal{S}$ 和动作空间 $\mathcal{A}$ 都是有限集合。例如,迷宫问题中的每个格子位置对应一个离散状态,向四个方向移动对应四个离散动作。这类问题相对简单,可以使用表格型方法(Tabular Methods)进行求解,典型算法包括Q学习(Q-Learning)和SARSA。
连续空间问题则涉及连续的状态或动作维度。在机器人控制任务中,关节角度、末端执行器位置、速度等都是连续变量。处理连续空间问题通常需要函数逼近技术,深度强化学习正是通过深度神经网络来近似价值函数或策略函数,从而解决高维连续状态和动作空间的决策问题。著名的深度强化学习算法如深度Q网络(DQN)、深度确定性策略梯度(DDPG)和软演员-评论家算法(Soft Actor-Critic,SAC)都是为处理连续动作空间而设计的。
值得注意的是,实际问题中的状态往往是部分可观测的(Partially Observable)。在扑克游戏中,玩家只能看到自己的手牌和公共牌,无法完全获知对手的手牌状态;在自动驾驶场景中,摄像头和传感器只能提供周围环境的有限信息。这类问题被称为部分可观测马尔可夫决策过程(Partially Observable Markov Decision Process,POMDP),其处理方法包括使用循环神经网络(RNN)记忆历史信息,或者采用基于信念状态(Belief State)的方法。
1.3 奖励信号与累积回报
奖励信号是强化学习中指导学习方向的核心要素。环境在智能体执行动作后提供的即时奖励 $r_t$ 反映了该动作在当前状态下的即时价值评估。然而,智能体的终极目标并非最大化单步奖励,而是追求长期累积回报(Cumulative Return)的最大化。这种延迟满足的能力正是强化学习区别于其他学习范式的关键特征。
设折扣因子(Discount Factor)为 $\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$ 体现了智能体的前瞻性程度。当 $\gamma$ 接近 1 时,智能体更重视长期回报;当 $\gamma$ 接近 0 时,智能体更关注即时奖励。在实际应用中,折扣因子的选择取决于具体问题的特性——对于需要考虑长期影响的任务(如围棋),通常选择较高的折扣因子;而对于即时反馈更重要的场景,可能选择较低的折扣因子。
对于有限时间步的情节任务(Episodic Task),也可以使用无折扣的累积回报:
$$G_t = \sum_{k=0}^{T-t-1} r_{t+k+1}$$
其中 $T$ 是情节的终止时间步。
奖励函数的设计是强化学习应用中的核心挑战之一。一个设计良好的奖励函数应该能够清晰表达任务的期望目标,同时避免引入可能导致智能体发现“捷径”或“作弊”行为的副作用。例如,在机器人 locomotion 任务中,如果奖励仅基于前进速度,机器人可能学会一些不自然的运动模式(如摔倒后翻滚前进)来获得更高分数,而非真正学会稳定行走。因此,奖励塑形(Reward Shaping)成为强化学习工程实践中的重要技术,通过添加额外的 shaping reward 来引导学习过程向期望方向发展。
1.4 策略与价值函数
策略(Policy)$\pi$ 是强化学习智能体的核心组成部分,它定义了智能体在给定状态下选择动作的行为规则。策略可以是确定性的(Deterministic),记作 $a = \pi(s)$,表示在状态 $s$ 下始终选择同一个动作;也可以是随机性的(Stochastic),记作 $\pi(a|s) = P(a_t = a | s_t = s)$,表示在状态 $s$ 下以一定概率分布选择动作。
在深度强化学习中,策略通常由神经网络参数化表示。确定性策略网络直接输出最优动作,而随机策略网络输出动作分布的参数(如均值和方差)。演员-评论家(Actor-Critic)架构正是利用两个网络分别近似策略函数和价值函数,实现高效的策略优化。
价值函数(Value Function)则量化了状态或状态-动作对的长期价值,是评估策略优劣和指导策略改进的关键工具。最重要的两个价值函数定义如下:
状态价值函数 $V^\pi(s)$ 表示从状态 $s$ 开始,遵循策略 $\pi$ 所能获得的期望累积回报:
$$V^\pi(s) = \mathbb{E}_\pi [G_t | s_t = s] = \mathbb{E}_\pi \left[ \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} \middle| s_t = s \right]$$
动作价值函数 $Q^\pi(s, a)$ 表示从状态 $s$ 开始,执行动作 $a$ 后遵循策略 $\pi$ 所能获得的期望累积回报:
$$Q^\pi(s, a) = \mathbb{E}_\pi [G_t | s_t = s, a_t = a] = \mathbb{E}_\pi \left[ \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} \middle| s_t = s, a_t = a \right]$$
这两个价值函数之间存在递归关系,即贝尔曼方程(Bellman Equation):
$$V^\pi(s) = \sum_a \pi(a|s) \sum_{s'} P(s'|s, a) [R(s, a, s') + \gamma V^\pi(s')]$$
$$Q^\pi(s, a) = \sum_{s'} P(s'|s, a) \left[ R(s, a, s') + \gamma \sum_{a'} \pi(a'|s') Q^\pi(s', a') \right]$$
其中 $P(s'|s, a)$ 是环境的状态转移概率,$R(s, a, s')$ 是对应的奖励。
最优价值函数 $V^*(s)$ 和 $Q^*(s, a)$ 分别定义为所有策略中能够获得的最大价值:
$$V^*(s) = \max_\pi V^\pi(s)$$
$$Q^*(s, a) = \max_\pi Q^\pi(s, a)$$
相应的最优策略$\pi^*$ 满足 $\pi^*(a|s) = 1$ 当且仅当 $a = \arg\max_a Q^*(s, a)$。强化学习的核心目标就是找到这个最优策略。
还有一个重要的概念是优势函数(Advantage Function):
$$A^\pi(s, a) = Q^\pi(s, a) - V^\pi(s)$$
它表示在状态 $s$ 下选择动作 $a$ 相对于平均策略的优势程度。当 $A^\pi(s, a) > 0$ 时,说明该动作优于平均水平,应该增加其被选择的概率。许多策略梯度算法(如GAE、PPO)都利用优势函数来估计动作的相对优劣。
二、强化学习与其他机器学习范式的本质区别
理解强化学习与监督学习、无监督学习的本质区别,对于正确选择和应用强化学习方法至关重要。
2.1 三种学习范式的对比
监督学习(Supervised Learning)的核心是从标注数据中学习输入到输出的映射关系。在图像分类任务中,给定输入图像和对应标签,模型学习预测正确的类别;在机器翻译任务中,给定源语言句子和目标语言译文,模型学习进行序列到序列的转换。监督学习假设存在一个“教师”或“专家”来提供每个输入对应的正确输出,学习过程是直接的映射拟合。监督学习的优化目标通常是最小化预测值与真实标签之间的误差,如交叉熵损失或均方误差。
无监督学习(Unsupervised Learning)则从无标签数据中发现隐藏的结构和模式。聚类算法将数据划分为若干类别,降维算法将高维数据投影到低维空间,生成模型学习数据的概率分布。无监督学习不依赖外部标签,而是通过数据本身的内在特性进行学习。
强化学习与这两种范式的核心区别在于学习信号的来源和性质。在监督学习中,每个样本都有一个独立的“正确答案”;在强化学习中,智能体只获得稀疏的、延迟的奖励信号,这些奖励是对整个序列决策的综合评价,而非对单步决策的直接指导。例如,在围棋中,智能体只能在整盘棋结束后得知胜负结果,而无法获知每一步棋的优劣(除非使用蒙特卡洛树搜索等方法进行辅助评估)。
2.2 试错学习与探索-利用困境
强化学习的另一个显著特征是试错学习(Trial-and-Error Learning)。智能体通过与环境交互探索各种可能的行为,观察不同行为带来的后果,逐渐学习哪些行为能够获得更高奖励。这种学习方式模拟了生物界的操作性条件反射机制。
试错学习引出了一个经典问题:探索-利用困境(Exploration-Exploitation Dilemma)。智能体面临一个两难选择:一方面,为了发现潜在的更优策略,需要尝试那些目前未知或看似次优的动作(探索,Exploration);另一方面,为了最大化即时收益,应该选择已知能够带来较高奖励的动作(利用,Exploitation)。在有限的学习时间内,如何平衡探索与利用是强化学习算法设计的关键考量。
经典的探索策略包括 $\epsilon$-贪心($\epsilon$-Greedy)方法——以概率 $\epsilon$ 随机选择动作(探索),以概率 $1-\epsilon$ 选择当前价值最高的动作(利用),并且 $\epsilon$ 通常随学习进行逐渐衰减。基于置信上界(Upper Confidence Bound,UCB)的方法通过为不确定性高的动作添加探索bonus来平衡探索与利用。汤普森采样(Thompson Sampling)等贝叶斯方法则通过概率分布来建模动作价值的不确定性,在采样过程中自然实现探索。
2.3 序列决策与延迟奖励
强化学习处理的另一个关键特征是序列决策问题(Sequential Decision Making)。智能体的当前决策不仅影响即时报酬,还会对未来的状态和机会产生深远影响。在棋类游戏中,当前一步的落子位置决定了后续整个局面的走向;在自动驾驶中,当前时刻的加速或转向决策会影响数秒后的交通态势。因此,智能体必须具备长远的规划能力,考虑动作的长期累积效应。
这种延迟奖励特性使得强化学习的学习过程比监督学习更加复杂和困难。监督学习中,每个样本的标签直接提供了该输入对应的正确输出,学习信号是即时且明确的。强化学习中,智能体需要将从最终结果中提取的信息反向传播到导致该结果的整个动作序列中,这一过程涉及信用分配问题(Credit Assignment Problem)——即如何确定序列中每一步动作对于最终结果的贡献程度。
时序差分学习(Temporal Difference Learning,TD Learning)正是为解决延迟奖励问题而设计的核心技术。TD方法通过估计当前价值与“ bootstrapped”未来价值的差值来更新价值函数,无需等待最终结果返回即可进行增量式学习。著名的Q学习算法就是TD方法在动作价值函数估计中的应用。
三、迷宫问题:强化学习的直观案例
为了帮助读者建立对强化学习工作流程的直观理解,我们以经典的迷宫探索问题为例进行详细说明。
3.1 问题定义
考虑一个 $5 \times 5$ 的网格世界迷宫,智能体(用红色圆圈表示)需要从起始位置(左上角)导航到目标位置(右下角)。在每个格子,智能体可以选择四种动作之一:向上、向下、向左或向右移动。如果智能体撞到墙壁,它会保持在原位置。所有非目标格子都有 $-1$ 的即时奖励,表示“每走一步都是有代价的”;到达目标格子时获得 $+10$ 的奖励,同时情节结束。
```mermaid graph TD subgraph "5×5 迷宫环境" A1["S (0,0)"] --> A2["(0,1)"] A2 --> A3["(0,2)"] A3 --> A4["(0,3)"] A4 --> A5["(0,4)"]
B1["(1,0)"] --> B2["(1,1)"] B3["(1,2)"] --> B4["(1,3)"] B4 --> B5["(1,4)"]
C1["(2,0)"] --> C2["(2,1)"] C2 --> C3["(2,2)"] C4["(2,3)"] --> C5["(2,4)"]
D1["(3,0)"] --> D2["(3,1)"] D2 --> D3["(3,2)"] D3 --> D4["(3,3)"] D4 --> D5["(3,4)"]
E1["(4,0)"] --> E2["(4,1)"] E3["(4,2)"] --> E4["(4,3)"] E4 --> E5["G (4,4)"] end
style S fill:#ff6b6b style G fill:#51cf66 style S stroke:#c92a2a,stroke-width:3px style G stroke:#2b8a3e,stroke-width:3px ```
3.2 交互学习过程
在初始阶段,智能体对环境一无所知,不知道哪些动作能更快到达目标。智能体首先进行探索:随机选择动作移动,观察新的位置和获得的奖励。假设智能体向下移动到达 $(1,0)$,获得奖励 $-1$;再向左移动被墙壁阻挡,停留在原位置,获得奖励 $-1$;继续探索可能偶然发现更优的路径。
随着探索经验的积累,智能体逐渐学习到每个状态-动作对的价值估计。Q学习算法使用以下更新公式更新动作价值函数:
$$Q(s, a) \leftarrow Q(s, a) + \alpha \left[ r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right]$$
其中 $\alpha$ 是学习率,$\gamma$ 是折扣因子,$s'$ 是执行动作 $a$ 后的下一个状态。
3.3 收敛到最优策略
经过足够的探索和更新后,智能体的Q值将逐渐收敛到真实的动作价值。假设经过学习后,智能体学到以下简化的价值分布:靠近目标的状态具有较高的价值,能够朝向目标移动的动作价值更高。此时,智能体可以采用利用策略——在每个状态选择Q值最高的动作,即能最快到达目标的移动方向。
```mermaid graph LR subgraph "学习阶段" A["探索环境"] --> B["记录状态-动作-奖励"] B --> C["更新Q值估计"] C --> D{"