(57)【要約】【課題】累積コストや累積報酬を最適化する方策を与えるフィードバック係数行列を生成すること。【解決手段】制御対象１１０の状態変化が、線形差分方程式で規定され、かつ、制御対象１１０の即時コストまたは即時報酬が、制御対象１１０の状態および制御対象１１０の入力の２次形式で規定される。方策改善装置１００は、状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成する。方策改善装置１００は、ＴＤ誤差および摂動に基づき、状態に対するフィードバック係数行列に関する状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成する。方策改善装置１００は、生成した推定勾配関数行列を用いて、フィードバック係数行列を更新する。【選択図】図１
2019053593.tif 000002
【特許請求の範囲】
【請求項１】
状態価値関数による強化学習の方策改善プログラムであって、
前記状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、前記方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成し、
前記強化学習における制御対象の状態変化が線形な差分方程式で規定され、かつ、前記制御対象の即時コストまたは即時報酬が状態および入力の２次形式で規定される場合、前記ＴＤ誤差および前記摂動に基づき、前記制御対象の状態に対する前記フィードバック係数行列に関する前記状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成し、
生成した前記推定勾配関数行列を用いて、前記フィードバック係数行列を更新する、
処理をコンピュータに実行させることを特徴とする方策改善プログラム。
【請求項２】
前記生成する処理は、前記フィードバック係数行列の各成分について生成された前記ＴＤ誤差を前記摂動で除算した結果と、前記状態価値関数を前記フィードバック係数行列の各成分で微分した結果とを対応付けて、前記勾配関数行列の各成分を推定した推定成分を生成する、ことを特徴とする請求項１に記載の方策改善プログラム。
【請求項３】
前記状態価値関数を前記フィードバック係数行列の各成分で微分した結果は、状態に依存するベクトルと、状態に依存しないベクトルとの積で規定される、ことを特徴とする請求項１または２に記載の方策改善プログラム。
【請求項４】
状態価値関数による強化学習の方策改善方法であって、
前記状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、前記方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成し、
前記強化学習における制御対象の状態変化が線形な差分方程式で規定され、かつ、前記制御対象の即時コストまたは即時報酬が状態および入力の２次形式で規定される場合、前記ＴＤ誤差および前記摂動に基づき、前記制御対象の状態に対する前記フィードバック係数行列に関する前記状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成し、
生成した前記推定勾配関数行列を用いて、前記フィードバック係数行列を更新する、
処理をコンピュータが実行することを特徴とする方策改善方法。
【請求項５】
状態価値関数による強化学習の方策改善装置であって、
前記状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、前記方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成し、
前記強化学習における制御対象の状態変化が線形な差分方程式で規定され、かつ、前記制御対象の即時コストまたは即時報酬が状態および入力の２次形式で規定される場合、前記ＴＤ誤差および前記摂動に基づき、前記制御対象の状態に対する前記フィードバック係数行列に関する前記状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成し、
生成した前記推定勾配関数行列を用いて、前記フィードバック係数行列を更新する、
制御部を有することを特徴とする方策改善装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、方策改善プログラム、方策改善方法、および方策改善装置に関する。
【背景技術】
【０００２】
従来、制御対象に対する入力に応じた制御対象の即時コストまたは即時報酬に基づき、制御対象の累積コストまたは累積報酬を示す価値関数を改善し、累積コストや累積報酬が最適化されるように方策を改善していく強化学習の技術がある。価値関数は、状態−行動価値関数（Ｑ関数）または状態価値関数（Ｖ関数）などである。
【０００３】
先行技術としては、例えば、入力に対して摂動を与え、入力に対するＴＤ誤差（Ｔｅｍｐｏｒａｌ  Ｄｉｆｆｅｒｅｎｃｅ  ｅｒｒｏｒ）を算出し、そのＴＤ誤差に基づき方策を与えるフィードバック係数行列を更新するＣａｃｌａ（Ｃｏｎｔｉｎｕｏｕｓ  ａｃｔｏｒ−ｃｒｉｔｉｃ  ｌｅａｒｎｉｎｇ  ａｕｔｏｍａｔｏｎ）の技術がある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｓ．  Ｊ．  Ｂｒａｄｔｋｅ，  Ｂ．  Ｅ．  Ｙｄｓｔｉｅ  ａｎｄ  Ａ．  Ｇ．  Ｂａｒｔｏ，  “Ａｄａｐｔｉｖｅ  ｌｉｎｅａｒ  ｑｕａｄｒａｔｉｃ  ｃｏｎｔｒｏｌ  ｕｓｉｎｇ  ｐｏｌｉｃｙ  ｉｔｅｒａｔｉｏｎ”，  Ｉｎ  Ｐｒｏｃ．  ｏｆ  ｔｈｅ  １９９４  Ａｍｅｒｉｃａｎ  Ｃｏｎｔｒｏｌ  Ｃｏｎｆｅｒｅｎｃｅ，  ｐｐ．  ３４７５−３４７９，  Ｂａｌｔｉｍｏｒｅ，  ＵＳＡ，  １９９４．
【非特許文献２】Ｄ．  Ｓｉｌｖｅｒ，  Ｇ．  Ｌｅｖｅｒ，  Ｎ．  Ｈｅｅｓｓ，  Ｔ．  Ｄｅｇｒｉｓ，  Ｄ．  Ｗｉｅｒｓｔｒａ  ａｎｄ  Ｍ．  Ｒｉｅｄｍｉｌｌｅｒ，  “Ｄｅｔｅｒｍｉｎｉｓｔｉｃ  ｐｏｌｉｃｙ  ｇｒａｄｉｅｎｔ  ａｌｇｏｒｉｔｈｍｓ”，  Ｉｎ  Ｐｒｏｃ．  ｏｆ  ｔｈｅ  ３１ｓｔ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ，  ｐｐ．３８７−３９５，  ２０１４．
【非特許文献３】Ｈ．  Ｖａｎ  Ｈａｓｓｅｌｔ，  Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ  ｉｎ  ｃｏｎｔｉｎｕｏｕｓ  ｓｔａｔｅ  ａｎｄ  ａｃｔｉｏｎ  ｓｐａｃｅｓ，  Ｉｎ  Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  Ｌｅａｒｎｉｎｇ  （ｐｐ．  ２０７−２５１），  Ｓｐｒｉｎｇｅｒ，  Ｂｅｒｌｉｎ  Ｈｅｉｄｅｌｂｅｒｇ，  ２０１２．
【非特許文献４】Ｌ．  Ｂｕｓｏｎｉｕ，  Ｒ．  Ｂａｂｕｓｋａ，  Ｂ．  Ｄｅ  Ｓｃｈｕｔｔｅｒ，  ａｎｄ  Ｄ．  Ｅｒｎｓｔ，  Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  Ｌｅａｒｎｉｎｇ  ａｎｄ  Ｄｙｎａｍｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｕｓｉｎｇ  Ｆｕｎｃｔｉｏｎ  Ａｐｐｒｏｘｉｍａｔｏｒｓ，  ＣＲＣ  ｐｒｅｓｓ，  ２０１０．
【非特許文献５】Ｍ．  Ｐ．  Ｄｅｉｓｅｎｒｏｔｈ，  Ｇ．  Ｎｅｕｍａｎｎ  ａｎｄ  Ｊ．  Ｐｅｔｅｒｓ，  “Ａ  Ｓｕｒｖｅｙ  ｏｎ  Ｐｏｌｉｃｙ  Ｓｅａｒｃｈ  ｆｏｒ  Ｒｏｂｏｔｉｃｓ”，  Ｆｏｕｎｄａｔｉｏｎｓ  ａｎｄ  Ｔｒｅｎｄｓ  ｉｎ  Ｒｏｂｏｔｉｃｓ，  Ｖｏｌ．  ２，  Ｎｏ．  １−２，  ｐｐ．  １−１４２，  ２０１３．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、方策を与えるフィードバック係数行列を更新し、方策を効率よく改善していくことが難しい場合がある。例えば、入力またはフィードバック係数行列に対して、どのような大きさの摂動を与えれば、累積コストや累積報酬が最適化されていくかを判断することが難しく、方策を与えるフィードバック係数行列を改善していくことが難しい場合がある。
【０００６】
１つの側面では、本発明は、累積コストまたは累積報酬を最適化する方策を与えるフィードバック係数行列を生成することができる方策改善プログラム、方策改善方法、および方策改善装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、状態価値関数による強化学習の方策改善において、前記状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、前記方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成し、前記強化学習における制御対象の状態変化が線形な差分方程式で規定され、かつ、前記制御対象の即時コストまたは即時報酬が状態および入力の２次形式で規定される場合、前記ＴＤ誤差および前記摂動に基づき、前記制御対象の状態に対する前記フィードバック係数行列に関する前記状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成し、生成した前記推定勾配関数行列を用いて、前記フィードバック係数行列を更新する方策改善プログラム、方策改善方法、および方策改善装置が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、累積コストや累積報酬を最適化する方策を与えるフィードバック係数行列を生成することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる方策改善方法の一実施例を示す説明図である。
【図２】図２は、方策改善装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、方策改善装置１００の機能的構成例を示すブロック図である。
【図４】図４は、制御対象１１０の具体例を示す説明図（その１）である。
【図５】図５は、制御対象１１０の具体例を示す説明図（その２）である。
【図６】図６は、バッチ処理形式の強化学習処理手順の一例を示すフローチャートである。
【図７】図７は、逐次処理形式の強化学習処理手順の一例を示すフローチャートである。
【図８】図８は、方策改善処理手順の一例を示すフローチャートである。
【図９】図９は、推定処理手順の一例を示すフローチャートである。
【図１０】図１０は、更新処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかる方策改善プログラム、方策改善方法、および方策改善装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかる方策改善方法の一実施例）
図１は、実施の形態にかかる方策改善方法の一実施例を示す説明図である。方策改善装置１００は、所定のタイミングで、方策（ｐｏｌｉｃｙ）を改善し、その方策によって制御対象１１０に対する入力（ｉｎｐｕｔ）を決定することにより、制御対象１１０を制御するコンピュータである。方策改善装置１００は、例えば、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、マイクロコントローラなどである。
【００１２】
制御対象１１０は、何らかの事象であり、例えば、現実に存在する物理系である。制御対象は環境（ｅｎｖｉｒｏｎｍｅｎｔ）とも呼ばれる。制御対象１１０は、具体的には、サーバルームや発電機などである。方策は、フィードバック係数行列により制御対象１１０に対する入力値を決定する方程式である。方策は、制御則（ｃｏｎｔｒｏｌ  ｌａｗ）とも呼ばれる。
【００１３】
方策の改善は、方策を与えるフィードバック係数行列の更新に対応する。方策の改善は、累積コストや累積報酬がより効率よく最適化されるように方策を変更することである。入力（ｉｎｐｕｔ）は、制御対象１１０に対する操作である。入力は、行動（ａｃｔｉｏｎ）とも呼ばれる。制御対象１１０に対する入力に応じて、制御対象１１０の状態（ｓｔａｔｅ）が変化する。
【００１４】
ここで、上述した非特許文献１〜非特許文献５などを参考に、方策を与えるフィードバック係数行列を更新していくことにより方策の改善を図り、制御対象１１０を制御するいくつかの制御手法が考えられる。例えば、価値関数として状態−行動価値関数を採用する第１の制御手法が考えられる。
【００１５】
しかしながら、第１の制御手法は、制御対象１１０の入力と状態とが線形従属の関係であると、累積コストや累積報酬が最適化されるように、方策を効率よく改善していくことが難しい。累積コストや累積報酬の最適化は、累積コストの最小化または状態価値関数が示す累積報酬の最大化に対応する。
【００１６】
これに対し、制御対象１１０の入力と状態とが線形従属の関係であっても、方策を効率よく改善しやすくなるように、価値関数として状態価値関数を採用する第２の制御手法や第３の制御手法が考えられる。
【００１７】
第２の制御手法として、例えば、Ｃａｃｌａのように方策が生成した入力に対して摂動を与え、入力に対するＴＤ誤差に基づき、方策を与えるフィードバック係数行列を更新する制御手法が考えられる。しかしながら、第２の制御手法について、入力に対して、どのような大きさの摂動を与えれば、累積コストや累積報酬が最適化されていくかを判断することは難しい。
【００１８】
ここで、累積コストや累積報酬を最適化するためには、状態価値関数の勾配に沿った方向に方策を変化させることが好ましいという性質がある。しかしながら、状態価値関数の勾配を求めることが難しいため、第２の制御手法は、状態価値関数の勾配とは無関係に摂動を生成してしまう。このため、第２の制御手法では、入力に与える摂動の大きさを変えながら、累積コストや累積報酬が最適化されるかを繰り返し試行することになってしまい、累積コストや累積報酬が効率よく最適化されるように、方策を効率よく改善していくことが難しい。
【００１９】
また、第３の制御手法として、例えば、方策を与えるフィードバック係数行列に摂動行列を加え、入力に対するフィードバック係数行列に関するＴＤ誤差に基づき、方策を与えるフィードバック係数行列を更新する制御手法が考えられる。しかしながら、第３の制御手法について、フィードバック係数行列に、どのような摂動行列を加えれば、累積コストや累積報酬が最適化されていくかを判断することは難しい。
【００２０】
ここで、累積コストや累積報酬を最適化するためには、状態価値関数の勾配に沿った方向にフィードバック係数行列を変化させることが好ましいという性質がある。しかしながら、状態価値関数の勾配を求めることが難しいため、第３の制御手法は、状態価値関数の勾配とは無関係に摂動行列を生成してしまう。このため、第３の制御手法では、フィードバック係数行列に与える摂動行列の各成分の大きさを変えながら、累積コストや累積報酬が最適化されるかを繰り返し試行することになってしまう。結果、第３の制御手法では、累積コストや累積報酬が効率よく最適化されるように、方策を効率よく改善していくことが難しい。
【００２１】
そこで、本実施の形態では、制御対象１１０の性質を利用し、方策を与えるフィードバック係数行列の各成分について、摂動に対する反応度合いを示す偏微分を算出する方策改善方法について説明する。この方策改善方法によれば、算出した偏微分に基づき、状態に対するフィードバック係数行列に関する状態価値関数の勾配関数行列を推定することができ、累積コストや累積報酬が最適化されるようにフィードバック係数行列を効率よく更新することができる。
【００２２】
図１の例では、制御対象１１０は、制御対象１１０の状態変化が離散時間線形時不変確定状態方程式であらわされ、制御対象１１０の状態方程式と、即時コストまたは即時報酬の２次形式の方程式とにおける係数行列が未知である状況である。また、制御対象１１０は、制御対象１１０の状態が出力（ｏｕｔｐｕｔ）になり、制御対象１１０の状態が直接観測可能である状況である。
【００２３】
図１の例では、制御対象１１０の状態変化が、線形差分方程式で規定され、かつ、制御対象１１０の即時コストまたは即時報酬が、制御対象１１０の状態および制御対象１１０への入力の２次形式で規定される。
【００２４】
方策改善装置１００は、状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成する。ＴＤ誤差を生成する具体例は、例えば、図８および図９を用いて後述する。これによれば、方策改善装置１００は、フィードバック係数行列の各成分について摂動に対する反応度合いを示す偏微分の結果を取得することができる。
【００２５】
方策改善装置１００は、ＴＤ誤差および摂動に基づき、状態に対するフィードバック係数行列に関する状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成する。推定勾配関数行列を生成する具体例は、例えば、図９および図１０を用いて後述する。これによれば、方策改善装置１００は、任意の状態を代入可能な推定勾配関数行列を生成することができる。
【００２６】
方策改善装置１００は、生成した推定勾配関数行列を用いて、フィードバック係数行列を更新する。フィードバック係数行列を更新する具体例は、例えば、図１０を用いて後述する。これによれば、方策改善装置１００は、任意の状態を代入した推定勾配関数行列の推定値に基づき、フィードバック係数行列を更新することができる。
【００２７】
これにより、方策改善装置１００は、フィードバック係数行列に、どのような摂動行列を加えれば、累積コストや累積報酬が最適化されていくかを判断することができるようになる。結果として、方策改善装置１００は、状態価値関数を改善し、累積コストや累積報酬が効率よく最適化されるように、フィードバック係数行列を更新することができ、方策を効率よく改善していくことができる。状態価値関数の改善は、累積コストの場合は全ての状態で価値関数の値がより小さくなることであり、累積報酬の場合は全ての状態で価値関数の値がより大きくなることである。
【００２８】
（方策改善装置１００のハードウェア構成例）
次に、図２を用いて、図１に示した方策改善装置１００のハードウェア構成例について説明する。
【００２９】
図２は、方策改善装置１００のハードウェア構成例を示すブロック図である。図２において、方策改善装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００３０】
ここで、ＣＰＵ２０１は、方策改善装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。
【００３１】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３には、例えば、モデムやＬＡＮアダプタ、シリアル通信アダプタなどを採用することができる。
【００３２】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、方策改善装置１００から着脱可能であってもよい。
【００３３】
方策改善装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、タッチパネル、プリンタ、スキャナなどを有してもよい。また、方策改善装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００３４】
（方策改善装置１００の機能的構成例）
次に、図３を用いて、方策改善装置１００の機能的構成例について説明する。
【００３５】
図３は、方策改善装置１００の機能的構成例を示すブロック図である。方策改善装置１００は、記憶部３００と、観測部３０１と、推定部３０２と、決定部３０３と、出力部３０４とを含む。
【００３６】
記憶部３００は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域によって実現される。観測部３０１〜出力部３０４は、制御部となる機能である。観測部３０１〜出力部３０４は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００３７】
記憶部３００は、制御対象１１０の入力と、状態と、即時コストまたは即時報酬とを蓄積する。これにより、記憶部３００は、制御対象１１０の入力と、状態と、即時コストまたは即時報酬とを、推定部３０２や決定部３０３に参照させることができる。
【００３８】
観測部３０１は、制御対象１１０の状態と、即時コストまたは即時報酬とを観測し、記憶部３００に出力する。これにより、観測部３０１は、制御対象１１０の状態と、即時コストまたは即時報酬とを記憶部３００に蓄積させることができる。
【００３９】
推定部３０２は、状態価値関数を推定した推定状態価値関数を更新する。推定部３０２は、例えば、一括最小二乗法、逐次最小二乗法、一括ＬＳＴＤアルゴリズム、逐次ＬＳＴＤアルゴリズムなどを用いて、推定状態価値関数の係数を更新することにより、推定状態価値関数を更新する。
【００４０】
推定部３０２は、具体的には、図６に後述するステップＳ６０４において、推定状態価値関数の係数を更新することにより、推定状態価値関数を更新する。これにより、推定部３０２は、推定状態価値関数を、フィードバック係数行列を更新するために用いることができる。また、推定部３０２は、状態価値関数を改善することができる。
【００４１】
一括最小二乗法、逐次最小二乗法、一括ＬＳＴＤアルゴリズム、逐次ＬＳＴＤアルゴリズムなどについては、下記非特許文献６や下記非特許文献７を参照することができる。
【００４２】
非特許文献６：Ｙ．Ｚｈｕ  ａｎｄ  Ｘ．Ｒ．Ｌｉ．  Ｒｅｃｕｒｓｉｖｅ  ｌｅａｓｔ  ｓｑｕａｒｅｓ  ｗｉｔｈ  ｌｉｎｅａｒ  ｃｏｎｓｔｒａｉｎｔｓ．  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｉｎ  Ｉｎｆｏｒｍａｔｉｏｎ  ａｎｄ  Ｓｙｓｔｅｍｓ，  ｖｏｌ．７，  ｎｏ．３，  ｐｐ．２８７−３１２，  ２００７．
【００４３】
非特許文献７：Ｃｈｒｉｓｔｏｐｈ  Ｄａｎｎ  ａｎｄ  Ｇｅｒｈａｒｄ  Ｎｅｕｍａｎｎ  ａｎｄ  Ｊａｎ  Ｐｅｔｅｒｓ．  Ｐｏｌｉｃｙ  Ｅｖａｌｕａｔｉｏｎ  ｗｉｔｈ  Ｔｅｍｐｏｒａｌ  Ｄｉｆｆｅｒｅｎｃｅｓ：  Ａ  Ｓｕｒｖｅｙ  ａｎｄ  Ｃｏｍｐａｒｉｓｏｎ．  Ｊｏｕｒｎａｌ  ｏｆ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｒｅｓｅａｒｃｈ，  ｖｏｌ．１５，  ｐｐ．８０９−８８３，  ２０１４．
【００４４】
推定部３０２は、状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成する。方策改善装置１００は、例えば、図８に後述するステップＳ８０２〜Ｓ８０４において、方策を与えるフィードバック係数行列の成分それぞれに摂動を与える。
【００４５】
方策改善装置１００は、例えば、図８に後述するステップＳ８０５、および図９に後述するステップＳ９０１において、摂動に対応する、状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を生成することができる。これにより、推定部３０２は、フィードバック係数行列の各成分について摂動に対する反応度合いを示す偏微分の結果を取得することができる。
【００４６】
推定部３０２は、制御対象１１０の状態変化が線形な差分方程式で規定され、かつ、制御対象１１０の即時コストまたは即時報酬が状態および入力の２次形式で規定されることを利用し、推定勾配関数行列を生成する。推定勾配関数行列は、制御対象１１０の状態に対するフィードバック係数行列に関する状態価値関数の勾配関数行列を推定した行列である。推定部３０２は、例えば、ＴＤ誤差および摂動に基づき、推定勾配関数行列を生成する。
【００４７】
推定部３０２は、具体的には、フィードバック係数行列の各成分について生成されたＴＤ誤差を摂動で除算した結果と、状態価値関数をフィードバック係数行列の各成分で微分した結果とを対応付けて、勾配関数行列の各成分を推定した推定成分を生成する。ここで、推定部３０２は、状態価値関数をフィードバック係数行列の各成分で微分した結果を、状態に依存するベクトルと、状態に依存しないベクトルとの積で規定する。
【００４８】
推定部３０２は、より具体的には、図９に後述するステップＳ９０２〜Ｓ９０５において、勾配関数行列の各成分を推定した推定成分を、任意の状態を代入可能な形式で生成する。そして、推定部３０２は、図１０に後述するステップＳ１００１において、勾配関数行列を推定した推定勾配関数行列を生成する。
【００４９】
ここで、推定部３０２は、フィードバック係数行列の各成分について生成されたＴＤ誤差を摂動で除算した結果と、状態価値関数をフィードバック係数行列の各成分で微分した結果とを対応付けて形成される後述する式（１６）を用いる。
【００５０】
ここで、推定部３０２は、勾配関数行列の各成分を推定した推定成分を生成する際に、一括最小二乗法、逐次最小二乗法、一括ＬＳＴＤアルゴリズム、逐次ＬＳＴＤアルゴリズムなどを用いてもよい。これにより、推定部３０２は、任意の状態を代入可能な推定勾配関数行列を生成することができる。
【００５１】
推定部３０２は、生成した推定勾配関数行列を用いて、フィードバック係数行列を更新する。推定部３０２は、例えば、図１０に後述するステップＳ１００２において、推定勾配関数行列を用いて、フィードバック係数行列を更新する。これにより、推定部３０２は、状態を代入した推定勾配関数行列の推定値に基づき、フィードバック係数行列を更新することができる。
【００５２】
決定部３０３は、更新したフィードバック係数行列を用いた方策に基づいて、制御対象１１０に対する入力値を決定する。これにより、決定部３０３は、累積コストや累積報酬を最適化することができる入力値を決定することができる。
【００５３】
出力部３０４は、決定した入力値を制御対象１１０に対して出力する。また、出力部３０４は、決定した入力値を記憶部３００に対して出力する。これにより、出力部３０４は、入力値を記憶部３００に記憶し、推定部３０２や決定部３０３に参照させることができる。
【００５４】
（強化学習の実施例）
次に、強化学習の実施例について説明する。実施例において、下記式（１）〜下記式（９）によって、制御対象１１０の状態方程式と、即時コストの２次形式の方程式と、方策とが規定され、問題設定が行われる。実施例において、制御対象１１０の状態は、直接観測可能である。
【００５５】
【数１】
2019053593.tif 000003
【００５６】
上記式（１）は、制御対象１１０の状態方程式である。ｔは、単位時間の倍数で示される時刻である。ｔ＋１は、時刻ｔから単位時間経過した次の時刻である。ｘt+1は、次の時刻ｔ＋１における状態である。ｘtは、時刻ｔにおける状態である。ｕtは、時刻ｔにおける入力である。Ａ、Ｂは、係数行列である。上記式（１）は、次の時刻ｔ＋１における状態ｘt+1が、時刻ｔにおける状態ｘtと、時刻ｔにおける入力ｕtによって決定される関係があることを示す。係数行列Ａ，Ｂは、未知である。
【００５７】
【数２】
2019053593.tif 000004
【００５８】
上記式（２）は、状態ｘ0が、ｎ次元であることを示す。ｎは、既知である。
【００５９】
【数３】
2019053593.tif 000005
【００６０】
上記式（３）は、入力ｕtが、ｍ次元であることを示す。
【００６１】
【数４】
2019053593.tif 000006
【００６２】
上記式（４）は、係数行列Ａが、ｎ×ｎ次元である(ｎ行ｎ列である)ことを示し、係数行列Ｂが、ｎ×ｍ次元である（ｎ行ｍ列である）ことを示す。（Ａ，Ｂ）は可安定（ｓｔａｂｉｌｉｚａｂｌｅ）である。
【００６３】
【数５】
2019053593.tif 000007
【００６４】
上記式（５）は、制御対象１１０の即時コストの方程式である。ｃtは、時刻ｔにおける入力ｕtに応じて単位時間後に発生する即時コストである。上付き文字Ｔは、転置を示す。上記式（５）は、即時コストｃtが、時刻ｔにおける状態ｘtと、時刻ｔにおける入力ｕtとの２次形式によって決定される関係があることを示す。係数行列Ｑ，Ｒは、未知である。即時コストｃtは、直接観測可能である。
【００６５】
【数６】
2019053593.tif 000008
【００６６】
上記式（６）は、係数行列Ｑが、ｎ×ｎ次元であることを示す。≧０は、半正定値対称行列を示す。また、上記式（６）は、係数行列Ｒが、ｍ×ｍ次元であることを示す。＞０は、正定値対称行列を示す。
【００６７】
【数７】
2019053593.tif 000009
【００６８】
Ｆtは、時刻ｔに用いられるフィードバック係数行列であって、状態ｘtに関する係数行列を示す。上記式（７）は、時刻ｔにおける状態ｘtに基づいて、時刻ｔにおける入力ｕtを決定する方程式である。
【００６９】
【数８】
2019053593.tif 000010
【００７０】
上記式（８）は、フィードバック係数行列Ｆtが、ｍ×ｎ次元であることを示す。以下の説明では、フィードバック係数行列Ｆtを単に「フィードバック係数行列Ｆ」と表記する場合がある。次に、方策改善装置１００がフィードバック係数行列Ｆを更新する具体例について説明する。
【００７１】
（フィードバック係数行列Ｆを更新する具体例）
方策改善装置１００は、フィードバック係数行列Ｆの（ｉ，ｊ）の成分Ｆijに摂動を加える。（ｉ，ｊ）は、行列の成分を特定するインデックスである。インデックス（ｉ，ｊ）は、例えば、行列Ｆのｉ行ｊ列の成分を特定する。
【００７２】
方策改善装置１００は、具体的には、フィードバック係数行列Ｆ＋εＥijの数式によって、フィードバック係数行列Ｆの（ｉ，ｊ）の成分Ｆijに摂動を加える。Ｅijは、インデックス（ｉ，ｊ）で特定される成分が１、その成分以外の成分が０であるｍ×ｎ次元行列である。εは、実数である。
【００７３】
方策改善装置１００は、上記式（８）のＦtに代わり、フィードバック係数行列Ｆ＋εＥijを用いて、入力を生成する。ここで、ＴＤ誤差は、フィードバック係数行列Ｆの（ｉ，ｊ）の成分Ｆijに関する状態価値関数の偏微分係数（ｐａｒｔｉａｌ  ｄｉｆｆｅｒｅｎｔｉａｌ  ｃｏｅｆｆｉｃｉｅｎｔ）によって表現することができる。
【００７４】
さらに、制御対象１１０の状態変化が線形時不変確定ダイナミクスに従い、即時コストが２次形式で表現される場合、状態価値関数は、下記式（９）のように２次形式で表現される。
【００７５】
【数９】
2019053593.tif 000011
【００７６】
このため、状態価値関数を、フィードバック係数行列Ｆの（ｉ，ｊ）の成分Ｆijで偏微分した関数∂Ｖ／∂Ｆij（ｘ：Ｆ）は、下記式（１１）のように２次形式で表現される。以下の説明では、偏微分した関数を「偏導関数（ｐａｒｔｉａｌ  ｄｅｒｉｖａｔｉｖｅ）」と表記する場合がある。
【００７７】
【数１０】
2019053593.tif 000012
【００７８】
方策改善装置１００は、上記式（１０）を利用し、フィードバック係数行列Ｆの（ｉ，ｊ）の成分Ｆijに関する偏導関数∂Ｖ／∂Ｆij（ｘ：Ｆ）の推定関数を算出する。以下の説明では、推定関数は、例えば、偏導関数∂Ｖ／∂Ｆij（ｘ：Ｆ）の上部に＾を付して、下記式（１１）のように記載する場合がある。
【００７９】
【数１１】
2019053593.tif 000013
【００８０】
方策改善装置１００は、フィードバック係数行列Ｆのそれぞれの成分に摂動を加え、同様に、偏導関数∂Ｖ／∂Ｆij（ｘ：Ｆ）の推定関数を算出する。そして、方策改善装置１００は、偏導関数∂Ｖ／∂Ｆijの推定関数を用いて、フィードバック係数行列の勾配関数行列▽FＶ（ｘ：Ｆ）を推定した推定勾配関数行列を生成する。以下の説明では、推定勾配関数行列は、例えば、勾配関数行列▽FＶ（ｘ：Ｆ）の上部に＾を付して、下記式（１２）のように記載する場合がある。
【００８１】
【数１２】
2019053593.tif 000014
【００８２】
これにより、方策改善装置１００は、上記式（１０）のように、状態ｘと分離された形式で、行列∂ＰF／∂Ｆijの推定行列を生成することができる。このため、方策改善装置１００は、ある時刻に、勾配関数行列▽FＶ（ｘ：Ｆ）を推定した推定勾配関数行列を任意の状態ｘを代入可能な形式で算出することができる。そして、方策改善装置１００は、その時刻以降は、ある状態について勾配関数行列▽FＶ（ｘ：Ｆ）の推定値を算出する場合、算出済みの推定勾配関数行列に、その状態を代入すればよくなる。
【００８３】
このように、方策改善装置１００は、ある状態ｘに対する勾配関数行列▽FＶ（ｘ：Ｆ）の推定値ではなく、ある時刻以降に利用可能である勾配関数行列▽FＶ（ｘ：Ｆ）を推定した推定勾配関数行列を生成することができる。このため、方策改善装置１００は、様々な状態について勾配関数行列▽FＶ（ｘ：Ｆ）の推定値を算出することを比較的容易にすることができ、処理量の低減化を図ることができる。
【００８４】
また、方策改善装置１００は、実際に観測した入力や状態、即時コストに基づいて勾配関数行列▽FＶ（ｘ：Ｆ）を推定した推定勾配関数行列を生成するため、勾配関数行列▽FＶ（ｘ：Ｆ）を推定した推定勾配関数行列を精度よく生成することができる。
【００８５】
また、方策改善装置１００は、累積コストを効率よく最小化するように、フィードバック係数行列Ｆを更新することができる。このため、方策改善装置１００は、制御対象１１０の状態が好ましい状態になるまでにかかる時間の低減化を図ることができる。方策改善装置１００は、例えば、勾配関数行列▽FＶ（ｘ：Ｆ）を用いない強化学習の技術に比べて、制御対象１１０の状態が好ましい状態になるまでにかかる時間の低減化を図ることができる。
【００８６】
また、方策改善装置１００は、勾配関数行列▽FＶ（ｘ：Ｆ）を推定した推定勾配関数行列に基づき、フィードバック係数行列Ｆを更新する際に、フィードバック係数行列Ｆの変化度合いを調整することができる。このため、方策改善装置１００は、フィードバック係数行列Ｆの急変化による制御対象１１０への悪影響などを防止することができる。
【００８７】
例えば、状態価値関数が精度よく推定されていない段階でも、フィードバック係数行列Ｆの変化度合いを調整することができない場合が考えられる。この場合、フィードバック係数行列Ｆが急変化し、好ましくない係数行列になり、累積コストや累積報酬が最適化されるように制御対象１１０を制御することが難しく、制御対象１１０の安定性を損なう可能性がある。これに対し、方策改善装置１００は、フィードバック係数行列Ｆの変化度合いを調整するため、状態価値関数が精度よく推定されていない段階でも、フィードバック係数行列Ｆの変化度合いを調整することができ、フィードバック係数行列Ｆを急変化しづらくすることができる。
【００８８】
また、方策改善装置１００は、様々な時刻の状態について勾配関数行列▽FＶ（ｘ：Ｆ）の推定値を算出した結果に基づいて、勾配関数行列▽FＶ（ｘ：Ｆ）の推定値の統計値を算出することができる。このため、方策改善装置１００は、累積コストを効率よく最小化するように、フィードバック係数行列Ｆを更新しやすくすることができる。
【００８９】
（制御対象１１０の具体例）
次に、図４および図５を用いて、制御対象１１０の具体例について説明する。
【００９０】
図４および図５は、制御対象１１０の具体例を示す説明図である。図４の例では、制御対象１１０は、熱源であるサーバ４０１と、ＣＲＡＣやＣｈｉｌｌｅｒなどの冷却器４０２とを含むサーバルーム４００である。入力は、冷却器４０２に対する設定温度や設定風量である。状態は、サーバルーム４００に設けられたセンサ装置からのセンサデータなどであり、例えば、温度などである。状態は、制御対象１１０以外から得られる制御対象１１０に関するデータであってもよく、例えば、気温や天気などであってもよい。即時コストは、例えば、サーバルーム４００の５分間の消費電力量である。価値関数は、例えば、サーバルーム４００の累積消費電力量である。
【００９１】
方策改善装置１００は、累積コストである累積消費電力量を効率よく最小化するように、フィードバック係数行列Ｆを更新することができる。このため、方策改善装置１００は、制御対象１１０の累積消費電力量が最小化されるまでにかかる時間の低減化を図ることができ、サーバルーム４００の運営コストの低減化を図ることができる。また、方策改善装置１００は、サーバ４０１の使用状況の変化および気温の変化などが発生した場合も、その変化から比較的短い時間で、累積消費電力量を効率よく最小化することができる。
【００９２】
図５の例では、制御対象１１０は、発電機５００である。入力は、発電機５００に対する指令値である。状態は、発電機５００に設けられたセンサ装置からのセンサデータであり、例えば、発電機５００の発電量や発電機５００のタービンの回転量などである。即時報酬は、例えば、発電機５００の５分間の発電量である。価値関数は、例えば、発電機５００の累積発電量である。
【００９３】
方策改善装置１００は、累積報酬である累積発電量を効率よく最大化するように、フィードバック係数行列Ｆを更新することができる。このため、方策改善装置１００は、制御対象１１０の累積発電量が最大化されるまでにかかる時間の低減化を図ることができ、発電機５００の利益の増大化を図ることができる。また、方策改善装置１００は、発電機５００の状況の変化などが発生した場合も、その変化から比較的短い時間で、累積発電量を効率よく最大化することができる。また、制御対象１１０は、例えば、化学プラントや自律移動ロボット、産業用ロボットであってもよい。
【００９４】
（強化学習処理手順の一例）
次に、図６および図７を用いて、強化学習処理手順の一例について説明する。
【００９５】
図６は、バッチ処理形式の強化学習処理手順の一例を示すフローチャートである。図６において、まず、方策改善装置１００は、フィードバック係数行列Ｆを初期化し、状態ｘ0を観測し、入力ｕ0を決定する（ステップＳ６０１）。
【００９６】
次に、方策改善装置１００は、前回の入力ｕt-1に応じた、状態ｘtと、即時コストｃt-1とを観測し、入力ｕt＝Ｆｘtを算出する（ステップＳ６０２）。そして、方策改善装置１００は、ステップＳ６０２をＮ回繰り返したか否かを判定する（ステップＳ６０３）。
【００９７】
ここで、Ｎ回繰り返していない場合（ステップＳ６０３：Ｎｏ）、方策改善装置１００は、ステップＳ６０２の処理に戻る。一方で、Ｎ回繰り返している場合（ステップＳ６０３：Ｙｅｓ）、方策改善装置１００は、ステップＳ６０４の処理に移行する。
【００９８】
方策改善装置１００は、状態ｘt，ｘt-1，・・・，ｘt-N-1と、即時コストｃt-1，ｃt-2，・・・，ｃt-N-2とに基づいて、状態価値関数の推定関数を算出する（ステップＳ６０４）。
【００９９】
次に、方策改善装置１００は、状態価値関数の推定関数に基づいて、フィードバック係数行列Ｆを更新する（ステップＳ６０５）。そして、方策改善装置１００は、ステップＳ６０２の処理に戻る。これにより、方策改善装置１００は、制御対象１１０を制御することができる。
【０１００】
図７は、逐次処理形式の強化学習処理手順の一例を示すフローチャートである。図７において、まず、方策改善装置１００は、フィードバック係数行列Ｆと状態価値関数の推定関数とを初期化し、状態ｘ0を観測し、入力ｕ0を決定する（ステップＳ７０１）。
【０１０１】
次に、方策改善装置１００は、前回の入力ｕt-1に応じた、状態ｘtと、即時コストｃt-1とを観測し、入力ｕt＝Ｆｘtを算出する（ステップＳ７０２）。そして、方策改善装置１００は、状態ｘt，ｘt-1と、即時コストｃt-1とに基づいて、状態価値関数の推定関数を更新する（ステップＳ７０３）。
【０１０２】
次に、方策改善装置１００は、ステップＳ７０３をＮ回繰り返したか否かを判定する（ステップＳ７０４）。ここで、Ｎ回繰り返していない場合（ステップＳ７０４：Ｎｏ）、方策改善装置１００は、ステップＳ７０２の処理に戻る。一方で、Ｎ回繰り返している場合（ステップＳ７０４：Ｙｅｓ）、方策改善装置１００は、ステップＳ７０５の処理に移行する。
【０１０３】
次に、方策改善装置１００は、状態価値関数の推定関数に基づいて、フィードバック係数行列Ｆを更新する（ステップＳ７０５）。そして、方策改善装置１００は、ステップＳ７０２の処理に戻る。これにより、方策改善装置１００は、制御対象１１０を制御することができる。
【０１０４】
（方策改善処理手順の一例）
次に、図８を用いて、ステップＳ６０５の具体例であって、方策改善装置１００がフィードバック係数行列Ｆを更新し、方策を改善する方策改善処理手順の一例について説明する。
【０１０５】
図８は、方策改善処理手順の一例を示すフローチャートである。図８において、まず、方策改善装置１００は、下記式（１３）に基づいて、インデックスセットＳを初期化する（ステップＳ８０１）。
【０１０６】
【数１３】
2019053593.tif 000015
【０１０７】
（ｉ，ｊ）は、行列の成分を特定するインデックスである。インデックス（ｉ，ｊ）は、例えば、行列のｉ行ｊ列の成分を特定する。以下の説明では、ｍは、フィードバック係数行列Ｆの行数である。ｎは、フィードバック係数行列Ｆの列数である。
【０１０８】
次に、方策改善装置１００は、インデックスセットＳから、インデックス（ｉ，ｊ）を取り出す（ステップＳ８０２）。そして、方策改善装置１００は、コストｃt-1と状態ｘtとを観測し、下記式（１４）に基づいて、入力ｕtを算出する（ステップＳ８０３）。
【０１０９】
【数１４】
2019053593.tif 000016
【０１１０】
次に、方策改善装置１００は、ステップＳ８０３をＮ’回繰り返したか否かを判定する（ステップＳ８０４）。ここで、Ｎ’回繰り返していない場合（ステップＳ８０４：Ｎｏ）、方策改善装置１００は、ステップＳ８０３の処理に戻る。一方で、Ｎ’回繰り返している場合（ステップＳ８０４：Ｙｅｓ）、方策改善装置１００は、ステップＳ８０５の処理に移行する。
【０１１１】
次に、方策改善装置１００は、係数Ｆijに関する状態価値関数の偏導関数の推定関数を、状態ｘt，ｘt-1，・・・，ｘt-N'-1と即時コストｃt-1，ｃt-2，・・・，ｃt-N'-2と状態価値関数の推定関数とを用いて算出する（ステップＳ８０５）。
【０１１２】
そして、方策改善装置１００は、インデックスセットＳが空であるか否かを判定する（ステップＳ８０６）。ここで、空ではない場合（ステップＳ８０６：Ｎｏ）、方策改善装置１００は、ステップＳ８０２の処理に戻る。一方で、空である場合（ステップＳ８０６：Ｙｅｓ）、方策改善装置１００は、ステップＳ８０７の処理に移行する。
【０１１３】
次に、方策改善装置１００は、推定勾配関数行列を用いて、フィードバック係数行列Ｆを更新する（ステップＳ８０７）。そして、方策改善装置１００は、方策改善処理を終了する。
【０１１４】
（推定処理手順の一例）
次に、図９を用いて、ステップＳ８０５の具体例であって、係数Ｆijに関する状態価値関数の偏導関数の推定関数を算出する推定処理手順の一例について説明する。
【０１１５】
図９は、推定処理手順の一例を示すフローチャートである。図９において、まず、方策改善装置１００は、下記式（１５）に基づいて、ＴＤ誤差δt-1，・・・，δt-N'-2を算出する（ステップＳ９０１）。
【０１１６】
【数１５】
2019053593.tif 000017
【０１１７】
次に、方策改善装置１００は、下記式（１６）に基づいて、ＴＤ誤差δt-1，・・・，δt-N'-2を、摂動εで除算した結果を取得する（ステップＳ９０２）。
【０１１８】
【数１６】
2019053593.tif 000018
【０１１９】
次に、方策改善装置１００は、下記式（１７）に基づいて、一括最小二乗法によって、ベクトルθFijFの推定ベクトルを算出する（ステップＳ９０３）。
【０１２０】
【数１７】
2019053593.tif 000019
【０１２１】
Ｔは、転置を示す。○と×を重ねた記号は、クロネッカー積を示す。†は、ムーア−ペンローズ（Ｍｏｏｒｅ−Ｐｅｎｒｏｓｅ）の一般化逆行列を示す。
【０１２２】
上記式（１７）は、上記式（１６）に対応するベクトルと、状態に依存しないベクトルθFijFの推定ベクトルおよび下記式（１８）で規定される状態に依存する行列の積との近似等式を形成し、その近似等式を変形することにより得られる。
【０１２３】
【数１８】
2019053593.tif 000020
【０１２４】
ここで、状態に依存しないベクトルθFijFの推定ベクトルおよび上記式（１８）で規定される状態に依存する行列の積は、状態価値関数をフィードバック係数行列Ｆの（ｉ，ｊ）成分で微分した結果に対応する。
【０１２５】
次に、方策改善装置１００は、下記式（１９）に基づいて、ベクトルθFijFの推定ベクトルを用いて、行列∂ＰF／∂Ｆijの推定行列を生成する（ステップＳ９０４）。
【０１２６】
【数１９】
2019053593.tif 000021
【０１２７】
ｖｅｃ-1は、ベクトルを行列に逆変換する記号である。
【０１２８】
次に、方策改善装置１００は、下記式（２０）に基づいて、状態価値関数をＦijによって偏微分した偏導関数∂Ｖ／∂Ｆijの推定関数を算出する（ステップＳ９０５）。そして、方策改善装置１００は、推定処理を終了する。
【０１２９】
【数２０】
2019053593.tif 000022
【０１３０】
（更新処理手順の一例）
次に、図１０を用いて、ステップＳ８０７の具体例であって、方策改善装置１００がフィードバック係数行列Ｆを更新する更新処理手順の一例について説明する。
【０１３１】
図１０は、更新処理手順の一例を示すフローチャートである。図１０において、まず、方策改善装置１００は、下記式（２１）に基づいて、偏導関数∂Ｖ／∂Ｆijの推定関数を用いて、フィードバック係数行列の勾配関数行列▽FＶ（ｘ：Ｆ）を推定した推定勾配関数行列を生成する（ステップＳ１００１）。
【０１３２】
【数２１】
2019053593.tif 000023
【０１３３】
次に、方策改善装置１００は、下記式（２２）に基づいて、フィードバック係数行列Ｆを更新する（ステップＳ１００２）。
【０１３４】
【数２２】
2019053593.tif 000024
【０１３５】
αは、重みである。そして、方策改善装置１００は、更新処理を終了する。これにより、方策改善装置１００は、状態価値関数を改善し、累積コストや累積報酬が効率よく最適化されるように、フィードバック係数行列Ｆを更新することができる。また、方策改善装置１００は、任意のｘが代入可能な推定勾配関数行列を生成することができる。
【０１３６】
ここでは、方策改善装置１００が、即時コストに基づく強化学習を実現する場合について説明したが、これに限らない。例えば、方策改善装置１００が、即時報酬に基づく強化学習を実現する場合があってもよい。この場合、方策改善装置１００は、上記式（２２）に代わり、下記式（２３）を用いるようにする。
【０１３７】
【数２３】
2019053593.tif 000025
【０１３８】
以上説明したように、方策改善装置１００によれば、状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成することができる。方策改善装置１００によれば、ＴＤ誤差および摂動に基づき、制御対象１１０の状態に対するフィードバック係数行列に関する状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成することができる。方策改善装置１００によれば、生成した推定勾配関数行列を用いて、フィードバック係数行列を更新することができる。これにより、方策改善装置１００は、フィードバック係数行列に基づいて、方策を効率よく改善することができる。
【０１３９】
方策改善装置１００によれば、フィードバック係数行列の各成分について生成されたＴＤ誤差を摂動で除算した結果と、状態価値関数をフィードバック係数行列の各成分で微分した結果とを対応付けて、勾配関数行列の各成分を推定することができる。これにより、方策改善装置１００は、状態を代入可能な形式で、推定勾配関数行列を生成することができる。
【０１４０】
方策改善装置１００によれば、状態価値関数をフィードバック係数行列の各成分で微分した結果を、状態に依存するベクトルと、状態に依存しないベクトルとの積で規定することができる。これにより、方策改善装置１００は、任意の状態を代入可能な形式で、推定勾配関数行列を生成することができる。
【０１４１】
なお、本実施の形態で説明した方策改善方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション、マイクロコントローラ等のコンピュータで実行することにより実現することができる。本実施の形態で説明した方策改善プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した方策改善プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１４２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１４３】
（付記１）状態価値関数による強化学習の方策改善プログラムであって、
前記状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、前記方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成し、
前記強化学習における制御対象の状態変化が線形な差分方程式で規定され、かつ、前記制御対象の即時コストまたは即時報酬が状態および入力の２次形式で規定される場合、前記ＴＤ誤差および前記摂動に基づき、前記制御対象の状態に対する前記フィードバック係数行列に関する前記状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成し、
生成した前記推定勾配関数行列を用いて、前記フィードバック係数行列を更新する、
処理をコンピュータに実行させることを特徴とする方策改善プログラム。
【０１４４】
（付記２）前記生成する処理は、前記フィードバック係数行列の各成分について生成された前記ＴＤ誤差を前記摂動で除算した結果と、前記状態価値関数を前記フィードバック係数行列の各成分で微分した結果とを対応付けて、前記勾配関数行列の各成分を推定した推定成分を生成する、ことを特徴とする付記１に記載の方策改善プログラム。
【０１４５】
（付記３）前記状態価値関数を前記フィードバック係数行列の各成分で微分した結果は、状態に依存するベクトルと、状態に依存しないベクトルとの積で規定される、ことを特徴とする付記１または２に記載の方策改善プログラム。
【０１４６】
（付記４）前記状態価値関数は、前記制御対象の状態の２次形式で規定される、ことを特徴とする付記１〜３のいずれか一つに記載の方策改善プログラム。
【０１４７】
（付記５）状態価値関数による強化学習の方策改善方法であって、
前記状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、前記方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成し、
前記強化学習における制御対象の状態変化が線形な差分方程式で規定され、かつ、前記制御対象の即時コストまたは即時報酬が状態および入力の２次形式で規定される場合、前記ＴＤ誤差および前記摂動に基づき、前記制御対象の状態に対する前記フィードバック係数行列に関する前記状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成し、
生成した前記推定勾配関数行列を用いて、前記フィードバック係数行列を更新する、
処理をコンピュータが実行することを特徴とする方策改善方法。
【０１４８】
（付記６）状態価値関数による強化学習の方策改善装置であって、
前記状態価値関数を推定した推定状態価値関数に対するＴＤ誤差を、前記方策を与えるフィードバック係数行列の成分それぞれに摂動を与えることにより生成し、
前記強化学習における制御対象の状態変化が線形な差分方程式で規定され、かつ、前記制御対象の即時コストまたは即時報酬が状態および入力の２次形式で規定される場合、前記ＴＤ誤差および前記摂動に基づき、前記制御対象の状態に対する前記フィードバック係数行列に関する前記状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成し、
生成した前記推定勾配関数行列を用いて、前記フィードバック係数行列を更新する、
制御部を有することを特徴とする方策改善装置。
【符号の説明】
【０１４９】
１００  方策改善装置
１１０  制御対象
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２１０  ネットワーク
３００  記憶部
３０１  観測部
３０２  推定部
３０３  決定部
３０４  出力部
４００  サーバルーム
４０１  サーバ
４０２  冷却器
５００  発電機
【図１】
2019053593.tif 000026
【図２】
2019053593.tif 000027
【図３】
2019053593.tif 000028
【図４】
2019053593.tif 000029
【図５】
2019053593.tif 000030
【図６】
2019053593.tif 000031
【図７】
2019053593.tif 000032
【図８】
2019053593.tif 000033
【図９】
2019053593.tif 000034
【図１０】
2019053593.tif 000035