智能体通过遵循某个策略与环境互动,并计算该策略的函数,就是异同策略方法。再详细讲解该算法之前,我们先来了解一个实例。
假设我们要处理一个阶段性任务,该MDP具有三个状态,X、Y、Z其中Z是最终状态。S+ = {X,Y,Z}
X
Y
Z
X的环境是负面奖励,Y的环境是正面奖励。
如果智能体进入Z则结束这一阶段。假设有两个潜在的动作A={上,下},向上、向下和冰冻湖泊环境类似。
如果智能体选择向下动作,在下一个时间步,有一定的概率表明他会向上移动或者保持不动。
同样,如果它决定向上移动,当它尝试朝着该方向移动时,可能会向下移动或者保持不动。
假设我们要评估一下策略,智能体在状态X向上移动(π(X)),在状态Y向下移动(π(Y))。
智能体可以通过循环该策略与环境互动。假设在一开始互动时,智能体观察状态X,然后根据策略,选择向上动作,结果奖励为-2,并进入下一个状态Y,接着根据该策略,选择向下动作,结果得到奖励0并进入下一个状态Y,此刻,根据该策略先择向下动作,结果获得奖励3,并抵达最终状态Z
X,上,-2,Y,下,0,Y,下,3,Z
假设智能体在另外两个阶段与环境互动
Y,下,2,Y,下,1,Y,下,0,Z
Y,下,1,X,上,-3,Y,下,3,Z
我们可以使用这些阶段估算值函数。当然,这三个简短的互动阶段,并不足以让智能体充分了解环境,暂时先假设已经足够。
我们先从一个状态开始,例如状态X,然后查看所有阶段的状态X的所有状况,接着计算在出现X状态之后的折扣回报。假设折扣率为1,即不折扣。对于第一个阶段(X,上,-2,Y,下,0,Y,下,3,Z)X回报是-2+0+3=1,在第三阶段(Y,下,1,X,上,-3,Y,下,3,Z)X回报是-3+3=0,蒙特卡罗预测算法会对这些值取平均值,并带入状态X的值估算方程中
1+0/2 = 1/2
这里状态X的估值为1/2,Vπ(X) 约等于1/2
该算法比较直观,状态的值定义为该状态之后的预期回报,Vπ(X)=Eπ[Gt|St=X]
因此智能体体验的平均回报是个很好的估值,我们将按照相同的流程评估状态Y,你将发现状态Y在每个阶段出现多次,这种情况不太清楚该如何处理,为了解决这一问题,我们需要介绍几个其他术语:
X,上,-2,Y,下,0,Y,下,3,Z
我们将状态在某个阶段中的每次经历定义为该状态的经历,有两种处理方式:
第一种方式是,每个阶段只考虑该状态的首次经历,就是一个出现的Y,对这些回报取平均值,在这种情况下,状态Y的值估算为
X,上,-2,Y,下,0,Y,下,3,Z ===》》 0+3=3
Y,下,2,Y,下,1,Y,下,0,Z ===》》 2+1+0=3 =====》 3+3+1/3=7/3
Y,下,1,X,上,-3,Y,下,3,Z ===》》 1-3+3=1
如果采用这种方式,则表示我们使用首次经历MC方法,Vπ(Y)约等于7/3
还有一种就是对所有阶段中的状态Y的所有经历之后的回报取平均值
X,上,-2,Y,下,0,Y,下,3,Z ===》》 0+3=3
3=3
Y,下,2,Y,下,1,Y,下,0,Z ===》》 2+1+0=3 =====》 3+3+3+1+1+0+3/7=14/7=2
1+0=1
0=0 (不要)
Y,下,1,X,上,-3,Y,下,3,Z ===》》 1-3+3=1
-3+3=0
3=3
这种情况下,状态Y的值估算为,所有这些数字的平均值,结果为2