【强化学习】使用近似方法的on-policy控制

episodic semi-SGD one-step control via Sarsa

近似的动作价值函数 q ^ ≈ q π \hat{q}\approx q_\pi q^qπ,表示为具有权值向量 w w w的参数化函数形式。前面的预测问题关注的是形如 S t → U t S_t\rightarrow U_t StUt的随机训练样本,而对于控制问题,样本的形态会变成 S t , A t → U t S_t,A_t\rightarrow U_t St,AtUt。更新目标 U t U_t Ut可以是 q π ( S t , A t ) q_\pi(S_t,A_t) qπ(St,At)的任意近似,包括一些常见的回溯值,如完整的MC回报 G t G_t Gtn-step Sarsa回报。动作价值函数预测的梯度下降更新公式的一般形式是:
w t + 1 = w t + α [ U t − q ^ ( S t , A t , w t ) ] ∇ q ^ ( S t , A t , w t ) w_{t+1}=w_t+\alpha[U_t-\hat{q}(S_t,A_t,w_t)]\nabla\hat{q}(S_t,A_t,w_t) wt+1=wt+α[Utq^(St,At,wt)]q^(St,At,wt)
作为上面一般形式的其中一个例子,one-step Sarsa方法的更新可以表示为
w t + 1 = w t + α [ R t + 1 + γ q ^ ( S t + 1 , A t + 1 , w t ) − q ^ ( S t , A t , w t ) ] ∇ q ^ ( S t , A t , w t ) w_{t+1}=w_t+\alpha[R_{t+1}+\gamma\hat{q}(S_{t+1},A_{t+1},w_t)-\hat{q}(S_t,A_t,w_t)]\nabla\hat{q}(S_t,A_t,w_t) wt+1=wt+α[Rt+1+γq^(St+1,At+1,wt)q^(St,At,wt)]q^(St,At,wt)
这种方法称为episodic semi-gradient one-step Sarsa
这里之所以选用自举法的TD-Learning而不用MC,原因在于对于趋近于无限长的连续性任务,MC可能连一个episode都执行不完,更别说大量的更新了。
为了得到控制方法,需要将这种动作价值函数预测与策略改进动作选择的技术结合起来。如果动作集合是离散的并且不是太大(如果是连续的,或者是离散太大,则效果不好),对于当前状态 S t S_t St中的每个可能的动作 a a a,可以计算 q ^ ( S t , a , w t ) \hat{q}(S_t,a,w_t) q^(St,a,wt),然后贪心( ϵ \epsilon ϵ-贪心策略)地选择动作 A t ∗ = a r g m a x a q ^ ( S t , a , w t ) A_t^*=argmax_a\hat{q}(S_t,a,w_t) At=argmaxaq^(St,a,wt)
在这里插入图片描述
Mountain Car Task(高山行车问题)
**任务描述:**让一个动力不足的小车越国山顶,但是由于动力不足,小车需要先想做开,积累势能之后加上现有的动力才能越过右边山顶。小车到达goal则episode结束,超过左边边界的话就重置task。

**目标点:**小车到达goal则episode结束,超过左边的边界则重置task。
**状态空间:**二维连续空间。 − 1.2 ≤ x t + 1 ≤ 0.5 -1.2\leq x_{t+1}\leq 0.5 1.2xt+10.5 − 0.07 ≤ v t + 1 ≤ 0.07 -0.07\leq v_{t+1}\leq 0.07 0.07vt+10.07,位置和速度。
动作空间: + 1 , − 1 , 0 +1,-1,0 +1,1,0。分别表示全油门前进,全油门后退,零油门。
**模型:**状态转移方程:
{ x t + 1 = b o u n d [ x t + v t + 1 ] v t + 1 = b o u n d [ v t + 1 + 0.001 A t − 0.0025 c o s ( 3 x t ) ] \begin{cases} x_{t+1}=bound[x_t+v_{t+1}]\\ v_{t+1}=bound[v_{t+1}+0.001A_t-0.0025cos(3x_t)] \end{cases} {xt+1=bound[xt+vt+1]vt+1=bound[vt+1+0.001At0.0025cos(3xt)]
bound操作是为了限制 − 1.2 ≤ x t + 1 ≤ 0.5 -1.2\leq x_{t+1}\leq0.5 1.2xt+10.5以及 − 0.07 ≤ v t + 1 ≤ 0.07 -0.07\leq v_{t+1}\leq0.07 0.07vt+10.07。当位置到达左边界时,速度被重置为0。当位置到达右边界时,目标达成且当前episode结束。每一episode从一个随机位置 [ − 0.6 , − 0.4 ] [-0.6,-0.4] [0.6,0.4] 0 0 0速度开始。
在这里插入图片描述
如上图所示,为了将这两个连续的状态变量转换成二值化特征,使用网格覆盖方法,这里使用8个tiling,每个tiling中的每个tile覆盖了每个维度边界总距离的 1 8 \frac{1}{8} 81。并使用了不对称偏移,使用瓦片编码产生的特征向量 x ( s , a ) x(s,a) x(s,a)与参数向量的线性组合来逼近状态-动作价值函数。
q ^ ( s , a , w ) = w T x ( s , a ) = ∑ i = 1 d w i ⋅ x i ( s , a ) \hat{q}(s,a,w)=w^Tx(s,a)=\displaystyle\sum_{i=1}^dw_i·x_i(s,a) q^(s,a,w)=wTx(s,a)=i=1dwixi(s,a)
上图显示了通过这种方式的函数逼近来学习解决这个任务(高山行车)会发生什么。从图的中间顶部标为“Step 428”的途中可以看到,尽管此时连一个episode都没有完成,但是车子在山谷里沿着状态空间的弧形轨迹来回摆动。所有经常访问的状态的价值函数都比未试探到的状态低,这是因为实际的收益比预期的要差,这会驱使智能体离开所在的地点,去探索新的状态,直到找到解决方案。
下图显示了高山行车的若干半梯度Sarsa学习曲线,不同的曲线有不同的步长

在这里插入图片描述

n-step semi-SGD n-step control via Sarsa

episodic n-step semi-gradient Sarsa使用n-step回报作为 U t U_t Ut
G t : t + n = R t + 1 + γ R t + 2 + . . . + γ n − 1 R t + n + γ n q ^ ( S t + n , A t + n , w w + n − 1 ) , t + n < T G_{t:t+n}=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n-1}R_{t+n}+\gamma^n\hat{q}(S_{t+n},A_{t+n},w_{w+n-1}),t+n<T Gt:t+n=Rt+1+γRt+2+...+γn1Rt+n+γnq^(St+n,At+n,ww+n1),t+n<T
如果 t + n ≥ T t+n\geq T t+nT则有 G t : t + n = G t G_{t:t+n}=G_t Gt:t+n=Gt。n-step的更新公式为
w t + n = w t + n − 1 + α [ G t : t + n − q ^ ( S t , A t , w t + n − 1 ) ] ∇ q ^ ( S t , A t , w t + n − 1 ) , 0 ≤ t < T w_{t+n}=w_{t+n-1}+\alpha[G_{t:t+n}-\hat{q}(S_t,A_t,w_{t+n-1})]\nabla\hat{q}(S_t,A_t,w_{t+n-1}),0\leq t<T wt+n=wt+n1+α[Gt:t+nq^(St,At,wt+n1)]q^(St,At,wt+n1),0t<T
在这里插入图片描述
使用中等程度的自举法往往能得到最好的性能,也就是 n n n的取值,如下图所示,使用 n = 8 n=8 n=8相比于 n = 1 n=1 n=1学习得更快,并获得更好的性能。
在这里插入图片描述
上图是one-step semi-gradient Sarsa和n-step semi-gradient Sarsa在高山行车任务中的性能对比。这里使用了较好的步长参数: n = 1 , α = 0.5 8 n=1,\alpha=\frac{0.5}{8} n=1,α=80.5以及 n = 8 , α = 0.3 8 n=8,\alpha=\frac{0.3}{8} n=8,α=80.3

平均收益:持续性任务中新的问题设定

Long Interval

连续性问题有两种,第一种是既有初始状态和终止状态,第二种是没有终止状态的,即智能体需要持续性地与环境进行交互。这种情况下,Episodic方法无法处理,但是可以在这个无终止的状态序列中,设置长时间窗口,抽取子序列(离散化)为一个个episode,只是这些episode的终止状态不再是终止时刻时的状态,而是进行轨迹采样到达的设定最终最终时刻。

Tarbular Tasks背景补充

Episodic Setting
在Tarbular (表格型)Tasks中,由于每个状态清晰可区分,我们可通过Episodic Setting来进行离散汇报的计算,从而可进行策略优劣的排序,在局部状态 s s s下回报最高 Q ( s , a ) Q(s,a) Q(s,a)所对应的局部策略是当前最优的。
G t = R t + 1 + R t + 2 + . . . + R T = ∑ k = t + 1 T R k  with  T = constant < ∞ , γ = 1 \begin{aligned} G_t&=R_{t+1}+R_{t+2}+...+R_T\\ &=\displaystyle\sum_{k=t+1}^TR_k\\ \text{ with }T&=\text{constant}<\infty,\gamma=1 \end{aligned} Gt with T=Rt+1+Rt+2+...+RT=k=t+1TRk=constant<,γ=1

Discounted Setting
在Tarbular/Countinuing Tasks中,对于趋向于无限长的奖赏序列,为保证求累计奖赏时是有限值,并且注重即时奖励,淡化远期奖励。设置折扣因子如下
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . = ∑ k = t + 1 T γ k − t − 1 R k  with  ( T → ∞ , γ < 1 ) \begin{aligned} G_t&=R_{t+1}+\gamma R_{t+2}+\gamma ^2R_{t+3}+...\\ &=\displaystyle\sum_{k=t+1}^T\gamma ^{k-t-1}R_k\text{ with }(T\rightarrow\infty,\gamma<1) \end{aligned} Gt=Rt+1+γRt+2+γ2Rt+3+...=k=t+1Tγkt1Rk with (T,γ<1)
Approximation问题:相邻状态难以区分,状态未转移但奖励依旧累积
函数逼近使用特征向量 x ( s ) x(s) x(s)来表征状态 s s s,在不同粒度的表示下(如Tile Coding),落在同一tile中的不同状态 ( s , s ′ ) (s,s') (s,s)对应的特征向量相同,即 x ( s ) = x ( s ′ ) = > v ( s ) = v ( s ′ ) x(s)=x(s')=>v(s)=v(s') x(s)=x(s)=>v(s)=v(s),这使得函数逼近法比表格法更难区分不同state,这意味着如果我们在状态 s s s下执行动作 a a a,有可能达到同一特征向量的不同状态 s ′ s' s,由于期间没有发生实质状态转移,此时不管使用episodic setting( + R t +R_t +Rt),还是Discounted Setting( γ R t \gamma R_t γRt),进行参数 w w w更新和策略评估都会存在偏差。
解决方法是使用Average-Reward Setting via long interval,想要了解一个人或事,就需要长期接触,因此可通过长时间间隔的平均收益(Average-reward)来进行参数 w w w的更新和策略排序。

Average-Reward Setting
Average-Reward Setting的特点如下:
(1)理论上基于长时间间隔平均而得,实际计算是不断更新而成,可动态适应非平稳环境。
(2)不同于Discount,对任意时刻都同等重视,无远近偏好。
(3)基于遍历性(ergodicity)假设。
R-Learning是一种Model-Free的Average-Reward RL方法,比Q-Learning收敛快。策略 π \pi π的平均收益 r ( π ) r(\pi) r(π):表示该策略的优劣,因此有 r ( π ∗ ) ≥ r ( π ) r(\pi^*)\geq r(\pi) r(π)r(π),由于策略需要长时间间隔估计才能准确,因此需要求奖赏的期望如下:
r ( π ) = lim ⁡ h − > ∞ 1 h ∑ t = 1 h E [ R t ∣ A 0 : t − 1 ∼ π ] = lim ⁡ t − > ∞ E [ R t ∣ A 0 : t − 1 ∼ π ] = ∑ s μ π ( s ) ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) r \begin{aligned} r(\pi)&=\displaystyle\lim_{h->\infty}\frac{1}{h}\sum_{t=1}^h\mathbb{E}[R_t|A_{0:t-1}\sim\pi]\\ &=\displaystyle\lim_{t->\infty}\mathbb{E}[R_t|A_{0:t-1}\sim\pi]\\ &=\displaystyle\sum_s\mu_{\pi}(s)\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)r \end{aligned} r(π)=h>limh1t=1hE[RtA0:t1π]=t>limE[RtA0:t1π]=sμπ(s)aπ(as)s,rp(s,rs,a)r
上式第一步和第二步用到了数分中的平均极限定理。最后一步的 μ π \mu_\pi μπ是一个稳态分布,稳态分布(steady state distribution)指的是原状态分布按照策略 π \pi π选择action,状态被采样或转移的概率不变。
∑ s μ π ( s ) ∑ a π ( a ∣ s ) p ( s ′ ∣ s , a ) = μ π ( s ′ ) \displaystyle\sum_s\mu_\pi(s)\sum_a\pi(a|s)p(s'|s,a)=\mu_\pi(s') sμπ(s)aπ(as)p(ss,a)=μπ(s)
而给予稳态分布延伸出一个关于MDP的遍历性假设,每个策略 π \pi π均独立于初始状态 S 0 S_0 S0,这表示一个状态的期望只与 π ( a ∣ s ) \pi(a|s) π(as) p ( s ′ , r ∣ s , a ) p(s',r|s,a) p(s,rs,a)有关。与 S 0 S_0 S0和早期决策无关。
μ π ( s ) = lim ⁡ t − > ∞ P { S t = s ∣ A 0 : t − 1 ∼ π } \mu_\pi(s)=\displaystyle\lim_{t->\infty}P\{S_t=s|A_{0:t-1}\sim\pi\} μπ(s)=t>limP{St=sA0:t1π}

Differential Return(微分回报)
在平均收益设定中,回报 G t G_t Gt是根据即时收益和平均收益的差来定义的:
G t = R t + 1 − r ( π ) + R t + 2 − r ( π ) + R t + 3 − r ( π ) + . . . G_t=R_{t+1}-r(\pi)+R_{t+2}-r(\pi)+R_{t+3}-r(\pi)+... Gt=Rt+1r(π)+Rt+2r(π)+Rt+3r(π)+...
上式被称为微分回报,对应one-step TD价值函数 v π ( s ) v_\pi(s) vπ(s)称为微分价值函数(differential value function),对应Bellman Equation如下:
v π ( s ) = E π [ G t ∣ S t = s ] = E [ R t − r ( π ) ∣ S 0 , A 0 : t − 1 ∼ π ] = ∑ a π ( a ∣ s ) ∑ r , s ′ p ( r , s ′ ∣ s , a ) [ r − r ( π ) + v π ( s ′ ) ] \begin{aligned} v_\pi(s)&=\mathbb{E}_{\pi}[G_t|S_t=s]=\mathbb{E}[R_t-r(\pi)|S_0,A_{0:t-1}\sim\pi]\\ &=\displaystyle\sum_a\pi(a|s)\sum_{r,s'}p(r,s'|s,a)[r-r(\pi)+v_\pi(s')] \end{aligned} vπ(s)=Eπ[GtSt=s]=E[Rtr(π)S0,A0:t1π]=aπ(as)r,sp(r,ss,a)[rr(π)+vπ(s)]
r r r为即时收益, r ( π ) r(\pi) r(π)为真实平均收益。
{ v π ( s ) = ∑ a π ( a ∣ s ) ∑ r , s ′ p ( r , s ′ ∣ s , a ) [ r − r ( π ) + v π ( s ′ ) ] q π ( s , a ) = ∑ r , s ′ p ( s ′ , r ∣ s , a ) [ r − r ( π ) + ∑ a ′ π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) ] v ∗ ( s ) = max ⁡ a ∑ r , s ′ p ( s ′ , r ∣ s , a ) [ r − max ⁡ π r ( π ) + v ∗ ( s ′ ) ] q ∗ ( s , a ) = ∑ r , s ′ p ( s ′ , r ∣ s , a ) [ r − max ⁡ π r ( π ) + max ⁡ a ′ q ∗ ( s ′ , a ′ ) ] \begin{cases} v_\pi(s)=\displaystyle\sum_a\pi(a|s)\sum_{r,s'}p(r,s'|s,a)[r-r(\pi)+v_\pi(s')]\\ q_\pi(s,a)=\displaystyle\sum_{r,s'}p(s',r|s,a)[r-r(\pi)+\displaystyle\sum_{a'}\pi(a'|s')q_\pi(s',a')]\\ v_*(s)=\displaystyle\max_a\sum_{r,s'}p(s',r|s,a)[r-\max_\pi r(\pi)+v_*(s')]\\ q_*(s,a)=\displaystyle\sum_{r,s'}p(s',r|s,a)[r-\max_\pi r(\pi)+\max_{a'}q_*(s',a')] \end{cases} vπ(s)=aπ(as)r,sp(r,ss,a)[rr(π)+vπ(s)]qπ(s,a)=r,sp(s,rs,a)[rr(π)+aπ(as)qπ(s,a)]v(s)=amaxr,sp(s,rs,a)[rπmaxr(π)+v(s)]q(s,a)=r,sp(s,rs,a)[rπmaxr(π)+amaxq(s,a)]
具体实现时, r ( π ) r(\pi) r(π)由于无法估计全局平均奖赏而只能不断迭代得到,所以是 r t ( π ) r_t(\pi) rt(π)不是 r ( π ) r(\pi) r(π)。即 R ‾ t \overline{R}_t Rt,它是时刻 t t t对平均收益 r ( π ) r(\pi) r(π)的估计。对于两类TD Error的微分方式以及w的更新如下:
{ δ t = R t + 1 − R ‾ t + 1 + v ^ ( S t + 1 , w t ) − v ^ ( S t , w t ) w t + 1 = w t + α δ t ∇ q ^ ( S t , w t ) \begin{cases} \delta_t=R_{t+1}-\overline{R}_{t+1}+\hat{v}(S_{t+1},w_t)-\hat{v}(S_t,w_t)\\ w_{t+1}=w_t+\alpha\delta_t\nabla\hat{q}(S_t,w_t)\\ \end{cases} {δt=Rt+1Rt+1+v^(St+1,wt)v^(St,wt)wt+1=wt+αδtq^(St,wt)
以及
{ δ t = R t + 1 − R ‾ t + 1 + q ^ ( S t + 1 , A t + 1 , w t ) − q ^ ( S t , A t , w t ) w t + 1 = w t + α δ t ∇ q ^ ( S t , A t , w t ) \begin{cases} \delta_t=R_{t+1}-\overline{R}_{t+1}+\hat{q}(S_{t+1},A_{t+1},w_t)-\hat{q}(S_t,A_t,w_t)\\ w_{t+1}=w_t+\alpha\delta_t\nabla\hat{q}(S_t,A_t,w_t) \end{cases} {δt=Rt+1Rt+1+q^(St+1,At+1,wt)q^(St,At,wt)wt+1=wt+αδtq^(St,At,wt)

放弃使用Discounted Setting

微分Semi-SGD n-step Sarsa Control

将one-step扩展到n-step后的回报计算如下
G t : t + n = R t + 1 − R ‾ t + 1 + R t + 2 − R ‾ t + 2 + . . . + R t + n − R ‾ t + n + q ^ ( S t + n , A t + n , w t + n − 1 ) G_{t:t+n}=R_{t+1}-\overline{R}_{t+1}+R_{t+2}-\overline{R}_{t+2}+...+R_{t+n}-\overline{R}_{t+n}+\hat{q}(S_{t+n},A_{t+n},w_{t+n-1}) Gt:t+n=Rt+1Rt+1+Rt+2Rt+2+...+Rt+nRt+n+q^(St+n,At+n,wt+n1)
其中, R ‾ \overline{R} R是对 r ( π ) r(\pi) r(π)的估计, n ≥ 1 n\geq1 n1 t + n < T t+n<T t+n<T。如果 t + n ≥ T t+n\geq T t+nT,和往常一样定义 G t : t + n = G t G_{t:t+n}=G_t Gt:t+n=Gt。n-step TD Error则变为:
δ t = G t : t + n − q ^ ( S t , A t , w ) \delta_t=G_{t:t+n}-\hat{q}(S_t,A_t,w) δt=Gt:t+nq^(St,At,w)
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值