摘要

本系列知识点讲解基于蘑菇书EasyRL中的内容进行详细的疑难点分析!具体内容请阅读蘑菇书EasyRL


对应蘑菇书EasyRL——3.3.2 时序差分


1. 强化学习中的时序差分方法(Temporal Difference, TD)

(1)什么是强化学习中的时序差分方法?

时序差分(Temporal Difference, TD)方法是一类用于 估计值函数 的强化学习算法。它结合了动态规划(Dynamic Programming, DP)蒙特卡洛方法(Monte Carlo, MC) 的优点,同时不需要完整的回合数据即可进行学习。

在强化学习中,我们的目标是找到最优策略 π ∗ \pi^* π,使得智能体在与环境交互的过程中获得最大的累积奖励。而在策略评估过程中,我们通常需要估计 状态值函数状态-动作值函数

  • 状态值函数(State Value Function)
    V π ( s ) = E π [ ∑ t = 0 ∞ γ t R t + 1 ∣ S 0 = s ] V^\pi(s) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t R_{t+1} \mid S_0 = s \right] Vπ(s)=Eπ[t=0γtRt+1S0=s]
  • 状态-动作值函数(State-Action Value Function)
    Q π ( s , a ) = E π [ ∑ t = 0 ∞ γ t R t + 1 ∣ S 0 = s , A 0 = a ] Q^\pi(s, a) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t R_{t+1} \mid S_0 = s, A_0 = a \right] Qπ(s,a)=Eπ[t=0γtRt+1S0=s,A0=a]

其中:

  • S t S_t St 是时间步 t t t 时智能体所处的状态
  • A t A_t At 是时间步 t t t 时采取的动作
  • R t + 1 R_{t+1} Rt+1 是采取动作后的即时奖励
  • γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ[0,1] 是折扣因子(表示未来奖励的重要程度)

(2)蒙特卡洛方法 vs. 时序差分方法

蒙特卡洛方法(Monte Carlo, MC)

蒙特卡洛方法通过 完整的一次轨迹 来计算值函数的估计值。公式如下:
V ( S t ) ← V ( S t ) + α ( G t − V ( S t ) ) V(S_t) \leftarrow V(S_t) + \alpha \left( G_t - V(S_t) \right) V(St)V(St)+α(GtV(St))
其中:

  • G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + … G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots Gt=Rt+1+γRt+2+γ2Rt+3+ 是从时间步 t t t 开始的累积奖励(回报)
  • α \alpha α 是学习率

但是,蒙特卡洛方法的缺点是:

  1. 必须等到一整个回合结束后 才能更新值函数,无法用于非终止状态的学习。
  2. 高方差,因为它依赖于完整轨迹,不同的采样会产生较大的波动。
时序差分方法(Temporal Difference, TD)

时序差分方法是一种 不需要等待整个回合结束就能更新值函数 的方法。它的核心思想是:

通过当前状态的估计值 来更新自身,而不依赖完整的回报。

TD 方法的更新公式为:
V ( S t ) ← V ( S t ) + α ( R t + 1 + γ V ( S t + 1 ) − V ( S t ) ) 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))

其中:

  • R t + 1 R_{t+1} Rt+1 是下一步的即时奖励
  • V ( S t + 1 ) V(S_{t+1}) V(St+1) 是下一个状态的值函数估计
  • R t + 1 + γ V ( S t + 1 ) R_{t+1} + \gamma V(S_{t+1}) Rt+1+γV(St+1) 这一项称为 TD 目标(TD Target)
  • R t + 1 + γ V ( S t + 1 ) − V ( S t ) R_{t+1} + \gamma V(S_{t+1}) - V(S_t) Rt+1+γV(St+1)V(St) 这一项称为 TD 误差(TD Error)

相比蒙特卡洛方法,TD 方法的优点是:

  1. 可以在线更新,不需要等待回合结束
  2. 方差较小,因为它是基于一步预测,而不是整个回报

举例:
假设有一个简单的回合:

  • S 0 = A S_0 = A S0=A
  • 采取动作 A 0 A_0 A0,到达 S 1 = B S_1 = B S1=B,得到奖励 R 1 = 10 R_1 = 10 R1=10
  • 采取动作 A 1 A_1 A1,到达 S 2 = C S_2 = C S2=C,得到奖励 R 2 = 5 R_2 = 5 R2=5
  • 终止状态, G 0 = 10 + 5 = 15 G_0 = 10 + 5 = 15 G0=10+5=15

蒙特卡洛方法 中:

  • 只有当整个回合结束后,才能使用 G 0 = 15 G_0 = 15 G0=15 来更新 V ( A ) V(A) V(A)

时序差分方法 中:

  • 可以直接在 t = 0 t=0 t=0 处更新 V ( A ) V(A) V(A)
    V ( A ) ← V ( A ) + α ( 10 + γ V ( B ) − V ( A ) ) V(A) \leftarrow V(A) + \alpha (10 + \gamma V(B) - V(A)) V(A)V(A)+α(10+γV(B)V(A))
  • 这使得学习过程更高效,适用于持续任务(continuing tasks)

(3)TD(0)、TD(λ) 和 Q-learning

TD(0)
  • 只使用当前时间步的 TD 误差进行更新,直接依赖 V ( S t + 1 ) V(S_{t+1}) V(St+1)
  • 公式:
    V ( S t ) ← V ( S t ) + α ( R t + 1 + γ V ( S t + 1 ) − V ( S t ) ) 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))
TD(λ)
  • 结合 TD(0) 和蒙特卡洛方法,使用资格迹(Eligibility Trace) 来权衡不同时间步的信息。
Q-learning
  • 时序差分方法的一种特殊形式,更新的是 状态-动作值函数 Q ( s , a ) Q(s,a) Q(s,a)
  • 公式:
    Q ( S t , A t ) ← Q ( S t , A t ) + α ( R t + 1 + γ max ⁡ a Q ( S t + 1 , a ) − Q ( S t , A t ) ) 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+γamaxQ(St+1,a)Q(St,At))
  • 适用于最优策略学习。

2. 自举(Bootstrapping)

自举(Bootstrapping) 是强化学习中的一个核心概念,指的是:

使用当前的估计值来更新自身,而不是等待真实值。

在时序差分方法中,我们通过 V ( S t + 1 ) V(S_{t+1}) V(St+1) 来估计 V ( S t ) V(S_t) V(St),但 V ( S t + 1 ) V(S_{t+1}) V(St+1) 也是一个估计值,这就是自举的核心。

(1)为什么要用自举?

  1. 减少计算开销

    • 直接计算真实回报 G t G_t Gt 可能很耗时,而 TD 方法可以 逐步更新,避免等待整个轨迹完成。
  2. 可以处理无终止任务

    • 蒙特卡洛方法必须等到回合结束,而自举方法可以在非终止状态更新,使得强化学习可以用于持续任务

(2)自举 vs. 非自举

方法 是否使用自举 依赖完整回报
蒙特卡洛方法 ❌ 不自举 ✅ 需要完整回报
时序差分方法(TD) ✅ 自举 ❌ 只依赖局部回报
动态规划 ✅ 自举 ❌ 依赖状态转移模型

总结

  1. 时序差分(TD)方法 是强化学习中的一种策略评估方法,结合了动态规划和蒙特卡洛方法的优点。
  2. TD 方法不需要等待回合结束,而是使用 V ( S t + 1 ) V(S_{t+1}) V(St+1) 作为估计值进行更新,这就是自举(Bootstrapping)
  3. Q-learning 是一种基于时序差分的强化学习方法,用于学习最优策略。
  4. 自举 使得 TD 方法比蒙特卡洛方法更高效,适用于在线学习和持续任务。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐