visit函数_5.2 基于MC方法的动作值函数估计

上一节介绍了如何利用MC方法来估计状态值函数。具体的我们给出两个算法:first-visit算法和every-visit算法。但是我们要清楚一个事实,如果不知道模型转移概率

,
光有状态值函数是无法确定一个策略的(回忆3.6节中我们讲了,已知
,求最优策略时需要进行一步搜索,即
,如果
不知道,这个过程就没法做,所以得不到策略)。而我们强调了MC方法的特点就是不需要模型, 所以忙了半天没有用,这怎么办呢?既然状态值函数不行,那就估计动作值函数呗。毕竟知道了动作值函数就可以直接指导决策了。本节就是介绍如何用MC方法估计动作值函数。

MC方法估计动作值函数

其实用MC方法估计动作值函数和估计状态值函数基本都是一样的。也是采样轨迹,求均值。但是不同的是我们记录的是从某个状态动作对(state action pair)之后的累积回报,然后求均值。这很自然啊,毕竟估计的是

。对应的first-visit算法和every-visit算法含义也一样,在此不做赘述。

尽管估计动作值函数和估计状态值函数基本一致,但有一个特别的地方。那就是在估计动作值函数时,有可能出现某些状态动作对从来不会被访问到。为什么会这样呢?举个极端点的例子,如果我们的策略

是一个确定性策略,这就意味着在一个特定的状态
只会有有一个特定的动作
被选择。对于状态对
出现的概率就为0了。这就麻烦了,因为我们得不到任何
状态下执行其他 动作
的反馈。我们就没办法在当前状态决策了。这个问题称为持续探索(maintaining exploration)问题。

如何解决这个问题呢?一个最简单的办法就是让我们每次采样轨迹的初始状态动作对以非零的概率覆盖到所有的状态动作空间。这样即使中间某些动作状态对没有被访问,至少初始条件保证他们都会出现,而且采样的episode越大,每个状态动作对出现的次数也越来越多。我们把这个假设叫做探索性开端(exploring starts)。

基于exploring starts的方法在仿真中可行,但是要是通过实际交互收集样本。这样的假设就未必能满足了。所以最普遍的做法是只考虑随机策略,而且随机策略能够保证以非零概率选择所有状态动作对。

小结

介绍了估计动作值函数的原因以及如何估计它。基本上和上一节的方法相同,特殊之处在于在估计动作值函数会出现某些状态动作对从来不被访问到的情况,从而使MC方法失效。我们提出了exploring starts的假设来解决这个问题。下一节介绍如何利用MC方法求解最优策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值