Reinforcement Learning_By David Silver笔记四: Model Free Prediction

本文介绍了在模型未知的MDP问题中,如何进行价值函数预估。主要探讨了蒙特卡洛学习(MC)的首次访问和每次访问策略评估,以及时序差分学习(TD)的基本思想和TD(λ)算法。MC方法直接从经验中学习,而TD则通过bootstrapping进行更新,两者在更新时机和误差方面有所不同。TD(λ)结合了不同步长的return,提供更稳定的更新策略。
摘要由CSDN通过智能技术生成

前面的动态规划主要用来解决model已知的MDP问题,这里主要解决model/环境未知时的MDP预估价值函数问题,方法主要有:
MC方法:不需要知道转移矩阵或回报矩阵,在非马尔科夫环境中高效
时序差分方法:

Monte-Carlo Learning

  1. 直接从experience的episode中学习
  2. 不需要MDP的transition、rewards
  3. 主要思想:value = mean return,即反复测试求平均
  4. 不使用bootstrapping

由于每一步的reward都知道,则意味着每一步的return Gt都可以计算出来。因此,通过反复测试,这样很多状态就会被遍历到,而且不止一次,那么每次就可以把在状态下的return求取平均值。当episode无限大时,得到的数据也就接近于真实的数据。Monte-Carlo方法就是使用统计学的方法来取代Bellman方法的计算方法。

有两种访问次数的记录方式,一种是在一个episode中只记录第一次访问到的s,一种是一个episode中每次访问到s都记录下来。

First-Visit Monte-Carlo Policy Evaluation

Every-Visit Monte-Carlo Policy Evaluation

增量均值


Temporal-Difference Learning

  1. 直接从experience的episode中学习
  2. 不需要MDP的transitions、rewards
  3. 通过bootstrapping从不完整的episode中学习 ,通过估计的方法引导计算。
  4. 每一步都可以更新,这是显然,也就是online learning,学习快
  5. 从一个猜测更新到另一个猜测
  6. 可以面对没有结果的场景,应用范围广

MC和TD区别


MC: 根据真实的 reward Gt更新 V(St)
TD: 根据估计的return更新V(st), 估计return

平衡Bias/Variance是机器学习比较经典的一个问题,bias是指预测结果与真实结果的差值,variance是指训练集每次预测结果之间的差值,bias过大会导致欠拟合它衡量了模型是否准确,variance过大会导致过拟合衡量了模型是否稳定。

TD算法的相对缺点:因为TD target是估计值,估计是有误差的,这就会导致更新得到value是有偏差的。很难做到无偏估计。

TD算法的相对优点:TD target 是每一个 step 进行估计的,仅最近的动作对其有影响,而 MC 的 result 则受到整个时间片中动作的影响,因此 TD target 的方差 variance 会比较低,也就是波动性小。
这里写图片描述

这里写图片描述

MC TD和DP的比较

上面的图是用Policy Evaluation解决强化学习问题的一些算法的区别与相关性,最左边的竖线表示如果考虑了所有的可能发生的情况那么就是动态规划,如果只考虑了部分采样那么就是时序差分。下面的横线表示如果考虑了一次episode中全部的动作就是Monte-Carlo,如果只考虑部分动作就是时序差分。如果又考虑全部情况又考虑每一种情况的全部动作就是穷举

TD(λ)

思想
TD(0): 在某个状态S下执行某个动作后转移到下一个状态S′时,估计S′的return再更新S。
若S之后执行2次动作转移到S′′时再返回来更新S的值函数,那么就是另外一种形式,从而根据step的长度n可以扩展TD到不同形式,当step的长度达到episode的终点时就变成了MC,从而得到统一公式如下:
Gn=Rt+1+γRt+2+⋅⋅⋅+γn−1Rt+n+rnV(St+n)

V(St)=V(St)+α(G(n)t−V(St))

TD(λ): 若将不同的n对应的return平均一下,就能获得更加鲁邦的结果,而为了有效地将不同return结合起来,对每个return都赋予了一个权重1−λ,(1−λ)lambda,⋅⋅⋅,(1−λ)λn,参数是lambda,这样又可以得到一组更新value function公式:
Gλt=(1−λ)∑n=1∞λn−1Gnt

V(St)=V(St)+α(Gλt−V(St))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值