強化学習の価値関数からみたLQR問題のPの意味

Nです.

最近強化学習やLinear Quadratic Regulator(LQR)問題に触れる機会があったので備忘録としてまとめておきたいと思います.
特に離散時間LQR問題を解くときにリカッチ方程式の解として求める行列P(後で出てきます)の意味について簡単に調べた範囲では出てこなかったので私の理解を書いておきたいと思います.
強化学習もLQR問題も少し触っただけの初心者なので間違っているところがあればコメントいただけると嬉しいです.

スポンサーリンク

ポイント

  • Pは状態xによらない価値を表す行列.つまりPが求まれば全ての状態における価値関数Vを求めることができる\((V(x)=x^TPx)\).
  • LQR問題は状態によらない価値行列Pを最小化(または最大化)するような状態によらない制御入力uのゲインKを求めている(\(u=-Kx\)と置いた場合).
  • 強化学習との対応.価値関数\(V(x)=x^TPx\),ポリシー\(\pi(x)=K\).つまりLQR問題は状態xによらない価値を表す行列Pと状態によらないポリシーKを求める問題(強化学習の枠組みでとらえると全状態で同じポリシーしか採用しないという特殊な例).
スポンサーリンク

背景

これまでLQR問題をあまりちゃんと理解できたことがありませんでした.特にリカッチ方程式で求めた解行列(よくPという文字が割り当てられる)が何を表しているのかよくわかっていませんでした.よくわからないまま,自分の研究でも出てこないので放置していたのですが,最近強化学習の文脈でLQR問題を考える機会がありました.するとLQR問題で現れる行列Pが価値関数(本来状態に依存する)を状態に依存しない形で要約したものであり,Kが全ての状態で同じゲインを使用するという制約の下で最もコストを最小化するゲインであることが分かってきました.

LQR問題の設定とリカッチ方程式を用いた解き方

以下の線形システムにおいて以下の価値関数Vを最大化する最適入力uを求めるのがLQR問題の目的です(強化学習で出てくる文脈と非常に近いです.ただしポリシー(制御ゲインK)がすべての状態で同じという制限が追加されている部分が異なります).

\[x[n+1]=Ax[n]+Bu[n], u[n]=-Kx[n]\]

\begin{eqnarray}
V_K (x[n]) &=& \sum_{i=n}^\infty \left (x[i]^TQx[i] + u[i]^TRu[i] \right) \\
&=& \sum_{i=n}^\infty x[i]^T \left (Q + K^TRK \right) x[i]\\
&=& x[n]^T \left (Q + K^TRK \right) x[n] + V_K (x[n+1])
\end{eqnarray}

例えばこのまま通常の強化学習のように価値反復法などで各状態xにおいて最適なゲインKを求めることはKがすべての状態において一定のゲインであるため困難です.そこで\(V_K(x[n])=x[n]^TPx[n]\)として位置に関係なく価値を表す行列Pで価値関数Vを表してPを最適化するゲインKを求めます(参考文献参照).各状態の価値関数Vを状態によらない価値Pから求めることができるということが後々計算するPの感覚(Pの意味)をつかむうえで重要です.

実はこの記事で特に書きたかったのは上記のVとPの関係だけです.なのでここで終わってもいいのですが一応ネットでよく出てくるリカッチ方程式による解法を紹介しておきます.

\begin{eqnarray}
x[n]^TPx[n]&=& x[n]^T \left (Q + K^TRK \right) x[n] + x[n+1]^TPx[n+1]) \\
&=& x[n]^T \left (Q + K^TRK \right) x[n] + (Ax[n]-BKx[n])^TP(Ax[n]-BKx[n]) \\
&=& x[n]^T \left (Q + K^TRK \right) x[n] +x[n]^T (A-BK)^TP(A-BK)x[n] \\
&=& x[n]^T \left (Q + K^TRK + (A-BK)^TP(A-BK) \right) x[n]
\end{eqnarray}

外側の\(x[n]\)を外してPをKについて微分すると

\begin{eqnarray}
\frac{dP}{dK}&=& 2RK – 2B^TP(A-BK)
\end{eqnarray}

Pが極値を取るのは微分が0の時なので最適なKは

\begin{eqnarray}
0&=& 2RK – 2B^TP(A-BK)\\
0&=& RK – B^TPA+B^TPBK\\
0&=& (R+B^TPB)K- B^TPA\\
(R+B^TPB)K &=& B^TPA\\
K &=& (R+B^TPB)^{-1}B^TPA
\end{eqnarray}

この式の中にはPが残っているのでKを求めるためにはPを計算して代入する必要があります.
そのためにこのKを使ってKを消した式を作成すると

\begin{eqnarray}
P &=& Q + K^TRK + (A-BK)^TP(A-BK)\\
P &=& Q + K^TRK + A^TPA + (-BK)^TPA +A^TP(-BK)+(-BK)^TP(-BK)\\
P &=& Q + K^TRK + A^TPA + (-BK)^TPA +A^TP(-BK)+K^TB^TPBK\\
P &=& Q + A^TPA + (-BK)^TPA +A^TP(-BK)+K^T(R+B^TPB)K\\
P &=& Q + A^TPA + (-BK)^TPA +A^TP(-BK)+K^T(R+B^TPB)(R+B^TPB)^{-1}B^TPA\\
P &=& Q + A^TPA + (-BK)^TPA +A^TP(-BK)+K^TB^TPA\\
P &=& Q + A^TPA +A^TP(-BK)\\
P &=& Q + A^TPA -A^TPB(R+B^TPB)^{-1}B^TPA\\
0 &=& Q -P + A^TPA -A^TPB(R+B^TPB)^{-1}B^TPA
\end{eqnarray}
最後の式はリカッチ方程式と呼ばれるものでこれをPについて解くことで最適なゲインKを使用したときの価値Pを求めることができます.(以前はリカッチ方程式の解として得られるPが何者なのか全くイメージできていませんでした.今なら状態に依存しない価値で,状態に依存しないポリシーKに対応するものであることがイメージできます.)

参考文献ではリカッチ方程式ではなくて強化学習の価値反復法や方策反復法でこの問題を解く方法を紹介していたりします.興味があったら読んでみてください.

今回Pの意味が何となくつかめたのがすごくうれしかったので記事にしてみました.今後もこういうことがあればまとめていきたいです.

参考文献

Lewis, Frank L., and Draguna Vrabie. “Reinforcement learning and adaptive dynamic programming for feedback control.” IEEE circuits and systems magazine 9.3 (2009): 32-50.

コメント

タイトルとURLをコピーしました