强化学习(五):蒙特卡洛方法
之前我们讲的都是model-based的方法,现在我们要讨论model-free的方法。在去掉模型时,我们要考虑的就是如何不用模型去估计一些量。这里最简单的思想就是蒙特卡洛估计。
假设我们有这么一个例子:投硬币。假设正面朝上X=1;负面朝上X=-1,我们希望计算E(X)。那么这里就有两种方法:
1.model-based。也就是说我们知道这个正反面的概率,即P(X=1)=P(X=-1)=0.5,这样就能轻松算出E(X)。可是这样的精确的概率模型大部分时候是没法知道的,所以我们也可以用第二种方法。
2.model-free。基本思想就是我做很多实验或者采样,得到了一个序列{x1,x2,……,xn},这样均值就可以近似为:
这就是最基本的关于蒙特卡洛(Monte
Carlo,MC)的思想。由此,我们将讲述三种算法:MC Basic,MC Exploring
Starts,MC Epsilon(
MC Basic
要理解这个算法,核心是如何把policy
iteration中的model-based模块替换掉,转化成model-free的。我们知道policy
iteration分为两部分:一个是PE,一个是PI。在PI中,我们要更新策略,需要知道q值。因此,最重要的一步就是求解
·1. 基于模型的表达式:
1.从(s,a)开始,根据策略
2.得到这个episode的return,记作g(s,a)。这个g(s,a)便是
3.我们得到了一组episodes和
·Step 1:policy evaluation。
在这一步中,我们对每一个action-state pair(s,a)运行许多episodes,根据均值来估计q值。
·Step 2:policy improvement。
在这一步中,我们根据获得的q值更新greedy optimal policy。
这个算法和policy iteration algorithm很像,不同在于后者要求解
实际上MC Basic algorithm效率太低了(这是老师独自提的概念),他只是一个最核心的想法,并不足以应用到实践。在这个算法中,我们并不需要估计state value,否则又要依赖于模型去解action value了。
要估算q值,我们要采样episodes然后对return求平均。对于我们的grid world,episode length只有充分长才能让所有状态达到目标;如果太短,只有接近target的state会有正的value。
MC Exploring Starts
这个算法是对MC
Basic的推广,动机是为了更有效地利用数据。考虑以下的一个episode:
在更新策略方面,也有两种方法。在MC-Basic里,我们是等待所有episode都出来后再估计平均return,这个等待的过程会有时间的耗费。第二种方法是得到一个episode后就改进策略,从而得到效率提升。下面是一段伪代码:
之前介绍过的这种思想框架都叫做GPI(generalized policy
iteration)。在这段伪代码中,我们是从后往前算return。还是考虑下面的过程:
exploring starts中的exploring是指我们要探索每一个action,因为可能会有action是最优的却被忽略了,那么这就使得我们必须explore每一个(s,a)出发的episode。当然了,我们也可以visit其他的(s,a)来获得当前的(s,a),但是这是依赖于策略和环境的,有可能访问不到当前(s,a)。为了解决这种问题,我们要引入soft policy,以及之后介绍的算法。
MC Epsilon( )-Greedy
soft
policy简而言之就是对每一个action都有可能去选择。我们说对一个state,采取的action可以是deterministic的也可以是stochastic的。这个算法便是stochastic的。假如我们的episode足够长,那么只要从一个或几个state-action
pair出发,就能经过所有的state-action。Epsilon(
对于这个算法,如果
这个和前一个算法是基本一模一样的,一个是最优策略,一个是用的是every-visit,因为对于非常长的episode,很多state-action pair实际被访问了很多次,但只做一次估计的话是很浪费的。