当前位置: 首页 > news >正文

第7章 n步时序差分(3) n 步离轨策略学习

n 步离轨策略学习

离轨策略学习(Off-policy learning)是指在学习目标策略 π\piπ 的同时,智能体实际遵循另一个行为策略 bbb。 通常,π\piπ 是基于当前动作价值函数的贪心策略(或 ε\varepsilonε-贪心策略);bbb 是更具试探性的策略(如 ε\varepsilonε-贪心),需满足对所有状态-动作对有 b(a∣s)>0b(a|s) > 0b(as)>0,以保证覆盖性。为利用策略 bbb 产生的数据来学习 π\piπ,需通过重要度采样(importance sampling)校正两种策略在动作选择上的概率差异。

在 n 步时序差分方法中,回报基于连续 nnn 步构建,因此需考虑这 nnn 个动作在 π\piπbbb 下的相对概率

对于时间区间 [t,h][t, h][t,h],重要度采样率为:
ρt:h≐∏k=tmin⁡(h, T−1)π(Ak∣Sk)b(Ak∣Sk)(7.10) \rho_{t:h} \doteq \prod_{k=t}^{\min(h,\,T-1)} \frac{\pi(A_k|S_k)}{b(A_k|S_k)} \tag{7.10} ρt:hk=tmin(h,T1)b(AkSk)π(AkSk)(7.10)

π(Ak∣Sk)=0\pi(A_k|S_k) = 0π(AkSk)=0(即目标策略永不选该动作),则对应回报权重为 0,完全忽略。若 π\piπ 选择某动作的概率远高于 bbb,则该回报权重增大,以补偿其在数据中出现频率低的问题。当 π=b\pi = bπ=b 时,ρt:h=1\rho_{t:h} = 1ρt:h=1,此时离轨策略方法退化为同轨策略(on-policy)方法。

定义

离轨 n 步时序差分

0≤t<T0 \leq t < T0t<T,在 t+nt+nt+n 时刻更新 V(St)V(S_t)V(St)
Vt+n(St)≐Vt+n−1(St)+αρt:t+n−1[Gt:t+n−Vt+n−1(St)](7.9) V_{t+n}(S_t) \doteq V_{t+n-1}(S_t) + \alpha \rho_{t:t+n-1} \left[ G_{t:t+n} - V_{t+n-1}(S_t) \right] \tag{7.9} Vt+n(St)Vt+n1(St)+αρt:t+n1[Gt:t+nVt+n1(St)](7.9)
其中:

  • ρt:t+n−1=∏k=tmin⁡(t+n−1, T−1)π(Ak∣Sk)b(Ak∣Sk)\rho_{t:t+n-1} = \prod_{k=t}^{\min(t+n-1,\,T-1)} \frac{\pi(A_k|S_k)}{b(A_k|S_k)}ρt:t+n1=k=tmin(t+n1,T1)b(AkSk)π(AkSk)
  • Gt:t+nG_{t:t+n}Gt:t+n 为 n 步回报
离轨n 步 Sarsa

0≤t<T0 \leq t < T0t<T,更新 Q(St,At)Q(S_t, A_t)Q(St,At)
Qt+n(St,At)≐Qt+n−1(St,At)+αρt+1:t+n[Gt:t+n−Qt+n−1(St,At)](7.11) Q_{t+n}(S_t, A_t) \doteq Q_{t+n-1}(S_t, A_t) + \alpha \rho_{t+1:t+n} \left[ G_{t:t+n} - Q_{t+n-1}(S_t, A_t) \right] \tag{7.11} Qt+n(St,At)Qt+n1(St,At)+αρt+1:t+n[Gt:t+nQt+n1(St,At)](7.11)

  • 重要度采样率从 t+1t+1t+1 开始到 t+nt+nt+n,即 ρt+1:t+n\rho_{t+1:t+n}ρt+1:t+n
  • 不包含当前动作 AtA_tAt,因为更新的是已确定的 (St,At)(S_t, A_t)(St,At),关注的是后续动作的策略差异
离轨n 步期望 Sarsa(动作价值)

与 n 步 Sarsa 类似,但是使用期望 Sarsa 的 n 步回报,重要度采样率为 ρt+1:t+n−1\rho_{t+1:t+n-1}ρt+1:t+n1少了一项,因为期望 Sarsa 在最后一个状态考虑所有可能动作的期望,不依赖实际采取的动作,故无需对第 t+nt+nt+n 步动作进行重要度采样修正

实现

输入:行为策略 bbb 满足 b(a∣s)>0b(a|s) > 0b(as)>0 对所有 s∈S,a∈A(s)s \in \mathcal{S}, a \in \mathcal{A}(s)sS,aA(s)
参数:步长 α∈(0,1]\alpha \in (0,1]α(0,1],探索率 ε>0\varepsilon > 0ε>0,正整数 nnn
初始化:对所有 s∈S,a∈A(s)s \in \mathcal{S}, a \in \mathcal{A}(s)sS,aA(s),任意初始化 Q(s,a)Q(s, a)Q(s,a);策略 π\piπ 为基于当前 QQQε\varepsilonε-贪心策略

对每幕执行

  1. 初始化并存储初始状态 S0S_0S0(非终止状态)

  2. 根据 b(⋅∣S0)b(\cdot \mid S_0)b(S0) 选择并存储动作 A0A_0A0

  3. T←∞T \leftarrow \inftyT

  4. t=0,1,2,…t = 0, 1, 2, \ldotst=0,1,2, 执行:

    • t<Tt < Tt<T

      • 执行动作 AtA_tAt
      • 观察并存储奖励 Rt+1R_{t+1}Rt+1 和下一状态 St+1S_{t+1}St+1
      • St+1S_{t+1}St+1 为终止状态,则 T←t+1T \leftarrow t + 1Tt+1
      • 否则,根据 b(⋅∣St+1)b(\cdot \mid S_{t+1})b(St+1) 选择并存储动作 At+1A_{t+1}At+1
    • 计算 τ←t−n+1\tau \leftarrow t - n + 1τtn+1

    • τ≥0\tau \geq 0τ0

      • 计算重要度采样率:
        ρ←∏i=τ+1min⁡(τ+n, T−1)π(Ai∣Si)b(Ai∣Si) \rho \leftarrow \prod_{i=\tau+1}^{\min(\tau+n,\,T-1)} \frac{\pi(A_i \mid S_i)}{b(A_i \mid S_i)} ρi=τ+1min(τ+n,T1)b(AiSi)π(AiSi)

      • 计算部分回报:
        G←∑i=τ+1min⁡(τ+n, T)γi−τ−1Ri G \leftarrow \sum_{i=\tau+1}^{\min(\tau+n,\,T)} \gamma^{i-\tau-1} R_i Gi=τ+1min(τ+n,T)γiτ1Ri

      • τ+n<T\tau + n < Tτ+n<T,追加自举项:
        G←G+γnQ(Sτ+n,Aτ+n) G \leftarrow G + \gamma^n Q(S_{\tau+n}, A_{\tau+n}) GG+γnQ(Sτ+n,Aτ+n)

      • 更新动作价值函数:
        Q(Sτ,Aτ)←Q(Sτ,Aτ)+αρ[G−Q(Sτ,Aτ)] Q(S_\tau, A_\tau) \leftarrow Q(S_\tau, A_\tau) + \alpha \rho \big[ G - Q(S_\tau, A_\tau) \big] Q(Sτ,Aτ)Q(Sτ,Aτ)+αρ[GQ(Sτ,Aτ)]

      • 若正在学习策略 π\piπ,则确保 π(⋅∣Sτ)\pi(\cdot \mid S_\tau)π(Sτ) 是基于当前 QQQε\varepsilonε-贪心策略

    • τ=T−1\tau = T - 1τ=T1,则结束本幕

上述算法为离轨策略版本,因此动作由行为策略 bbb 选择,而目标策略 π\piπ 用于重要度采样和(可选)策略改进。若 π=b\pi = bπ=b,则 ρ=1\rho = 1ρ=1,退化为同轨策略 n 步 Sarsa。

[!NOTE]

实验

  • n = 2(两步 Sarsa)
  • 折扣因子 γ=1\gamma = 1γ=1
  • 步长 α=0.5\alpha = 0.5α=0.5
  • 状态空间:S={A,B,C,D,E}\mathcal{S} = \{A, B, C, D, E\}S={A,B,C,D,E},其中 EEE 是终止状态
  • 动作空间:每个非终止状态有 A(s)={a,b}\mathcal{A}(s) = \{a, b\}A(s)={a,b}
  • 初始动作价值函数:对所有 s∈{A,B,C,D},a∈{a,b}s \in \{A,B,C,D\}, a \in \{a,b\}s{A,B,C,D},a{a,b},设 Q(s,a)=0Q(s, a) = 0Q(s,a)=0
  • 目标策略 π\piπ:纯贪心(即 π(a∣s)=1\pi(a|s) = 1π(as)=1Q(s,a)>Q(s,b)Q(s,a) > Q(s,b)Q(s,a)>Q(s,b),若相等则任选其一;为确定性,我们约定:当 Q(s,a)=Q(s,b)Q(s,a) = Q(s,b)Q(s,a)=Q(s,b) 时,π\piπ 选择动作 aaa
  • 行为策略 bbbε=0.5\varepsilon = 0.5ε=0.5ε\varepsilonε-贪心策略,即:
    • 以概率 0.50.50.5 选择当前贪心动作(初始时为 aaa),
    • 以概率 0.50.50.5 随机均匀选择动作(即 P(a)=P(b)=0.5P(a) = P(b) = 0.5P(a)=P(b)=0.5),
    • 因此,初始时:b(a∣s)=0.5+0.5×0.5=0.75b(a|s) = 0.5 + 0.5 \times 0.5 = 0.75b(as)=0.5+0.5×0.5=0.75b(b∣s)=0.25b(b|s) = 0.25b(bs)=0.25(因为贪心动作是 aaa

由于初始 Q=0Q=0Q=0,贪心动作统一设为 aaa,故 π(a∣s)=1\pi(a|s)=1π(as)=1, π(b∣s)=0\pi(b|s)=0π(bs)=0

  • 一幕轨迹(由行为策略 bbb 生成):
    S0=A,A0=a,R1=1,S1=B,A1=b,R2=2,S2=C,A2=a,R3=3,S3=D,A3=a,R4=4,S4=E (终止) \begin{aligned} &S_0 = A,\quad A_0 = a,\quad R_1 = 1,\quad S_1 = B, \\ &A_1 = b,\quad R_2 = 2,\quad S_2 = C, \\ &A_2 = a,\quad R_3 = 3,\quad S_3 = D, \\ &A_3 = a,\quad R_4 = 4,\quad S_4 = E \ (\text{终止}) \end{aligned} S0=A,A0=a,R1=1,S1=B,A1=b,R2=2,S2=C,A2=a,R3=3,S3=D,A3=a,R4=4,S4=E (终止)

在状态 BBB,智能体执行了非贪心动作 bbb。由于目标策略 π\piπ 是纯贪心且初始 Q=0Q=0Q=0,有 π(b∣B)=0\pi(b|B) = 0π(bB)=0,因此在更新涉及 A1=bA_1 = bA1=b 时,重要度采样比将为 0。

  • 终止时刻:T=4T = 4T=4

t = 0

  • t<Tt < Tt<TT=∞T = \inftyT= 初始)
    • 执行 A0=aA_0 = aA0=a,观察 R1=1R_1 = 1R1=1, S1=BS_1 = BS1=B
    • S1≠ES_1 \neq ES1=ET=∞T = \inftyT=
    • 根据 b(⋅∣B)b(\cdot|B)b(B) 选择 A1=bA_1 = bA1=b(已给出)
  • τ=0−2+1=−1<0\tau = 0 - 2 + 1 = -1 < 0τ=02+1=1<0不更新

当前 Q:全为 0


t = 1

  • t<Tt < Tt<T
    • 执行 A1=bA_1 = bA1=b,观察 R2=2R_2 = 2R2=2, S2=CS_2 = CS2=C
    • 非终止 → T=∞T = \inftyT=
    • 选择 A2=aA_2 = aA2=a
  • τ=1−2+1=0≥0\tau = 1 - 2 + 1 = 0 \geq 0τ=12+1=00更新 (S0,A0)=(A,a)(S_0, A_0) = (A, a)(S0,A0)=(A,a)

计算重要度采样比:

  • ρ=∏i=τ+1min⁡(τ+n−1,T−1)π(Ai∣Si)b(Ai∣Si)=π(A1∣S1)b(A1∣S1)=π(b∣B)b(b∣B)=00.25=0\rho = \prod_{i=\tau+1}^{\min(\tau+n-1, T-1)} \frac{\pi(A_i|S_i)}{b(A_i|S_i)} = \frac{\pi(A_1|S_1)}{b(A_1|S_1)} = \frac{\pi(b|B)}{b(b|B)} = \frac{0}{0.25} = 0ρ=i=τ+1min(τ+n1,T1)b(AiSi)π(AiSi)=b(A1S1)π(A1S1)=b(bB)π(bB)=0.250=0

计算回报 GGG

  • min⁡(τ+n,T)=min⁡(2,∞)=2\min(\tau+n, T) = \min(2, \infty) = 2min(τ+n,T)=min(2,)=2
  • G=R1+γR2=1+2=3G = R_1 + \gamma R_2 = 1 + 2 = 3G=R1+γR2=1+2=3
  • τ+n=2<T\tau + n = 2 < Tτ+n=2<T → 加自举项:+γ2Q(S2,A2)=+Q(C,a)=0+ \gamma^2 Q(S_2, A_2) = + Q(C, a) = 0+γ2Q(S2,A2)=+Q(C,a)=0
  • 所以 G=3G = 3G=3

更新:
Q(A,a)←0+0.5⋅ρ⋅(G−Q)=0+0.5⋅0⋅(3−0)=0 Q(A, a) \leftarrow 0 + 0.5 \cdot \rho \cdot (G - Q) = 0 + 0.5 \cdot 0 \cdot (3 - 0) = 0 Q(A,a)0+0.5ρ(GQ)=0+0.50(30)=0

尽管获得了回报 3,但由于后续动作 bbb 在目标策略下永远不会被选择,该经验被完全忽略ρ=0\rho = 0ρ=0)。

当前 Q:全为 0


t = 2

  • t<Tt < Tt<T
    • 执行 A2=aA_2 = aA2=a,观察 R3=3R_3 = 3R3=3, S3=DS_3 = DS3=D
    • 非终止 → T=∞T = \inftyT=
    • 选择 A3=aA_3 = aA3=a
  • τ=2−2+1=1≥0\tau = 2 - 2 + 1 = 1 \geq 0τ=22+1=10更新 (S1,A1)=(B,b)(S_1, A_1) = (B, b)(S1,A1)=(B,b)

计算 ρ\rhoρ

  • 范围:i=τ+1=2i = \tau+1 = 2i=τ+1=2min⁡(1+2,∞)=3\min(1+2, \infty) = 3min(1+2,)=3,但 T−1=∞T-1 = \inftyT1=,所以到 i=2i=2i=2(因为 A2A_2A2 是第 2 步动作)
  • 实际:ρ=π(A2∣S2)b(A2∣S2)=π(a∣C)b(a∣C)=10.75=43\rho = \frac{\pi(A_2|S_2)}{b(A_2|S_2)} = \frac{\pi(a|C)}{b(a|C)} = \frac{1}{0.75} = \frac{4}{3}ρ=b(A2S2)π(A2S2)=b(aC)π(aC)=0.751=34

因为 A2=aA_2 = aA2=a 是贪心动作,π(a∣C)=1\pi(a|C)=1π(aC)=1b(a∣C)=0.75b(a|C)=0.75b(aC)=0.75

计算 GGG

  • G=R2+γR3=2+3=5G = R_2 + \gamma R_3 = 2 + 3 = 5G=R2+γR3=2+3=5
  • τ+n=3<T\tau + n = 3 < Tτ+n=3<T → 加自举项:+Q(S3,A3)=Q(D,a)=0+ Q(S_3, A_3) = Q(D, a) = 0+Q(S3,A3)=Q(D,a)=0
  • G=5G = 5G=5

更新 Q(B,b)Q(B, b)Q(B,b)
Q(B,b)←0+0.5⋅43⋅(5−0)=0.5⋅43⋅5=103≈3.333 Q(B, b) \leftarrow 0 + 0.5 \cdot \frac{4}{3} \cdot (5 - 0) = 0.5 \cdot \frac{4}{3} \cdot 5 = \frac{10}{3} \approx 3.333 Q(B,b)0+0.534(50)=0.5345=3103.333

(B,b)(B, b)(B,b) 不是目标策略选择的动作,但由于它导致了后续符合 π\piπ 的动作A2=aA_2 = aA2=a),所以该经验被加权使用

当前 Q:

  • Q(B,b)=10/3≈3.333Q(B, b) = 10/3 \approx 3.333Q(B,b)=10/33.333
  • 其余仍为 0

t = 3

  • 执行 A3=aA_3 = aA3=a,观察 R4=4R_4 = 4R4=4, S4=ES_4 = ES4=E
  • S4S_4S4 是终止状态 → T=4T = 4T=4
  • 不再选择 A4A_4A4
  • τ=3−2+1=2≥0\tau = 3 - 2 + 1 = 2 \geq 0τ=32+1=20更新 (S2,A2)=(C,a)(S_2, A_2) = (C, a)(S2,A2)=(C,a)

计算 ρ\rhoρ

  • 范围:i=τ+1=3i = \tau+1 = 3i=τ+1=3min⁡(2+2,T−1)=min⁡(4,3)=3\min(2+2, T-1) = \min(4, 3) = 3min(2+2,T1)=min(4,3)=3
  • ρ=π(A3∣S3)b(A3∣S3)=π(a∣D)b(a∣D)=10.75=43\rho = \frac{\pi(A_3|S_3)}{b(A_3|S_3)} = \frac{\pi(a|D)}{b(a|D)} = \frac{1}{0.75} = \frac{4}{3}ρ=b(A3S3)π(A3S3)=b(aD)π(aD)=0.751=34

计算 GGG

  • min⁡(τ+n,T)=min⁡(4,4)=4\min(\tau+n, T) = \min(4, 4) = 4min(τ+n,T)=min(4,4)=4
  • G=R3+γR4=3+4=7G = R_3 + \gamma R_4 = 3 + 4 = 7G=R3+γR4=3+4=7
  • τ+n=4=T\tau + n = 4 = Tτ+n=4=T不加自举项

更新 Q(C,a)Q(C, a)Q(C,a)
Q(C,a)←0+0.5⋅43⋅(7−0)=0.5⋅43⋅7=143≈4.667 Q(C, a) \leftarrow 0 + 0.5 \cdot \frac{4}{3} \cdot (7 - 0) = 0.5 \cdot \frac{4}{3} \cdot 7 = \frac{14}{3} \approx 4.667 Q(C,a)0+0.534(70)=0.5347=3144.667

当前 Q:

  • Q(B,b)=10/3≈3.333Q(B, b) = 10/3 \approx 3.333Q(B,b)=10/33.333
  • Q(C,a)=14/3≈4.667Q(C, a) = 14/3 \approx 4.667Q(C,a)=14/34.667
  • 其余为 0

t = 4

  • t=4≮Tt = 4 \not< Tt=4<T → 不执行动作
  • τ=4−2+1=3≥0\tau = 4 - 2 + 1 = 3 \geq 0τ=42+1=30更新 (S3,A3)=(D,a)(S_3, A_3) = (D, a)(S3,A3)=(D,a)

计算 ρ\rhoρ

  • 范围:i=4i = 4i=4min⁡(3+2,T−1)=min⁡(5,3)=3\min(3+2, T-1) = \min(5, 3) = 3min(3+2,T1)=min(5,3)=3空乘积
  • 空乘积定义为 1 → ρ=1\rho = 1ρ=1

因为 τ+n=5>T=4\tau + n = 5 > T = 4τ+n=5>T=4,所以没有后续动作需要校正,ρ=1\rho = 1ρ=1

计算 GGG

  • min⁡(3+2,4)=4\min(3+2, 4) = 4min(3+2,4)=4
  • G=R4=4G = R_4 = 4G=R4=4
  • τ+n=5>T\tau + n = 5 > Tτ+n=5>T → 不加自举项

更新 Q(D,a)Q(D, a)Q(D,a)
Q(D,a)←0+0.5⋅1⋅(4−0)=2.0 Q(D, a) \leftarrow 0 + 0.5 \cdot 1 \cdot (4 - 0) = 2.0 Q(D,a)0+0.51(40)=2.0

当前 Q:

  • Q(B,b)=10/3≈3.333Q(B, b) = 10/3 \approx 3.333Q(B,b)=10/33.333
  • Q(C,a)=14/3≈4.667Q(C, a) = 14/3 \approx 4.667Q(C,a)=14/34.667
  • Q(D,a)=2.0Q(D, a) = 2.0Q(D,a)=2.0
  • 剩余为0

t = 5

  • τ=5−2+1=4\tau = 5 - 2 + 1 = 4τ=52+1=4
  • T−1=3T - 1 = 3T1=3τ=4>3\tau = 4 > 3τ=4>3结束
状态-动作初始 Q更新后 Q说明
(A, a)00因后续动作 bbbπ\piπ 拒绝,ρ=0\rho=0ρ=0
(B, a)00未被访问,未更新
(B, b)010/3≈3.33310/3 \approx 3.33310/33.333虽非贪心,但后续动作符合 π\piπρ=4/3\rho = 4/3ρ=4/3
(C, a)014/3≈4.66714/3 \approx 4.66714/34.667后续动作符合 π\piπρ=4/3\rho = 4/3ρ=4/3
(C, b)00未被访问
(D, a)02.0最后一步,ρ=1\rho = 1ρ=1
(D, b)00未被访问
(E, ·)0终止状态
http://www.dtcms.com/a/461243.html

相关文章:

  • 【Leetcode hot 100】35.搜索插入位置
  • Django ORM 字段查询表达式(Field lookup expressions)
  • 设计模式--组合模式:统一处理树形结构的优雅设计
  • 推荐算法学习笔记(十九)阿里SIM 模型
  • 高级网站开发工程师证书现代网站建设
  • 只能在线观看的电影网站咋么做wordpress教程 菜单
  • echarts画一个饼图
  • 基于改进YOLO算法的果园环境中障碍物识别与检测技术研究
  • 三元锂电池和磷酸铁锂电池:从原子晶格到应用哲学的深度解析
  • vscode-background 扩展的原理、配置和使用
  • 2100AI相亲(三)
  • 时钟服务器主地址
  • 瑞安学校网站建设口碑好网站建设价格
  • 自己做的网站访问不了建设网站哪些公司好
  • SpringMVC启动流程
  • HTTP 请求方法与参数上传形式的关系
  • 如何减少 Elasticsearch 集群中的分片数量
  • 当通过API发送请求的方式自动触发Jenkins job报错HTTP Status 403 – Forbidden的解决办法
  • 一个网站如何工作流程建立网站需要哪些手续
  • H3C网络设备 实验二:搭建两个局域网,使两个局域网相互通信(路由器,固定ip)
  • 临平房产做网站的公司wordpress屏蔽功能org
  • Skywalking 的本地开发配置
  • iOS 上架 App 全流程实战,应用打包、ipa 上传、App Store 审核与工具组合最佳实践
  • JavaScript核心构成与基础语法详解2
  • 邹平网站建设公司淘宝网站开始怎么做
  • fs 文件系统:Node.js 操作磁盘的 “万能工具”
  • Android + iOS 手机抓包 App 实操教程
  • 智慧新零售时代:施易德系统平衡技术与人力,赋能门店运营
  • 标准编码与算法
  • Python获取变量名本身​​——varname库