强化学习-蒙特卡洛方法预测动作值

给一个策略π,预测 qπ。在动态规划中,我们可以使用状态值函数获取动作值函数:

20180701133847

你认为在这里也可以采用相同的流程吗?答案是不能,该方程P(s’,r|s,a)部分,表示环境的一步动态特征,智能体在动态规划设定下知道这些信息,但是在强化学习设置下并不知道这些动态特性,因此我们不能像之前一样直接应用该方程,为了获取动作值,我们需要对预测算法进行小小的改动。看看前面的

X,上,-2,Y,下,0,Y,下,3,Z

Y,下,2,Y,下,1,Y,下,0,Z

Y,下,1,X,上,-3,Y,下,3,Z

假设智能体在每个时间步,都根据策略选择与环境互动的动作,这些是互动后产生的三个阶段。但是现在,为了获得动作值,我们不再查看每个状态的经历,而是查看每个潜在状态动作对的经历,然后计算每个状态动作对之后的回报,并像之前一样取平均值。

X,上,-2,Y,下,0,Y,下,3,Z           ====》 -2 + 0 + 3 =1

Y,下,2,Y,下,1,Y,下,0,Z                                                           ===》  1+0/2 = 1/2

Y,下,1,X,上,-3,Y,下,3,Z          =====》-3 + 3 = 0

在这种情况下,状态X和向上动作的动作估值为1/2, qπ(X,上)约等于1/2

然后按照同一流程评估状态Y和向下动作,你将发现该状态对在每个阶段出现了多次,为解决这个问题,我们再次需要定义一些术语,我们将某个阶段出现的每次状态动作对,定义为该状态动作对的经历,也就是第一次访问,第二次访问。

如果某个状态动作对(Y,下)在一个阶段中经历了多次,在计算动作估值时,我们可以选择只考虑首次经历或者考虑所有经历,你将发现两种方式出现了不同的值。

首次经历为qπ(Y,下)约等于7/3

所有经历MC方法的结果qπ(Y,下)约等于2

但当智能体通过多个阶段获得更多经验后,这些值将收敛为同一数字,暂时先假设我们实现了首次经历MC方法,几乎就是这么简单。
但是还剩下一个小小的问题要解决,为此,我们来看看我们要评估的策略,他是一个确定性策略,智能体在状态X始终选择向上动作,在状态Y始终选择向下动作,尤其是,我们将始终无法估算状态X和向下动作,或者(状态Y,向上动作)对应的动作值。这是因为根据该策略,智能体在状态X将始终不会选择向下动作,并且在状态Y将始终不会选择向上动作。我们的算法只能估算:实际访问的状态动作对,对应的动作值。因此无论智能体与环境互动多久,动作值函数估计结果将始终不完整。

幸运的是,该问题有一个简单的解决方案,即确保不评估确定性策略的动作值函数,我们将使用随机性策略。

在每个状态,都有一定的非零概率经历每个动作,例如,如果智能体遇到状态X,假设选择向上动作的概率为90%,否则选择向下动作。

π(X,上)   = 0.9    π(X,下) = 0.1

π(Y,上)   = 0.2    π(Y,下) = 0.8

遇到状态Y,也一样,对于这种策略,每个状态动作对最终都会被智能体访问。

此外,如果阶段数量达到无穷次,每个状态动作对的访问次数也会达到无穷,这样就能保证我们能够,为每个状态动作对计算一个完美的动作值函数,只要智能体与环境互动的阶段次数足够即可。