本节课主要介绍:

  • Monte-Carlo Learning
  • Temporal-Difference Learning
  • TD(λ)

Lecture03讲到了已知环境的MDP,也就是做出行动之后知道到达哪个状态及奖励,但是现实中大部分情况下状态和奖励是未知的,这种情况称为model-free,即环境模型未知。本节课探讨prediction,估计未知环境的MDP的价值函数,下节课讲control。

Monte-Carlo Learning

Monte-Carlo是不知道MDP的转移函数及奖励,直接从过去的episode中进行学习的方法。一个episode指从开始到结束:S1,A1,R1,...,Sk

  • MC学习完整的过程,没有bootstrap,也就是要等一个episode完成了,MC才开始学习。
  • 之前讲到return Gt=Rt+1+γRt+2+...+γT1RT,并且价值函数等于return的期望:vπ(s)=Eπ[Gt|St=s]。MC估计的价值等于return的平均值。平均值和期望的差别在于:平均值是一个统计学概念,是实验后根据实际结果统计得到的样本的平均值;期望是一个概率论概率,是实验前根据概率分布“预测”的样本的平均值。

MC的状态s的价值评估过程如下:
for state s in an episode:
 for time-step t:
  N(s)N(s)+1
  S(s)S(s)+Gt
  V(s)=S(s)/N(s)
V(St)还可以用以下方式进行更新:

V(St)V(St)+1N(St)(GtV(St))

在某些不稳定的问题中,可以用α更新:
V(St)V(St)+α(GtV(St))

当经过足够的循环,N(s)V(s)vπ(s)

Temporal-Difference Learning

Temporal-Difference也不知道MDP的转移函数及奖励,但是它不需要等episode结束就可以学习。
TD的目标是Rt+1+γV(St+1),是vπ(St)的无偏差估计,Gt也是vπ(St)的无偏差估计,其中Rt+1+γV(St+1)的方差比Gt低:Rt+1+γV(St+1)依赖于多次随机的动作、转移、奖励,而Gt只依赖于一次随机的动作、转移、奖励。TD的误差(error)是δt=Rt+1+γV(St+1)V(St)

比较

比较项目 Monte-Carlo Temporal-Difference
相同点 从经验池中学习;model-free; 从经验池中学习;model-free;
不同点 从完整的episode中学习,没有bootstrap;
价值=return的均值;
根据真实的return Gt更新V(St)
从不完整的episode,使用bootstrap;
基于估计的值更新另一个值;
根据估计的返回值Rt+1+γV(St+1)更新V(St)
优缺点 高方差,零误差(因为根据真实值来计算的);
具有很好的收敛效果;
对初始值不敏感;
在non-Markov环境中比较高效
低方差,有误差;
比MC高效;
TD(0)收敛到vπ(s)
对初始值更敏感;
充分利用了Markov性质,在Markov环境中比较高效

以下是MC、TD和DP的对比:
深度增强学习David Silver(四)——Model-Free Prediction

比较 MC TD DP
bootstrap:update involves an estimate no yes yes
sample:update samples an expectation yes yes no

TD(λ)

定义经过n步之后的return和价值函数:

G(n)t=Rt+1+γRt+2+...+γn1Rt+n+γnV(St+n)
V(St)V(St)+α(G(n)tV(St))

λ-return Gλt使用几何权值(1λ)λn1将所有的n-step return加起来:
Gλt=(1λ)n=1λn1G(n)t

其中权值相加等于1:
(1λ)+(1λ)λ+(1λ)λ2++(1λ)λn=1+λn1
V(St)V(St)+α(GλtV(St))

TD(λ)分为forward-view和backward-view。Forward-view TD(λ)向前看,往未来的方向更新信息,前面讲的就是forward-view。而Backward-view TD(λ)根据已发生的事情更新信息,和TD-error δt和eligibility trace Et(s)成比例。

δt=Rt+1+γV(St+1)V(St)
V(s)V(s)+αδtEt(s)

λ=0时,只更新当前状态:
Et(s)=1(St=s)

假设在一个episode中,在时间k,经过状态s,则:
Et(s)=γEt1(s)+1(St=s)={0(γλ)tkif t < k if t  k 

此时online的更新累加的error为:
t=1TαδtEt(s)=αt=kT(γλ)tkδt=α(GλkV(Sk))

TD(1)近似于Monte-Carlo,如果价值函数更新是offline,那么TD(1)就是MC。

updates分为offline和online:

  • Offline的更新在一个episode里面累加,但是只在episode结束后应用;对于offline更新的和,forward-view和backward-view TD(λ)相等:

    Tt=1αδtEt(s)=Tt=1α(GλtV(St))1(St=s)

  • Online的更新在一个episode的每一步应用。forward-view和backward-view TD(λ)略有不同。

  • Exact online TD(λ) achieves perfect equivalence.

最后总结一下forward TD(λ)和backward TD(λ)(其中相等是指在episode结束之后的更新之和相等):
深度增强学习David Silver(四)——Model-Free Prediction

相关文章:

  • 2021-06-04
  • 2022-01-08
  • 2021-12-10
  • 2021-04-07
  • 2021-10-22
  • 2022-01-22
  • 2021-11-17
  • 2021-05-18
猜你喜欢
  • 2021-10-18
  • 2021-12-19
  • 2021-05-28
  • 2021-06-14
  • 2021-11-14
  • 2021-08-30
  • 2021-08-02
相关资源
相似解决方案