David Silver Lecture 4 (2)(Model-Free Prediction) 讲解

前言:在本节,我们首先介绍 算法。其次,我们将说明 算法的前向视角(Forward-view)以及后向视角(Backward View)。

1. 算法介绍。

上一节中介绍的 算法,指的是只通过当前这一步实际得到的反馈来更新我的value值, 即。 如果根据后续步实际得到的反馈来更新我的value值的话,则变成了算法。 算法可以表示成如下形式:

image.png

从图中我们可以看出, 中表示的是向后看的深度。如果我们将增加,一直增加到最后的终止步骤,则 算法变成了MC算法。

向后看步的返回值可以计算如下:

image.png

将向后看步的返回值书写成如下形式:

image.png

则的更新公式如下:

image.png

我们接下来面临的问题是,我们能否有效的综合性的考虑在取不同值时,所有的 ,从而更有效的利用bootstraping 来提升 value function 呢?为了解决这个问题,引出了策略。
可以用下图来说明:

image.png

考虑了所有的步返回值 \cdots G_t^{(n)},并为每一个 \cdots G_t^{(n)}分配了一个权重。 的计算公式如下所示:

image.png

利用,值函数的更新公式如下所示:

image.png

2. 算法的前向视角和后向视角。

在上述提到的 算法中,我们可以发现 被分配的权重是,, 权重的大小随着与(也可以被认为是时间)的关系以衰减,如下图所示:

image.png

为了计算,我们需要从当前状态和当前时刻开始,向后看去,得到所有的 。这就像是一个前向视角,如下图所示:

image.png

而 计算 的一个显著缺点就是, 和MC一样,也需要在完整的序列(episodes)。

为了能够在不完整的序列(episode)的情况下仍能够计算,我们考虑采用称为后向视角的方法。
在介绍后向视角之前,首先介绍一个“资格迹”(Eligibility Traces)的概念:
观察下图,到底是铃声响还是灯亮导致的闪电呢?

image.png

直观上有两种想法:1)从频率的角度取考虑,则铃响的频率更高(3/4),因此可以认为是铃响导致的闪电;2)从时间的角度考虑,则是灯亮导致的闪电。而资格迹同时考虑了上述两种想法,资格迹的计算如下:
image.png

在上图中,
可以理解成是指示函数,即
为1,否则为0。

在的后向视角中,我们保存每一个时刻和每一个状态的资格迹,在更新值函数时,同时考虑TD-error 和当前时刻对于状态的资格迹。计算公式如下:

image.png

这就像是一个后向视角,即把当前时刻当作终止时刻,回过头去看之前所有发生的状态,以及发生状态的时间,然后利用过去的状态信息来更新值函数,如下图所示:

image.png

采用资格迹进行更新值函数之后,可以证明出当时, 的值函数更新方式与采用资格迹进行值函数更新是相同的,即:

而当时, 采用资格迹进行值函数更新等价于每访MC的更新方式,即完全等价于MC的函数值更新。

下面我们讨论一下前向和后向之间的关系。
假设在一个episode中,只在时刻, 访问到了状态一次,则资格迹的更新如下式:

image.png

则后向 的进行更新的累计在线误差计算如下:

image.png

在上式中我们看出,后向的更新的累计在线误差实际上等于前向的更新的误差,再次看一下后向的更新公式:

image.png

和前向
的更新公式:
image.png

我们从上式可以看出,实际上后向是在一个episode中不断地更新累计误差,但是在最终episode结束时,取得的效果与前向 的效果相同。最终后向 与前向的关系如下图:

image.png

你可能感兴趣的:(David Silver Lecture 4 (2)(Model-Free Prediction) 讲解)