动态规划、蒙特卡洛、时序差分、n步bootstrap方法小总结

所有的方法都遵循广义策略迭代(即,广义上的策略评估和策略提升过程)

方法是否bootstrap是否基于模型实现方式
动态规划1.策略迭代2.价值迭代
蒙特卡洛1.蒙特卡洛ES 2.on-policy实现 3.off-policy实现
时序差分1.on-policy实现(sarsa) 2.off-policy实现(q-learning)
n步bootstrap1.on-policy实现(n步sarsa) 2.off-policy实现(n步q-learning)

1. 动态规划(DP)方法(bootstrap方法)

动态规划假设模型已知(即,状态转移概率已知)。这使得该方法有一个特点,就是知道某一个状态s,可以列出所有动作采取后的下一个状态。意味着,使用价值函数V就是进行策略评估和策略提升。
动态规划又可以利用策略迭代和价值迭代两种方法实现。其实这两种方法是同一种方法,价值迭代是一种策略迭代的特殊形式

  1. 策略迭代通过先评估当前策略的价值,待价值收敛后,利用贪心方法进行策略提升。
  2. 价值迭代评估当前策略价值,只评估一次(不需要一直评估到收敛)。然后利用贪心方法进行策略提升。

bootstrap方法是指你在评估一个状态价值V的时候,是否会使用到你评估的其它状态的价值,如果会使用到,则是bootstrap方法,反之,则不是bootstrap方法。
动态规划的评估价值公式如下,很明显在评估Vπ(s)的时候使用到了Vπ(s’)。因此该方法是bootstrap的。这就存在着bootstrap误差,应该你评估时,使用到了估计的结果Vπ(s’),而Vπ(s’)由于是评估的,存在误差,因此最终评估的Vπ(s)也是存在误差的。但是动态规划可以在收敛后,消除这个误差。
在这里插入图片描述

2. 蒙特卡洛方法(不是bootstrap方法)

蒙特卡洛方法是指使用样本来评估价值,针对于回合任务。每次与环境交互得到一个回合的状态、动作、奖励序列。
蒙特卡洛方法由于是假设不知道模型的(模型不可用),因此,不能向DP一样计算价值函数V了,而是需要计算动作价值函数q,这里稍微解释一下为什么。原因是:由于动态规划已经知道模型(模型可用),即它知道在s状态下采取动作a会到达的下一个状态s’是什么(因此可以计算V(s’)),然后它可以通过r(s,a)+V(s’)计算出这个动作的价值,我们只需要按这个公式计算出所以动作的价值,选择最大动作当作新策略。但是假如模型是不可用的,那么我们在状态s采取a的下一个状态是什么是无法知道,即我们无法知道下一个状态s‘是什么,进而就无法求解r(s,a)+V(s’)。所以蒙特卡洛希望在估计的时候直接估计q(s,a)而不是估计v(s)。q(s,a)表示在状态s采取动作a的价值。如果我们估计了q(s,a),那么我们对于状态s,不需要知道下一个状态s’,直接比较所有动作的q(s,a),然后取最大q值得动作就行了。
蒙特卡洛方法不是bootstrap的
蒙特卡洛方法我们可以对采取确定性策略和不确定性策略进行划分。
确定性策略方法:蒙特卡洛ES(试探性出发,即随机初始化状态动作对方法)
在使用确定性策略的时候,在策略评估时,对于同一个状态,无论访问多少次该状态,采取的动作都是同一个,这就使得无法对该动作求期望,这使得无法进行根据经验来改善动作价值函数,因此,我们可以随机初始化状态动作对,然后在利用确定性策略从该状态动作初始对开始进行采样。由于是随机初始化状态动作对,因此无限个回合,能保证有无限个状态动作对,这能保证所有状态动作对都一定会被取到(因为初始化时候就取到了)。之所以说是on-policy,是因为
不确定性策略方法:不确定性策略指的是行为策略(采样策略),因此,根据评估策略是否是行为策略,可以分为on-policyoff-policy方法实现。
(1)on-policy方法实现。由于采样策略是行为策略,我们目标评估是时候也是基于该行为策略,具体的体现就是,我们使用行为策略采用后,目标评估的时候,使用的是行为策略采样得到的样本计算目标价值。
(2)off-policy方法实现。由于行为策略和评估策略不同,而我们又是通过样本来评估,因此需要使用重要性采样的方法进行评估。这里的行为策略一般是 ϵ− 贪心策略。而评估策略是贪心策略。

时序差分方法(bootstrap方法)

实际上和动态规划非常像。只不过没有模型,需要通过采样来评估。
策略更新方式如下(增量式更新)。很明显需要使用到t+1时刻的状态评估值V(St+1),故是bootstrap的方法
在这里插入图片描述
我们上面蒙特卡洛方法的时候已经说了,由于时序差分方法解决的也是无模型的问题。因此,实际上不会对上面的公式价值进行评估,而是对动作价值q进行评估。
在实现上,我们可以分为on-policyoff-policy方法实现。
(1)on-policy的实现称为sarsa。sarsa是在评估目标价值的时候,使用的是行为策略采样的动作对于的q值。
(2)off-policy的实现称为“q-learning”。在评估目标价值的时候,使用的是贪心的更新方式。

n步bootstrap

这个没什么好讲的。
就是蒙特卡洛方法和时序差分方法的一个结合。
时序差分的sarsa可以看做是1步的bootstrap一种,n步就是先蒙特卡洛走n步,然后再使用时序差分预测。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值