前面两章都假设我们已知MDP的分布p(s'r|s,a)(model),但有时这一点难以做到,或者说这种Markov假设可能是不合理的,那么我们只能从真实/模拟环境中去获取这些知识。蒙特卡洛方法只需要经验知识,即:来自线上或者模拟环境交互过程的样本序列(包括状态序列、动作序列、奖励序列)。“蒙特卡洛”这个词被广泛用在利用大量随机元素作估计的地方。在这里我们用它来表示基于完全return平均值的方法。
Monte Carlo(MC)
蒙特卡洛方法是用样本分布代替总体分布,估计一些总体分布的参数。
简单来说,就是假设想知道一些真实分布的一些信息,比如期望,或函数的期望,如果我们不知道真实分布的表达式,或者知道,但是很难推导求解,就需要模拟出一批样本,再做平均,虽然有误差,可只要样本量足够大,根据大数定律还是收敛的。
蒙特卡洛方法的使用条件
· 环境是可模拟的 在实际的应用中,模拟容易实现。相对的,了解环境的完整知识反而比较困难。由于环境可模拟,我们就可以抽样。
· 只适合情节性任务(episodic tasks) 因为,需要抽样完成的结果,只适合有限步骤的情节性任务。
蒙特卡洛方法的优势与劣势
蒙特卡洛方法在强化学习中的基本思路
MC估算value function
蒙特卡洛方法在强化学习中的应用
只要满足蒙特卡洛方法的使用条件,就可以使用蒙特卡洛方法。 比如:游戏类都适合:完全信息博弈游戏,像围棋、国际象棋。非完全信息博弈游戏:21点、麻将等等。
蒙特卡洛方法实例:blackjack
blackjack游戏逻辑定义及预设policy
作为玩家,只有hit和stick两种action,其进行决策只需考虑如下三点:
玩家手头是否有A牌,且能叫为11点而不爆牌;
手头牌面值和在12-21范围,0-11则不需考虑,因为无论抽到什么牌都不可能爆牌,故一定是hit;
庄家的明牌,1,…10(J,Q,K都是10);
所以共有2*10*10=200个state,故policy表和value表就是2*10*10的。
Monte Carlo Sample with On-Policy
Monte Carlo with Exploring Starts
Monte Carlo Sample with Off-Policy
实验结果