1. 核心要素与马尔可夫决策过程 (MDP)

强化学习 (Reinforcement Learning, RL) 的问题通常被数学化地建模为马尔可夫决策过程 (Markov Decision Process, MDP)。一个 MDP 由一个五元组 (S,A,P,R,γ) 定义,它描述了智能体与环境交互的完整框架。

1.1. 智能体 (Agent) 与环境 (Environment)

交互循环过程:

  1. 在时间步 t,智能体观察到环境的状态 St=s
  2. 智能体根据其策略 π 选择一个行动 At=a
  3. 环境接收行动 a,发生状态转移,进入新的状态 St+1=s
  4. 环境向智能体反馈一个即时奖励 Rt+1=r
  5. 智能体进入新状态 s,循环继续。
    Wiki/Image/Computer-Science/RL/6.png

1.2. MDP 的核心组成部分

状态 (State, sS)
行动 (Action, aA(s))
环境动态 (Environment Dynamics): 转移与奖励

环境的动态描述了它如何根据智能体的行动而改变,这由状态转移和奖励两部分共同定义。

策略 (Policy, π)
最优策略与最优价值函数
折扣因子 (Discount Factor, γ)

1.3. 马尔可夫性质 (The Markov Property)

马尔可夫性质是 MDP 的基石,也被称为**“无记忆性” (Memoryless Property)**。


2. 交互的实践: 轨迹与任务类型

2.1. 轨迹 (Trajectory) / 经验 (Experience)

轨迹 (也称 Episode, Rollout) 是智能体与环境进行一系列连续交互后产生的序列记录。它是所有学习算法赖以运行的数据基础。

2.2. 任务类型与统一框架

处理目标状态的两种哲学 (Option 1 vs. Option 2)

我们可以通过不同的建模方式来处理任务的“目标”或“终点”。

特征 Option 1: 吸收状态 Option 2: 普通奖励状态
任务类型 分幕式任务 (Episodic) 连续性任务 (Continuing)
目标状态角色 任务的终点 (Terminal State) 任务中的可重复访问的奖励点
能否离开 不能 可以
优化目标 在一幕内最大化累积回报 在无限时间内最大化平均回报率
典型应用 游戏、有明确成败条件的任务 资源管理、过程控制、机器人巡航

2.3. 轨迹在学习中的作用

轨迹是智能体学习的原材料。不同算法利用轨迹的方式不同:

2. 目标:回报与折扣因子

2.1. 回报 (Return, Gt)

回报 (Return, Gt) 是在一个给定的轨迹中,从时间步 t 开始,智能体未来能获得的所有奖励的总和。它衡量了从某个时间点开始,“后续的整个过程”有多好。

回报是根据智能体实际经历过的一条轨迹 τ=(S0,A0,R1,S1,A1,R2,) 来计算的。

具体计算方式取决于任务类型:

示例:使用轨迹计算回报

让我们回到之前的吃豆人游戏轨迹:

τ=(S0,向右,R1=+10,S1,向上,R2=+10,S2,向上,R3=500,S3)

这是一个分幕式任务,在时间步 T=3 结束。我们可以计算这条轨迹中每个时间步的回报:

重要区别:

2.2. 折扣因子 (Discount Factor, γ)

为了统一分幕式和连续性任务,并反映“未来的奖励不如眼前的奖励有价值”这一经济学直觉,我们引入折扣因子 γ[0,1]

示例:计算折扣回报

假设 γ=0.9,我们重新计算吃豆人轨迹的回报:

注意,回报的计算可以写成这种方便的递归形式:Gt=Rt+1+γGt+1

3. 价值函数 (Value Function)

为了评估一个策略的好坏,我们需要知道在某个状态或采取某个行动后,预期能获得多少回报。这就是价值函数的作用。

3.1. 状态价值函数 (State-Value Function, Vπ(s))

3.2. 状态-行动价值函数 (Action-Value Function, Qπ(s,a))

3.3 联系

vπ(s)=aπ(a|s)qπ(s,a)

策略、轨迹与价值函数的关系 (The relationship between Policy, Trajectory and State Value)

3.4. 价值函数的估计:从贝尔曼方程到自举

既然价值函数是回报的期望,我们该如何从智能体的经验(轨迹)中估计它呢?核心在于利用价值函数内在的递归结构,这个结构由贝尔曼方程 (Bellman Equation) 描述。

贝尔曼期望方程 (Bellman Expectation Equation)

我们首先从折扣回报 Gt 的定义出发:

Gt=Rt+1+γRt+2+γ2Rt+3+

通过提取公因子 γ,我们可以发现一个关键的递归关系:

Gt=Rt+1+γ(Rt+2+γRt+3+)=Rt+1+γGt+1

这个简单的关系是所有贝尔曼方程的基石。

现在,我们对这个等式两边取期望,就能得到状态价值函数 Vπ(s) 之间的关系,这便是贝尔曼期望方程

方法一:蒙特卡洛 (MC) - 基于样本回报

MC 方法忽略了贝尔曼方程提供的状态间关系,它直接使用回报 Gt 的定义来估计 Vπ(s)。它通过采样大量完整的 episodes,并对每个状态访问的回报求平均值。

方法二:自举 (Bootstrapping) - 基于贝尔曼方程

Bootstrapping 的意思是“拔靴带”,引申为“自我提升”。在RL中,它指利用贝尔曼方程的结构,使用当前的价值估计来更新价值估计。这是时序差分 (Temporal Difference, TD) 学习方法的核心。

总结:

这种“用估计更新估计”的自举思想是现代强化学习算法(如Q-Learning, SARSA, Actor-Critic)的基石。

对比蒙特卡洛 (MC) 与自举 (TD): 同一公式,两种哲学

我们的目标是估计状态 St 的价值 V(St)。我们知道它的真实定义是 V(St)=E[Gt],并且回报 Gt 满足递归关系:

Gt=Rt+1+γGt+1

假设我们当前处于状态 St,想要更新 V(St)

1. 蒙特卡洛 (MC) 的计算方式:“求到底”

蒙特卡洛方法看到这个递归公式,它的处理方式是彻底展开,直到终点

对于 MC 来说, Gt+1 不是一个可以直接使用的值,它只是一个中间符号。要得到 Gt 的具体数值,必须不断地把递归式展开:

Gt=Rt+1+γGt+1=Rt+1+γ(Rt+2+γGt+2)=Rt+1+γRt+2+γ2Gt+2=Rt+1+γRt+2+γ2(Rt+3+)=Rt+1+γRt+2+γ2Rt+3++γTt1RT

MC 的计算流程:

  1. 等待: 从 St 开始,必须完成整个 episode,收集到未来所有的奖励 Rt+1,Rt+2,,RT
  2. 求和: 将所有收集到的未来奖励进行折扣求和,计算出 Gt具体、完整的样本值
  3. 更新: 使用这个完整的样本值 Gt 作为 V(St) 的学习目标。V(St)V(St)+α((Rt+1+γRt+2+)完整的真实回报 GtV(St))

MC 的哲学: 要想知道 Gt 是多少,就必须老老实实地把未来的每一步都走完,拿到每一个真实的奖励,然后加起来。它是对回报定义的直接采样


2. 时序差分 (TD) / 自举 (Bootstrapping) 的计算方式:“信一步,靠估计”

时序差分 (TD) 方法看到同一个递归公式 Gt=Rt+1+γGt+1,它的处理方式是只走一步,然后用现有的估计值来近似后续部分

对于 TD 来说,它并不关心 Gt+1 的内部结构是什么。它做了一个大胆的假设:

"虽然我不知道 Gt+1 的真实值是多少,但我有一个对它的期望值的估计,那就是我当前的价值函数 V(St+1)。我就用这个估计来代替真实的 Gt+1 吧!"

TD 的计算流程:

  1. 走一步: 从 St 开始,只需要执行一个行动,获得一个立即奖励 Rt+1一个下一个状态 St+1
  2. 查表/估计: 查找或计算出下一个状态的当前价值估计 V(St+1)
  3. 构建目标: 将真实的立即奖励 Rt+1 和对未来的价值估计 V(St+1) 结合起来,构建一个自举的学习目标 (TD Target)。TD Target=Rt+1+γV(St+1)在这里,V(St+1) 被用作对 Gt+1 的一个代理 (proxy)估计 (estimate)
  4. 更新: 使用这个混合了真实与估计的目标来更新 V(St)V(St)V(St)+α((Rt+1+γV(St+1))TD Target, 一个估计的回报V(St))

TD 的哲学: 我不需要知道未来的所有细节。我只需要知道我下一步能得到的真实奖励,以及我相信的、从那以后能得到的总价值。我用我当前的信念 (current belief) 来更新我之前的信念 (previous belief)


总结对比

特征 蒙特卡洛 (MC) 时序差分 (TD) / 自举
Gt=Rt+1+γGt+1 的处理 完全展开,计算 Gt 的真实样本值。 只展开一步,用 V(St+1) 估计 Gt+1
更新目标 (Target) Gt (完整的、实际的回报) Rt+1+γV(St+1) (单步真实奖励 + 未来价值的估计)
何时更新 Episode 结束时 每走一步 (online)
偏差 (Bias) 无偏 (目标是真实回报的无偏样本) 有偏 (目标依赖于一个可能不准的估计 V(St+1))
方差 (Variance) 高方差 (依赖于一整条随机轨迹) 低方差 (只依赖于一步的随机性)

4. 贝尔曼方程 (Bellman Equations)

贝尔曼方程是 RL 中最重要的公式之一,它将一个状态的价值与其后继状态的价值关联起来,提供了迭代求解价值函数的方法。

4.1. 贝尔曼期望方程 (Bellman Expectation Equation)

4.2. 贝尔曼最优方程 (Bellman Optimality Equation)

最优策略 π 对应最优价值函数 VQ

RL 算法的核心任务,就是通过各种方法求解贝尔曼最优方程,找到 Qπ

Wiki/Image/Computer-Science/RL/1.png

How to solve two unknowns from one equation

Wiki/Image/Computer-Science/RL/2.png

4.3 贝尔曼最优方程 (Bellman Optimality Equation, BOE) 与求解

在我们介绍了用于评估一个给定策略的贝尔曼期望方程之后,现在我们来看如何寻找最优策略。这需要用到贝尔曼最优方程 (BOE)

BOE 的核心思想是:最优策略下的价值函数,必须等于在所有可能的单步行动中,选择那个能带来最大期望回报的行动所对应的价值。

4.3.1 BOE 的两种形式:V* 和 Q*

首先,我们将最优价值函数记为 v*,它代表了在所有策略中能达到的最大期望回报。

v(s)=maxπvπ(s)
状态价值函数的最优方程 (BOE for v)*

正如图片第一行所示,v*(s) 必须满足以下条件:

v(s)=maxa(rp(r|s,a)r+γsp(s|s,a)v(s))

这个方程和贝尔曼期望方程非常像,唯一的区别是把期望算子 Σ_a π(a|s) 换成了最大化算子 max_a。它表示最优价值等于选择最优单步行动 a 后能得到的期望回报。

行动价值函数的最优方程 (BOE for q)*

为了更好地理解这个方程,我们引入最优行动价值函数 q*(s, a)

q* 代入 v* 的方程,我们得到一个至关重要的关系:

v(s)=maxaq(s,a)

直观理解:一个状态的最优价值,等于在这个状态下所有可选行动的“最优Q值”中,最大的那一个。

4.3.2 最优策略的真面目:贪心策略

现在,我们来看图片中最关键的推导,它揭示了最优策略 π* 的形式。

我们从 v* 的另一个定义出发:

v(s)=maxπaπ(a|s)q(s,a)

这个式子问的是:“什么样的策略 π 能够最大化 q* 值的加权平均?”

核心洞察 (图片中的推导):

这个推导告诉我们一个惊人的事实:

对于任何 MDP,至少存在一个最优策略是确定性的。这个策略就是简单地在每个状态下,选择那个具有最大 q* 值的行动。

最优策略 π* 的形式:

π(a|s)={1if a=argmaxaq(s,a)0otherwise
4.3.3 总结与应用

这个发现是强化学习的基石之一:

  1. 目标简化: 我们寻找最优策略 π* 的问题,被转化为了寻找最优行动价值函数 q* 的问题。
  2. 决策简化: 一旦我们通过某种方式(例如,价值迭代或 Q-Learning)得到了 q*,那么在任何状态 s 下,最优的决策就是简单地执行 argmax_a q*(s, a),无需再进行复杂的规划。

这解释了为什么 Q-Learning 算法的核心是学习一个 Q-table:因为这个 Q-table(对 q* 的估计)已经隐式地包含了最优策略的所有信息。

Wiki/Image/Computer-Science/RL/3.png

4.4 求解贝尔曼方程:压缩映射理论

我们已经知道,最优价值函数 v* 必须满足贝尔曼最优方程 (BOE)。但这个方程形式复杂,我们如何能确定它有解?解是否唯一?又该如何找到这个解?

要回答这些问题,我们需要借助强大的数学工具。这张图片中介绍的两个概念正是解答这一切的钥匙。

4.4.1 核心数学概念详解
不动点 (Fixed Point)
压缩映射 (Contraction Mapping)
4.4.2 巴拿赫不动点定理 (Banach Fixed-Point Theorem)

这个定理是连接以上两个概念的桥梁,它给出了一个惊人的结论:

在一个完备的度量空间中,任何一个压缩映射都拥有一个且仅有一个唯一的不动点

此外,从空间中的任意一个初始点 x₀ 出发,通过反复迭代 x_{k+1} = f(x_k),所得到的序列必然会收敛到这个唯一的不动点,且为指数级别的收敛速度。

4.4.3 理论与强化学习的完美结合

现在,我们可以将所有碎片拼凑起来了。核心结论是:

可以证明,贝尔曼最优算子 T 正是一个以折扣因子 γ 为压缩因子的压缩映射。

T(v1)T(v2)γv1v2

基于这个事实和巴拿赫不动点定理,我们得到了关于强化学习的三个根本性保证:

  1. 解的存在且唯一 (Existence and Uniqueness)
    因为 T 是一个压缩映射,所以它必然存在一个唯一的不动点。这意味着最优价值函数 v* 不仅存在,而且是唯一的。我们寻找的目标是明确且唯一的。

  2. 价值迭代算法的收敛性保证 (Convergence Guarantee)
    定理保证了从任意点开始的迭代序列 v_{k+1} = T(v_k) 必将收敛到不动点 v*。而这正是价值迭代 (Value Iteration) 算法的数学形式!这从理论上证明了,只要我们不断地用贝尔曼最优方程去更新价值函数,最终一定能得到正确的最优价值函数。

  3. 对初始值的无关性 (Independence of Initialization)
    我们可以从任意一个初始价值函数 v₀(比如,一个全零的向量)开始迭代,最终都会收敛到同一个 v*。这使得算法的实现非常鲁棒。

总结:压缩映射理论为强化学习提供了一块坚实的数学基石。它告诉我们,v* 的求解问题是良定 (well-posed) 的,并且像价值迭代这样的朴素算法是保证有效的。折扣因子 γ 在这里扮演了至关重要的数学角色——正是它确保了贝尔曼算子的压缩性质,从而保证了整个理论框架的成立。

Wiki/Image/Computer-Science/RL/4.png

好的,这是一个非常重要且具有深刻实践意义的定理,它被称为**“奖励整形 (Reward Shaping)”** 的理论基础之一。这个定理告诉我们,在什么情况下改变奖励函数不会改变最终的最优策略。

我会将它作为 4.4 节加入到贝尔曼最优方程的讨论之后,因为它正是建立在 BOE 的基础上的。


4.5 定理:最优策略的仿射变换不变性 (Optimal Policy Invariance)

我们已经知道,奖励函数 R 是我们与智能体沟通目标的接口。一个自然的问题是:如果我们改变了奖励函数,最优策略会如何变化?这个定理给出了一个强有力的答案。

定理 (最优策略不变性)

如果我们将环境中的每一个奖励 r 都进行一次仿射变换 (Affine Transformation),从 r 变为 a*r + b(其中 a 是一个正数常量,b 是任意实数常量),那么:

  1. 新的最优价值函数 v' 是原最优价值函数 v* 的一个线性变换。
  2. 最优策略 π* 保持完全不变
数学表述
直观理解与为什么成立

为什么会这样?关键在于最优策略只关心不同行动之间的“相对好坏”,而不关心它们的“绝对价值”

最优策略 π*(s) 是通过 argmax_a q*(s, a) 来决定的。我们来看看 q*(s, a) 在奖励变换后会发生什么变化。

我们可以看到,新的 Q 函数 q' 也是旧 Q 函数 q* 的一个线性变换:q'(s, a) = a * q*(s, a) + C,其中 C 是一个不依赖于行动 a 的常量。

关键洞察:
对一个函数的所有值都乘以一个正常数 a 并加上一个常量 C,并不会改变哪个输入能让函数取得最大值

argmaxaq(s,a)=argmaxa(aq(s,a)+C)

由于 argmax 不变,所以从 q* 推导出的最优策略 π* 也就保持不变。

实践意义 (奖励整形 Reward Shaping)

这个定理在实践中非常有用:

  1. 奖励归一化: 我们可以放心地将奖励缩放(例如,归一化到 [-1, 1] 区间),这有助于稳定神经网络的训练,而不用担心会改变问题的本质。
  2. 避免稀疏奖励: 在很多问题中,奖励非常稀疏(大部分时间奖励为0)。我们可以给每一步都加上一个小的负奖励 b < 0(例如 -0.01),来鼓励智能体尽快找到目标,而不会改变找到目标的最优路径。这个 -0.01 就是常数 b
  3. 理论指导: 它为我们设计和修改奖励函数提供了理论指导,让我们知道什么样的修改是“安全”的(不改变最优策略),什么样的修改会从根本上改变问题。

5. 求解贝尔曼最优方程:动态规划

我们已经有了贝尔曼最优方程,并且有理论保证它存在唯一解。那么,如何具体地求解它呢?当环境模型(即状态转移概率 P 和奖励函数 R)已知时,我们可以使用动态规划 (Dynamic Programming, DP) 的方法来精确求解。价值迭代和策略迭代是两种最核心的 DP 算法。

5.1 价值迭代 (Value Iteration, VI)

价值迭代算法的核心思想,正是我们之前讨论的巴拿赫不动点定理的直接应用。不动点定理告诉我们,只要反复应用一个压缩映射,无论从哪里开始,最终都会收敛到那个唯一的固定点。

核心思想
价值迭代通过反复迭代贝尔曼最优方程,将当前的价值函数 v_k “更新”成一个更好的价值函数 v_{k+1},直到这个过程收敛。收敛时,我们就得到了最优价值函数 v*

算法流程:

  1. 初始化: 任意初始化一个价值函数向量 v₀ (通常是全零向量)。

  2. 迭代循环: 对于 k = 0, 1, 2, ...,重复以下步骤:

    • 对于每一个状态 s ∈ S,根据贝尔曼最优方程进行更新:vk+1(s)maxa(R(s,a)+γsP(s|s,a)vk(s))
      • 关键点: 注意我们是用k 次的价值函数 v_k 来计算k+1 次的价值函数 v_{k+1}。这正是在反复应用贝尔曼最优算子 Tv_{k+1} = T(v_k)
  3. 终止条件: 当价值函数的改变量足够小时,即 max_s |v_{k+1}(s) - v_k(s)| < ε(其中 ε 是一个很小的正数),则停止迭代。此时,我们认为 v_{k+1} ≈ v*

  4. 提取最优策略: 当价值函数收敛到 v* 后,我们可以通过一次“向前看”来提取出最优策略 π*

    π(s)=argmaxa(R(s,a)+γsP(s|s,a)v(s))

5.2 策略迭代 (Policy Iteration, PI)

策略迭代提供了另一种求解思路。它不像价值迭代那样直接在价值空间中寻找最优解,而是在策略空间中进行搜索。它由两个交替进行的步骤组成:策略评估策略提升

核心思想
从一个任意的策略开始,不断地“评估这个策略有多好”,然后“根据评估结果找到一个更好的策略”,如此循环往复,直到策略不再变化,此时就找到了最优策略。

算法流程:

  1. 初始化: 任意初始化一个策略 π₀

  2. 迭代循环: 对于 k = 0, 1, 2, ...,重复以下步骤:

    • a) 策略评估 (Policy Evaluation):

      • 目标: 计算当前策略 π_k 的真实价值函数 v_{π_k}
      • 方法: 求解该策略下的贝尔曼期望方程vπk(s)=R(s,πk(s))+γsP(s|s,πk(s))vπk(s)这通常通过迭代的方式求解,直到 v 收敛(这本身就是一个小的价值迭代过程),或者通过矩阵求逆 v_{π_k} = (I - γP_{π_k})⁻¹ r_{π_k} 直接计算。
    • b) 策略提升 (Policy Improvement):

      • 目标: 基于刚刚计算出的价值函数 v_{π_k},找到一个比 π_k 更好(或一样好)的新策略 π_{k+1}
      • 方法: 对每一个状态 s,我们贪心地选择能够最大化期望回报的行动:πk+1(s)argmaxa(R(s,a)+γsP(s|s,a)vπk(s))
  3. 终止条件: 如果新策略与旧策略完全相同(π_{k+1} = π_k),那么算法收敛,此时的策略就是最优策略 π*,其对应的价值函数就是 v*

5.3 价值迭代 vs. 策略迭代

特征 价值迭代 (Value Iteration) 策略迭代 (Policy Iteration)
迭代对象 价值函数 v 策略 π
核心操作 反复应用贝尔曼最优算子 交替进行策略评估和策略提升
每次迭代 完整地遍历一次所有状态,进行一次max更新 包括一个可能需要多次迭代的策略评估步骤,和一个策略提升步骤
计算复杂度 每次迭代计算量固定且较小 每次迭代计算量大(尤其评估步骤),但通常收敛所需的总迭代次数更少
收敛性 渐近收敛到 v* 在有限次迭代后精确收敛到 π*

Wiki/Image/Computer-Science/RL/5.png

5.4 广义策略迭代 (Generalized Policy Iteration, GPI) 与截断策略迭代

策略迭代和价值迭代看似不同,但它们都遵循一个共同的模式,被称为广义策略迭代 (Generalized Policy Iteration, GPI)。GPI 指的是任何将策略评估 (Policy Evaluation)策略改进 (Policy Improvement) 交织在一起进行的方法。

在这个 GPI 框架下,PI 和 VI 只是两个特例。

截断策略迭代 (Truncated Policy Iteration)

核心思想:我们不必在每次策略评估(PE)步骤中都等到价值函数完全收敛。我们可以只进行固定次数 m 的迭代,然后就进入策略改进(PI)步骤。

这种方法就被称为截断策略迭代 (Truncated Policy Iteration)

算法流程:

  1. 初始化: 从一个任意的策略 π₀ 和价值函数 v₀ 开始。
  2. 循环:
    • a) 截断策略评估 (Truncated PE):
      • 目标: 对当前策略 π_k 进行不完全的评估。
      • 方法: 从 v_k 开始,使用贝尔曼期望方程迭代 m
        v_temp = v_k
        for _ in range(m):
            v_temp = r_{π_k} + γ * P_{π_k} * v_temp
        # 经过 m 次更新后,得到一个对 v_{π_k} 的近似
        v_{k+1} = v_temp
        
    • b) 策略改进 (PI):
      • 目标: 基于这个近似的价值函数 v_{k+1},找到一个贪心的新策略 π_{k+1}
      • 方法:πk+1(s)=argmaxa(R(s,a)+γsP(s|s,a)vk+1(s))
  3. 终止: 直到策略或价值函数收敛。

为什么截断策略迭代是更广义的框架?

截断策略迭代通过调整参数 m(即评估步骤的迭代次数),可以无缝地变为策略迭代或价值迭代。

总结与实践意义


6. RL 算法分类

6.1 Model-Based vs. Model-Free

6.2 Value-Based vs. Policy-Based

6.3 On-Policy vs. Off-Policy

7. 蒙特卡洛(MC)强化学习算法

蒙特卡洛(Monte Carlo, MC)方法是强化学习中一类非常重要的 无模型(Model-Free) 算法。

核心思想:它不依赖于环境模型(即不知道状态转移概率 P 和奖励函数 R),而是通过与环境交互,从完整的有始有终的“回合”(Episode)中学习。智能体必须跑完一整个回合,拿到最终的奖励,然后回头更新这一路上所做的决策的价值。

7.1. 广义策略迭代 (GPI) - 无模型学习的核心框架

在进入具体算法之前,我们需要理解一个统一所有强化学习方法的核心思想——广义策略迭代 (Generalized Policy Iteration, GPI)

GPI 的两个组成部分
  1. 策略评估 (Policy Evaluation):

    • 目标: 估计当前策略 π 的价值函数 (v_πq_π)。
    • 在无模型设定下,我们无法直接计算,只能通过采样(例如,运行很多次游戏,取平均分)来近似估计
  2. 策略改进 (Policy Improvement):

    • 目标: 基于当前的价值估计,通过变得对价值函数更贪心 (greedy) 来找到一个更好的策略 π'
    • 这个过程和之前一样,即 π'(s) = argmax_a q(s,a)
GPI 的工作机制

这两个过程相互竞争又相互协作,最终将策略和价值函数推向最优:

可以想象策略和价值函数在跳一支双人舞,它们不断调整自己以适应对方。只要我们保证两个过程都在不断进行(不要求任何一方必须完全收敛),最终整个系统就会收敛到一个稳定的平衡点。在这个平衡点,价值函数与策略完全一致,同时策略相对于价值函数也是贪心的,此时我们就找到了最优策略 π* 和最优价值函数 v*

GPI 的普适性

GPI 是一个极其通用的框架


7.2 最简单的MC算法:MC Basic (用于策略评估)

这里的 "MC Basic" 通常指的是蒙特卡洛策略评估(MC Policy Evaluation),即在给定一个策略 π 的情况下,计算出这个策略的状态价值函数 V(s)

MC Based


7.3 更高效地利用数据:MC Exploring Starts (用于策略控制)

为了找到最优策略(控制问题),我们需要评估动作价值函数 Q(s, a),而不仅仅是 V(s)。但这里有一个关键问题:如果我们当前的策略从不在某个状态 s 尝试动作 a,我们就永远无法知道 Q(s, a) 的值,也就无法改进策略。

“探索性开端”(Exploring Starts, ES) 就是为了解决这个问题而提出的一种强力假设

The comparison of DP, MC and TD


7.4 移除探索性开端:MC ε-Greedy (更实用的策略控制)

既然“探索性开端”不实用,我们就需要一种新的方法来确保在与环境交互的过程中,智能体能自己进行探索。ε-贪心(Epsilon-Greedy) 策略就是最常用和最简单的方法。

总结与演进关系

  1. MC Basic:只能评估一个给定的策略,无法改进它。
  2. MC Exploring Starts:为了改进策略,引入了“探索性开端”的强假设来保证充分探索,从而能学习最优策略。
  3. MC ε-Greedy:抛弃了不切实际的“探索性开端”假设,通过在策略层面引入随机性(ε-贪心),实现了实用且有效的探索,是真正能在实际问题中应用的MC控制算法。