主题:马尔可夫决策过程、动态规划、无模型值函数估计(蒙特卡洛 / 时序差分)


一、强化学习基础与马尔可夫决策过程

1. 强化学习核心要素

  • 智能体与环境:智能体通过试错交互,在每个时间步观察状态、执行动作、获得奖励,目标是最大化累积折扣奖励。
  • 策略 (Policy) π(a∣s)\pi(a|s)π(as):状态到动作的映射,可以是确定性 a=π(s)a=\pi(s)a=π(s) 或随机性 π(a∣s)=P(At=a∣St=s)\pi(a|s)=P(A_t=a\mid S_t=s)π(as)=P(At=aSt=s)
  • 奖励 (Reward) R(s,a)R(s,a)R(s,a):即时标量信号,定义任务目标。
  • 价值函数 (Value Function):长期累积奖励的期望,评价状态或动作的“好坏”。
    • 状态价值:Vπ(s)=Eπ[∑k=0∞γkRt+k+1∣St=s]V^\pi(s)=\mathbb{E}_\pi\left[\sum_{k=0}^\infty \gamma^k R_{t+k+1}\mid S_t=s\right]Vπ(s)=Eπ[k=0γkRt+k+1St=s]
    • 动作价值:Qπ(s,a)=Eπ[∑k=0∞γkRt+k+1∣St=s,At=a]Q^\pi(s,a)=\mathbb{E}_\pi\left[\sum_{k=0}^\infty \gamma^k R_{t+k+1}\mid S_t=s,A_t=a\right]Qπ(s,a)=Eπ[k=0γkRt+k+1St=s,At=a]
  • 模型 (Model):状态转移概率 Pss′a=P(St+1=s′∣St=s,At=a)P_{ss'}^a = P(S_{t+1}=s'\mid S_t=s,A_t=a)Pssa=P(St+1=sSt=s,At=a) 和奖励函数,用于规划。

2. 马尔可夫决策过程 (MDP)

MDP 形式化描述完全可观测的随机序贯决策问题,满足马尔可夫性:未来只依赖于当前状态和动作。

  • 五元组(S,A,P,R,γ)(S, A, P, R, \gamma)(S,A,P,R,γ)

    • SSS:状态空间(有限或无限)
    • AAA:动作空间
    • Pss′aP_{ss'}^aPssa:状态转移概率
    • R(s,a)R(s,a)R(s,a):期望即时奖励
    • γ∈[0,1]\gamma\in[0,1]γ[0,1]:折扣因子
  • Bellman 期望方程(对于策略 π\piπ):
    Vπ(s)=∑aπ(a∣s)[R(s,a)+γ∑s′Pss′aVπ(s′)] V^\pi(s) = \sum_a \pi(a|s) \left[ R(s,a) + \gamma \sum_{s'} P_{ss'}^a V^\pi(s') \right] Vπ(s)=aπ(as)[R(s,a)+γsPssaVπ(s)]
    Qπ(s,a)=R(s,a)+γ∑s′Pss′a∑a′π(a′∣s′)Qπ(s′,a′) Q^\pi(s,a) = R(s,a) + \gamma \sum_{s'} P_{ss'}^a \sum_{a'} \pi(a'|s') Q^\pi(s',a') Qπ(s,a)=R(s,a)+γsPssaaπ(as)Qπ(s,a)

3. 最优价值函数与 Bellman 最优方程

  • 最优状态价值 V∗(s)=max⁡πVπ(s)V^*(s) = \max_\pi V^\pi(s)V(s)=maxπVπ(s),最优动作价值 Q∗(s,a)=max⁡πQπ(s,a)Q^*(s,a)=\max_\pi Q^\pi(s,a)Q(s,a)=maxπQπ(s,a)
  • Bellman 最优方程
    V∗(s)=max⁡a[R(s,a)+γ∑s′Pss′aV∗(s′)] V^*(s) = \max_a \left[ R(s,a) + \gamma \sum_{s'} P_{ss'}^a V^*(s') \right] V(s)=amax[R(s,a)+γsPssaV(s)]
    Q∗(s,a)=R(s,a)+γ∑s′Pss′amax⁡a′Q∗(s′,a′) Q^*(s,a) = R(s,a) + \gamma \sum_{s'} P_{ss'}^a \max_{a'} Q^*(s',a') Q(s,a)=R(s,a)+γsPssaamaxQ(s,a)
  • 最优策略:π∗(s)=arg⁡max⁡aQ∗(s,a)\pi^*(s) = \arg\max_a Q^*(s,a)π(s)=argmaxaQ(s,a)

二、动态规划:基于模型的值函数求解

当 MDP 模型(PPPRRR)已知时,可以用动态规划求解最优值函数和策略。

1. 策略迭代 (Policy Iteration)

  1. 策略评估:迭代计算当前策略 π\piπ 的价值函数,直到收敛。
    Vk+1(s)=∑aπ(a∣s)[R(s,a)+γ∑s′Pss′aVk(s′)] V_{k+1}(s) = \sum_a \pi(a|s) \left[ R(s,a) + \gamma \sum_{s'} P_{ss'}^a V_k(s') \right] Vk+1(s)=aπ(as)[R(s,a)+γsPssaVk(s)]
  2. 策略改进:贪心更新策略 π′(s)=arg⁡max⁡a∑s′Pss′aV(s′)\pi'(s) = \arg\max_a \sum_{s'} P_{ss'}^a V(s')π(s)=argmaxasPssaV(s)
  3. 重复直到策略不再变化。

特点:收敛快(通常少次迭代),但每次策略评估需要完整求解线性方程组或多次迭代,计算开销较大。

2. 价值迭代 (Value Iteration)

直接使用 Bellman 最优方程进行更新,无需显式维护策略:
Vk+1(s)=max⁡a[R(s,a)+γ∑s′Pss′aVk(s′)] V_{k+1}(s) = \max_a \left[ R(s,a) + \gamma \sum_{s'} P_{ss'}^a V_k(s') \right] Vk+1(s)=amax[R(s,a)+γsPssaVk(s)]
特点:每轮更新同时改进价值与隐含策略,适用于大规模状态空间;收敛至 V∗V^*V

方法 更新方式 优点 缺点
策略迭代 评估+改进交替 迭代次数少 评估步骤计算昂贵
价值迭代 直接最优贝尔曼更新 实现简单,效率高 需足够多轮达到最优

三、无模型值函数估计

当 MDP 模型未知时,只能从经验片段(episodes)中学习。常用方法:蒙特卡洛 (MC) 和时序差分 (TD)。

1. 蒙特卡洛方法 (MC)

核心思想:通过采样完整片段,用实际累积回报 GtG_tGt 的均值估计价值函数。只适用于幕式任务(有终止状态)。

  • 累积回报Gt=Rt+1+γRt+2+⋯+γT−1RTG_t = R_{t+1} + \gamma R_{t+2} + \dots + \gamma^{T-1} R_TGt=Rt+1+γRt+2++γT1RT
  • 更新规则(每次访问):
    V(St)←V(St)+α(Gt−V(St)),或增量平均V(St)←V(St)+1N(St)(Gt−V(St)) V(S_t) \leftarrow V(S_t) + \alpha (G_t - V(S_t)), \quad \text{或增量平均} \quad V(S_t) \leftarrow V(S_t) + \frac{1}{N(S_t)}(G_t - V(S_t)) V(St)V(St)+α(GtV(St)),或增量平均V(St)V(St)+N(St)1(GtV(St))

特点

  • 无偏估计GtG_tGtVπ(s)V^\pi(s)Vπ(s) 的无偏估计。
  • 高方差:依赖于多步随机动作、状态转移和奖励。
  • 限制:必须等片段结束才能更新;不适用于持续任务。

2. 时序差分学习 (TD)

核心思想:结合采样与自举 (bootstrapping),用当前估计的后续状态价值更新当前价值。

  • 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)]
    其中 Rt+1+γV(St+1)R_{t+1} + \gamma V(S_{t+1})Rt+1+γV(St+1) 称为 TD目标δt=Rt+1+γV(St+1)−V(St)\delta_t = R_{t+1} + \gamma V(S_{t+1}) - V(S_t)δt=Rt+1+γV(St+1)V(St)TD误差

特点

  • 在线学习:每一步都可更新,无需等待片段结束。
  • 有偏估计:TD目标依赖当前估计 V(St+1)V(S_{t+1})V(St+1),引入偏差,但方差低(仅依赖单步随机性)。
  • 适用于持续任务和片段任务,实际中通常比 MC 更高效。

3. MC vs TD:详细对比

维度 蒙特卡洛 (MC) 时序差分 (TD)
更新依据 完整回报 GtG_tGt 单步奖励 + 下一状态价值估计
偏差 / 方差 无偏,高方差 有偏,低方差
自举 (Bootstrapping) 有(依赖当前估计)
收敛性(表格) 收敛到真值,对初值不敏感 收敛到真值,对初值略敏感
更新时机 片段结束后 每一步后
适用环境 片段任务 片段/持续任务

4. 驾车回家的例子

  • MC:必须完整到家后才能重新估计各路段耗时。
  • TD:每经过一个路段,立即根据新情况更新剩余时间预测,更灵活。

四、重要性采样与离策略评估

离策略学习:从行为策略 μ\muμ 产生的数据中评估目标策略 π\piππ≠μ\pi \neq \muπ=μ)。

  • 重要性采样比率
    ρ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:T1=k=tT1μ(aksk)π(aksk)
  • MC 重要性采样:用加权回报 Gtπ/μ=ρt:T−1GtG_t^{\pi/\mu} = \rho_{t:T-1} G_tGtπ/μ=ρt:T1Gt 进行更新。
    • 缺点:方差极大,易不稳定。
  • TD 重要性采样:仅需一步比率校正:
    V(st)←V(st)+α(π(at∣st)μ(at∣st)(rt+1+γV(st+1))−V(st)) V(s_t) \leftarrow V(s_t) + \alpha \left( \frac{\pi(a_t|s_t)}{\mu(a_t|s_t)} (r_{t+1} + \gamma V(s_{t+1})) - V(s_t) \right) V(st)V(st)+α(μ(atst)π(atst)(rt+1+γV(st+1))V(st))
    • 优点:方差更低,更实用。

五、n步TD与统一视角

n步TD是MC和TD(0)的折中,定义n步回报:
Gt(n)=Rt+1+γRt+2+⋯+γn−1Rt+n+γnV(St+n) G_t^{(n)} = R_{t+1} + \gamma R_{t+2} + \dots + \gamma^{n-1} R_{t+n} + \gamma^n V(S_{t+n}) Gt(n)=Rt+1+γRt+2++γn1Rt+n+γnV(St+n)
更新规则:
V(St)←V(St)+α(Gt(n)−V(St)) V(S_t) \leftarrow V(S_t) + \alpha \left( G_t^{(n)} - V(S_t) \right) V(St)V(St)+α(Gt(n)V(St))

  • n=1n=1n=1:TD(0)
  • n→∞n \to \inftyn:MC

六、探索与利用 (Exploration vs Exploitation)

强化学习中的基本权衡:

  • 利用 (Exploitation):根据当前知识选择最优动作。
  • 探索 (Exploration):尝试新动作以获取更多信息,可能发现更优策略。

常用探索策略:

  • ε-greedy:以 1−ε1-\varepsilon1ε 概率贪心,ε\varepsilonε 概率随机均匀选择。
  • 乐观初始化:初始价值估计偏高,鼓励未充分访问的状态。
  • UCB (Upper Confidence Bound):基于不确定性度量。

多臂老虎机 (Multi-Armed Bandit) 作为无状态RL实例:

  • 目标:最小化累积遗憾 (Regret)
  • 理论上最优 regret 为 O(log⁡T)O(\log T)O(logT)
  • ε-衰减可达到次线性 regret

七、方法选择指南与实用建议

场景 推荐方法
已知 MDP 模型,小规模状态空间 动态规划(策略迭代/价值迭代)
无模型,片段任务,可接受高方差 蒙特卡洛 (MC)
无模型,在线/持续任务,方差敏感 时序差分 (TD)
离策略评估/控制 重要性采样 + TD(如 Q-learning)

主流深度强化学习(后续课程)基于 TD 和函数近似(神经网络),如 DQN、DDPG、PPO 等。


八、关键公式速查表

名称 公式
Bellman 期望方程 Vπ(s)=∑aπ(a∣s)[R(s,a)+γ∑s′Pss′aVπ(s′)]V^\pi(s) = \sum_a \pi(a|s) \left[ R(s,a) + \gamma \sum_{s'} P_{ss'}^a V^\pi(s') \right]Vπ(s)=aπ(as)[R(s,a)+γsPssaVπ(s)]
Bellman 最优方程 V∗(s)=max⁡a[R(s,a)+γ∑s′Pss′aV∗(s′)]V^*(s) = \max_a \left[ R(s,a) + \gamma \sum_{s'} P_{ss'}^a V^*(s') \right]V(s)=maxa[R(s,a)+γsPssaV(s)]
蒙特卡洛更新 V(St)←V(St)+α(Gt−V(St))V(S_t) \leftarrow V(S_t) + \alpha (G_t - V(S_t))V(St)V(St)+α(GtV(St))
TD(0) 更新 V(St)←V(St)+α(Rt+1+γV(St+1)−V(St))V(S_t) \leftarrow V(S_t) + \alpha (R_{t+1} + \gamma V(S_{t+1}) - V(S_t))V(St)V(St)+α(Rt+1+γV(St+1)V(St))
n步回报 Gt(n)=∑i=1nγi−1Rt+i+γnV(St+n)G_t^{(n)} = \sum_{i=1}^{n} \gamma^{i-1} R_{t+i} + \gamma^n V(S_{t+n})Gt(n)=i=1nγi1Rt+i+γnV(St+n)
重要性采样比率 ρ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:T1=k=tT1μ(aksk)π(aksk)
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐