从零开始学AI——16
前言
完结撒花~
第十六章
本章我们开始强化学习的内容,强化学习 (Reinforcement Learning, RL) 是机器学习的一个分支,致力于研究智能体 (Agent) 如何通过与一个动态环境的直接交互来学习一个最优策略,以使其获得的累积奖励 的某个长期度量达到最大化。
此交互过程在离散时间步 t=0,1,2,…t = 0, 1, 2, \ldotst=0,1,2,… 上展开:
- 在时刻 ttt,智能体从环境观测到其所处的状态 St∈SS_t \in \mathcal{S}St∈S,其中 S\mathcal{S}S 是所有可能状态构成的状态空间 (State Space)。
- 基于状态 StS_tSt,智能体依据其策略 π\piπ 选择一个动作 At∈A(St)A_t \in \mathcal{A}(S_t)At∈A(St) 执行,其中 A(St)\mathcal{A}(S_t)A(St) 是在状态 StS_tSt 下所有可用动作构成的动作空间 (Action Space)。
- 在时刻 t+1t+1t+1,作为对动作 AtA_tAt 的响应,环境发生状态转移,进入新状态 St+1∈SS_{t+1} \in \mathcal{S}St+1∈S,并向智能体反馈一个标量奖励 Rt+1∈RR_{t+1} \in \mathbb{R}Rt+1∈R。
16.1 马尔科夫决策过程
智能体的决策会直接影响其后续所处的状态和接收到的奖励,因此存在延迟回报的现象。这意味着智能体的目标并非简单地最大化某一时刻的瞬时奖励 Rt+1R_{t+1}Rt+1,而是要最大化从长远来看的累积回报。为了对这一序贯决策过程进行严格建模,我们需要一个能够刻画状态转移、动作选择与奖励反馈之间动态关系的数学框架。
为此,我们引入马尔可夫决策过程(Markov Decision Process, MDP),作为强化学习中最基础且核心的形式化模型。一个 MDP 由四元组 (S,A,P,R)(\mathcal{S}, \mathcal{A}, P, R)(S,A,P,R) 构成,完整描述了智能体与环境交互的全部机制。
-
S\mathcal{S}S:状态空间,表示智能体可能处于的所有状态的集合。
-
A\mathcal{A}A:动作空间,表示智能体在每个状态下可选择的所有动作的集合。
-
PPP:状态转移概率模型,刻画环境的动态特性。它是一个条件概率函数:p(s′∣s,a)≔P(St+1=s′∣St=s,At=a)p(s' | s, a) \coloneqq \mathbb{P}(S_{t+1} = s' \mid S_t = s, A_t = a)p(s′∣s,a):=P(St+1=s′∣St=s,At=a)表示在状态 sss 执行动作 aaa 后,系统转移到状态 s′s's′ 的概率。该模型满足归一性条件:∑s′∈Sp(s′∣s,a)=1,∀s∈S,a∈A\sum_{s' \in \mathcal{S}} p(s' | s, a) = 1, \quad \forall s \in \mathcal{S}, a \in \mathcal{A}s′∈S∑p(s′∣s,a)=1,∀s∈S,a∈A这一设定蕴含了马尔可夫性质——下一状态的分布完全由当前状态和当前动作决定,而与过去的历史无关,即:P(St+1∣St,At)=P(St+1∣St,At,St−1,At−1,…)\mathbb{P}(S_{t+1} \mid S_t, A_t) = \mathbb{P}(S_{t+1} \mid S_t, A_t, S_{t-1}, A_{t-1}, \ldots)P(St+1∣St,At)=P(St+1∣St,At,St−1,At−1,…)
-
RRR:奖励函数,定义智能体在每一步获得的即时反馈。为更具一般性,我们将其建模为状态-动作-后继状态三元组的函数:r(s,a,s′)≔E[Rt+1∣St=s,At=a,St+1=s′]r(s, a, s') \coloneqq \mathbb{E}[R_{t+1} \mid S_t = s, A_t = a, S_{t+1} = s']r(s,a,s′):=E[Rt+1∣St=s,At=a,St+1=s′]它表示在状态 sss 采取动作 aaa 并转移到 s′s's′ 时所能获得的平均奖励,反映了环境对智能体行为的评价信号。
在此框架下,智能体的目标是通过选择合适的动作序列,最大化其在整个交互过程中积累的总奖励。然而,不同任务的结构决定了“累积回报”的具体形式,因此我们需要进一步区分两类典型任务场景。
首先,对于具有明确终止条件的任务,称为回合制任务,如棋局对弈或迷宫探索。这类任务会被自然划分为若干独立的回合。在每个回合中,智能体从初始状态出发,经历一系列状态转移,最终达到终止状态后重置。由于过程有限,累积回报可直接定义为从起始到终止的所有即时奖励之和。具体地,从时间 ttt 开始的回报为:
Gt=∑k=tT−1Rk+1
G_t = \sum_{k=t}^{T-1} R_{k+1}
Gt=k=t∑T−1Rk+1
其中 TTT 为回合结束的时刻。因此,智能体的目标是最大化从初始状态出发的期望累积回报 E[G0]\mathbb{E}[G_0]E[G0]。
相比之下,许多现实任务并无自然终点,这类持续性任务,如机器人长期控制或自动化调度,要求智能体无限期地与环境交互。若仍采用无限累积和,则总回报可能发散,导致目标无法定义。为解决这一问题,我们引入折扣因子 γ∈[0,1)\gamma \in [0, 1)γ∈[0,1),赋予未来奖励递减的权重,从而保证目标的收敛性。此时,从时间 ttt 开始的折扣回报定义为:
Gt=∑k=0∞γkRt+k+1
G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}
Gt=k=0∑∞γkRt+k+1
其中 γ\gammaγ 的作用具有双重意义:
- 数学上:只要奖励序列有界,当 γ<1\gamma < 1γ<1 时,该无穷级数必然收敛,使值函数良好定义;
- 行为上:γ\gammaγ 控制了智能体对未来奖励的关注程度——γ→0\gamma \to 0γ→0 时偏向即时收益,表现“短视”;γ→1\gamma \to 1γ→1 时更重视长期利益,体现“远见”。
为了实现上述长期回报的最大化,智能体必须遵循一定的决策规则,即策略。策略 π\piπ 定义了在每个状态下应如何选择动作,形式化为从状态到动作概率分布的映射:
π(a∣s)=P(At=a∣St=s)
\pi(a|s) = \mathbb{P}(A_t = a \mid S_t = s)
π(a∣s)=P(At=a∣St=s)
满足对所有 s∈Ss \in \mathcal{S}s∈S,有 ∑a∈Aπ(a∣s)=1\sum_{a \in \mathcal{A}} \pi(a|s) = 1∑a∈Aπ(a∣s)=1。策略可以是确定性的(如 π(s)=a\pi(s) = aπ(s)=a,任何状态都执行行为aaa),也可以是随机性的。
由此引出强化学习的根本目标:寻找一个最优策略 π∗\pi_*π∗,使得在该策略下,从任意初始状态 sss 出发所能获得的期望回报达到最大,即:
π∗=argmaxπE[G0∣S0=s,π],∀s∈S
\pi_* = \arg\max_\pi \mathbb{E}\left[G_0 \mid S_0 = s, \pi\right], \quad \forall s \in \mathcal{S}
π∗=argπmaxE[G0∣S0=s,π],∀s∈S
在正式引入具体的强化学习模型与算法之前,我们必须面对一个根本性的挑战——探索-利用困境(Exploration-Exploitation Dilemma)。这一困境源于智能体在未知环境中学习最优策略时所面临的核心矛盾:它既需要依据已有经验做出高效决策,又必须主动获取新的环境知识。
尽管强化学习的目标是找到一个能最大化期望累积回报的最优策略 π∗\pi_*π∗,但在大多数实际场景中,智能体并不预先知晓状态转移概率 PPP 和奖励函数 RRR。因此,它必须通过与环境的实际交互来逐步学习这些信息。正是在这种学习过程中,探索与利用之间的权衡变得至关重要。
- 利用(Exploitation):指智能体根据当前掌握的知识,选择在某一状态下估计能带来最高回报的动作。这是一种以短期性能为导向的策略,目的在于最大化当前及近期的收益。例如,基于当前值估计选择贪心动作。
- 探索(Exploration):指智能体主动尝试那些尚未充分了解的动作,即使它们当前看起来并非最优。其目的在于收集更多关于环境动态和奖励分布的信息,从而 refine 策略,避免因信息不足而错过全局更优的行为路径。这种行为通常会牺牲一部分短期回报,以换取长期性能的提升。
值得注意的是,两种极端策略均不可取: - 一个完全利用的智能体可能过早收敛于局部最优策略,无法发现潜在的更高回报路径;
- 而一个持续探索的智能体则会因频繁执行低效动作而难以积累显著回报,导致学习效率低下。
因此,如何在学习过程中动态地平衡探索与利用,在获取新知识与发挥已有知识之间取得最优折衷,构成了强化学习的核心难题之一。几乎所有强化学习算法的设计,本质上都在试图回答这样一个问题:在何时、何地、以何种程度进行探索?这一权衡机制的有效性,直接决定了智能体能否高效地逼近最优策略。
为了揭示这一点,现在我们就从一个最简单的模型开始吧——K-摇臂赌博机
16.2 K-摇臂赌博机
假设有 KKK 台赌博机(摇臂),每台机器在内部对应一个固定的奖励概率分布。该分布是预先确定且恒定不变的,不会因我们的选择行为而改变——即环境是静态的。然而,这些分布的具体参数对我们而言是完全未知的。
我们的目标是在有限的 NNN 次尝试中,最大化所获得的总收益 ∑t=1NRt\sum_{t=1}^N R_t∑t=1NRt。这一设定剥离了MDP中状态转移的复杂性,仅保留了动作选择与奖励反馈这两个核心环节。因此,智能体的策略不再需要考虑状态变化,而只需在每次时刻选择一个动作(即拉下某一台机器的摇臂),并根据观测到的奖励更新对各动作价值的认知。
在这种简化下,智能体面临的基本决策只有两种:
- 利用:持续选择当前估计价值最高的动作 aka_kak,以确保每一步的期望即时奖励最大化;
- 探索:尝试那些尚未被充分采样的动作,尽管短期内可能导致较低的回报,但有助于更准确地估计其真实价值,从而避免遗漏潜在更优的选择。
从形式化角度看,该问题可以视为一个单状态的MDP (S,A,P,R)(\mathcal{S}, \mathcal{A}, P, R)(S,A,P,R),其中:
- 状态空间仅包含一个状态,记作 S={s0}\mathcal{S} = \{s_0\}S={s0};
- 动作空间 A={a1,a2,…,aK}\mathcal{A} = \{a_1, a_2, \ldots, a_K\}A={a1,a2,…,aK},其中每个动作 aka_kak 对应选择第 kkk 个摇臂;
- 状态转移函数是确定性的:无论采取何种动作,系统始终停留在 s0s_0s0。即:
p(s′=s0∣s=s0,a=ak)=1,∀ak∈A p(s' = s_0 \mid s = s_0, a = a_k) = 1, \quad \forall a_k \in \mathcal{A} p(s′=s0∣s=s0,a=ak)=1,∀ak∈A - 奖励机制仅依赖于所选动作 aka_kak。每个动作 aka_kak 关联一个未知的奖励分布。我们定义其真实价值(期望奖励)为:
q∗(ak)≔E[Rt∣At=ak] \mathbf{q_*(a_k)} \coloneqq \mathbb{E}[R_t \mid A_t = a_k] q∗(ak):=E[Rt∣At=ak]
此值固定但未知,代表长期执行动作 aka_kak 所能得到的平均奖励。
由于状态唯一,策略 π(a∣s)\pi(a \mid s)π(a∣s) 退化为一个不依赖于状态的动作选择分布,强化学习通常追求的累积回报 GtG_tGt 也被简化为在 NNN 次试验中对总奖励 ∑t=1NRt\sum_{t=1}^N R_t∑t=1NRt 的最大化。
问题的根本挑战源于我们对 q∗(ak)\mathbf{q_*(a_k)}q∗(ak) 的无知。我们无法直接获知各动作的真实价值,只能通过有限次的试验,依据观测到的奖励序列来估计这些值,以期找到并最大化利用那个具有最高真实价值的动作a∗=argmaxak∈Aq∗(ak)a_* = \arg\max_{a_k \in \mathcal{A}} q_*(a_k)a∗=argmaxak∈Aq∗(ak)。因此,整个问题的核心转化为:如何设计一种合理的行动策略,在利用已有知识与探索未知动作之间取得平衡,从而在有限时间内最大化累计收益。****
为了做出合理的动作选择,我们必须依赖历史交互数据来对各动作的真实价值 q∗(ak)q_*(a_k)q∗(ak) 进行估计。这些数据包括过去选择过的动作及其对应的奖励反馈。我们记在第 ttt 次决策之前,对动作 aaa 的价值估计为 Qt(a)Q_t(a)Qt(a)。该估计应基于此前所有相关观测构建。
最直观的估计方式是使用样本平均法:将某一动作已被执行时所获得的奖励取平均,作为其价值的估计。为此,定义:
- Nt(a)N_t(a)Nt(a):在第 ttt 次决策之前,动作 aaa 被选中的次数;
- R1,R2,…,RNt(a)R_1, R_2, \ldots, R_{N_t(a)}R1,R2,…,RNt(a):这 Nt(a)N_t(a)Nt(a) 次选择动作 aaa 时所获得的具体奖励值。
据此,在第 ttt 时刻对动作 aaa 的价值估计可表示为:
Qt(a)≔∑i=1Nt−1(a)RiNt−1(a)
Q_t(a) \coloneqq \frac{\sum_{i=1}^{N_{t-1}(a)} R_i}{N_{t-1}(a)}
Qt(a):=Nt−1(a)∑i=1Nt−1(a)Ri
其中分子为前 Nt−1(a)N_{t-1}(a)Nt−1(a) 次选择 aaa 所得奖励之和,分母为其被选择的频次。当 Nt−1(a)=0N_{t-1}(a) = 0Nt−1(a)=0 时,由于缺乏观测数据,通常设定一个初始值 Qt(a)=0Q_t(a) = 0Qt(a)=0。
根据大数定律,随着 Nt−1(a)→∞N_{t-1}(a) \to \inftyNt−1(a)→∞,该估计值 Qt(a)Q_t(a)Qt(a) 将几乎必然收敛于动作 aaa 的真实期望回报 q∗(a)q_*(a)q∗(a)。因此,样本平均是一种一致估计量,具有良好的渐近性质。
然而,在实际算法实现中,若每次都重新计算上述平均值,将带来不必要的计算开销。为提高效率,我们可以采用增量更新的方式,利用已有估计 Qt(a)Q_t(a)Qt(a) 和新观测到的奖励 RtR_tRt 来在线地更新估计值。
为说明这一点,略去动作标记 aaa 和时间下标 ttt,令 QnQ_nQn 表示基于前 n−1n-1n−1 次奖励对某动作价值的估计,则第 nnn 次观测后的更新公式可递推表示如下:
Qn+1=1n∑i=1nRi=1n(Rn+∑i=1n−1Ri)=1n(Rn+(n−1)⋅1n−1∑i=1n−1Ri)=1n(Rn+(n−1)Qn)=1nRn+n−1nQn=Qn+1n(Rn−Qn)
\begin{aligned}
Q_{n+1} &= \frac{1}{n} \sum_{i=1}^{n} R_i \\
&= \frac{1}{n} \left( R_n + \sum_{i=1}^{n-1} R_i \right) \\
&= \frac{1}{n} \left( R_n + (n-1) \cdot \frac{1}{n-1} \sum_{i=1}^{n-1} R_i \right) \\
&= \frac{1}{n} \left( R_n + (n-1) Q_n \right) \\
&= \frac{1}{n} R_n + \frac{n-1}{n} Q_n \\
&= Q_n + \frac{1}{n} (R_n - Q_n)
\end{aligned}
Qn+1=n1i=1∑nRi=n1(Rn+i=1∑n−1Ri)=n1(Rn+(n−1)⋅n−11i=1∑n−1Ri)=n1(Rn+(n−1)Qn)=n1Rn+nn−1Qn=Qn+n1(Rn−Qn)
此式揭示了一个简洁的更新机制:
Qn+1=Qn+αn[Rn−Qn]
Q_{n+1} = Q_n + \alpha_n [R_n - Q_n]
Qn+1=Qn+αn[Rn−Qn]
其中:
- [Rn−Qn][R_n - Q_n][Rn−Qn] 称为时序差分误差的最简单形式,它衡量了当前预测 QnQ_nQn 与实际观测 RnR_nRn 之间的偏差;
- αn=1n\alpha_n = \frac{1}{n}αn=n1 是步长系数,控制新信息对估计值的影响程度。
该机制体现了合理的学习动态:当 nnn 较小时(即采样次数少),αn\alpha_nαn 较大,表示算法对当前估计不够自信,因而给予新观测较高的权重;随着 nnn 增大,αn\alpha_nαn 逐渐减小,估计趋于稳定,单次新观测的影响减弱,符合统计直觉。
在获得对各动作价值的估计 Qt(a)Q_t(a)Qt(a) 后,下一步是基于估计做出动作选择决策。理想策略应在利用已有知识与探索未知动作之间取得平衡。我们首先介绍一种经典且广泛应用的方法:ε-贪心策略。
ε-贪心策略
若仅根据当前估计选择价值最高的动作,即采用纯贪心策略:
At=argmaxa∈A Qt(a)
A_t = \underset{a \in \mathcal{A}}{\arg\max} \, Q_t(a)
At=a∈AargmaxQt(a)
虽然最大化了即时期望回报,但存在严重缺陷:一旦某个非最优动作在初期被高估,或最优动作因偶然低回报被低估,智能体可能永远不再选择后者,导致陷入局部最优,无法收敛到真正最优策略。
为克服这一问题,ε-贪心策略引入受控的随机性,以保证所有动作都有机会被尝试。该策略由一个超参数 ϵ∈[0,1]\epsilon \in [0, 1]ϵ∈[0,1] 控制,在每个决策时刻 ttt 执行如下步骤:
- 生成一个在区间 [0,1][0, 1][0,1] 上均匀分布的随机数 ppp;
- 若 p<ϵp < \epsilonp<ϵ:执行探索,智能体从动作空间 A\mathcal{A}A 中等概率随机选择一个动作,即:P(At=a)=1K,∀a∈A\mathbb{P}(A_t = a) = \frac{1}{K}, \quad \forall a \in \mathcal{A}P(At=a)=K1,∀a∈A
- 若 p≥ϵp \ge \epsilonp≥ϵ:执行利用,智能体选择当前估计价值最高的动作:At=argmaxa∈A Qt(a)A_t = \underset{a \in \mathcal{A}}{\arg\max} \, Q_t(a)At=a∈AargmaxQt(a)
(当存在多个最大值时,通常从中随机选取一个以避免系统性偏差。)
由此,该策略以概率 1−ϵ1 - \epsilon1−ϵ 进行利用,以概率 ϵ\epsilonϵ 进行探索,实现了探索与利用的显式分离。
ε-贪心策略的优点在于其简洁性和易实现性:仅需一个参数 ϵ\epsilonϵ 即可有效打破纯贪心的锁定效应,确保长期下所有动作都能被持续采样,从而使得价值估计 Qt(a)Q_t(a)Qt(a) 有机会收敛至真实值 q∗(a)q_*(a)q∗(a)。
然而,该策略亦有明显局限:其探索过程是完全无向的,即在探索阶段对所有未被选中的动作一视同仁。它未利用已有价值估计信息来指导探索方向,例如倾向于选择那些估计值接近最高但尚未充分采样的动作。因此,尽管能避免完全忽略某些动作,但在高维或稀疏奖励场景下,其探索效率较低。这一缺陷促使我们考虑更精细的探索机制,如后续将介绍的 SoftMax 策略。
SoftMax 策略
在执行探索时,我们自然希望赋予历史表现较优的动作更高的被选择概率,从而在探索过程中更高效地积累关于潜在最优动作的信息。这种思想属于价值引导的探索,即利用已有价值估计 Qt(a)Q_t(a)Qt(a) 来调节不同动作的探索强度。
SoftMax 策略正是实现这一目标的一种经典方法。它借鉴统计物理学中的玻尔兹曼分布,将每个动作的价值估计转化为其被选择的概率。在时间步 ttt,选择动作 aaa 的概率 πt(a)\pi_t(a)πt(a) 定义为:
πt(a)=eQt(a)/τ∑k=1KeQt(ak)/τ
\pi_t(a) = \frac{e^{Q_t(a) / \tau}}{\sum_{k=1}^{K} e^{Q_t(a_k) / \tau}}
πt(a)=∑k=1KeQt(ak)/τeQt(a)/τ
其中:
- Qt(a)Q_t(a)Qt(a) 是在第 ttt 次决策前对动作 aaa 的价值估计;
- τ>0\tau > 0τ>0 是一个可调参数,称为温度,控制探索的程度。
该策略的核心机制在于:价值估计越高的动作,其指数项 eQt(a)/τe^{Q_t(a)/\tau}eQt(a)/τ 越大,因而被选中的概率也越高。但所有动作仍保有非零概率,确保持续探索。
温度参数 τ\tauτ 对策略行为起很大地作用,其极限情况如下:
-
当 τ→∞\tau \to \inftyτ→∞ 时,有 Qt(a)/τ→0Q_t(a) / \tau \to 0Qt(a)/τ→0,进而 eQt(a)/τ→1e^{Q_t(a)/\tau} \to 1eQt(a)/τ→1。此时分子对所有动作趋于相等,因此:πt(a)→1K,∀a∈A\pi_t(a) \to \frac{1}{K}, \quad \forall a \in \mathcal{A}πt(a)→K1,∀a∈A 即所有动作被等概率选择,对应于完全探索,与价值估计无关。
-
当 τ→0+\tau \to 0^+τ→0+ 时,Qt(a)/τQ_t(a)/\tauQt(a)/τ 的差异被急剧放大。令 a∗=argmaxaQt(a)a^* = \arg\max_a Q_t(a)a∗=argmaxaQt(a) 为当前估计最优动作,则其指数项将远超其余项。在极限下:πt(a∗)→1,πt(a)→0(a≠a∗)\pi_t(a^*) \to 1, \quad \pi_t(a) \to 0 \quad (a \ne a^*)πt(a∗)→1,πt(a)→0(a=a∗)此时策略趋近于纯贪心策略,实现完全利用。
通过调节 τ\tauτ,SoftMax 策略可在探索与利用之间实现平滑过渡。相比 ϵ\epsilonϵ-贪心,其探索过程并非均匀随机,而是依据现有知识对高价值动作赋予更高采样概率,从而在保持探索的同时提升采样效率。
16.3 求解完整的MDP
16.3.1 学习的两种分野
在前面讨论的 KKK-摇臂赌博机问题中,整个环境只有一个状态,未知的部分仅仅是对每个动作的奖励期望。我们只需要估计 Q(a)Q(a)Q(a) 就能做出决策。但在真正的马尔可夫决策过程 (S,A,P,R)(\mathcal{S}, \mathcal{A}, P, R)(S,A,P,R) 中,情况要复杂得多:
- 我们既不知道在状态 sss 执行动作 aaa 会得到多少奖励(由 R(s,a,s′)R(s, a, s')R(s,a,s′) 决定),
- 也不知道这个动作会将我们带到哪一个后继状态 s′s's′(由 P(s′∣s,a)P(s' \mid s, a)P(s′∣s,a) 决定)。
于是我们面临一个根本性的问题:智能体应该如何组织它的学习过程?
我们可以用“学习一款新游戏”的过程来理解这个选择,想象两位玩家开始玩一款陌生的游戏:
- 理论派玩家:会先认真研究教程,理解游戏机制——比如按键对应什么操作(建模 PPP),哪些行为能得分、得多少分(建模 RRR)。他试图在脑中建立一个完整的游戏模型。一旦掌握,他就能通过“模拟推演”来制定最优策略,而不需要大量试错。
- 实战派玩家:直接跳过教程,凭直觉开始玩。他不在乎机制细节,只关注“这样做有没有好处”。通过不断试错,他逐渐形成一套高效的反应模式,虽然说不清为什么,但却很有效。
强化学习中的两大范式,正是这两种学习方式的体现。关键在于是否尝试去学习环境的模型。
环境模型(Model):在强化学习中,特指对状态转移函数 P(s′∣s,a)P(s' \mid s, a)P(s′∣s,a) 和奖励函数 R(s,a,s′)R(s, a, s')R(s,a,s′) 的显式估计。拥有模型,就意味着能预测“在某个状态下做某件事之后会发生什么”。
根据是否学习并使用这一模型,我们将方法分为两类:
有模型学习(Model-Based Reinforcement Learning)
这类方法走的是理论派路线。智能体的目标是先学会环境的运行规则,即从交互经验 (s,a,r,s′)(s, a, r, s')(s,a,r,s′) 中学习一个近似模型 (P^,R^)(\hat{P}, \hat{R})(P^,R^),使得:
P^(s′∣s,a)≈P(s′∣s,a),R^(s,a,s′)≈R(s,a,s′)
\hat{P}(s' \mid s, a) \approx P(s' \mid s, a), \quad \hat{R}(s, a, s') \approx R(s, a, s')
P^(s′∣s,a)≈P(s′∣s,a),R^(s,a,s′)≈R(s,a,s′)
一旦模型学成,智能体就可以像下棋程序那样,在内部进行规划——通过模拟未来的状态转移和奖励,计算出最优策略 π∗\pi_*π∗
整个流程分为两个阶段:
- 学习阶段:通过与真实环境交互,收集数据并拟合 P^\hat{P}P^ 和 R^\hat{R}R^;
- 规划阶段:在内部模型 (P^,R^)(\hat{P}, \hat{R})(P^,R^) 上运行动态规划、树搜索等算法,得出策略。
优点是样本效率高。哪怕只进行少量真实交互,也能利用学到的模型生成大量“想象中的经验”,反复用于策略改进,大大减少了对真实环境的依赖。
缺点则是计算成本高,且存在双重近似误差:
- 模型本身可能学得不准(P^≠P\hat{P} \ne PP^=P, R^≠R\hat{R} \ne RR^=R);
- 基于错误模型所作的规划,可能导致策略严重偏离最优。
一旦“世界观”错了,再精妙的推理也是南辕北辙。
免模型学习(Model-Free Reinforcement Learning)
这类方法则是典型的实战派风格。智能体不关心“为什么”,只关心“怎么做更有效”。它完全不尝试去建模 PPP 或 RRR,而是直接从经验中学习价值函数或策略,例如动作价值函数 Q(s,a)Q(s, a)Q(s,a) 或状态价值函数 V(s)V(s)V(s)。
像我们之前讨论的 KKK-摇臂赌博机算法,就是最简单的免模型学习:它只记录每个动作带来了多少奖励,直接用平均值估计 Q(a)Q(a)Q(a),从不去建模奖励的分布形态,也不关心状态变化(因为根本没有状态变化)。
优点在于实现简单、端到端。它绕开了建模的复杂性,直接面向最终目标——学会一个好策略。也因此,它不会受到模型误差的污染,更具鲁棒性。
缺点则是样本效率低。智能体必须通过海量的真实交互来覆盖各种状态-动作组合,才能逐渐学到正确的价值。每一条经验几乎都“只用一次”,无法像有模型方法那样通过模拟反复重用。
综上所述,有模型 vs 免模型,本质上是“先理解世界再决策”与“边做边学、直觉驱动”的分野。两者各有优劣,也并非互斥。在高级强化学习系统中,常能看到两者的融合:用模型提升效率,用免模型机制保障健壮性。
16.3.2 有模型学习
如前所述,有模型学习可分为两个阶段:环境模型的学习与基于该模型的策略规划。本节聚焦于后者:假设我们已拥有环境的完美模型,即对所有状态-动作对 (s,a)(s, a)(s,a),已知:
- 状态转移概率 P(s′∣s,a)P(s' \mid s, a)P(s′∣s,a),表示在状态 sss 执行动作 aaa 后转移到状态 s′s's′ 的概率;
- 期望即时奖励 R(s,a)≔E[Rt+1∣St=s,At=a]R(s, a) \coloneqq \mathbb{E}[R_{t+1} \mid S_t = s, A_t = a]R(s,a):=E[Rt+1∣St=s,At=a]。
我们的目标是:利用这些已知信息,直接计算出最优策略 π∗\pi_*π∗。这是一个典型的序贯决策优化问题。由于一个状态的价值依赖于其后继状态的价值,这一递归结构具备最优子结构性质,正是动态规划的理想应用场景。
我们考虑带有折扣因子 γ∈[0,1)\gamma \in [0, 1)γ∈[0,1) 的持续性任务。(对于回合制任务,可通过设置 γ=1\gamma = 1γ=1 并引入吸收状态sas_asa满足 P(sa∣sa,a)=1P(s_a \mid s_a, a) = 1P(sa∣sa,a)=1 且 R(sa,a)=0R(s_a, a) = 0R(sa,a)=0来统一建模)
令 GtG_tGt 表示从时间步 ttt 开始的总折扣回报:
Gt≔Rt+1+γRt+2+γ2Rt+3+⋯=Rt+1+γ(Rt+2+γRt+3+⋯ )=Rt+1+γGt+1
\begin{aligned}
G_t &\coloneqq R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots \\
&= R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3} + \cdots) \\
&= R_{t+1} + \gamma G_{t+1}
\end{aligned}
Gt:=Rt+1+γRt+2+γ2Rt+3+⋯=Rt+1+γ(Rt+2+γRt+3+⋯)=Rt+1+γGt+1
该式表明:当前时刻的回报等于下一时刻的即时奖励,加上下一时刻回报的折扣版本。
在此基础上,给定策略 π\piπ 的状态价值函数 Vπ(s)V^\pi(s)Vπ(s) 定义为从状态 sss 出发、遵循策略 π\piπ 所能获得的期望回报:
Vπ(s)≔Eπ[Gt∣St=s]=Eπ[Rt+1+γGt+1∣St=s]=Eπ[Rt+1∣St=s]+γ Eπ[Gt+1∣St=s]
\begin{aligned}
V^\pi(s) &\coloneqq \mathbb{E}_\pi[G_t \mid S_t = s] \\
&= \mathbb{E}_\pi[R_{t+1} + \gamma G_{t+1} \mid S_t = s] \\
&= \mathbb{E}_\pi[R_{t+1} \mid S_t = s] + \gamma\, \mathbb{E}_\pi[G_{t+1} \mid S_t = s]
\end{aligned}
Vπ(s):=Eπ[Gt∣St=s]=Eπ[Rt+1+γGt+1∣St=s]=Eπ[Rt+1∣St=s]+γEπ[Gt+1∣St=s]
进一步展开各项:
- Eπ[Rt+1∣St=s]=∑a∈Aπ(a∣s) R(s,a)\mathbb{E}_\pi[R_{t+1} \mid S_t = s] = \sum_{a \in \mathcal{A}} \pi(a \mid s)\, R(s, a)Eπ[Rt+1∣St=s]=∑a∈Aπ(a∣s)R(s,a)
- Eπ[Gt+1∣St=s]=∑a∈Aπ(a∣s)∑s′∈SP(s′∣s,a) Vπ(s′)\mathbb{E}_\pi[G_{t+1} \mid S_t = s] = \sum_{a \in \mathcal{A}} \pi(a \mid s) \sum_{s' \in \mathcal{S}} P(s' \mid s, a)\, V^\pi(s')Eπ[Gt+1∣St=s]=∑a∈Aπ(a∣s)∑s′∈SP(s′∣s,a)Vπ(s′)
代入得:
Vπ(s)=∑a∈Aπ(a∣s)(R(s,a)+γ∑s′∈SP(s′∣s,a) Vπ(s′))
V^\pi(s) = \sum_{a \in \mathcal{A}} \pi(a \mid s) \left( R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s' \mid s, a)\, V^\pi(s') \right)
Vπ(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′))
此即贝尔曼期望方程(Bellman Expectation Equation),它刻画了在策略 π\piπ 下各状态价值之间的自洽关系。
注意R(s,a)≔E[Rt+1∣St=s,At=a]=∑s′∈SP(s′∣s,a)Rs→s′aR(s,a) \coloneqq \mathbb{E}[R_{t+1} | S_t=s, A_t=a] = \sum_{s' \in \mathcal{S}} P(s'|s, a) R_{s \to s'}^{a}R(s,a):=E[Rt+1∣St=s,At=a]=∑s′∈SP(s′∣s,a)Rs→s′a
对于最优策略 π∗\pi_*π∗,其对应的价值函数 V∗(s)≔maxπVπ(s)V_*(s) \coloneqq \max_\pi V^\pi(s)V∗(s):=maxπVπ(s) 满足以下方程:
V∗(s)=maxa∈A(R(s,a)+γ∑s′∈SP(s′∣s,a) V∗(s′))
\begin{aligned}
V_*(s) &= \max_{a \in \mathcal{A}} \left( R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s' \mid s, a)\, V_*(s') \right)
\end{aligned}
V∗(s)=a∈Amax(R(s,a)+γs′∈S∑P(s′∣s,a)V∗(s′))
此式称为贝尔曼最优方程。它表明:一个状态的最优价值等于在该状态下选择能使即时奖励与折扣后继最优价值之和最大的动作所能获得的期望回报。
类似地,最优动作价值函数 Q∗(s,a)Q_*(s, a)Q∗(s,a) 定义为:在状态 sss 执行动作 aaa 后,从下一状态 s′s's′ 开始始终遵循最优策略 π∗\pi_*π∗ 所能获得的期望回报。其贝尔曼最优方程为:
Q∗(s,a)=R(s,a)+γ∑s′∈SP(s′∣s,a) maxa′∈AQ∗(s′,a′)
Q_*(s, a) = R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s' \mid s, a)\, \max_{a' \in \mathcal{A}} Q_*(s', a')
Q∗(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)a′∈AmaxQ∗(s′,a′)
注意到最优状态价值函数 V∗(s)V_*(s)V∗(s) 正是所有可选动作中最大的动作价值 V∗(s)=maxa∈AQ∗(s,a)V_*(s) = \max_{a \in \mathcal{A}} Q_*(s, a)V∗(s)=maxa∈AQ∗(s,a),因此,上式中的 maxa′Q∗(s′,a′)\max_{a'} Q_*(s', a')maxa′Q∗(s′,a′) 实际上就是 V∗(s′)V_*(s')V∗(s′)。代入后可得:
Q∗(s,a)=R(s,a)+γ∑s′∈SP(s′∣s,a) V∗(s′)
Q_*(s, a) = R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s' \mid s, a)\, V_*(s')
Q∗(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)V∗(s′)
这与我们在 V∗V_*V∗ 的贝尔曼最优方程中看到的后继价值结构完全一致。这表明:V∗V_*V∗ 和 Q∗Q_*Q∗ 的贝尔曼最优方程本质上描述的是同一最优性条件,只是表达形式不同。
现在我们进入动态规划。给定一个已知的环境模型 (P,R)(P, R)(P,R) 和一个策略 π\piπ,我们的目标是计算该策略对应的状态价值函数 VπV^\piVπ。这个过程称为策略评估,其实质是通过迭代方法求解贝尔曼期望方程的唯一解。
整个迭代过程如下所示:
- 初始化:任意初始化一个状态价值函数 V0(s)V_0(s)V0(s),对所有 s∈Ss \in \mathcal{S}s∈S(通常设为 0);
- 迭代更新:对于 k=0,1,2,…k = 0, 1, 2, \ldotsk=0,1,2,…,对每一个状态 s∈Ss \in \mathcal{S}s∈S,执行如下贝尔曼更新:Vk+1(s)←∑a∈Aπ(a∣s)(R(s,a)+γ∑s′∈SP(s′∣s,a)Vk(s′))V_{k+1}(s) \leftarrow \sum_{a \in \mathcal{A}} \pi(a|s) \left( R(s,a) + \gamma \sum_{s' \in \mathcal{S}} P(s'|s,a) V_k(s') \right)Vk+1(s)←a∈A∑π(a∣s)(R(s,a)+γs′∈S∑P(s′∣s,a)Vk(s′))其中,右侧表达式利用已知的模型 (P,R)(P, R)(P,R) 和当前策略 π\piπ,对状态 sss 进行一步展开:它计算的是——从状态 sss 出发,依据策略 π\piπ 选择动作,所能获得的期望即时奖励,加上所有可能后继状态 s′s's′ 的折扣旧价值的加权平均。这一结果即作为状态 sss 的新价值估计 Vk+1(s)V_{k+1}(s)Vk+1(s)。
- 终止条件:当连续两次迭代之间的最大变化小于预设阈值 θ>0\theta > 0θ>0 时停止,即:maxs∈S∣Vk+1(s)−Vk(s)∣<θ\max_{s \in \mathcal{S}} |V_{k+1}(s) - V_k(s)| < \thetas∈Smax∣Vk+1(s)−Vk(s)∣<θ
在数学上,上述更新规则定义了一个映射 Tπ\mathcal{T}^\piTπ,称为贝尔曼期望算子:(TπV)(s)=∑a∈Aπ(a∣s)(R(s,a)+γ∑s′∈SP(s′∣s,a)V(s′))(\mathcal{T}^\pi V)(s) = \sum_{a \in \mathcal{A}} \pi(a|s) \left( R(s,a) + \gamma \sum_{s' \in \mathcal{S}} P(s'|s,a) V(s') \right)(TπV)(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑P(s′∣s,a)V(s′))当 γ<1\gamma < 1γ<1 时,Tπ\mathcal{T}^\piTπ 是一个压缩映射在无穷范数下,即存在 0≤γ<10 \leq \gamma < 10≤γ<1,使得对任意两个价值函数 V,V′V, V'V,V′,有:∥TπV−TπV′∥∞≤γ∥V−V′∥∞\|\mathcal{T}^\pi V - \mathcal{T}^\pi V'\|_\infty \leq \gamma \|V - V'\|_\infty∥TπV−TπV′∥∞≤γ∥V−V′∥∞根据巴拿赫不动点定理,反复应用压缩映射 Tπ\mathcal{T}^\piTπ 必将收敛到唯一的不动点(Fixed Point),即满足 V=TπVV = \mathcal{T}^\pi VV=TπV 的函数。而这一不动点正是策略 π\piπ 的真实价值函数 VπV^\piVπ。
因此,策略评估能够以任意精度逼近 VπV^\piVπ,只要我们有足够的迭代次数。
然而,仅评估一个固定策略并不足以找到最优解。我们需要进一步回答:是否存在一个比当前策略 π\piπ 更好的策略 π′\pi'π′?
策略迭代
通过策略评估,我们已经为当前策略 π\piπ 计算出了其对应的价值函数 VπV^\piVπ。接下来,我们问自己:能否在这个基础上,找到一个更好的策略?
为此,我们在状态 sss 考虑一个单步偏离:假设我们不遵循策略 π\piπ 来选择动作,而是强制执行某个特定的动作 aaa;在这一步之后,我们仍然继续遵循策略 π\piπ。那么,这种“先执行 aaa,之后遵循 π\piπ”的复合行为在状态 sss 所能获得的期望回报是多少?
根据定义,这正是动作价值函数 Qπ(s,a)Q^\pi(s, a)Qπ(s,a):
Qπ(s,a)=R(s,a)+γ∑s′∈SP(s′∣s,a) Vπ(s′)
Q^\pi(s, a) = R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s' \mid s, a)\, V^\pi(s')
Qπ(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)Vπ(s′)
如果对于某个状态 sss,存在一个动作 a′a'a′ 满足:
Qπ(s,a′)>Vπ(s)
Q^\pi(s, a') > V^\pi(s)
Qπ(s,a′)>Vπ(s)
那就意味着:在状态 sss,选择动作 a′a'a′ 比按照策略 π\piπ 行动的平均效果更好。这是一个强烈的改进信号。
这提示我们一种系统性的改进方法:构造一个新策略 π′\pi'π′,让它在每一个状态 sss 都选择能最大化 Qπ(s,a)Q^\pi(s, a)Qπ(s,a) 的那个动作。换句话说,新策略是相对于 QπQ^\piQπ 的贪心策略。直觉上,这样的策略应当优于原策略。
于是,我们可以使用策略迭代来逐步逼近最优解:
- 初始化:任意选择一个初始策略 π0\pi_0π0,并初始化价值函数 V0(s)=0V_0(s) = 0V0(s)=0 对所有 s∈Ss \in \mathcal{S}s∈S;
- 迭代循环:对于 k=0,1,2,…k = 0, 1, 2, \ldotsk=0,1,2,…,重复以下两步:
- 策略评估:给定当前策略 πk\pi_kπk,计算其价值函数 VπkV^{\pi_k}Vπk。即,求解满足贝尔曼期望方程的函数:Vπk(s)=∑a∈Aπk(a∣s)(R(s,a)+γ∑s′∈SP(s′∣s,a) Vπk(s′))V^{\pi_k}(s) = \sum_{a \in \mathcal{A}} \pi_k(a \mid s) \left( R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s' \mid s, a)\, V^{\pi_k}(s') \right)Vπk(s)=a∈A∑πk(a∣s)(R(s,a)+γs′∈S∑P(s′∣s,a)Vπk(s′))
- 策略改进:基于 VπkV^{\pi_k}Vπk,构造新的确定性策略 πk+1\pi_{k+1}πk+1。对每个状态 s∈Ss \in \mathcal{S}s∈S,令:πk+1(s)≔argmaxa∈A(R(s,a)+γ∑s′∈SP(s′∣s,a) Vπk(s′))\pi_{k+1}(s) \coloneqq \arg\max_{a \in \mathcal{A}} \left( R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s' \mid s, a)\, V^{\pi_k}(s') \right)πk+1(s):=arga∈Amax(R(s,a)+γs′∈S∑P(s′∣s,a)Vπk(s′))
- 终止条件:如果 πk+1=πk\pi_{k+1} = \pi_kπk+1=πk,则算法收敛。此时该策略不再变化,说明已无法进一步改进,因而就是最优策略 π∗\pi_*π∗,其对应的 VπkV^{\pi_k}Vπk 即为最优价值函数 V∗V_*V∗。
这一过程的收敛性由策略改进定理保证。考虑任意状态 sss,我们有:
Vπ(s)=∑aπ(a∣s)Qπ(s,a)≤maxaQπ(s,a)=Qπ(s,π′(s))=R(s,π′(s))+γ∑s′P(s′∣s,π′(s)) Vπ(s′)≤R(s,π′(s))+γ∑s′P(s′∣s,π′(s)) maxa′Qπ(s′,a′)=R(s,π′(s))+γ∑s′P(s′∣s,π′(s)) Vπ′(s′)=Vπ′(s)
\begin{aligned}
V^{\pi}(s) &= \sum_{a} \pi(a|s) Q^{\pi}(s,a) \leq \max_{a} Q^{\pi}(s,a) = Q^{\pi}(s, \pi'(s)) \\
&= R(s, \pi'(s)) + \gamma \sum_{s'} P(s'|s, \pi'(s))\, V^{\pi}(s') \\
&\leq R(s, \pi'(s)) + \gamma \sum_{s'} P(s'|s, \pi'(s))\, \max_{a'} Q^{\pi}(s',a') \\
&= R(s, \pi'(s)) + \gamma \sum_{s'} P(s'|s, \pi'(s))\, V^{\pi'}(s') \\
&= V^{\pi'}(s)
\end{aligned}
Vπ(s)=a∑π(a∣s)Qπ(s,a)≤amaxQπ(s,a)=Qπ(s,π′(s))=R(s,π′(s))+γs′∑P(s′∣s,π′(s))Vπ(s′)≤R(s,π′(s))+γs′∑P(s′∣s,π′(s))a′maxQπ(s′,a′)=R(s,π′(s))+γs′∑P(s′∣s,π′(s))Vπ′(s′)=Vπ′(s)
价值迭代
这个过程虽然可靠,但我们仔细思考:我们的最终目标是找到最优价值函数 V∗V_*V∗,而不是去精确评估每一个中间策略。
而我们知道,V∗V_*V∗ 必须满足贝尔曼最优方程:
V∗(s)=maxa∈A(R(s,a)+γ∑s′∈SP(s′∣s,a) V∗(s′))
V_*(s) = \max_{a \in \mathcal{A}} \left( R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s' \mid s, a)\, V_*(s') \right)
V∗(s)=a∈Amax(R(s,a)+γs′∈S∑P(s′∣s,a)V∗(s′))
既然如此,为何不直接迭代这个方程呢?
于是我们提出一种更简洁的方法:从任意初始价值函数 V0(s)V_0(s)V0(s) 开始(通常设为 0),反复应用贝尔曼最优算子:
Vk+1(s)←maxa∈A(R(s,a)+γ∑s′∈SP(s′∣s,a) Vk(s′))
V_{k+1}(s) \leftarrow \max_{a \in \mathcal{A}} \left( R(s, a) + \gamma \sum_{s' \in \mathcal{S}} P(s' \mid s, a)\, V_k(s') \right)
Vk+1(s)←a∈Amax(R(s,a)+γs′∈S∑P(s′∣s,a)Vk(s′))
直到价值变化小于阈值 θ\thetaθ。此时的 VkV_kVk 已足够接近 V∗V_*V∗。最终的最优策略可通过最后一次贪心选择得到。
这种方法称为价值迭代。
- 策略迭代是在策略空间中进行搜索。它每一步都明确维护一个策略 πk\pi_kπk,并通过完整的策略评估(可能需多轮迭代)来计算其价值,然后跳转到一个更优的策略 πk+1\pi_{k+1}πk+1。它的每一轮“大循环”都包含一个“内循环”(策略评估),计算成本较高,但通常收敛所需的外部迭代次数较少。
- 价值迭代则是在价值空间中直接搜索 V∗V_*V∗。它不维护显式的策略。相反,它相信只要价值函数逐渐逼近最优,最优策略自然蕴含其中。它的每一次更新都非常简单,实际上就是将策略评估中的“取期望”替换为“取最大值”。
可以看出,价值迭代正是策略迭代中策略评估仅执行一次的特例:它每轮只做一步更新,就立即进行贪心改进,从而跳过了完整的评估过程。
两种方法都能在已知模型的前提下收敛到最优策略。选择哪一种,取决于对计算效率、实现复杂度和收敛速度的具体权衡。
16.3.3 免模型学习
我们已经离开了拥有完美模型 (P,R)(P, R)(P,R) 的理想世界。在现实场景中,智能体对环境的状态转移概率和奖励函数一无所知,无法再依赖动态规划中的一步推演 ∑s′P(s′∣s,a)…\sum_{s'} P(s'|s,a) \ldots∑s′P(s′∣s,a)… 来精确计算状态价值。此时,智能体唯一可用的知识来源,是它在与环境交互过程中所经历的完整经验——即从起始到终止的一系列状态、动作和奖励所构成的样本轨迹:
(S0,A0,R1,S1,A1,R2,…,ST−1,AT−1,RT)
(S_0, A_0, R_1, S_1, A_1, R_2, \ldots, S_{T-1}, A_{T-1}, R_T)
(S0,A0,R1,S1,A1,R2,…,ST−1,AT−1,RT)
尽管失去了模型,我们的目标仍然是策略评估:对于一个给定的策略 π\piπ,我们希望估计其对应的价值函数 Vπ(s)V^\pi(s)Vπ(s)。然而,这一次我们不再能通过解析方式求解,只能依赖这些带有随机性的实际经历。
如何从这些有限的、具体的“故事”中提炼出每个状态的普遍价值?我们必须回到价值函数的本质定义:
Vπ(s)=Eπ[Gt∣St=s]
V^\pi(s) = \mathbb{E}_\pi[G_t | S_t = s]
Vπ(s)=Eπ[Gt∣St=s]
该式表明,状态 sss 的价值是在策略 π\piπ 下、从该状态出发所能获得的期望回报。当期望难以解析计算时,最基础的统计学方法便是采样估计。正如我们无法预知一个不规则骰子的期望点数时,唯一可行的方法就是多次投掷并取平均。
这正是蒙特卡洛 (Monte-Carlo, MC) 方法的核心思想。它不尝试建模环境或推导解析解,而是通过生成大量遵循策略 π\piπ 的完整回合,观察每个状态后实际获得的回报,并以这些回报的算术平均作为价值的估计。
蒙特卡洛预测算法
为了实现这一目标,算法需要累积多个回合的经验。对每一个在回合中出现的状态 sss,我们记录所有后续回报 GtG_tGt 的观测值,并不断更新其平均值。
具体而言,存在两种主要变体:
- 首次访问蒙特卡洛 (First-Visit MC):在一个回合中,仅当某个状态 sss 首次被访问时,才将其对应的回报 GtG_tGt 加入统计。
- 每次访问蒙特卡洛 (Every-Visit MC):无论该状态在回合中被访问多少次,每次均使用当时的 GtG_tGt 更新估计。
下面以首次访问 MC 为例详述算法流程:
初始化
对所有状态 s∈Ss \in \mathcal{S}s∈S: - V(s)←V(s) \leftarrowV(s)← 任意初值
- Returns(s)←\text{Returns}(s) \leftarrowReturns(s)← 空列表
循环执行以下步骤,直至收敛
- 生成完整回合:按照策略 π\piπ 与环境交互,得到一条完整轨迹 S0,A0,R1,…,ST−1,AT−1,RTS_0, A_0, R_1, \ldots, S_{T-1}, A_{T-1}, R_TS0,A0,R1,…,ST−1,AT−1,RT。
- 回溯计算回报:从最后一步 t=T−1t = T-1t=T−1 倒推至起始步 t=0t = 0t=0:
- 初始化 GT=0G_T = 0GT=0
- 递归计算 Gt=Rt+1+γGt+1G_t = R_{t+1} + \gamma G_{t+1}Gt=Rt+1+γGt+1
- 若状态 StS_tSt 在此前的时间步 0,1,…,t−10,1,\ldots,t-10,1,…,t−1 中未出现,则将 GtG_tGt 添加至 Returns(St)\text{Returns}(S_t)Returns(St),并令
V(St)←1∣Returns(St)∣∑Returns(St) V(S_t) \leftarrow \frac{1}{|\text{Returns}(S_t)|} \sum \text{Returns}(S_t) V(St)←∣Returns(St)∣1∑Returns(St)
为提升效率,可采用之前提过的增量形式替代存储全部回报。设 N(St)N(S_t)N(St) 表示状态 StS_tSt 已被首次访问的次数,则每次更新可表示为:
V(St)←V(St)+1N(St)[Gt−V(St)]
V(S_t) \leftarrow V(S_t) + \frac{1}{N(S_t)} \left[ G_t - V(S_t) \right]
V(St)←V(St)+N(St)1[Gt−V(St)]
蒙特卡洛方法具有以下显著特点:
- 无偏性:由于每个 GtG_tGt 是从真实策略 π\piπ 下采样得到的回报,其期望恰好等于 Vπ(s)V^\pi(s)Vπ(s),因此样本均值会以概率 1 收敛到真实价值。这是其理论上的核心优势。
- 高方差:单个回报 GtG_tGt 受环境与策略随机性影响极大,可能严重偏离期望值,导致学习过程波动剧烈。
- 必须为回合制任务:算法要求每个轨迹必须完整终止,才能计算出最终回报 GtG_tGt。对于无终止的持续性任务,此方法不可直接应用;而对于长回合任务,学习速度极为缓慢。
同策略与异策略学习
观察上述算法的关键步骤:“使用策略 π\piπ 生成一个完整回合”。这意味着,我们用于学习的数据,正是由待评估的策略所产生的。这种设定引出了强化学习中的一个重要区分:
同策略学习
定义:行为策略(即用于生成经验的策略)与目标策略(即被学习或评估的策略)为同一策略。
蒙特卡洛预测算法即为典型的同策略方法。它评估策略 π\piπ 时,必须由该策略本身与环境交互以收集数据。这保证了数据分布的一致性,但也限制了灵活性——若想改进策略,就必须不断生成新的数据。
异策略学习
定义:行为策略 μ\muμ 与目标策略 π\piπ 不同。
这一模式极具实用价值。设想我们拥有一批专家演示数据,这些数据由行为策略 μ\muμ 生成。我们能否利用这些历史经验,去评估甚至优化一个完全不同的目标策略 π\piπ?答案是可以,前提是解决分布差异问题。
实现异策略估计的关键技术是重要性采样。其基本思路是,对从 μ\muμ 生成的回报 GtG_tGt 施加一个权重,以纠正因策略不同而导致的动作轨迹概率偏差。该权重定义为两个策略下产生从时间 ttt 到 T−1T-1T−1 动作序列的概率比:
ρt:T−1=∏k=tT−1π(Ak∣Sk)μ(Ak∣Sk)
\rho_{t:T-1} = \prod_{k=t}^{T-1} \frac{\pi(A_k|S_k)}{\mu(A_k|S_k)}
ρt:T−1=k=t∏T−1μ(Ak∣Sk)π(Ak∣Sk)
在估计中,原本的回报 GtG_tGt 被替换为加权后的 ρt:T−1Gt\rho_{t:T-1} G_tρt:T−1Gt,更新规则变为:
V(St)←V(St)+α[ρt:T−1Gt−V(St)]
V(S_t) \leftarrow V(S_t) + \alpha \left[ \rho_{t:T-1} G_t - V(S_t) \right]
V(St)←V(St)+α[ρt:T−1Gt−V(St)]
然而,这一方法存在严重挑战:当回合较长或 π\piπ 与 μ\muμ 差异较大时,权重 ρt:T−1\rho_{t:T-1}ρt:T−1 的方差可能急剧增大,导致估计极不稳定,甚至发散。因此,尽管异策略提高了数据利用率,也带来了更高的技术复杂性。
我们已经考察了两种价值学习的极端范式。动态规划 依赖于对环境的完整模型 P(s′∣s,a)P(s'|s,a)P(s′∣s,a) 和 R(s,a)R(s,a)R(s,a),能够通过贝尔曼方程进行一步向前的精确推演。它实现了单步更新,极具效率,但前提是“上帝视角”的存在,这在大多数现实问题中不可得。
另一端是蒙特卡洛 方法,它完全摆脱了模型依赖,仅从与环境交互所获得的完整经验轨迹中学习。然而,它的更新必须等待一个回合彻底结束,才能计算出完整的回报 GtG_tGt。这种“终局总结”式的机制不仅学习缓慢,且对无限持续任务完全失效。
这两种方法之间存在明显的理论断层:是否存在一种学习机制,既能像 MC 一样免模型,直接从实际经验中学习,又能像 DP 一样实现单步更新,在每一步交互后立即改进价值估计?
这正是时序差分 (Temporal Difference, TD) 学习所回答的问题。TD 方法的关键创新在于,它不需要完整回报,也不需要真实模型,而是利用下一个时间步的部分观测信息,构造一个近似的更新目标。
TD学习
TD 学习的精髓在于用一个估计值去更新另一个估计值,这一过程被称为引导 (Bootstrapping)。
设想一个预测任务:预测周六的最高气温。
- 若采用 MC 方法,预测者必须等到周六结束,才能根据实际温度修正周一的预测。
- 而 TD 方法允许预测者在周二就进行修正:即使尚未到达周六,只要周二的新观测和基于此的更新预测(如“当前气温+未来趋势”)比原始预测更优,便可用它来调整先前的估计。
在强化学习中,这种思想体现为:我们不再等待最终回报 GtG_tGt,而是利用即时奖励与对下一状态价值的当前估计来构建预测目标。
时序差分预测:TD(0)
考虑策略评估任务:在给定策略 π\piπ 下估计状态价值函数 Vπ(s)V^\pi(s)Vπ(s)。
在时间步 ttt,我们观察到转移 (St,At,Rt+1,St+1)(S_t, A_t, R_{t+1}, S_{t+1})(St,At,Rt+1,St+1)。此时,我们已有对 V(St+1)V(S_{t+1})V(St+1) 的当前估计。TD 方法利用这一估计,构造一个比 MC 更早可用的更新目标。
我们定义 TD 目标 (TD Target) 为:
Rt+1+γV(St+1)
R_{t+1} + \gamma V(S_{t+1})
Rt+1+γV(St+1)
该目标反映了从 StS_tSt 出发、执行一步后所能预期的总回报。它与当前对 V(St)V(S_t)V(St) 的估计之间的差异,即为TD误差 (TD Error):
δt≔Rt+1+γV(St+1)−V(St)
\delta_t \coloneqq R_{t+1} + \gamma V(S_{t+1}) - V(S_t)
δt:=Rt+1+γV(St+1)−V(St)
最基础的 TD 预测算法 TD(0) 使用该误差进行价值函数更新:
V(St)←V(St)+α[Rt+1+γV(St+1)−V(St)]
V(S_t) \leftarrow V(S_t) + \alpha \left[ R_{t+1} + \gamma V(S_{t+1}) - V(S_t) \right]
V(St)←V(St)+α[Rt+1+γV(St+1)−V(St)]
其中 α∈(0,1]\alpha \in (0,1]α∈(0,1] 为学习率。
与 MC 相比,TD(0) 无需等待回合结束;与 DP 相比,它不依赖模型 P(s′∣s,a)P(s'|s,a)P(s′∣s,a),而是直接使用实际观测到的 St+1S_{t+1}St+1 和 Rt+1R_{t+1}Rt+1。因此,TD(0) 成功融合了二者的优势:免模型性与单步更新能力。
从预测到控制:广义策略迭代 (GPI) 框架
策略评估并非终点,我们的目标是最优控制——找到最优策略 π∗\pi_*π∗。在免模型设定下,仅估计状态价值函数 V(s)V(s)V(s) 不足以确定最优动作,因为无法通过 argmaxa∑s′P(s′∣s,a)[R(s,a)+γV(s′)]\arg\max_a \sum_{s'} P(s'|s,a)[R(s,a) + \gamma V(s')]argmaxa∑s′P(s′∣s,a)[R(s,a)+γV(s′)] 进行策略改进(缺少转移概率 PPP)。
因此,我们必须转向动作价值函数 Q(s,a)Q(s,a)Q(s,a) 的学习。最优策略可直接从中导出:π∗(s)=argmaxaQ∗(s,a)\pi_*(s) = \arg\max_a Q_*(s,a)π∗(s)=argmaxaQ∗(s,a)。
这一过程遵循广义策略迭代 (Generalized Policy Iteration, GPI) 的通用框架,其包含两个交错进行的环节:
- 价值评估:基于当前策略与环境交互的经验,逐步更新 Q(s,a)Q(s,a)Q(s,a) 的估计。
- 策略改进:基于当前的 QQQ 值,通过贪心或其他规则生成更优策略。
在 TD 控制算法中,这两个过程在每一步交互中以微小形式持续发生:一次 QQQ 值的更新是评估的体现,而更新后的 QQQ 值立即影响后续动作选择,构成了策略的渐进改进。
TD控制算法的两种路径:SARSA 与 Q-Learning
在状态 StS_tSt 选择动作 AtA_tAt,获得奖励 Rt+1R_{t+1}Rt+1 和新状态 St+1S_{t+1}St+1 后,智能体需进一步选择动作 At+1A_{t+1}At+1 以构造 TD 目标。如何利用 At+1A_{t+1}At+1,决定了算法属于同策略还是异策略。
SARSA:同策略的在线学习
SARSA 学习的是当前行为策略 π\piπ 所对应的动作价值 Qπ(s,a)Q^\pi(s,a)Qπ(s,a)。该策略通常为 ϵ\epsilonϵ-贪心策略,以确保足够的探索。
其更新规则依赖于实际执行的下一个动作 At+1A_{t+1}At+1:
Q(St,At)←Q(St,At)+α[Rt+1+γQ(St+1,At+1)−Q(St,At)]
Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha \left[ R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t) \right]
Q(St,At)←Q(St,At)+α[Rt+1+γQ(St+1,At+1)−Q(St,At)]
更新所用的信息序列 (St,At,Rt+1,St+1,At+1)(S_t, A_t, R_{t+1}, S_{t+1}, A_{t+1})(St,At,Rt+1,St+1,At+1) 构成了算法名称 SARSA 的来源。
由于行为策略(生成数据的策略)与目标策略(被评估的策略)一致,SARSA 是典型的同策略 方法。策略的改进是平滑且持续的:每当 Q(s,a)Q(s,a)Q(s,a) 被更新,ϵ\epsilonϵ-贪心策略中各动作的选择概率也随之动态变化。
Q-Learning:异策略的最优逼近
Q-Learning 的目标更为根本:它旨在直接学习最优动作价值函数 Q∗(s,a)Q_*(s,a)Q∗(s,a),而不受限于行为策略的形式。
其更新规则不关心智能体实际将采取什么动作,而是假设在 St+1S_{t+1}St+1 将采取理论上最优的动作,即最大化 QQQ 值的动作:
Q(St,At)←Q(St,At)+α[Rt+1+γmaxa′Q(St+1,a′)−Q(St,At)]
Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha \left[ R_{t+1} + \gamma \max_{a'} Q(S_{t+1}, a') - Q(S_t, A_t) \right]
Q(St,At)←Q(St,At)+α[Rt+1+γa′maxQ(St+1,a′)−Q(St,At)]
这里的 TD 目标为 Rt+1+γmaxa′Q(St+1,a′)R_{t+1} + \gamma \max_{a'} Q(S_{t+1}, a')Rt+1+γmaxa′Q(St+1,a′),它独立于下一步的实际动作。
尽管行为策略(如 ϵ\epsilonϵ-贪心)可能包含随机探索,但 Q-Learning 的学习过程始终朝向固定的最优目标 Q∗Q_*Q∗。因此,它是典型的异策略 方法。策略改进是显式的、后验的:学习完成后,最优策略通过 π∗(s)=argmaxaQ(s,a)\pi_*(s) = \arg\max_a Q(s,a)π∗(s)=argmaxaQ(s,a) 一次性提取。
SARSA 与 Q-Learning 的本质差异
二者的核心区别在于对探索行为的处理方式:
- SARSA 是保守的:它将探索动作的潜在风险纳入价值估计。若某条路径因探索常进入风险区域,则其Q值会被压低,反映的是实际执行策略下的期望回报。
- Q-Learning 是激进的:它始终假设下一步将采取最优动作,因此学习的是脱离当前行为限制的、理论上的最优价值。
我们已构建出免模型控制的核心方法体系:从 TD(0) 预测,到基于 GPI 框架的 SARSA 与 Q-Learning 控制算法。这些方法构成了现代强化学习的基石。
然而,它们共享一个根本假设:状态或状态-动作对的数量是有限且可枚举的,价值函数可以被表示为一张明确定义的表格,每个条目对应一个状态或动作对的价值。
当状态空间急剧膨胀,例如围棋(1017010^{170}10170 种状态)或连续控制问题(如机器人关节角),这种表格型方法 遇到了难以逾越的障碍——维度诅咒。维护一张巨量条目的表既不现实,也丧失了泛化能力。
这就引出了我们下一节的内容值函数近似
16.4 值函数近似
在强化学习中,维度诅咒主要体现在两个方面:内存需求与样本效率的不可扩展性。
内存诅咒:若采用表格形式存储状态-动作对的价值,则所需存储空间为 O(∣S∣⋅∣A∣)O(|\mathcal{S}| \cdot |\mathcal{A}|)O(∣S∣⋅∣A∣)。当状态空间 S\mathcal{S}S 的规模随状态特征数量 nnn 指数增长(例如 ∣S∣∼kn|\mathcal{S}| \sim k^n∣S∣∼kn)时,该内存消耗将迅速超出实际系统的承载能力。
样本诅咒:即使忽略存储限制,准确估计表格中每一个条目仍需与环境进行大量交互。随着状态空间增大,所需的经验样本数量亦呈指数级增长。在实际应用中,智能体在其生命周期内仅能访问全部状态的一个极小子集,绝大多数状态从未被观测到。因此,基于完全枚举的表格方法无法实现高效学习。
表格型方法的本质局限在于其表示能力的缺失。它将每个状态 sss 视为一个独立的、无结构的符号,不考虑不同状态之间的关联。在这种设定下,对某一状态 s1s_1s1 的学习结果,无法对其他相似状态 s2s_2s2 的价值估计提供任何帮助。这种割裂性导致经验无法泛化,从而加剧了样本效率问题。
解决这一困境的关键在于引入泛化能力。我们不能再为每个状态分配一个独立参数。必须放弃表格表示,转而采用一种能够跨状态共享信息的紧凑表示方式。泛化的本质是利用在部分状态中获得的经验,去推断那些未曾经历但语义相近的状态的价值
为此,我们引入一个参数化的函数 v^(s,w)\hat{v}(s, \mathbf{w})v^(s,w) 来近似真实的价值函数 vπ(s)v_\pi(s)vπ(s),其中 w∈Rd\mathbf{w} \in \mathbb{R}^dw∈Rd 是远小于状态总数 ∣S∣|\mathcal{S}|∣S∣ 的参数向量。该函数通过有限的参数捕捉状态之间的结构关系,实现知识迁移与经验复用。
为了学习这个近似函数,我们需要定义一个目标函数,以衡量 v^(s,w)\hat{v}(s, \mathbf{w})v^(s,w) 与 vπ(s)v_\pi(s)vπ(s) 之间的偏差。一个自然的选择是策略 π\piπ 下的均方价值误差:
J(w)=Eπ[(vπ(St)−v^(St,w))2]
J(\mathbf{w}) = \mathbb{E}_{\pi} \left[ (v_\pi(S_t) - \hat{v}(S_t, \mathbf{w}))^2 \right]
J(w)=Eπ[(vπ(St)−v^(St,w))2]
该期望按照策略 π\piπ 所诱导的状态分布取值,意味着我们更关注经常访问状态的估计精度。
至此,原问题转化为一个标准的参数优化问题:寻找最优参数 w∗\mathbf{w}^*w∗ 使得 J(w)J(\mathbf{w})J(w) 最小化。梯度下降法提供了一种系统的求解路径。参数更新遵循负梯度方向:
wt+1=wt−12α∇wJ(wt)
\mathbf{w}_{t+1} = \mathbf{w}_t - \frac{1}{2} \alpha \nabla_{\mathbf{w}} J(\mathbf{w}_t)
wt+1=wt−21α∇wJ(wt)
其中 α>0\alpha > 0α>0 为学习率,常数因子 1/21/21/2 用于简化后续梯度表达式中的系数。
对 J(w)J(\mathbf{w})J(w) 求关于 w\mathbf{w}w 的梯度,得:
∇wJ(w)=2 Eπ[(vπ(St)−v^(St,w))⋅(−∇wv^(St,w))]=−2 Eπ[(vπ(St)−v^(St,w))∇wv^(St,w)]
\nabla_{\mathbf{w}} J(\mathbf{w}) = 2 \, \mathbb{E}_{\pi} \left[ (v_\pi(S_t) - \hat{v}(S_t, \mathbf{w})) \cdot (-\nabla_{\mathbf{w}} \hat{v}(S_t, \mathbf{w})) \right] = -2 \, \mathbb{E}_{\pi} \left[ (v_\pi(S_t) - \hat{v}(S_t, \mathbf{w})) \nabla_{\mathbf{w}} \hat{v}(S_t, \mathbf{w}) \right]
∇wJ(w)=2Eπ[(vπ(St)−v^(St,w))⋅(−∇wv^(St,w))]=−2Eπ[(vπ(St)−v^(St,w))∇wv^(St,w)]
代入更新公式,得到参数调整方向应满足:
Δwt∝Eπ[(vπ(St)−v^(St,wt))∇wv^(St,wt)]
\Delta \mathbf{w}_t \propto \mathbb{E}_{\pi} \left[ (v_\pi(S_t) - \hat{v}(S_t, \mathbf{w}_t)) \nabla_{\mathbf{w}} \hat{v}(S_t, \mathbf{w}_t) \right]
Δwt∝Eπ[(vπ(St)−v^(St,wt))∇wv^(St,wt)]
这一更新形式与监督学习中的随机梯度下降一致,要求已知目标标签 vπ(St)v_\pi(S_t)vπ(St)。然而,在强化学习场景中,真实价值函数 vπ(St)v_\pi(S_t)vπ(St) 是未知的,无法直接计算。
尽管如此,我们已有工具可提供对 vπ(St)v_\pi(S_t)vπ(St) 的无偏或低偏估计。根据之前章节的方法论积累,可使用以下两种代理目标替代真实价值:
- 在蒙特卡洛方法中,使用完整回报 GtG_tGt 作为 vπ(St)v_\pi(S_t)vπ(St) 的无偏估计;
- 在时序差分方法中,使用 TD 目标 Rt+1+γv^(St+1,wt)R_{t+1} + \gamma \hat{v}(S_{t+1}, \mathbf{w}_t)Rt+1+γv^(St+1,wt) 作为有偏但低方差的估计。
将这些可从环境中采样的目标代入上述期望更新式,即可得到可实际执行的参数更新规则。由于这些方法在计算梯度时忽略了目标值本身对参数 wt\mathbf{w}_twt 的依赖(即未考虑 ∇w[Rt+1+γv^(St+1,wt)]\nabla_{\mathbf{w}} [R_{t+1} + \gamma \hat{v}(S_{t+1}, \mathbf{w}_t)]∇w[Rt+1+γv^(St+1,wt)]),因此被称为半梯度方法。虽然这偏离了严格的梯度下降框架,可能导致收敛性受损,但在实践中表现出良好的学习效率和稳定性,成为值函数近似中的主流技术。
16.5 模仿学习
截止目前,所有讨论均基于一个根本前提:环境能够提供明确的奖励信号 RtR_tRt。无论是最大化累积回报 GtG_tGt,还是估计价值函数 V(s)V(s)V(s) 或动作价值函数 Q(s,a)Q(s,a)Q(s,a),奖励始终是驱动学习的唯一依据。智能体的所有决策行为,本质上是对未来奖励的预测与追求。
然而,在实际任务中,设计一个正确且有效的奖励函数往往极为困难,甚至在某些场景下不可行。
- 在自动驾驶中,需同时兼顾行车安全、乘坐舒适性与路径效率。如何将这些多维、有时相互冲突的目标,压缩为一个单一的标量奖励?若过度强调速度这一指标,可能诱导激进驾驶策略,从而牺牲安全性;
- 在机器人操作任务中,如拧开瓶盖,若仅在成功完成时给予正奖励,而在过程中不提供任何反馈,则智能体在绝大多数时间内接收到的奖励为零——这就是典型的稀疏奖励问题。
当奖励函数无法构造或过于稀疏时,传统的强化学习框架将失去学习动力,陷入长期无反馈的探索困境。但值得注意的是,我们常常拥有另一种形式的知识来源:领域专家的演示。专业司机的驾驶轨迹、人类在仿真环境中操控机器人的动作序列,都是蕴含丰富策略信息的数据资源。
这一事实促使我们重新思考学习范式:能否让智能体不依赖显式的奖励信号,而是通过直接模仿专家行为来获取决策能力?模仿学习正是基于这一思想发展而来。
模仿学习的形式化设定如下:
- 不再假设已知环境的奖励函数 R(s,a)R(s, a)R(s,a);
- 仅提供由专家策略 πE\pi_EπE 生成的数据集 D\mathcal{D}D,其形式为状态-动作对的序列:D={(s0,a0),(s1,a1),…,(sN,aN)}\mathcal{D} = \{ (s_0, a_0), (s_1, a_1), \ldots, (s_N, a_N) \}D={(s0,a0),(s1,a1),…,(sN,aN)}其中部分数据可能包含完整的轨迹信息;
- 目标:从数据集 D\mathcal{D}D 中学习一个参数化策略 πθ\pi_\thetaπθ,使其在状态 sss 下采取的动作分布尽可能接近专家策略 πE\pi_EπE 的输出。
这一设定彻底改变了问题的本质:不再是求解贝尔曼最优方程以寻找最大回报策略,而是转化为在观测数据上进行函数逼近的问题。具体而言,状态 sss 作为输入,专家动作 aaa 作为标签,策略的学习过程等价于一个监督学习任务。
这种范式转换带来了显著优势:
- 规避复杂的奖励函数设计:人类的高阶意图(如“安全平稳地变道”)无需被显式编码为奖励项,只需通过示范行为间接表达;
- 提高样本效率:在稀疏奖励任务中,模仿学习可快速获得一个性能良好的初始策略,避免从零开始的盲目探索,显著缩短学习周期。
由此确立了一类新的学习路径:以专家演示替代奖励信号,通过行为模仿实现策略获取。尽管该框架面临泛化能力不足与长期误差累积等挑战,但它为解决复杂现实任务提供了切实可行的入口。
16.5.1 直接模仿学习
在这一范式下,最直接且朴素的方法是将模仿过程视为标准的监督学习问题。这便是直接模仿学习——行为克隆
其核心思想极为简洁:给定当前状态 sss,所学策略 πθ(s)\pi_\theta(s)πθ(s) 应输出与专家动作 aaa 尽可能一致的行为。该方法不考虑动作对未来状态的影响,也不进行任何长期价值评估或序贯决策推理,仅模仿“在此状态下应采取什么动作”。因此,它是一种纯粹的反应式映射。
既属监督学习范畴,则可沿用已有技术框架:对于离散动作空间,可建模为分类问题;对于连续动作空间,可视为回归问题。通过训练神经网络或其他函数逼近器完成拟合后,所得策略即可部署执行,亦可作为后续强化学习的初始化策略。
行为克隆的优势在于其简洁性与易实现性。它将复杂的序贯决策问题简化为静态的输入-输出匹配任务,能够充分利用成熟的深度学习工具与训练流程。在专家数据充足、状态空间有限、任务周期较短的条件下,常能快速获得性能良好的策略。
然而,其根本缺陷亦源于此简化。行为克隆隐含了一个关键假设:策略在部署过程中所访问的状态分布,与训练数据 D\mathcal{D}D 中的状态分布完全一致。但在序贯决策环境中,这一假设通常不成立。
因为智能体的动作决定了下一时刻的状态转移。一旦策略在某一步做出与专家不同的决策,便可能进入专家轨迹中从未出现过的状态区域。在此类未见状态下,模型的预测缺乏训练支持,行为不确定性增大,导致后续动作更可能发生错误,从而引发进一步的状态偏移——误差逐步放大,最终导致策略崩溃。
这一现象被称为复合误差,其本质是训练阶段与部署阶段之间的状态分布偏移。行为克隆本身对这种偏移毫无防御能力,因其训练过程是静态的、非交互式的:它仅拟合固定数据集,不建模环境的动态特性,也不考虑策略自身对状态序列的塑造作用。因此,该方法在长视野任务或状态空间复杂的应用中表现受限,需借助更高级的模仿学习技术加以改进。
16.5.2 逆强化学习
正如之前所指,直接模仿学习的主要问题在于流于表面:学得只是“怎么做”,而不知“为何这么做”。因此,一个更根本的改进思路是尝试去学习行为背后的决策依据。我们相信,专家策略 πE\pi_EπE 之所以优秀,是因为它在某种未知的奖励机制下,最大化了长期累积回报。基于此思想,逆强化学习(Inverse Reinforcement Learning, IRL)旨在通过观察专家的行为轨迹,反推出能够最好解释这些行为的潜在奖励函数 R(s,a)R(s, a)R(s,a)。
我们将IRL形式化为一个优化问题:寻找一个最能合理化专家策略的奖励函数。为使问题可解,引入以下关键假设:
- 假设奖励函数 R(s,a)R(s, a)R(s,a) 是状态-动作特征向量 ϕ(s,a)∈Rk\phi(s, a) \in \mathbb{R}^kϕ(s,a)∈Rk 的线性组合:R(s,a)=wTϕ(s,a)R(s, a) = \mathbf{w}^T \phi(s, a)R(s,a)=wTϕ(s,a)其中 w∈Rk\mathbf{w} \in \mathbb{R}^kw∈Rk 是未知的权重向量。由此,IRL的任务从搜寻任意复杂的奖励函数,简化为求解一个有限维参数向量 w\mathbf{w}w。
- 对于任意策略 π\piπ,其在折扣因子 γ\gammaγ 下的期望累积回报可表示为:Eπ[∑t=0∞γtR(St,At)]=wTEπ[∑t=0∞γtϕ(St,At)]\mathbb{E}_{\pi} \left[ \sum_{t=0}^\infty \gamma^t R(S_t, A_t) \right] = \mathbf{w}^T \mathbb{E}_{\pi} \left[ \sum_{t=0}^\infty \gamma^t \phi(S_t, A_t) \right]Eπ[t=0∑∞γtR(St,At)]=wTEπ[t=0∑∞γtϕ(St,At)]
- 定义策略 π\piπ 的期望累积特征向量为:ϕˉπ≔Eπ[∑t=0∞γtϕ(St,At)]\bar{\phi}^\pi \coloneqq \mathbb{E}_{\pi} \left[ \sum_{t=0}^\infty \gamma^t \phi(S_t, A_t) \right]ϕˉπ:=Eπ[t=0∑∞γtϕ(St,At)]这是一个 kkk 维向量,刻画了策略 π\piπ 在长期运行中对各类环境特征的平均访问强度。于是,策略的期望回报可简洁写作 wTϕˉπ\mathbf{w}^T \bar{\phi}^\piwTϕˉπ。
IRL的核心目标是:找到一个权重向量 w∗\mathbf{w}^*w∗,使得在对应的奖励函数 R(s,a)=(w∗)Tϕ(s,a)R(s,a) = (\mathbf{w}^*)^T \phi(s,a)R(s,a)=(w∗)Tϕ(s,a) 下,专家策略 πE\pi_EπE 是最优的。这意味着其期望回报不低于任何其他策略:(w∗)TϕˉE≥(w∗)Tϕˉπ,∀π(\mathbf{w}^*)^T \bar{\phi}^E \ge (\mathbf{w}^*)^T \bar{\phi}^\pi, \quad \forall \pi(w∗)TϕˉE≥(w∗)Tϕˉπ,∀π其中 ϕˉE\bar{\phi}^EϕˉE 表示专家策略的期望累积特征向量。
为实现这一目标,采用极小极大优化思想:我们希望找到一个 w\mathbf{w}w,使得专家策略与所有其他策略之间的回报差距尽可能大,尤其是对最具竞争力的非专家策略。为此,构造如下优化问题:w∗=argmaxw minπ∈Π wT(ϕˉE−ϕˉπ)s.t. ∣∣w∣∣≤1\mathbf{w}^* = \underset{\mathbf{w}}{\arg\max} \ \min_{\pi \in \Pi} \ \mathbf{w}^T (\bar{\phi}^E - \bar{\phi}^\pi) \quad \text{s.t.} \ ||\mathbf{w}|| \le 1w∗=wargmax π∈Πmin wT(ϕˉE−ϕˉπ)s.t. ∣∣w∣∣≤1该问题试图最大化专家策略相对于最差对手(即回报差距最小者)的优势。约束 ∣∣w∣∣≤1||\mathbf{w}|| \le 1∣∣w∣∣≤1 防止权重无限膨胀,确保解的合理性。
由于策略空间 Π\PiΠ 通常无限且无法穷举,上述问题难以直接求解。因此,采用迭代逼近方法:
-
估计专家特征期望 ϕˉE\bar{\phi}^EϕˉE:
给定专家轨迹数据集 D={τ1,…,τm}D = \{\tau_1, \ldots, \tau_m\}D={τ1,…,τm},计算经验累积特征均值:ϕˉE←1m∑j=1m(∑t=0Tjγtϕ(st(j),at(j)))\bar{\phi}^E \leftarrow \frac{1}{m} \sum_{j=1}^m \left( \sum_{t=0}^{T_j} \gamma^t \phi(s_t^{(j)}, a_t^{(j)}) \right)ϕˉE←m1j=1∑mt=0∑Tjγtϕ(st(j),at(j)) -
初始化学习策略 π\piπ:
随机初始化一个初始策略。 -
迭代优化(for i=1,2,…i=1, 2, \ldotsi=1,2,… 直至收敛):
a. 估计当前策略的特征期望 ϕˉiπ\bar{\phi}^\pi_iϕˉiπ:
通过采样策略 π\piπ 的轨迹(如蒙特卡洛方法),估计其期望累积特征向量:ϕˉiπ←Eπ[∑t=0∞γtϕ(St,At)]\bar{\phi}^\pi_i \leftarrow \mathbb{E}_{\pi} \left[ \sum_{t=0}^\infty \gamma^t \phi(S_t, A_t) \right]ϕˉiπ←Eπ[t=0∑∞γtϕ(St,At)]
b. 更新奖励权重 w∗\mathbf{w}^*w∗:
求解以下二次规划问题,最大化专家与所有已发现次优策略间的最小回报差:w∗=argmaxw minj∈{1,…,i} wT(ϕˉE−ϕˉjπ)s.t. ∣∣w∣∣≤1\mathbf{w}^* = \underset{\mathbf{w}}{\arg\max} \ \min_{j \in \{1,\ldots,i\}} \ \mathbf{w}^T (\bar{\phi}^E - \bar{\phi}^\pi_j) \quad \text{s.t.} \ ||\mathbf{w}|| \le 1w∗=wargmax j∈{1,…,i}min wT(ϕˉE−ϕˉjπ)s.t. ∣∣w∣∣≤1此处将原问题中的 minπ∈Π\min_{\pi \in \Pi}minπ∈Π 替换为在迭代过程中逐步积累的最具挑战性策略集合,实现对外部策略空间的主动探索。
c. 更新策略 π\piπ:
在当前推断的奖励函数 R(s,a)=(w∗)Tϕ(s,a)R(s,a) = (\mathbf{w}^*)^T \phi(s,a)R(s,a)=(w∗)Tϕ(s,a) 下,使用价值迭代或策略迭代求解新的最优策略:π←argmaxπ′ Eπ′[∑t=0∞γt(w∗)Tϕ(St,At)]\pi \leftarrow \underset{\pi'}{\arg\max} \ \mathbb{E}_{\pi'} \left[ \sum_{t=0}^\infty \gamma^t (\mathbf{w}^*)^T \phi(S_t, A_t) \right]π←π′argmax Eπ′[t=0∑∞γt(w∗)Tϕ(St,At)]此步骤生成一个比原策略更能挑战专家表现的候选策略,推动算法迭代前进。 -
输出:最终收敛的奖励函数 R(s,a)=(w∗)Tϕ(s,a)R(s,a) = (\mathbf{w}^*)^T \phi(s,a)R(s,a)=(w∗)Tϕ(s,a),以及在此奖励下得到的最优策略 π\piπ。该策略应与专家行为高度一致,且奖励函数揭示了行为背后的潜在偏好结构。
此方法不仅克服了模仿学习对表层动作的过度依赖,还为可解释性决策建模提供了有力工具。