usestate函数式更新_5.6 增量式实现

所有基于采用均值(sample-average)方法都有两种实现方式:一种是先得到所有的采样值,最后一次性的估计值函数,我们称之为批方法或者off-line的方法。另一种是得到一条采样轨迹就更新一次,称为增量式方法或者online的方法。在2.4中我们讲了他们的利弊以及如何实现增量式方法。本节继续探讨这个话题,只是这里考虑的是离策略方法。由于离策略采用了重要性采样的技巧,形式上有所不同,因此增量实现更新的时候,也有所不同。上一节我们说到离策略的有两种不同的采样比,常规的和加权的。对应的增量实现也分两种情况考虑。

常规重要性采样的增量式实现

对于off-policy的方法,需要重要性采样来纠正行为策略采样带来的偏差。对于常规重要性采样,就是在正常回报的基础上乘以放缩因子

。然后求均值。对比2.4节,可以发现他们求均值的方式完全相同,区别只是回报经过了放缩。因此增量式版本中,他们的更新公式也类似,即:

具体推导参考2.4节。

加权重要性采样的增量式实现

当值函数的估计是采用加权重要性采样比的时候,即

.
表示一个序列的回报,
是相应的权重,比如
。当我们得到一个新的
的时候,如何更新
呢?为了实现这个目的,我们需要引入一个新的变量
,它表示对于每个状态截止当前时刻权重的累计和,即
,递推公式就是:
。有了这个变量,可以证明值函数的更新表达式如下:

我们可以简单验证下这个表达式:

虽然我们推到过程都是基于离策略的,但是这些结论同样适用于在策略的情况。此时只需要让行为策略和目标策略一样就行,对应的权重

始终等于1.

增量式离策略MC预测算法

学习了MC算法,学习了对于离策略的重要性采样技术,在加上增量更新机制,我们就可以得到一个完整的离策略MC预测算法,伪代码如下:

2faad7a39522b070ea5893dbd26084e8.png

主要有两个大循环,一个是在每个episode之间循环,一个是在episode里面循环。在每个episode里面的时候,我们会对每个访问到的状态动作对进行一系列更新操作,主要有:

  • 计算折扣累积回报
  • 计算累积权重和
    和权重更新
  • 增量式值函数更新,公式5.8

注意:我们的计算是倒着来的,这是一个小的trick,这样有利于我们编程实现,而且计算量小。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值