上一节介绍了如何利用MC方法来估计状态值函数。具体的我们给出两个算法:first-visit算法和every-visit算法。但是我们要清楚一个事实,如果不知道模型转移概率
MC方法估计动作值函数
其实用MC方法估计动作值函数和估计状态值函数基本都是一样的。也是采样轨迹,求均值。但是不同的是我们记录的是从某个状态动作对(state action pair)之后的累积回报,然后求均值。这很自然啊,毕竟估计的是
尽管估计动作值函数和估计状态值函数基本一致,但有一个特别的地方。那就是在估计动作值函数时,有可能出现某些状态动作对从来不会被访问到。为什么会这样呢?举个极端点的例子,如果我们的策略
如何解决这个问题呢?一个最简单的办法就是让我们每次采样轨迹的初始状态动作对以非零的概率覆盖到所有的状态动作空间。这样即使中间某些动作状态对没有被访问,至少初始条件保证他们都会出现,而且采样的episode越大,每个状态动作对出现的次数也越来越多。我们把这个假设叫做探索性开端(exploring starts)。
基于exploring starts的方法在仿真中可行,但是要是通过实际交互收集样本。这样的假设就未必能满足了。所以最普遍的做法是只考虑随机策略,而且随机策略能够保证以非零概率选择所有状态动作对。
小结
介绍了估计动作值函数的原因以及如何估计它。基本上和上一节的方法相同,特殊之处在于在估计动作值函数会出现某些状态动作对从来不被访问到的情况,从而使MC方法失效。我们提出了exploring starts的假设来解决这个问题。下一节介绍如何利用MC方法求解最优策略。