【强化学习】资格迹(Eligibility Traces)

前言

资格迹是强化学习的基本方法之一,几乎所有用时序差分的算法都可以与资格迹结合起来,从而可以获得一个更加有效且具一般性的方法。

已知强化学习的本质是找最优策略 π ∗ \pi_* π,最优策略 π ∗ \pi_* π等价于最优动作 π ∗ ( s ) \pi_*(s) π(s),最优动作 π ∗ ( s ) \pi_*(s) π(s)可以由最优状态价值 v ∗ ( s ) v_*(s) v(s)(或者最优行动价值 q ∗ ( s , a ) q_*(s,a) q(s,a))决定。在基于Approximation的方法中,求解 v ∗ ( s ) v_*(s) v(s)或者是 q ∗ ( s , a ) q_*(s,a) q(s,a)表示为近似预测函数 v ^ ( s , w ) \hat{v}(s,w) v^(s,w)或者 q ^ ( s , a , w ) \hat{q}(s,a,w) q^(s,a,w)

已知线性近似的状态价值函数可以写作权重向量 w w w和状态向量 x ( s ) x(s) x(s)的内积。
v ^ ( s , w ) = w T x ( s ) = ∑ i = 1 d w i x i ( s ) \hat{v}(s,w)=w^Tx(s)=\displaystyle\sum_{i=1}^dw_ix_i(s) v^(s,w)=wTx(s)=i=1dwixi(s)
根据MC算法的随机梯度下降(stochastic gradient-descent,SGD)方法求解权重 w w w
w t + 1 = w t + α [ G t − v ^ ( S t , w t ) ] ∇ v ^ ( S t , w t ) w_{t+1}=w_t+\alpha[G_t-\hat{v}(S_t,w_t)]\nabla\hat{v}(S_t,w_t) wt+1=wt+α[Gtv^(St,wt)]v^(St,wt)在求 w w w的过程中, α \alpha α G t G_t Gt ∇ v ^ ( S t , w t ) \nabla\hat{v}(S_t,w_t) v^(St,wt)都有自己的优化方法。
· α \alpha α是步长,如果 G t − v ^ ( S t , w t ) G_t-\hat{v}(S_t,w_t) Gtv^(St,wt)太大,则其 α \alpha α要变小。
· G t G_t Gt的计算可以通过 λ \lambda λ-return方法。
· v ^ ( S t , w t ) \hat{v}(S_t,w_t) v^(St,wt)可以用资格迹来优化,资格迹就是优化后的函数微分。

λ \lambda λ - return

λ \lambda λ - return提供了一个新的方式来估算 G t G_t Gt,新的估计定义为 G t λ G_t^{\lambda} Gtλ
前面我们定义了n步回报
G t : t + n = R t + 1 + γ R t + 1 . . . + γ n − 1 R t + n + γ n V t + n − 1 ( S t + n ) G_{t:t+n}=R_{t+1}+\gamma R_{t+1}...+\gamma^{n-1}R_{t+n}+\gamma^nV_{t+n-1}(S_{t+n}) Gt:t+n=Rt+1+γRt+1...+γn1Rt+n+γnVt+n1(St+n)其中 n ≥ 1 , 0 ≤ t < T − n n\geq1,0\leq t<T-n n1,0t<Tn。对于任意参数化的函数逼近,可以将其一般化为:
G t : t + n = R t + 1 + γ R t + 1 . . . + γ n − 1 R t + n + γ n V t + n − 1 ( S t + n , w t + n − 1 ) , 0 ≤ t ≤ T − n G_{t:t+n}=R_{t+1}+\gamma R_{t+1}...+\gamma^{n-1}R_{t+n}+\gamma^nV_{t+n-1}(S_{t+n},w_{t+n-1}),0\leq t\leq T-n Gt:t+n=Rt+1+γRt+1...+γn1Rt+n+γnVt+n1(St+n,wt+n1),0tTn此时 G t λ G_t^\lambda Gtλ为后面所有 G t : t + n G_{t:t+n} Gt:t+n的加权平均值。
{ G t λ = ( 1 − λ ) ∑ n = 1 ∞ λ n − 1 G t : t + n , c o n t i n u i n g   t a s k s G t λ = ( 1 − λ ) ∑ n = 1 T − t − 1 λ n − 1 G t : t + n + λ T − t − 1 G t , e p i s o d i c   t a s k s \begin{cases} G_t^\lambda=(1-\lambda)\displaystyle\sum_{n=1}^\infty\lambda^{n-1}G_{t:t+n},continuing\text{ }tasks\\ \\ G_t^\lambda=(1-\lambda)\displaystyle\sum_{n=1}^{T-t-1}\lambda^{n-1}G_{t:t+n}+\lambda^{T-t-1}G_t,episodic \text{ }tasks \end{cases} Gtλ=(1λ)n=1λn1Gt:t+n,continuing tasksGtλ=(1λ)n=1Tt1λn1Gt:t+n+λTt1Gt,episodic tasks其中
{ λ ∈ [ 0 , 1 ] ( 1 − λ ) ∑ n = 1 ∞ λ n − 1 = 1 ( 1 − λ ) ∑ n = 1 T − t − 1 λ n − 1 + λ T − t − 1 = 1 \begin{cases} \lambda\in[0,1]\\ \\ (1-\lambda)\displaystyle\sum_{n=1}^\infty\lambda^{n-1}=1\\ \\ (1-\lambda)\displaystyle\sum_{n=1}^{T-t-1}\lambda^{n-1}+\lambda^{T-t-1}=1 \end{cases} λ[0,1](1λ)n=1λn1=1(1λ)n=1Tt1λn1+λTt1=1如果 λ = 1 \lambda=1 λ=1,则 λ \lambda λ - return的更新算法就是MC算法,如果 λ = 0 \lambda=0 λ=0 λ \lambda λ - return即为 G t : t + 1 G_{t:t+1} Gt:t+1,即单步回报,就是单步时序差分算法。

此时可以定义基于 λ \lambda λ - return的学习算法,即off-line λ \lambda λ - return算法。作为一个off - line算法,在一个episode中间不会改变权值向量。在整个episode结束后,才会进行整个序列的离线更新。根据semi - SGD准则,使用 λ \lambda λ - return, G t λ G_t^\lambda Gtλ作为目标。 w t + 1 = ˙ w t + α [ G t λ − v ^ ( S t , w t ) ] ∇ v ^ ( S t , w t ) w_{t+1}\dot{=}w_t+\alpha[G_t^\lambda-\hat{v}(S_t,w_t)]\nabla\hat{v}(S_t,w_t) wt+1=˙wt+α[Gtλv^(St,wt)]v^(St,wt)其中 t = 0 , . . . , T − 1 t=0,...,T-1 t=0,...,T1

TD( λ \lambda λ)

TD( λ \lambda λ)通过三种方式改进了 off - line λ \lambda λ - return算法。
(1)算法在一个episode序列内每一步都会更新权重向量,而不是等到episode结束。
(2)算法的计算平均分配在整个时间轴上,而不仅仅是episode的结尾。
(3)不仅仅适用于episodic问题,也适用与continuing问题。
对于(1),其实是on-line化,也就是边采样,变更新 w w w,所以要使用能执行on - line算法的 TD error,首先目标 U t U_t Ut为: U t = R t + 1 + γ v ^ ( S t + 1 , w t ) U_t=R_{t+1}+\gamma\hat{v}(S_{t+1},w_t) Ut=Rt+1+γv^(St+1,wt)对应的TD error为: δ t = R t + 1 + γ v ^ ( S t + 1 , w t ) − v ^ ( S t , w t ) \delta_t=R_{t+1}+\gamma\hat{v}(S_{t+1},w_t)-\hat{v}(S_t,w_t) δt=Rt+1+γv^(St+1,wt)v^(St,wt)对于(2),即可增量计算,通过资格迹 z t ∈ R d z_t\in\mathbb{R}^d ztRd在采样的同时,记录当前时刻的 ∇ v ^ ( S t , w t ) \nabla\hat{v}(S_t,w_t) v^(St,wt),并通过折扣因子 γ \gamma γ和迹衰减参数 λ \lambda λ对求和项中的历史值函数梯度 ∇ v ^ ( S t − k , w t − k ) \nabla\hat{v}(S_{t-k},w_{t-k}) v^(Stk,wtk)进行衰减实现。

对于(3),Continuing化,使用Approximation方法构造近似值函数 v ^ ( S , w ) \hat{v}(S,w) v^(S,w)

在TD( λ \lambda λ)中,off-line λ \lambda λ - return的 G t λ G_t^\lambda Gtλ被替换为支持在线学习 R t + 1 + γ v ^ ( S t + 1 , w t ) R_{t+1}+\gamma\hat{v}(S_{t+1},w_t) Rt+1+γv^(St+1,wt),但是这个操作让算法失去了可调节前向视角(forward view)远近的衰减参数 λ \lambda λ,退化成了one - step TD learning。为了解决这个问题,可以将 λ \lambda λ用于优化 ∇ v ^ ( S t , w t ) \nabla\hat{v}(S_t,w_t) v^(St,wt)。已知在这之前,权重的更新公式如下: w t + 1 = ˙ w t + α δ t ∇ v ^ ( S t , w t ) w_{t+1}\dot{=}w_t+\alpha\delta_t\nabla\hat{v}(S_t,w_t) wt+1=˙wt+αδtv^(St,wt)要想重新加入迹衰减参数 λ \lambda λ,就需要梯度更新迭代式。由于 ∇ v ^ ( S t , w t ) \nabla\hat{v}(S_t,w_t) v^(St,wt) w w w维度相同,因此可以设定一个新的可表征历史梯度的,并且也与 w w w同维度的向量 z t ∈ R d z_t\in\mathbb{R}^d ztRd,其递推式如下: { z − 1 = ˙ 0 z t = ˙ γ λ z t − 1 + ∇ v ^ ( S t , w t ) , 0 ≤ t ≤ T \begin{cases} z_{-1}\dot{=}0\\ z_t\dot{=}\gamma\lambda z_{t-1}+\nabla\hat{v}(S_t,w_t),0\leq t\leq T \end{cases} {z1=˙0zt=˙γλzt1+v^(St,wt),0tT其中, γ \gamma γ是折扣系数,而 λ \lambda λ为衰减率参数。那 z t z_t zt是什么?
展开 z t z_t zt来看 z t = 1 ∗ ∇ v ^ ( S t , w t ) + ( γ λ ) ∗ ∇ v ^ ( S t − 1 , w t − 1 ) + ( γ λ ) 2 ∗ ∇ v ^ ( S t − 2 , w t − 2 ) + . . . + ( γ λ ) t − 1 ∗ ∇ v ^ ( S 1 , w 1 ) z_t=1*\nabla\hat{v}(S_t,w_t)+(\gamma\lambda)*\nabla\hat{v}(S_{t-1},w_{t-1})+(\gamma\lambda)^2*\nabla\hat{v}(S_{t-2},w_{t-2})+...+(\gamma\lambda)^{t-1}*\nabla\hat{v}(S_1,w_1) zt=1v^(St,wt)+(γλ)v^(St1,wt1)+(γλ)2v^(St2,wt2)+...+(γλ)t1v^(S1,w1)由此, z t z_t zt可以看作是( γ λ \gamma\lambda γλ)的 t − 1 t-1 t1阶多项式,即累计折扣值函数梯度,它不断记录当前时刻的值函数梯度,并且通过折扣淡化历史值函数梯度
在这里插入图片描述
TD( λ \lambda λ)的更新公式 w t + 1 = ˙ w t + α δ t z t w_{t+1}\dot{=}w_t+\alpha\delta_tz_t wt+1=˙wt+αδtzt资格迹 z t z_t zt中Trace的含义是,追踪并记录历史值函数梯度。而Eligibility的含义是,权重向量 w w w中的每个分量有多少资格接受对应的更新。
迹衰减参数和( γ λ \gamma\lambda γλ)的意义:
(1)对历史值函数梯度进行折扣,从而达到梯度短期记忆。
(2)通过值域 [ 0 , 1 ] [0,1] [0,1]来调节记忆量。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值