方策勾配法でLQRを解く

LQRの問題はコスト関数の最小化問題だがu=θx とおくと、方策勾配法の要領でコスト関数Jのヤコビアンを使って最急降下法にて

θθαθJ
を繰り返すことにより、最適な状態フィードバック制御のパラメータを求めることができる(できそう)。

問題設定

制御対象の離散システムとして

xi+1=f(xi,ui)i[0,N]
を考える。このシステムにおいてui=πθ(xi)の制御則を適用した上でコスト関数
Jπθ(xk,uk;k,N)=i=kN1L(xi,ui)+Lf(xN)
を考え、Jπθ(x0,u0)を最小化するパラメータ θを求めたい。 ここで、Lはステージコスト、Lfは終端コストである。確認のため、定義から
Jπθ(xk,uk;k,N)=L(xk,uk)+Jπθ(xk+1,uk+1;k+1,N1)
である。以降、簡単のため、単に各関数の添字を省略しπJと書く。

コスト関数勾配の導出

状態変数勾配の導出

コスト関数の勾配導出に先立ち、θxkを計算する。θx0=0θu0=θπ(x0)は自明。 以下、k1について、

θxk=xfθxk1+ufθuk1=xfθxk1+ufxπθxk1+ufθπ=ufθπ+(xf+ufxπ)θxk1=i=0k1(j=ik2xf|xj+1,π(xj+1)+uf|xj+1,π(xj+1)xπ|xj+1)uf|xi,π(xi)θπ|xi

コスト関数勾配

先ほどと同様θuk=θπ|xk+xπ|xkθxkに注意して、

θJ|x0,π(x0)=xL|x0,u0θx0+uL|x0,u0θu0+θJ|x1,u1=k=0N1(xL|xk,ukθxk+uL|xk,ukθuk)+θLf|xN=k=0N1(xL|xk,uk+uL|xk,ukxπ|xk)θxk+k=0N1uL|xk,ukθπ|xk+xLf|xNθxN

線形時不変(LTI)システムでの検算

拘束条件なしの線形フィードバック問題を例にとって気休め程度に検算する。ただし、xRn,uRmとする。

L(x,u)=12xQx+12uRuLf(x)=12xPxxk+1=Axk+Bukuk=Kxk

このとき、

xk+1=(ABK)xk=(ABK)kx0uk=K(ABK)k1x0
を用いて
Kxi=(i1)(ABK)i2Bj=0,d=0n,mKkj,dx0=l=0k1(ABK)kl2Bj=0,d=0n,mKkj,dxlKJ=K(i=0N112xi(Q+KRK)xi+12xNPxN)=i=0N1Kxi(Q+KRK)xi+i=0N1j=0,d=0n,mxiKkj,dRKxi+KxNPxN
であるので確かに一致している。

さらに、Nのとき、Global Convergence of Policy Gradient Methods for the Linear Quadratic Regulatorでも示されている通り、

PK=Q+KRK+(ABK)PK(ABK)
と置くと、
KJ=((R+BPKB)KBPKA)i=0xixi
と求まる。上記論文ではモデルフリーの自然勾配法との収束速度比較などを行っているので参照すると面白い。

参考