在之前的讨论中,我们认为回报只是状态的函数,即R:S->R(实数),现在我们将其扩展为状态和动作的函数,即R:S*A->R(实数)。
此时Bellman等式为 V*(s)=max [ R(s, a)+γΣsiPsa(s`)V*(s`)
我们之前介绍的MDP由五元组(S,A,{Psa},γ,R)描述,其中γ是一个小于1的非负数,表达了未来对当今决策的影响,当未来的时间比较远时,γ的指数次已经接近于0,对决策基本没有影响,近似的起到了一个边界的作用,下面我们将介绍有限边界MDP模型,这一模型对边界提出了更明显的要求。
一个有限边界MDP模型同样包括一个五元组,但其为(S,A,{Psa},T,R),即用边界时间Horizon Time参数取代了γ,这一参数暗含整个决策过程不平稳non-stationary,即最优决策可能是时间的函数,一个简单的例子为:我需要3s可以拿到5分,需要10s拿到10分,但我只有5s的时间,此时我的最优决策为去拿那5分,但如果我有20s的时间,我肯定选择去拿10分。
将时间考虑进来后,我们可将最优价值函数改写为
Vt*(s)=E[Rt(st, at)+...+RT(sT, aT) | π*, st属于S]
此时Bellman等式可写为
Vt*(s)=max [ Rt(st, at)+ΣPtsaVt+1*(s`) ]
并有 VT*(s)=max RT(s, a)
同样,决策函数也是不平稳的,则决策函数可表示为
π*=argmax [ Rt(st, at)+ΣPtsaVt+1*(s`) ]
在这一问题中,我们假设状态是一个n维向量,动作是一个d维向量,概率转移矩阵为Psa: St+1=AtSt+Btat+wt,其中wt服从均值为0,方差为Σw的正态分布,At是一个n*n的矩阵,Bt是一个n*d的矩阵,此时我们定义回报方程为
Rt(st, at)=-(st^T*Ut*st+at^T*Vt*at)
其中Ut是一个n*n的矩阵,Vt是一个d*d的矩阵,均为半正定矩阵
注意到这里定义的回报方程有一个负号,但这并不影响最终的优化方程,因为我们要求的是最大值,只要可以保证最优解的值最大就好了。
在后面的讲解中,我们认为At和Bt不随时间变化,因此经过m次试验后,我们可得到m组状态、动作的变化情况,此时我们希望在自己估计的概率转移矩阵条件下产生的误差最小,即
argmax (1/2)*Σi=1,...,mΣt=0,...,T-1 ||s(i)(t+1)-(As(i)(t)+Ba(i)(t))||^2
非线性模型线性化 Linear a Non-linear Model
下面我们讨论将一个非线性的模型线性化的方法,回忆我们在函数曲线上一点通过切线拟合该点附近的值的方法,我们考虑拟合一维状态函数的方法为
St+1=f(St)≈f'(St_)(St-St_)+f(St_),其中St_是预先确定的常量
以此为基础,我们可推导出二维情况下的方程为
St+1=f(St, at)≈▽sf(St_, at_)^T*(St-St_)+▽af(St_, at_)^T*(at-at_)+f(St_, at_)
下面我们将推导如何解决LQR问题
我们假设Vt+1*(st+1)=St+1^T * Φt+1 * St+1 + ψt+1;Vt*(st)=St^T * Φt * St + ψt
我们注意到VT*(sT)=-(sT^T*UT*sT+aT^T*VT*aT),由于U和V均为半正定矩阵,因此与之相关的两项均大于等于0,所以若使该式最大,应选择aT使aT^T*VT*aT为0,此时有VT*(sT)=-sT^T*UT*sT
因此,ΦT=-UT, ψT=0
通过Vt和Vt+1之前的函数,我们可以得到更新方程为
Vt*(st) = max { -(st^T*Ut*st+at^T*Vt*at) + Est+1~N(AtSt+Btat+wt)[St+1^T * Φt+1 * St+1 + ψt+1] }
上式可认为为at的二次函数,因此这一问题称为二次函数的问题。此时决策函数为
πt*(st) = argmax Rt(st, at)+Est+1~Pstat[Vt+1*(st+1)] = (Bt^T * Φt+1 * Bt - Vt)^(-1) * Bt^T * Φt+1 * At * st = Lt*st
其中Lt = (Bt^T * Φt+1 * Bt - Vt)^(-1) * Bt^T * Φt+1 * At
因此我们可得
Φt = At^T * (Φt+1 - Φt+1*Bt*(Bt^T*Φt+1*Bt)^(-1) * Bt * Φt+1) * At - Ut,这一等式称为Discrete Time Riccati Equation
ψt = -tr Σw*Φt+1 + ψt+1
问题的解法总结如下:
一:初始化ΦT=-Ut,ψT=0
二:通过Φt+1、ψt+1递归计算Φt、ψt,并以此计算Lt,从而得到政策函数。
// 这里是分割线~
// 顺便给自己的公众号打个广告,希望大家多多关注哈~
// 关注我的公众号可以看到更多有意思的内容哦~