此为《强化学习》第五章。
上一节中的动态规划方法需要知道整个environment的信息,但有的时候,我们只有经验 (Experience) (比如一组采样),而对environment没有任何其他知识;或者我们有一个可以交互的黑盒,通过黑盒可以进行仿真得到experience,但具体黑盒内的概率模型也是不知道的(或者非常难以计算的)。这种情况下,动态规划方法不再适用,蒙特卡洛方法 (Monte Carlo Method, MC) 成为了新的解决方案。
假设我们已经得到了一批在策略
下的采样,我们想以此估计每个状态的值函数
。我们定义任一采样中的任一时刻通过状态
叫做对状态
的一次访问 (Visit) 。通常有两种方法来估计
。首次访问方法 (First-Visit MC Method) 以每个采样下第一次访问状态
时的回报的平均作为对
的估计,每次访问方法 (Every-Visit MC Method) 以每个采样下每次访问状态
时的回报的平均作为对
的估计。即
注意到
,所以在遍历时,需要从后向前遍历求出回报
。First-Visit方法和Every-Visit方法非常类似,但在理论性质上略有不同。本章主要讨论First-Visit方法,以下给出First-Visit蒙特卡洛估计方法的伪代码。
蒙特卡洛方法听起来非常简单,但也已经可以用来解决一些问题了,比如21点 (Blackjack) 。
如果我们已知状态之间跳转的概率模型,那么上述的对状态值函数的估计就足够了,因为我们可以通过贪心算法,得到确定性的策略(即 )。但如果我们不知道状态之间的概率模型,那么我们就无法确定状态 能跳转到其他哪些状态。此时,对行为值函数进行估计是一种可行的方法。
对行为值函数的估计和状态值函数非常类似,它也是统计每次在状态
选择行为
得到回报的平均。类似地,它也可以分成首次访问方法和每次访问方法,表达式如下: