《强化学习Sutton》读书笔记(四)——蒙特卡洛方法(Monte Carlo Methods)

此为《强化学习》第五章。

上一节中的动态规划方法需要知道整个environment的信息,但有的时候,我们只有经验 (Experience) (比如一组采样),而对environment没有任何其他知识;或者我们有一个可以交互的黑盒,通过黑盒可以进行仿真得到experience,但具体黑盒内的概率模型也是不知道的(或者非常难以计算的)。这种情况下,动态规划方法不再适用,蒙特卡洛方法 (Monte Carlo Method, MC) 成为了新的解决方案。

蒙特卡洛估计

假设我们已经得到了一批在策略 π 下的采样,我们想以此估计每个状态的值函数 v π ( s ) 。我们定义任一采样中的任一时刻通过状态 s 叫做对状态 s 的一次访问 (Visit) 。通常有两种方法来估计 v π ( s ) 首次访问方法 (First-Visit MC Method) 以每个采样下第一次访问状态 s 时的回报的平均作为对 v π ( s ) 的估计,每次访问方法 (Every-Visit MC Method) 以每个采样下每次访问状态 s 时的回报的平均作为对 v π ( s ) 的估计。即

v π ( s ) f i r s t v i s i t = e x p G e x p , t | G e x p , t | ( S e x p , t = s , S e x p , k s , k < t ) v π ( s ) e v e r y v i s i t = e x p G e x p , t | G e x p , t | ( S e x p , t = s )

注意到 G t = R t + 1 + G t + 1 ,所以在遍历时,需要从后向前遍历求出回报 G t 。First-Visit方法和Every-Visit方法非常类似,但在理论性质上略有不同。本章主要讨论First-Visit方法,以下给出First-Visit蒙特卡洛估计方法的伪代码。

首次访问方法伪代码

蒙特卡洛方法听起来非常简单,但也已经可以用来解决一些问题了,比如21点 (Blackjack)

蒙特卡洛方法对行为值函数的估计

如果我们已知状态之间跳转的概率模型,那么上述的对状态值函数的估计就足够了,因为我们可以通过贪心算法,得到确定性的策略(即 π ( s ) = a )。但如果我们不知道状态之间的概率模型,那么我们就无法确定状态 s 能跳转到其他哪些状态。此时,对行为值函数进行估计是一种可行的方法。

对行为值函数的估计和状态值函数非常类似,它也是统计每次在状态 s 选择行为 a 得到回报的平均。类似地,它也可以分成首次访问方法和每次访问方法,表达式如下:

相关文章
相关标签/搜索