深入浅出强化学习(2)

在这里插入图片描述
时间差分方法结合了蒙特卡罗的采样方法(即做试验)和动态规划方法的bootstrapping(利用后继状态的值函数估计当前值函数)。
蒙特卡罗要等到实验结束才能有Gt,太慢。
在这里插入图片描述
在这里插入图片描述
其中 R t + 1 + γ V ( S t + 1 ) R_{t+1}+\gamma V\left(S_{t+1}\right) 称为TD目标,与(4.2)中的 G t G_t 相对应,两者不同之处是TD目标利用了bootstrapping方法估计当前值函数。 δ t = R t + 1 + γ V ( S t + 1 ) V ( S t ) \delta_t=R_{t+1}+\gamma V\left(S_{t+1}\right)-V\left(S_t\right) 称为TD偏差。
比较:
蒙特卡罗的方法使用的是值函数最原始的定义,该方法利用所有回报的累积和估计值函数。DP方法和TD方法则利用一步预测方法计算当前状态值函数。其共同点是利用了bootstrapping方法,不同的是,DP方法利用模型计算后继状态,而TD方法利用试验得到后继状态。
在这里插入图片描述
TD如何利用实验得到后续状态?

  • 优点:
    蒙特卡罗方法每次得到的G_t 值要等到最终状态出现,在这个过程中要经历很多随机的状态和动作,因此每次得到的G_t随机性很大,所以尽管期望等于真值,但方差无穷大。
    具体实现:
    在更新当前值函数时,用到了下一个状态的值函数。那么我们可以以此推理,能不能利用后继第二个状态的值函数来更新当前状态的值函数呢?

答案是肯定的,那么如何利用公式计算呢?

我们用 G t ( 1 ) = R t + 1 + γ V ( S t + 1 ) G_{t}^{\left(1\right)}=R_{t+1}+\gamma V\left(S_{t+1}\right) 表示TD目标,
则利用第二步值函数来估计当前值函数可表示为: G t ( 2 ) = R t + 1 + γ R t + 2 + γ 2 V ( S t + 1 ) G_{t}^{\left(2\right)}=R_{t+1}+\gamma R_{t+2}+\gamma^2V\left(S_{t+1}\right)
以此类推,利用第n步的值函数更新当前值函数可表示为:
G t ( n ) = R t + 1 + γ R t + 2 + + γ n 1 R t + n + γ n V ( S t + n ) G_{t}^{\left(n\right)}=R_{t+1}+\gamma R_{t+2}+\cdots +\gamma^{n-1}R_{t+n}+\gamma^nV\left(S_{t+n}\right)
对这n个估计值利用加权的方法进行融合一下呢?这就是 T D ( λ ) TD\left(\lambda\right) 的方法。
在这里插入图片描述
V ( S t ) V ( S t ) + α ( G t ( λ ) V ( S t ) ) V\left(S_t\right)\gets V\left(S_t\right)+\alpha\left(G_{t}^{\left(\lambda\right)}-V\left(S_t\right)\right) (4.4)

其中 G t λ = ( 1 λ ) n = 1 λ n 1 G t ( n ) G_{t}^{\lambda}=\left(1-\lambda\right)\sum_{n=1}^{\infty}{\lambda^{n-1}}G_{t}^{\left(n\right)} ,而 G t ( n ) = R t + 1 + γ R t + 2 + + γ n 1 R t + n + γ n V ( S t + n ) G_{t}^{\left(n\right)}=R_{t+1}+\gamma R_{t+2}+\cdots +\gamma^{n-1}R_{t+n}+\gamma^nV\left(S_{t+n}\right)
但是, G t λ G_{t}^{\lambda} 的计算用到了将来时刻的值函数,因此需要等到整个试验结束之后。这跟蒙塔卡罗方法相似.

假设当前状态为 s t s_t ,TD偏差为 δ t \delta_t ,那么 s t 1 s_{t-1} 处的值函数更新应该乘以一个衰减因子 γ λ \gamma\lambda ,状态 s t 2 s_{t-2} 处的值函数更新应该乘以 ( γ λ ) 2 \left(\gamma\lambda\right)^2 ,以此类推。
在这里插入图片描述
Sarsa既是这种算法。

猜你喜欢

转载自blog.csdn.net/yagreenhand/article/details/88600842