7-TD-learning(上半部分)

7-TD-learning(上半部分)

Motivating example 例子1

Motivating example

例子1

image-20231222161334616

提出一个问题,有一个random variable X , 我们需要求他的期望,应该怎么求

image-20231222161645070

  • 首先对X进行采样得出了一个x

  • 然后设一个函数g(w) = w - E[X] = 0

  • 然后直接取一个x代表E[X],那么就可以得到了image-20231222161858997

  • 这里面就相当于一个g(w) + n,n就是噪声

  • 然后再使用RM算法,就可以求出E[X]

例子2

image-20231222162104735

在例子2中,给X先做了一次函数映射,然后再求期望

image-20231222162213152

实际上和上面的情况是一样的,因为加不加这个函数映射,我们使用都是先对x进行采样后再计算RM

如果这个V()我们是知道的,那么和第一步就没有区别了

例子3

image-20231222162329981

接下来又两个随机变量,这其中R和X都是随机变量

image-20231222162430239

总的思路流程与上面还是一样的,只不过多做了一次采样,也就是从R中采样出r

TD learning of state values

image-20231222162954899

当给定了一个Policy之后,我们会得到一个集合包括了当前状态,当前reward和下一状态

image-20231222163037877

TD learning of state value算法中

image-20231222163116848

Vt(st)指的是在t时刻,对于state value V(s)的一个预估值

image-20231222165453441

这个部分是用于被访问的单元更新Vt+1时刻的state value

image-20231222165528090

这个部分是用于没有被访问的单元,在t+1时刻的state value是保持不动的

公式详解

image-20231222165719426

image-20231222165802018

image-20231222165813026

本质上就是用当前估计量(current estimate)减去一个TD error就可以得到一个新的估计量

TD target

image-20231222170326942

TD target将会让算法朝着正确的方向引导

这个方程经过变形后就描述了Vt和Vt- 之间的差值

因为image-20231222170337755所以Vt和Vt-之间的差值会越来越小

TD error

image-20231222170633347

这两个量的时间不同,一个是t一个是t+1,所以才会被成为时序差分(TD)

image-20231222170746898

他也反映了Vt和VΠ(最终期望值)之间的误差

image-20231222170954836

image-20231222171003935这个部分是估计下的state value

image-20231222171043623这个部分是一个实际的state value(这里实际上就是一个贝尔曼公式)

如果估计值与实际值已经相同,也就是已经收敛了,那么这个TD error就应该要为0

所有这里的TD error就说明了Vt和VΠ之间的不一致

image-20231222171534870

TD error 可以解释为创新,即从经验中获得新的信息(St,Rt+1, St+1)

其他基本性质

image-20231222173727940

  • 在这里的TD算法只是为了估计state value,所以只是在做Policy Evaluate

  • 不能用来估计action value

  • 也不能用来查询最优策略

从数学上分析TD算法

image-20231222173942104

本质上是在求解一个给定了Policy的贝尔曼公式,并且是在没有模型的情况下进行求解,也就是在没有模型的情况下求解state value

image-20231222184622841

贝尔曼公式的用处是用于求解state value,然后在上面的公式则是一个state value基于定义的最根本求解方法

就是当前的reward加上,跳到下一个状态之后的一个discounted return,然后对他们求一个期望

image-20231222185013013

上面的部分可以拆解成两个部分,E(R)与E(G)

对于E(G)其实也就是对s的下一状态,如果下个状态是s',则对s'的state value求一个期望

image-20231222190351032

这样就得到了一个Bellman expectation equation,本质上TD 算法就是来求解一个这样的贝尔曼公式

image-20231222190552945

求解

image-20231222190835136

如果这个地方的g(v(s))=0,则说明v(s) = Bellman expectation equation,那么就说明v(s) = vΠ(s)

image-20231222191040194

通过对R和S'的采样,就得到了用于求RM算法的一个g()

image-20231222191152137

image-20231222191226862

在这个方法从,从不同的state出发要进行反复的采样

用于计算时,我们需要知道这个VΠ(Sk'),但是我们是没法知道这个真值的

问题解决

image-20231222191503091

对于问题一,将采样替换为一个序列,从S出发后直接得到一个trajectory,然后如果在这个trajectory中访问到了S,就重新更新一下S,如果不访问到S,那么S的估计值就保持不动

对于问题二,使用一个估计值Vk(S'k)来进行估计

严格收敛证明

image-20231222192334921

与MC learning进行比较

image-20231222192611272

TD学习是在线的。它可以在收到奖励后立即更新状态/行动值。

image-20231222192749132

TD因为会直接使用还没有收敛的数据,所以其实是一个有偏估计,但是随着数据量的增加,也会逐渐的抵消掉这些偏差,所以最后也会收敛

Comment