zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

(《机器学习》完整版系列)第16章 强化学习——16.8 异策略蒙特卡罗强化学习算法(换分布)

机器算法学习 系列 策略 16 强化 分布
2023-09-11 14:14:53 时间

提示:
通过换分布进行蒙特卡罗试验(采样)来实现。
求期望时“换分布”的想法及公式,有点像求对数时的“换底”

异策略蒙特卡罗强化学习算法

先看两个数学技巧:

(i) 函数的数学期望可以通过对函数的采样时行估计(这是由大数定律来保证的,参见14.6 采样:马尔可夫链蒙特卡罗MCMC方法之为何要采样?或【西瓜书第14.5.1节】),用MCMC的目的就是为了使用该技巧——应用大数定律:用【西瓜书式(14.22)】作为【西瓜书式(14.21)】的无偏估计,类似地,这里用【西瓜书式(16.23)】作为【西瓜书式(16.21)】的无偏估计、用【西瓜书式(16.24)】作为【西瓜书式(16.22)】的无偏估计。

(ii) 函数的数学期望有两种不同的等价形式,即【西瓜书式(14.21)】与【西瓜书式(14.23)】,即
E p [ f ] = E q [ p q f ] \begin{align} \mathop{\mathbb{E}}\limits_p [f]=\mathop{\mathbb{E}}\limits_q [\frac{p}{q}f] \tag{16.55} \end{align} pE[f]=qE[qpf](16.55)
对式(16.55)左右两端分别按分布 p p p和分布 q q q采样,再应用大数定律,则分别得到【西瓜书式(16.22)】和【西瓜书式(16.24)】。
记住:求期望时“换分布”的想法及公式,有点像求对数时的“换底”。

现在以轨线 s s s作为变量, R ( s ) R(s) R(s)表示轨线上自状态 x x x至结束的累积奖赏,即
{ R ( s ) = 1 T ∑ t = 1 T r t s ∣ x 0 = x , a 0 = a 当“ T 型”时 R ( s ) = ∑ t = 0 + ∞ γ t r t s ∣ x 0 = x , a 0 = a 当“ γ 型”时 \begin{align} \begin{cases} R(s) & =\frac{1}{T}\sum_{t=1}^Tr_t^s|_{x_0=x,a_0=a}\quad \text{当“$T$型”时} \\ R(s) & =\sum_{t=0}^{+\infty }{\gamma }^t r_t^s|_{x_0=x,a_0=a}\quad \text{当“$\gamma$型”时} \\ \end{cases} \tag{16.56} \end{align} {R(s)R(s)=T1t=1Trtsx0=x,a0=aT=t=0+γtrtsx0=x,a0=aγ(16.56)
p ( s ) p(s) p(s)为策略 π \pi π对应的轨线分布,由【西瓜书式(16.6)】有
Q ( x , a ) = E p [ R ] \begin{align} Q(x,a)=\mathop{\mathbb{E}}\limits_p [R] \tag{16.57} \end{align} Q(x,a)=pE[R](16.57)
对式(16.57)右侧应用【西瓜书式(16.22)】得
Q ( x , a ) = 1 m ∑ i = 1 m R ( s i ) \begin{align} Q(x,a)=\frac{1}{m}\sum_{i=1}^mR(s_i) \tag{16.58} \end{align} Q(x,a)=m1i=1mR(si)(16.58)
R ( s i ) R(s_i) R(si)简记为 R i R_i Ri,即为【西瓜书式(16.25)】。

q ( s ) q(s) q(s)为策略 π ′ \pi ' π对应的轨线分布,取 f ( s ) = R ( s ) f(s)=R(s) f(s)=R(s),由式(16.55)、式(16.57)有
Q ( x , a ) = E q [ p q R ] \begin{align} Q(x,a)=\mathop{\mathbb{E}}\limits_q [\frac{p}{q}R] \tag{16.59} \end{align} Q(x,a)=qE[qpR](16.59)
现基于 q ( s ) q(s) q(s)进行采样,得 m m m条轨线 { s i } i = 1 m \{s_i\}_{i=1}^m {si}i=1m,对式(16.57)右侧应用【西瓜书式(16.24)】得
Q ( x , a ) = 1 m ∑ i = 1 m p ( s i ) q ( s i ) R ( s i ) = 1 m ∑ i = 1 m P i π P i π ′ R i \begin{align} Q(x,a) & =\frac{1}{m}\sum_{i=1}^m\frac{p(s_i)}{q(s_i)}R(s_i)\notag \\ & =\frac{1}{m}\sum_{i=1}^m\frac{P_i^{\pi}}{P_i^{\pi '}}R_i \tag{16.60} \end{align} Q(x,a)=m1i=1mq(si)p(si)R(si)=m1i=1mPiπPiπRi(16.60)
基于 q ( s ) q(s) q(s)进行采样得到的轨线 s i s_i si即为【西瓜书式(16.24)】中的 x i ′ x_i' xi

P i π {P_i^{\pi}} Piπ P i π ′ {P_i^{\pi '}} Piπ为不同策略下产生轨线的概率,由16.3 有模型迭代式的详细推导图 16.5及马尔可夫链性质, P i π {P_i^{\pi}} Piπ P i π ′ {P_i^{\pi '}} Piπ都为【西瓜书式(16.27)】的形式,故二者的比值为【西瓜书式(16.28)】。

比较式(16.48)与式(16.60),式(16.48)有递推式(16.50),故将式(16.50)中的 R s R_s Rs换为 P i π P i π ′ R i \frac{P_i^{\pi}}{P_i^{\pi '}}R_i PiπPiπRi即为式(16.60)的递推式,下面讨论后者的变形。

为简便,我们以轨线 s s s编号起代 s i s_i si,即式(16.60)变为
Q ( x , a ) = 1 m ∑ s = 1 m P s π P s π ′ R s \begin{align} Q(x,a)=\frac{1}{m}\sum_{s=1}^m\frac{P_s^{\pi}}{P_s^{\pi '}}R_s \tag{16.61} \end{align} Q(x,a)=m1s=1mPsπPsπRs(16.61)
将轨线 s s s截去头部 t t t步后,视为一条起始点为 ( x t , a t ) (x_t,a_t) (xt,at)长度为 T − t T-t Tt的轨线,以下标“ t + 1 : T t+1:T t+1:T”表示(即轨线 s s s上从 t + 1 t+1 t+1步到 T T T步)。
R ~ s , t = [ P s π P s π ′ R s ] t + 1 : T = [ P s π P s π ′ ] t + 1 : T [ R s ] t + 1 : T = [ ∏ i = 0 T − 1 π ( x i , a i ) π ′ ( x i , a i ) ] t + 1 : T [ R s ] t + 1 : T (由【西瓜书式(16.28)】) = ∏ i = t + 1 T − 1 π ( x i , a i ) π ′ ( x i , a i ) ( 1 T − t ∑ i = t + 1 T r i ) \begin{align} \widetilde{R} _{s,t} & =\left[\frac{P_s^{\pi}}{P_s^{\pi '}}R_s\right]_{t+1:T}\notag \\ & =\left[\frac{P_s^{\pi}}{P_s^{\pi '}}\right]_{t+1:T}\left[R_s\right]_{t+1:T}\notag \\ & =\left[\prod _{i=0}^{T-1}\frac{\pi(x_i,a_i)}{\pi'(x_i,a_i)}\right]_{t+1:T}\left[R_s\right]_{t+1:T} \quad \text{(由【西瓜书式(16.28)】)}\notag \\ & =\prod _{i=t+1}^{T-1}\frac{\pi(x_i,a_i)}{\pi'(x_i,a_i)}\left(\frac{1}{T-t}\sum_{i=t+1}^Tr_i\right) \tag{16.62} \end{align} R s,t=[PsπPsπRs]t+1:T=[PsπPsπ]t+1:T[Rs]t+1:T=[i=0T1π(xi,ai)π(xi,ai)]t+1:T[Rs]t+1:T(由【西瓜书式(16.28)】)=i=t+1T1π(xi,ai)π(xi,ai)(Tt1i=t+1Tri)(16.62)

现在定义两个策略:

(1) π \pi π为依最大化进行改进所形成的策略,即
{ π ( x i ) = arg ⁡ max ⁡ a ∈ A Q ( x i , a ) π ( x i , a i ) = I ( a i = π ( x i ) ) \begin{align} \begin{cases} \pi(x_i)=\mathop{\arg\max}\limits_{a\in A}Q(x_i,a) \\ \pi(x_i,a_i)=\mathbb{I} (a_i=\pi(x_i)) \\ \end{cases} \tag{16.63} \end{align} π(xi)=aAargmaxQ(xi,a)π(xi,ai)=I(ai=π(xi))(16.63)
显然,它是一个确定性策略。
注:当式(16.63)中的最大值唯一时,动作 a i a_i ai x i x_i xi唯一确定,在实际编写程序时,应考虑多处取相同的最大值的情况,这时,式(16.63)变为
{ { a i } = arg ⁡ max ⁡ a ∈ A Q ( x i , a ) π ( x i , a i ) = 按均匀分布从集合 { a i } 中取出一个元素 \begin{align} \begin{cases} \{a_i\}=\mathop{\arg\max}\limits_{a\in A}Q(x_i,a) \\ \pi(x_i,a_i)=\text{按均匀分布从集合$\{a_i\}$中取出一个元素} \\ \end{cases} \tag{16.64} \end{align} {ai}=aAargmaxQ(xi,a)π(xi,ai)=按均匀分布从集合{ai}中取出一个元素(16.64)
式(16.64)仍称为确定性策略。

另外,即使所有 x x x处的动作 a a a是唯一确定的,从 x 0 x_0 x0出发的轨线也不唯一,因为还有 P x → x ′ a P^a_{x\to x'} Pxxa使得 a → x ′ a \to x' ax具有随机性,参见16.3 有模型迭代式的详细推导图 16.10

(2) π ′ \pi' π π \pi π ϵ \epsilon ϵ-贪心策略,即为满足式(16.54)的 π ϵ \pi ^\epsilon πϵ,若将 π ′ ( x i , a i ) \pi'(x_i,a_i) π(xi,ai)记为 p i p_i pi,则
p i = { 1 − ϵ + ϵ ∣ A ∣ (当 a i = π ( x i ) ) ϵ ∣ A ∣ (当 a i ≠ π ( x i ) ) \begin{align} p_i= \begin{cases} 1-\epsilon+\frac{\epsilon}{|A|} &\quad \text{(当$a_i=\pi(x_i)$)} \\ \frac{\epsilon}{|A|} &\quad \text{(当$a_i\neq \pi(x_i)$)} \\ \end{cases} \tag{16.65} \end{align} pi={1ϵ+AϵAϵ(当ai=π(xi)(当ai=π(xi)(16.65)

将两策略代入式(16.62),有
R ~ s , t = ∏ i = t + 1 T − 1 I ( a i = π ( x i ) ) p i ( 1 T − t ∑ i = t + 1 T r i ) \begin{align} \widetilde{R} _{s,t} & =\prod _{i=t+1}^{T-1}\frac{\mathbb{I} (a_i=\pi(x_i))}{p_i}\left(\frac{1}{T-t}\sum_{i=t+1}^Tr_i\right) \tag{16.66} \end{align} R s,t=i=t+1T1piI(ai=π(xi))(Tt1i=t+1Tri)(16.66)

对应于式(16.52),现在,点 ( x t , a t ) (x_t,a_t) (xt,at) Q Q Q的递推式为
{ Q s ( x t , a t ) = ( s − 1 ) Q s − 1 ( x t , a t ) + R ~ s , t s R ~ s , t = ∏ i = t + 1 T − 1 I ( a i = π ( x i ) ) p i ( 1 T − t ∑ i = t + 1 T r i ) \begin{align} \begin{cases} Q_s(x_t,a_t)=\frac{(s-1)Q_{s-1}(x_t,a_t)+\widetilde{R} _{s,t}}{s} \\ \widetilde{R} _{s,t}=\prod _{i=t+1}^{T-1}\frac{\mathbb{I} (a_i=\pi(x_i))}{p_i}\left(\frac{1}{T-t}\sum_{i=t+1}^Tr_i\right) \\ \end{cases} \tag{16.67} \end{align} Qs(xt,at)=s(s1)Qs1(xt,at)+R s,tR s,t=i=t+1T1piI(ai=π(xi))(Tt1i=t+1Tri)(16.67)
其中, t = 0 , 1 , 2 , ⋯   , T − 1 t=0,1,2,\cdots,{T-1} t=0,1,2,,T1,而 Q s − 1 ( x t , a t ) Q_{s-1}(x_t,a_t) Qs1(xt,at)指当前值,由此完成了轨线 s s s式(16.47)上所有点的 Q Q Q值更新。

基于上述讨论,就可以改造【西瓜书图16.10】为【西瓜书图16.11】异策略蒙特卡罗强化学习算法,要点:

(i) 用 π \pi π产生 π ′ \pi ' π,再依 π ′ \pi ' π产生轨线 s s s,由第3-4句。

(ii) 用递推式(16.67)更新轨线 s s s上所有点的 Q Q Q值(策略评估),由第5-9句实现。

(ii) 第10句对策略 π \pi π的“局部”进行优化,即: 对轨线 s s s上所有 x x x处,根据已探索到的新 Q Q Q值,应用式(16.63)优化策略 π \pi π

由于算法涉及两个策略: π \pi π π ′ \pi ' π π \pi π ϵ \epsilon ϵ-贪心策略),在策略评估时,用 ϵ \epsilon ϵ-贪心策略 π ′ \pi ' π,在策略改进时基于原策略 π \pi π,故称为“异策略”。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:16.7 同策略蒙特卡罗强化学习
下一篇:16.9 时序差分学习(Sara算法与Q-学习算法)