【David Silver强化学习公开课】-4:Model-Free Prediction

一、介绍

无论是价值迭代还是策略迭代,都是在已经知道MDP模型(也就是动态转移矩阵P和奖励R)的前提下用DP的方式进行控制。那么如果对模型的这些属性并不了解,要如何进行预测和控制呢?

本节主要讲几种方法来进行无模型前提下的策略评估(model-free policy evaluation)。

二、Monte-Carlo RL方法

Episodic MDP: 所有的行为序列都在有限步终止。

MC方法从已有的完整经验片段(complete episode of experience)或者说History中采样,这些片段都是采用策略π的,那么MC方法使用经验平均return来代替期望return,用这种方式来估计策略π下的状态价值函数 vπ

  • First-Visit MC Policy Evaluation,仅仅计算每个片段第一次到达某个状态时return的平均值。
  • Every-Visit MC Policy Evaluation,计算每个片段每次到达某个状态时return的均值。

一个递增式的均值计算公式, μk=μk1+1k(xkμk1) μk=μk−1+1k(xk−μk−1)

所以,MC-Policy-Evaluation的更新公式可以表示为(这个公式中的α是 1k 1k的一种变形,可以看做是一种衰减系数),这种公式下的方法叫做Incremental-MC:

V(St)V(St)+α(GtV(St)) V(St)←V(St)+α(Gt−V(St))
三、Temporal-Difference Learning

TD也是一种Model-Free的方法,但是它可以从不完整的片段中学习。

下面介绍一种最简单的TD方法,TD(0)。

它同Incremental-MC相比,把公式中的实际回报 Gt Gt变成了估计回报 Rt+1+γV(St+1) Rt+1+γV(St+1),而这个估计回报在TD中被叫做TD target,估计回报和现在价值的差被称为 δt δt:TD error。

V(St)V(St)+α(Rt+1+γV(St+1)V(St)) V(St)←V(St)+α(Rt+1+γV(St+1)−V(St))

TD和MC的区别,可以通过一个例子来说明。假设,你现在按照某种方式(策略π)在做一件事情,会尝试很多次(有很多Episode),这件事情中一共要经历几个阶段(状态),每次行动之后你会获得一个效果评价(R)。

现在你用MC的方式对做这件事情的方式(策略π)进行评估,首先你找到了其中一次你做这件事情的整个流程(初始状态,行动1,状态1,效果1….,最终状态),而后你在评估每一个阶段(状态)的时候,都看向一遍整个过程,看看这个状态之后在整个过程里你能获得怎样的平均收益(因为是用 Gt Gt来评估的)。

如果你用TD的方式进行评估,那么你只需要找到(状态t,行动t,效果t)就能够更新你对某个阶段(状态)的评估了,因为你评估的时候,只会向后看一步,以我对这些阶段(状态)的了解,用这个阶段(状态)后面可能到达的阶段(状态)来评估这个状态的好坏。也就是在做事情的时候,你每走一步,都可以根据外界对你这一步的效果评价,更新你对每个阶段的评价(也就是更新你对你做事情的方式的评价)。

MC的估计方式,估计的过程中不会出现偏差,但是比较慢。

TD的估计方式,在估计的过程中会出现一些偏差(毕竟事情还没有完全做完就评估了),但是拥有更低的方差【这里没看懂。。】。

TD利用了马尔科夫性质而MC没有,因此在不具备马尔科夫性质的问题中,MC更适合。

bootstrap:在更新值的过程中是否使用了估计值。如果你向前走了n步,没有走到最后就更新参数,那么就是使用了bootstrap。

MC没有bootstrap过程而DP和TD都有。

四、TD(λ)

另一种扩展TD方法的方式是,每次使用向前走n步(而不是上一节中的1步),这时的TD target变成了下面的样子:

G(n)T=Rt+1++γRt+2+...+γn1Rt+n+γnV(St+n) GT(n)=Rt+1++γRt+2+...+γn−1Rt+n+γnV(St+n)

更进一步,把向前n步的估计return结合起来加权求和,得到一个新的估计return,然后用这个估计作为TD target,这就是TD(λ)的思想。

Gλt=(1λ)n=1λn1G(n)t Gtλ=(1−λ)∑n=1∞λn−1Gt(n)

当然,TD(λ)需要在一个complete episode中进行。

从backward view的角度来看,TD(λ)相当于使用了MC方法的TD error: δt δt,并在此基础上给予每个状态一个能量等级,这个状态最近出现的越频繁,这个能量等级就越高。

Et(s)=γλEt1(s)+1 Et(s)=γλEt−1(s)+1
V(s)V(s)+αδtEt(s) V(s)←V(s)+αδtEt(s)

λ=1时,且在Offline-updates的前提下,TD(λ)等价于Every-Visit-MC。

疑问:

  • 为什么说TD(λ)可以在TD(0)相似的时间开销下完成,感觉要慢很多啊。
  • 为什么λ=0时,TD(λ)等价于TD(0)。

原文地址: http://cairohy.github.io/2017/08/31/deeplearning/%E3%80%8ADavid%20Silver%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%85%AC%E5%BC%80%E8%AF%BE%E3%80%8B-4%EF%BC%9AModel-Free%20Prediction/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值