強化学習と最適制御問題のコスト関数勾配比較

Posted on 2/26/2021
このエントリーをはてなブックマークに追加

強化学習のPolicy Gradient法では、制御則をパラメータ\(\theta\)で表現される方策関数\(u = \pi_{\theta}(x) \)を最適化するコスト関数\(J\)のヤコビアンを使って最急降下法にて

\[ \theta \leftarrow \theta - \alpha \nabla_{\theta} J \]
を繰り返すことにより、最適な(非線形)状態フィードバック制御のパラメータを求める。

(上記は、1.コスト関数の最小化を行う 2. 方策関数はDeterministicとした前提を置いている)

OpenAI Spinning UpのPart 3やLil'LogのPolicy Gradient AlgorithmsにてPolicy Gradientの導出方法が紹介されているが、陽に制御対象のシステムがマルコフ決定過程に従うとしており状態遷移は確率的であるため、制御則\(\pi\)のもと状態\(s_0\)から状態\(s\)まで kステップで変化する遷移確率 \(\rho(s_0 \to s, k) \)をもちいて

\[ \nabla_\theta J = \sum_{s}\sum_{k=0}^\infty \rho^\pi(s_0 \to s, k) \sum_{a \in \mathcal{A}} \nabla_\theta \pi_\theta(a \vert s)Q^\pi(s, a) \]
Deterministic Policy Gradientのケースで、
\[ \nabla_\theta J(\mu_\theta) = \int_{\mathcal{S}} \rho^\mu (s) \nabla_\theta \mu_\theta (s) \nabla_a Q^\mu (s,a) \vert_{a=\mu_\theta (s)} \text{d}s \]
と整理される。以上の特殊な状態として、システムが \(x^+ = f(x, u) \)に従う場合について考えたい。 この場合、ナイーブに遷移確率として\(\delta(x^+ − f(x, a))\)を採用し、計算すればよいのだが、 よくわからなかったので元の定義に立ち返った。

問題設定

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

\[ x_{i+1} = f(x_i, u_i) \quad i \in [0, N] \]
を考える。このシステムにおいて\(u_i = \pi_{\theta}(x_i) \)の制御則を適用した上でコスト関数
\[ J^{\pi_{\theta}}(x_k, u_k; k) = \sum_{i=k}^{N-1} L(x_i, u_i) + L_f(x_N) \]
を考え、\(J^{\pi_{\theta}}(x_0, u_0)\)を最小化するパラメータ \(\theta^*\)を求めたい。 ここで、\(L\)はステージコスト、\(L_f\)は終端コストである。確認のため、定義から
\[ J^{\pi_{\theta}}(x_k, u_k; k) = L(x_k, u_k) + J^{\pi_{\theta}}(x_{k+1}, u_{k+1}; k+1) \]
である。以降、簡単のため、単に各関数の添字を省略し\(\pi\)や\(J\)と書く。

コスト関数勾配の導出

状態変数勾配の導出

コスト関数の勾配導出に先立ち、\(\nabla_{\theta} x_k \)を計算する。\(\nabla_{\theta} x_0 = 0\)と\(\nabla_{\theta} u_0 = \nabla_{\theta} \pi (x_0)\)は自明。 以下、\(k \geq 1\)について、

\[ \begin{aligned} \nabla_{\theta} x_k &= \nabla_{x} f \cdot \nabla_{\theta} x_{k-1} + \nabla_{u} f \cdot \nabla_{\theta} u_{k-1} \\ &= \nabla_{x} f \cdot \nabla_{\theta} x_{k-1} + \nabla_{u} f \cdot \nabla_{x} \pi \cdot \nabla_{\theta} x_{k-1} + \nabla_{u} f \cdot \nabla_{\theta} \pi\\ &= \nabla_{u} f \cdot \nabla_{\theta} \pi + (\nabla_{x} f + \nabla_{u} f \cdot \nabla_{x} \pi ) \cdot \nabla_{\theta} x_{k-1} \\ &= \sum_{i=0}^{k-1} \left( \prod_{j=i}^{k-2} \nabla_{x} f \big\vert_{x_{j+1}, \pi(x_{j+1})} + \nabla_{u} f \big\vert_{x_{j+1}, \pi(x_{j+1})} \cdot \nabla_{x} \pi \big\vert_{x_{j+1}} \right) \cdot \nabla_{u} f \big\vert_{x_{i}, \pi(x_{i})} \cdot \nabla_{\theta} \pi \big\vert_{x_{i}} \\ \end{aligned} \]

コスト関数勾配

先ほどと同様\(\nabla_{\theta} u_k = \nabla_{\theta} \pi \vert_{x_k} + \nabla_{x} \pi \vert_{x_k} \cdot \nabla_{\theta} x_{k} \)に注意して、

\[ \begin{aligned} \nabla_{\theta} J \vert_{x_0, \pi(x_0)} &= \nabla_{x} L \vert_{x_0, u_0} \cdot \nabla_{\theta} x_0 + \nabla_{u} L \vert_{x_0, u_0} \cdot \nabla_{\theta} u_0 + \nabla_{\theta} J \vert_{x_1, u_1} \\ &=\displaystyle \sum_{k=0}^{N-1} \Big( \nabla_{x} L \vert_{x_k, u_k} \cdot \nabla_{\theta} x_k + \nabla_{u} L \vert_{x_k, u_k} \cdot \nabla_{\theta} u_k \Big) + \nabla_{\theta} L_f \vert_{x_{N}} \\ &\begin{split} =& \displaystyle \sum_{k=0}^{N-1} \big( \nabla_{x} L \vert_{x_k, u_k} + \nabla_{u} L \vert_{x_k, u_k} \cdot \nabla_{x} \pi \vert_{x_k} \big) \cdot \nabla_{\theta} x_k \\ &+ \displaystyle \sum_{k=0}^{N-1} \nabla_{u} L \vert_{x_k, u_k} \cdot \nabla_{\theta} \pi \vert_{x_k} \\ &+ \nabla_{x} L_f \vert_{x_{N}} \cdot \nabla_{\theta} x_{N} \\ \end{split} \end{aligned} \]

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

拘束条件なしの線形フィードバック問題を例にとって気休め程度に検算する。ただし、\(x \in \mathbb{R}^n, u \in \mathbb{R}^m \)とする。

\[ \begin{aligned} L(x, u) &= \frac{1}{2} x^\intercal Q x + \frac{1}{2} u^\intercal R u \\ L_f(x) &= \frac{1}{2} x^\intercal P x\\ x_{k+1} &= A x_k + B u_k \\ u_k &= - K x_k \end{aligned} \]

このとき、

\[ \begin{aligned} x_{k+1} &= (A-BK) x_{k} \\ &= (A - BK)^k x_0 \\ u_{k} &= -K(A - BK)^{k-1} x_0 \\ S &= (A-BK) \end{aligned} \]
を用いて
\[ \begin{aligned} \nabla_{K} x_{i} &= (i-1)(A - BK)^{i-2} B \sum_{j=0,d=0}^{n, m} \frac{\partial K}{\partial k_{j,d}} x_0 \\ &= \sum_{l=0}^{k-1} (A-BK)^{k-l-2} B \sum_{j=0,d=0}^{n, m} \frac{\partial K}{\partial k_{j,d}} x_l \\ \nabla_{K} J &= \nabla_{K} \left( \sum_{i=0}^{N-1} \frac{1}{2} x_i^{\intercal} \left( Q + K^{\intercal} R K \right) x_i + \frac{1}{2} x_N^\intercal P x_N \right)\\ &= \sum_{i=0}^{N-1} \nabla_{K} x_i^{\intercal} \left( Q + K^{\intercal} R K \right) x_i + \sum_{i=0}^{N-1} \sum_{j=0,d=0}^{n, m} x_i^{\intercal} \frac{\partial K}{\partial k_{j,d}} R K x_i + \nabla_{K} x_N^\intercal P x_N \end{aligned} \]
であるので確かに一致している。

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

\[ P_k = Q + K^\intercal R K + (A-BK)^\intercal P_K (A-BK) \]
と置くと、
\[ \begin{aligned} \nabla_{K} J &= \big((R+B^\intercal P_K B)K - B^\intercal P_K A \big) \sum_{i=0}^{\infty} x_i^\intercal x_i \end{aligned} \]
と求まる。上記論文ではモデルフリーの自然勾配法との収束速度比較などを行っているので参照すると面白い。

強化学習の勾配定理との比較

これまで同様、制御則がDeterministicな場合( \(u = \pi(x)\) )で比較を続ける。

システムの違い

制御対象がMDPで遷移が確率的なStochastic Transition Dynamic Systemと、いわゆるシステム方程式で表されるDeterministic Dynamic Systemでの違いは、

Deterministic Stohacstic
\( x^+ = f(x, u) \) \( x^+ \sim p(x^+ | x, u) \)
\( V(f(x, \pi(x))) \) \(\displaystyle \int_{\mathcal{X}} p(x^+ | x, \pi(x)) V^\pi (x^+) \text{d} x^+\)

したがって、状態価値関数については \(N \rightarrow \infty\) のとき

\[ V^{\pi}(x) = L(x, \pi(x)) + V^{\pi}(f(x, \pi(x))) \]
は、
\[ \begin{aligned} V^\pi (x) &= J^\pi(x, \pi(x)) \\ &= L(x, \pi(x)) + \int_{\mathcal{X}} p(x^+ | x, \pi(x)) V^\pi (x^+) \text{d} x^+ \end{aligned} \]

勾配定理の導出

以下はDeterministic Policy Gradient AlgorithmsのAppendix Bからの転記である。記号を先までのシステム方程式と揃えた。

\[ \begin{aligned} \nabla_\theta J &= \nabla_\theta \left( L(x, \pi(x)) + \int_{\mathcal{X}} p(x^+ | x, \pi(x)) V^\pi (x^+) \text{d} x^+ \right) \\ &= \nabla_u L \vert_{x, \pi(x)} \cdot \nabla_{\theta} \pi \vert_{x} + \nabla_{\theta} \int_{\mathcal{X}} p(x^+ | x, \pi(x)) V^\pi (x^+) \text{d} x^+ \\ &= \nabla_u \left( L(x, \pi(x)) + \int_{\mathcal{X}} p(x^+ | x, \pi(x)) V^\pi (x^+) \text{d} x^+ \right) \nabla_{\theta} \pi \vert_{x} + \int_{\mathcal{X}} p(x^+ | x, \pi(x)) \nabla_{\theta} V^\pi (x^+) \text{d} x^+ \\ &= \nabla_u J \vert_{x,\pi(x)} \nabla_{\theta} \pi \vert_{x} + \int_{\mathcal{X}} p(x^+ | x, \pi(x)) \nabla_{\theta} V^\pi (x^+) \text{d} x^+ \\ \end{aligned} \]

メモ

肝心の比較については未だ考察中。後日更新する。

\[ \nabla_\theta J = \sum_{s}\sum_{k=0}^\infty \rho^\pi(s_0 \to s, k) \sum_{a \in \mathcal{A}} \nabla_\theta \pi_\theta(a \vert s)Q^\pi(s, a) \]
\[ \begin{split} \nabla_{\theta} J =& \displaystyle \sum_{k=0}^{\infty} \big( \nabla_{x} L \vert_{x_k, u_k} + \nabla_{u} L \vert_{x_k, u_k} \cdot \nabla_{x} \pi \vert_{x_k} \big) \cdot \nabla_{\theta} x_k \\ &+ \displaystyle \sum_{k=0}^{\infty} \nabla_{u} L \vert_{x_k, u_k} \cdot \nabla_{\theta} \pi \vert_{x_k} \end{split} \]

参考

DX担当者になったら考えたいこと

Posted on 12/30/2020
このエントリーをはてなブックマークに追加

「DX(デジタル・トランスフォーメーション)」というキーワードを目にすることが大変多くなった。

この5年間の間のだけでもIndustry 4.0, Society 5.0, ディープラーニング, AIといった様々なキーワードが入れ替わり立ち替わり似たようなメッセージを発し続けている。 それらの描く美しい未来像に触れ技術の要素の習得に力を入れつつも、 思い通りにならない会社組織を恨めしく思ったり、社会の重鈍さに腹を立てたりしてきたエンジニアは少なくないと思う。 あるいは一歩進んで、そういった現状を言語化・図示した資料に出会い、社内でのICT介護のやりとりを思い浮かべながら、 「よくぞ言ってくれた、これを檄文にみんなを決起させよう」と気持ちを高ぶらせているところなのかもしれない。

私自身そんなエンジニアの一人なのかもしれない。

だが、これは「無敵の『DX』でなんとかしてくださいよォーー」の前兆ではないのか?

「『DX』は手段です」と、したり顔で公演する識者の講演に首がもげそうなくらい頷くモブへと一直線に舗装された道の入り口に立っているのではないか?

そんな未来に到達する前に少しだけ悪あがきをしてみたい。

DX担当者に任命されたら…

ある時、あなたは上司に呼び出されたとしよう。

なんと「社長から『DX』を推進するように指示があった。『DX』は何やらパソコンを活用する話で若い人の柔軟な考え方が大事だそうだから君に任せたい。」という。

なんとも危ない匂いのする話だ。どこかでダメと書いてあった始まりそのものではないか。

社長の頭の中

さて、よくわかりもしないDXをまるっと若手のあなたに押し付けた社長は全くのアホで要高度ICT介護の上司なのだろうか。

だが、特に一部上場企業などのサラリーマン社長であれば、実績を積み、類まれな何らかの才能を発揮してその立場についていると考えるのが妥当だろうし、その立場から様々な形で一流の指南役も社内外についていると見るのが良いと思う。

私自身もしがないサラリーマンで、社長の経験もなくなったこともない立場の人間の経験は想像でしか語れないが、幸い、"CEO Job Description"とググるとCEO(≒社長)の役割についていくつもの記事があり、 ドラッカーなど著名な経営研究家が色々な名言を残してくれている。

また、CEOの直面する「課題」などもアンケートが取られていたりする。

そういった情報をまとめると

  • (サラリーマン)社長の最も重要なミッションは「会社を永続させること」
であり、そのために会社に関するメッセージを顧客・社員・投資家・政府などあらゆる方面とやりとりし、 それらをまとめ上げながら実行に移していく(指示を出す)といった役割を担っているようだ。

会社が永続できなくなる落とし穴は山ほどある。

もっとも当たり前のものは既存事業のシェアを落とすなどしてコストが売上より大きくなり赤字転落後そのまま運転資金が枯渇すること。「永続」すれば良いと言ってゾンビ飛行ギリギリとなってしまえば、成長が期待できない会社として投資家に愛想をつかされ、これもまた資金調達が苦しくなる。

だが、現在においては、人種や性別などの多様性対応を誤り、顧客離れ、製品の生産やサービスの提供が止まってしまったり、温暖化などの環境対策を狙いとした政策への対応に失敗し厳しい罰則を受けたり、 品質検査の不正行為で賠償に発展したり、昨今コロナ禍で顕在化したように市場が蒸発したりしてしまうこともある。

全部優秀なスタッフに任せることができれば良いが、意外と社長によるきめ細かなマニュアル運転が必要になってしまっている企業は多いと思う。

そんな中、投資家、つきあいのある政治家(官庁/政治団体)、社外取締役から「御社のDXはどうなっていますか?」とくると、何かしらの回答準備が必要になってくる。

社長は思う。

「Industry 4.0, Society 5.0, AI, 自分がポジションに付く前に似たような話はたくさんあったじゃないか。なんで今また夏休みの宿題を最後の1日でこなさないとならないような状況に…。とはいえ、なんとか形にしていかないと。」

デジタルネイティブな会社であれば、社長になったあとでデジタル技術に対する意識が急激に高まるという間抜けな話にはならないだろう。だが、生産や営業といった役割分化した組織の中で上がってくると、いくらゼネラリスト養成学校のJTCといえども壁の向こうを本当の本気で見るのは社長になったときくらいだ。

DX担当者として…

過小評価かもしれないがこうやって社長の頭の中を仮定すると、DX担当者として最初に着手することは「会社の永続」と「DX」を結びつけることだ。

そして、その方向性としては大きく分けると

  1. 既存事業のExploit(売上増加[アップセル]/コスト削減)
  2. 新規事業のExplore
の2つになる。

幸い、この方向でまとめている記事を見つけたので紹介する。

この記事と重複する部分もでてくるが、次回は、ここからさらに具体的な打ち手の選択肢へと掘り下げたい。

メモ