以下に、図面を参照して、本発明にかかる方策改善方法、方策改善プログラム、および方策改善装置の実施の形態を詳細に説明する。
(実施の形態にかかる方策改善方法の一実施例)
図1は、実施の形態にかかる方策改善方法の一実施例を示す説明図である。方策改善装置100は、所定のタイミングで、方策(policy)を改善し、方策によって制御対象110に対する入力(input)を決定することにより、制御対象110を制御するエージェントとなるコンピュータである。方策改善装置100は、例えば、サーバやPC(Personal Computer)、マイクロコントローラなどである。
制御対象110は、何らかの事象であり、例えば、現実に存在する物理系である。制御対象110は環境(environment)とも呼ばれる。制御対象110は、具体的には、サーバルーム、空調設備、発電設備、または、産業用機械などである。方策は、所定のパラメータにより、制御対象110に対する入力値を決定する方程式である。方策は、制御則(control law)とも呼ばれる。所定のパラメータは、例えば、フィードバック係数行列である。
方策の改善は、方策のパラメータの更新に対応する。方策の改善は、累積コストや累積報酬がより効率よく最適化されるように方策を変更することである。入力(input)は、制御対象110に対する操作である。入力は、行動(action)とも呼ばれる。制御対象110に対する入力に応じて、制御対象110の状態(state)が変化し、また、即時コストまたは即時報酬が発生する。制御対象110の状態および即時コストまたは即時報酬は、観測可能である。
ここで、下記参考文献1を参考に、方策のパラメータを更新していくことにより方策の改善を図り、制御対象110を制御する第1の制御手法が考えられる。
参考文献1 : S. J. Bradtke, B. E. Ydstie and A. G. Barto, “Adaptive linear quadratic control using policy iteration”, In Proc. of the 1994 American Control Conference, pp. 3475-3479, Baltimore, USA, 1994.
第1の制御手法は、例えば、適応方策反復法(adaptive policy iteration)と呼ばれる制御手法である。第1の制御手法は、具体的には、入力または方策のパラメータに対して摂動を与え、入力に対するTD誤差(Temporal Difference error)を算出し、算出したTD誤差に基づき方策のパラメータを更新する。
しかしながら、第1の制御手法では、状態-行動価値関数(Q関数)に基づいて強化学習の方策を改善するため、入力または方策のパラメータに対して、どのような摂動を与えれば、累積コストや累積報酬が最適化されていくかを判断することが難しく、方策のパラメータを改善していくことが難しい場合がある。換言すれば、第1の制御手法は、入力または方策のパラメータに与える摂動を適切に設定する設定方法が明らかではない場合には、方策のパラメータを改善していくことができない。
ところで、累積コストや累積報酬を最適化するためには、状態価値関数(V関数)の勾配に沿った方向に、方策のパラメータを変化させることが好ましいという性質がある。この性質を利用し、下記参考文献2および下記参考文献3を参考に、方策のパラメータを更新していくことにより方策の改善を図り、制御対象110を制御する第2の制御手法が考えられる。
参考文献2 : T. Sasaki, E. Uchibe, H. Iwane, H. Yanami, H. Anai and K. Doya, “Policy gradient reinforcement learning method for discrete-time linear quadratic regulation problem using estimated state value function,” 2017 56th Annual Conference of the Society of Instrument and Control Engineers of Japan (SICE), Kanazawa, 2017, pp. 653-657.
参考文献3 : 特開2019-053593号公報
第2の制御手法は、例えば、方策のパラメータの成分を1つずつ選び、選んだ成分にだけ摂動が加えられた状態で入力決定することを複数回行った結果に基づき、状態価値関数の勾配関数行列を推定し、方策のパラメータを更新する制御手法である。これによれば、第2の制御手法は、状態価値関数の勾配に沿った方向に、方策のパラメータを変化させることができる。
しかしながら、第2の制御手法では、方策のパラメータを更新する過程において入力決定を行う回数が増加しやすく、処理負担が増大しやすいという問題がある。第2の制御手法は、例えば、状態価値関数の勾配関数行列を推定するために、方策のパラメータの成分ごとに複数回の入力決定を行うため、方策のパラメータの成分数に比例して入力決定の回数の増加を招き、処理負担および処理時間の増大化を招く。そして、第2の制御手法は、入力決定に応じて所定時間待機して即時コストまたは即時報酬を観測する処理回数の増大化も招き、処理負担および処理時間の増大化を招く。
以上から、状態価値関数に基づいて強化学習の方策を改善する場合に、方策のパラメータを更新する過程において入力決定を行う回数の増加を抑制しつつ、方策のパラメータを更新することができる新たな制御方法が望まれる。
そこで、本実施の形態では、制御対象110の状態に関する一般化逆行列を用いて、方策のパラメータを更新することにより、方策のパラメータを更新する過程において入力決定を行う回数の低減化を図ることができる方策改善方法について説明する。
図1の例では、制御対象110の状態および制御対象110に対する入力が連続値を取り、制御対象110の状態変化と、即時コストまたは即時報酬の発生の仕方が未知であるという状況である。また、制御対象110は、制御対象110の状態が出力(output)になり、制御対象110の状態が直接観測可能である状況である。また、方策は、確定的であり、連続値を取る入力を算出する制御則であり、方策のパラメータについて線形である状況である。
(1-1)方策改善装置100は、方策と、制御対象110に対する入力を探索する所定の探索方法とに基づいて、制御対象110に対する入力を算出する。所定の探索方法は、例えば、方策から算出される入力に摂動を加える探索方法である。方策改善装置100は、例えば、方策から算出される入力に摂動を加え、摂動を加えた入力を、制御対象110に対する入力に決定する。
(1-2)方策改善装置100は、算出した入力を制御対象110に印加した結果に基づいて、制御対象110に対する入力と、制御対象110の状態に関する一般化逆行列とを用いて、方策のパラメータを更新する。パラメータは、例えば、フィードバック係数行列である。方策改善装置100は、例えば、制御対象110に対する入力と、制御対象110の状態に関する一般化逆行列とを用いた更新則により、方策のパラメータを更新する。更新則は、例えば、後述する式(25)に示す更新式に対応する。
このように、方策改善装置100は、制御対象110の状態に関する一般化逆行列を用いれば、状態価値関数の勾配関数行列を推定せずとも、方策のパラメータを更新することができる。これにより、方策改善装置100は、状態価値関数の勾配関数行列を推定せずに済むため、方策のパラメータの成分数に依らず、方策のパラメータの更新にかかる入力決定回数の低減化を図ることができる。そして、方策改善装置100は、入力決定に応じて所定時間待機して即時コストまたは即時報酬を観測する処理回数の低減化も図ることができる。このため、方策改善装置100は、処理負担および処理時間の低減化を図ることができる。
また、方策改善装置100は、累積コストや累積報酬が効率よく最適化されるように、方策のパラメータを更新することができ、方策を効率よく改善していくことができる。また、方策改善装置100は、状態-行動価値関数ではなく状態価値関数に基づいて強化学習の方策を改善する場合にも方策のパラメータを更新することができ、方策を効率よく改善していくことができる。
ここでは、所定の探索方法が、方策から算出される入力に摂動を加える探索方法である場合について説明したが、これに限らない。例えば、所定の探索方法が、方策のパラメータに摂動を加える探索方法である場合があってもよい。また、例えば、所定の探索方法が、ε貪欲法である場合があってもよい。
(方策改善装置100のハードウェア構成例)
次に、図2を用いて、図1に示した方策改善装置100のハードウェア構成例について説明する。
図2は、方策改善装置100のハードウェア構成例を示すブロック図である。図2において、方策改善装置100は、CPU(Central Processing Unit)201と、メモリ202と、ネットワークI/F(Interface)203と、記録媒体I/F204と、記録媒体205とを有する。また、各構成部は、バス200によってそれぞれ接続される。
ここで、CPU201は、方策改善装置100の全体の制御を司る。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU201のワークエリアとして使用される。メモリ202に記憶されるプログラムは、CPU201にロードされることで、コーディングされている処理をCPU201に実行させる。メモリ202は、例えば、図3および図4に後述する各種テーブルを記憶する。
ネットワークI/F203は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F203は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F203は、例えば、モデムやLAN(Local Area Network)アダプタなどである。
記録媒体I/F204は、CPU201の制御に従って記録媒体205に対するデータのリード/ライトを制御する。記録媒体I/F204は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体205は、記録媒体I/F204の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体205は、例えば、図3および図4に後述する各種テーブルを記憶してもよい。記録媒体205は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体205は、方策改善装置100から着脱可能であってもよい。
方策改善装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、タッチパネル、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、方策改善装置100は、記録媒体I/F204や記録媒体205を複数有していてもよい。また、方策改善装置100は、記録媒体I/F204や記録媒体205を有していなくてもよい。
(方策改善テーブル300の記憶内容)
次に、図3を用いて、方策改善テーブル300の記憶内容の一例について説明する。方策改善テーブル300は、例えば、図2に示した方策改善装置100のメモリ202や記録媒体205などの記憶領域により実現される。
図3は、方策改善テーブル300の記憶内容の一例を示す説明図である。図3に示すように、方策改善テーブル300は、時刻と、状態と、よい入力とのフィールドを有する。方策改善テーブル300は、時刻ごとに各フィールドに情報を設定することにより、方策改善情報がレコード300-aとして記憶される。aは、任意の整数である。図3の例では、aは、0~Ni
acの任意の整数である。
時刻のフィールドには、制御対象110に入力を印加する時刻が設定される。時刻のフィールドには、例えば、単位時間の倍数で示される時刻が設定される。状態のフィールドには、時刻のフィールドに設定された時刻における制御対象110の状態が設定される。よい入力のフィールドには、時刻のフィールドに設定された時刻において、好ましい効果が得られると判断された制御対象110への入力が設定される。よい入力のフィールドには、例えば、方策と探索方法とに基づいて算出される制御対象110への入力と、方策から算出される制御対象110への入力とのうち、好ましい効果が得られると判断された制御対象110への入力が設定される。
(方策評価テーブル400の記憶内容)
次に、図4を用いて、方策評価テーブル400の記憶内容の一例について説明する。方策評価テーブル400は、例えば、図2に示した方策改善装置100のメモリ202や記録媒体205などの記憶領域により実現される。
図4は、方策評価テーブル400の記憶内容の一例を示す説明図である。図4に示すように、方策評価テーブル400は、時刻と、状態と、入力と、コストとのフィールドを有する。方策評価テーブル400は、時刻ごとに各フィールドに情報を設定することにより、方策改善情報がレコード400-bとして記憶される。bは、任意の整数である。図4の例では、bは、0~Neの任意の整数である。
時刻のフィールドには、制御対象110に入力を印加する時刻が設定される。時刻のフィールドには、例えば、単位時間の倍数で示される時刻が設定される。状態のフィールドには、時刻のフィールドに設定された時刻における制御対象110の状態が設定される。入力のフィールドには、時刻のフィールドに設定された時刻において制御対象110に印加された入力が設定される。入力のフィールドには、例えば、方策と探索方法とに基づいて算出され、制御対象110に印加された入力が設定される。コストのフィールドには、時刻のフィールドに設定された時刻において観測された即時コストが設定される。
方策評価テーブル400は、強化学習において、即時コストではなく即時報酬を用いるような場合には、コストのフィールドに代わり、報酬のフィールドを有してもよい。報酬のフィールドには、時刻のフィールドに設定された時刻において観測された即時報酬が設定される。
(方策改善装置100の機能的構成例)
次に、図5を用いて、方策改善装置100の機能的構成例について説明する。
図5は、方策改善装置100の機能的構成例を示すブロック図である。方策改善装置100は、記憶部500と、観測部501と、推定部502と、算出部503と、判定部504と、更新部505と、出力部506とを含む。
記憶部500は、例えば、図2に示したメモリ202や記録媒体205などの記憶領域によって実現される。以下では、記憶部500が、方策改善装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部500が、方策改善装置100とは異なる装置に含まれ、記憶部500の記憶内容が方策改善装置100から参照可能である場合があってもよい。
観測部501~出力部506は、制御部の一例として機能する。観測部501~出力部506は、具体的には、例えば、図2に示したメモリ202や記録媒体205などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、ネットワークI/F203により、その機能を実現する。各機能部の処理結果は、例えば、図2に示したメモリ202や記録媒体205などの記憶領域に記憶される。
記憶部500は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部500は、制御対象110の入力と、状態と、即時コストまたは即時報酬とを蓄積する。記憶部500は、例えば、時刻ごとに、制御対象110の入力と、状態と、即時コストまたは即時報酬とを、図4に示した方策評価テーブル400を用いて記憶する。これにより、記憶部500は、制御対象110の入力と、状態と、即時コストまたは即時報酬とを、各機能部が参照可能にすることができる。
制御対象110は、例えば、空調設備である場合がある。この場合、入力は、例えば、空調設備の設定温度と、空調設備の設定風量との少なくともいずれかである。状態は、例えば、空調設備がある部屋の内部の温度と、空調設備がある部屋の外部の温度と、気候との少なくともいずれかである。コストは、例えば、空調設備の消費電力量である。制御対象110が、空調設備である場合については、具体的には、図8を用いて後述する。
制御対象110は、例えば、発電設備である場合がある。発電設備は、例えば、風力発電設備である。この場合、入力は、例えば、発電設備の発電機トルクである。状態は、例えば、発電設備の発電量と、発電設備のタービンの回転量と、発電設備のタービンの回転速度と、発電設備に対する風向と、発電設備に対する風速との少なくともいずれかである。報酬は、例えば、発電設備の発電量である。制御対象110が、発電設備である場合については、具体的には、図9を用いて後述する。
制御対象110は、例えば、産業用ロボットである場合がある。この場合、入力は、例えば、産業用ロボットのモータートルクである。状態は、例えば、産業用ロボットの撮影した画像と、産業用ロボットの関節位置と、産業用ロボットの関節角度と、産業用ロボットの関節角速度との少なくともいずれかである。報酬は、例えば、産業用ロボットの生産量である。生産量は、例えば、組み立て数である。組み立て数は、例えば、産業用ロボットが組み立てた製品の数である。制御対象110が、産業用ロボットである場合については、具体的には、図10を用いて後述する。
記憶部500は、方策のパラメータを記憶してもよい。方策は、確定的であり、連続値を取る入力を算出する制御則であり、方策のパラメータについて線形である。記憶部500は、例えば、方策のパラメータを記憶する。パラメータは、例えば、フィードバック係数行列である。これにより、記憶部500は、所定のタイミングで更新される、方策のパラメータを記憶しておくことができる。また、記憶部500は、方策のパラメータを、算出部503、および、更新部505が参照可能にすることができる。
記憶部500は、強化学習における制御対象110に対する入力を探索する所定の探索方法を記憶する。所定の探索方法は、例えば、方策から算出される入力に摂動を加える探索方法である。所定の探索方法は、例えば、方策のパラメータに摂動を加える探索方法である。所定の探索方法は、例えば、ε貪欲法である。これにより、記憶部500は、所定の探索方法を、算出部503が参照可能にすることができる。
記憶部500は、好ましい効果が得られると判定部504が判断した、制御対象110への入力を記憶する。記憶部500は、例えば、時刻ごとに、好ましい効果が得られると判定部504が判断した、制御対象110への入力を記憶する。記憶部500は、具体的には、時刻ごとに、方策と探索方法とに基づいて算出される入力と、方策から算出される入力とのうち、好ましい効果が得られると判定部504が判断した入力を、図3に示した方策改善テーブル300を用いて記憶する。これにより、記憶部500は、好ましい効果が得られると判断された入力を、更新部505が参照可能にすることができる。記憶部500は、例えば、更新部505が、好ましい効果が得られると判断された入力を出力する傾向が現れるように、方策を更新可能にすることができる。
観測部501は、制御対象110の状態と、即時コストまたは即時報酬とを観測し、記憶部500に出力する。これにより、観測部501は、制御対象110の状態と、即時コストまたは即時報酬とを記憶部500に蓄積させることができる。
推定部502は、状態価値関数を推定する。推定部502は、例えば、状態価値関数を推定した推定状態価値関数を更新する。推定部502は、具体的には、一括最小二乗法、逐次最小二乗法などを用いて、推定状態価値関数の係数を更新することにより、推定状態価値関数を更新する。推定部502は、具体的には、一括LSTD(Least-Squares Temporal Difference)アルゴリズム、逐次LSTDアルゴリズムなどを用いて、推定状態価値関数の係数を更新することにより、推定状態価値関数を更新してもよい。これにより、推定部502は、更新部505が、方策のパラメータを更新するために、推定状態価値関数を参照可能にすることができる。また、推定部502は、状態価値関数を改善することができる。
一括最小二乗法、逐次最小二乗法、一括LSTDアルゴリズム、逐次LSTDアルゴリズムなどについては、下記参考文献4や下記参考文献5を参照することができる。
参考文献4 : Y.Zhu and X.R.Li. Recursive least squares with linear constraints. Communications in Information and Systems, vol.7, no.3, pp.287-312, 2007.
参考文献5 : Christoph Dann and Gerhard Neumann and Jan Peters. Policy Evaluation with Temporal Differences: A Survey and Comparison. Journal of Machine Learning Research, vol.15, pp.809-883, 2014.
算出部503は、制御対象110に対する入力を算出し、制御対象110に印加する。算出部503は、例えば、方策と、所定の探索方法とに基づいて、制御対象110への入力を算出し、制御対象110に印加する。算出部503は、具体的には、所定の探索方法が、方策から算出される入力に摂動を加える探索方法であれば、方策から算出される入力に摂動を加え、摂動を加えた入力を、制御対象110への入力に決定し、制御対象110に印加する。これにより、算出部503は、現状最適と判断される入力以外に、より適切な入力が存在するか否かを探索するために、制御対象110に、現状最適と判断される入力以外を印加することができる。
算出部503は、具体的には、所定の探索方法が、方策のパラメータに摂動を加える探索方法であれば、方策のパラメータに摂動を加え、パラメータに摂動を加えた方策から算出される入力を、制御対象110への入力に決定し、制御対象110に印加する。ここで、方策のパラメータに摂動を加えるとは、方策のパラメータに摂動を加えた場合の別の方策を生成することに対応し、更新の対象である方策は変更されない。これにより、算出部503は、現状最適と判断される入力以外に、より適切な入力が存在するか否かを探索するために、制御対象110に、現状最適と判断される入力以外を印加することができる。
算出部503は、所定の探索方法がε貪欲法であれば、1-εの確率で、方策から算出される入力を制御対象110に対する入力に決定し、制御対象110に印加し、εの確率で、ランダムな入力を制御対象110に対する入力に決定し、制御対象110に印加する。これにより、算出部503は、現状最適と判断される入力以外に、より適切な入力が存在するか否かを探索するために、制御対象110に、現状最適と判断される入力以外を印加することができる。
判定部504は、算出部503が算出した入力を制御対象110に印加した結果に基づいて、方策のパラメータの更新に、算出部503が算出した入力を利用するか否かを判定する。印加した結果は、例えば、算出部503が算出した入力を制御対象110に印加したことに応じて、観測部501に観測される制御対象110の即時コストである。
ここで、判定部504は、算出部503が算出した入力を利用すると判定した場合には、算出部503が算出した入力を記録する。記録先は、例えば、記憶部500であり、具体的には、図3に示した方策改善テーブル300である。一方で、判定部504は、算出部503が算出した入力を利用しないと判定した場合には、方策から算出される、制御対象110に対する他の入力を記録する。他の入力は、例えば、所定の探索方法が、方策から算出される入力に摂動を加える探索方法であれば、算出部503が算出した入力から、摂動を減算することによって算出されてもよい。記録先は、例えば、記憶部500であり、具体的には、図3に示した方策改善テーブル300である。
判定部504は、例えば、算出部503が算出した入力を制御対象110に印加した結果と、推定部502が状態価値関数を推定した結果とに基づいて、TD誤差を算出する。そして、判定部504は、算出したTD誤差に基づいて、算出部503が算出した入力により好ましい効果が得られたと判断した場合には、算出部503が算出した入力を利用すると判定し、記録する。一方で、判定部504は、算出したTD誤差に基づいて、算出部503が算出した入力により好ましい効果が得られなかったと判断した場合には、算出部503が算出した入力を利用しないと判定し、方策から算出される他の入力を記録する。
判定部504は、具体的には、TD誤差が0未満である場合に、算出部503が算出した入力により好ましい効果が得られたと判断し、算出部503が算出した入力を記録する。一方で、判定部504は、TD誤差が0以上である場合に、算出部503が算出した入力により好ましい効果が得られなかったと判断し、方策から算出される他の入力を記録する。これにより、判定部504は、好ましい効果が得られたと判断した、制御対象110への入力を、更新部505が参照可能にすることができる。判定部504は、例えば、更新部505が、好ましい効果が得られると判断された入力を出力する傾向が現れるように、方策を更新可能にすることができる。
判定部504は、算出部503が入力を算出した際の制御対象110の状態を記録する。判定部504は、例えば、算出部503が入力を算出した際の制御対象110の状態を、図3に示した方策改善テーブル300を用いて記録する。これにより、判定部504は、制御対象110の状態を、各機能部が参照可能にすることができる。
更新部505は、方策のパラメータを更新する。更新部505は、算出した入力を制御対象110に印加した結果に基づいて、制御対象110に対する入力と、制御対象110の状態に関する一般化逆行列とを用いて、方策のパラメータを更新する。制御対象110の状態に関する一般化逆行列は、例えば、ムーア-ペンローズ(Moore-Penrose)の一般化逆行列(擬似逆行列、pseudo-inverse matrix)である。
更新部505は、例えば、算出部503と判定部504とが処理を1回ずつ実行する都度、方策のパラメータを更新する。更新部505は、具体的には、算出部503と判定部504とが処理を1回ずつ実行した後、入力を利用すると判定部504が判定した場合に、方策のパラメータを更新する。更新部505は、より具体的には、判定部504が記録した入力と、判定部504が記録した状態に関する一般化逆行列とを用いて、方策のパラメータを更新する。これにより、更新部505は、方策のパラメータの成分数に依らず、入力決定の回数が1回でも、方策のパラメータを更新することができる。
更新部505は、例えば、算出部503と判定部504とが処理を複数回ずつ実行する都度、方策のパラメータを更新する。更新部505は、具体的には、算出部503と判定部504とが処理を複数回ずつ実行した後、入力を利用すると判定部504が1回以上判定している場合に、方策のパラメータを更新する。更新部505は、より具体的には、判定部504が記録した複数回分の制御対象110に対する入力と、判定部504が記録した複数回分の制御対象110の状態に関する一般化逆行列とを用いて、方策のパラメータを更新する。この際、更新部505は、判定部504が好ましい効果が得られたと判断した入力を出力し、かつ、判定部504が好ましい効果が得られなかったと判断した入力を出力しない傾向が現れるように、方策のパラメータを更新する。
更新部505は、さらに具体的には、記録した複数回分の制御対象110に対する入力を並べて形成した行列と、記録した複数回分の制御対象110の状態を並べて形成した行列の一般化逆行列とにより表現される更新式を用いて、方策のパラメータを更新する。これにより、更新部505は、方策のパラメータの成分数に依らず、入力決定の回数の低減化を図りつつ、方策のパラメータを更新することができる。
出力部506は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F203による外部装置への送信、または、メモリ202や記録媒体205などの記憶領域への記憶である。出力部506は、例えば、更新した方策を出力する。これにより、出力部506は、他のコンピュータで、制御対象110を制御可能にすることができる。
(強化学習の実施例)
次に、図6を用いて、強化学習の実施例について説明する。この実施例は、強化学習において、制御対象110の即時コストを用いる場合に対応するものとする。
図6は、強化学習の実施例を示す説明図である。図6に示すように、実施例において、下記式(1)~下記式(9)によって、制御対象110の離散時間線形時不変確定状態方程式と、即時コストの2次形式の方程式と、目的と、方策とが規定され、問題設定が行われる。実施例において、制御対象110の状態は、直接観測可能である。
上記式(1)は、制御対象110の状態方程式である。tは、単位時間の倍数で示される時刻である。t+1は、時刻tから単位時間経過した次の時刻である。xt+1は、次の時刻t+1における状態である。xtは、時刻tにおける状態である。utは、時刻tにおける入力である。A、Bは、係数行列である。上記式(1)は、次の時刻t+1における状態xt+1が、時刻tにおける状態xtと、時刻tにおける入力utによって決定される関係があることを示す。係数行列A,Bは、未知である。
上記式(2)は、状態x0が、n次元であることを示す。nは、既知である。中抜き文字のRは、実数空間を示す。中抜き文字のRの上付文字は次元数を示す。
上記式(3)は、入力utが、m次元であることを示す。
上記式(4)は、係数行列Aが、n×n次元である(n行n列である)ことを示し、係数行列Bが、n×m次元である(n行m列である)ことを示す。(A,B)は可制御である。
上記式(5)は、制御対象110で発生する即時コストの方程式である。ctは、時刻tにおける入力utに応じて単位時間後に発生する即時コストである。上付き文字Tは、転置を示す。上記式(5)は、即時コストctが、時刻tにおける状態xtと、時刻tにおける入力utとの2次形式によって決定される関係があることを示す。係数行列Q,Rは、未知である。即時コストctは、直接観測可能である。
上記式(6)は、係数行列Qが、n×n次元であることを示す。≧0は、半正定値行列であることを示す。また、上記式(6)は、係数行列Rが、m×m次元であることを示す。>0は、正定値行列であることを示す。
上記式(7)は、累積コストVを示す方程式である。強化学習の目的は、累積コストVの最小化である。γは、割引率(discount rate)である。γは、0~1の値である。
上記式(1)~上記式(7)の下では、累積コストVを最小化する方策は、上記式(8)により表現される。従って、以下の説明では、方策が、上記式(8)により表現される場合について説明する。Ftは、時刻tに用いられるフィードバック係数行列であって、状態xtに関する係数行列を示す。上記式(8)は、時刻tにおける状態xtに基づいて、時刻tにおける入力utを決定する方程式である。方策は、状態xtについて線形、かつ、フィードバック係数行列Ftについて線形である特徴を有する。
上記式(9)は、フィードバック係数行列Ftが、m×n次元であることを示す。以下の説明では、フィードバック係数行列Ftを単に「フィードバック係数行列F」と表記する場合がある。次に、上述した参考文献2および参考文献3を参考に、フィードバック係数行列Fを更新する具体例について説明する。
〈参考文献2および参考文献3を参考に、フィードバック係数行列Fを更新する具体例〉
方策が、上記式(8)により表現される場合、時刻0で状態xから強化学習による制御対象110の制御を開始すると、累積コストVは、フィードバック係数行列Fと状態xとの関数である状態価値関数ν(x:F)によって表現される。
ここで、累積コストVを最小化するためには、状態価値関数ν(x:F)のフィードバック係数行列Fに関する勾配関数行列▽Fν(x:F)に沿った方向に、フィードバック係数行列Fを変化させることが好ましい。
これに対し、上述した参考文献2および参考文献3によれば、制御手法αが考えられる。制御手法αは、例えば、フィードバック係数行列Fの成分を1つずつ選び、選んだ成分にだけ摂動が加えられた状態で入力決定を行い、勾配関数行列▽Fν(x:F)を推定し、フィードバック係数行列Fを更新する。ここで、制御手法αについて、具体的に説明する。
制御手法αは、フィードバック係数行列F+εEijの数式によって、フィードバック係数行列Fの(i,j)成分Fijに摂動を加え、入力決定を行うことをNi回繰り返す。(i,j)は、行列の成分を特定するインデックスである。インデックス(i,j)は、例えば、行列Fのi行j列の成分を特定する。Eijは、インデックス(i,j)で特定される成分が1、その成分以外の成分が0であるm×n次元行列である。εは、0ではない実数である。
制御手法αは、上記式(8)のFtに代わり、フィードバック係数行列F+εEijを用いて、入力決定を行う。この場合、状態価値関数ν(x:F+εEij)は、下記式(10)により表現される。
結果として、決定した入力に対応するTD誤差は、フィードバック係数行列Fの(i,j)の成分Fijに関する状態価値関数の偏微分係数(partial differential coefficient)によって表現することができる。
さらに、制御対象110の状態変化が線形時不変確定ダイナミクスに従い、即時コストが2次形式で表現される場合、状態価値関数ν(x:F)は、下記式(11)のように2次形式で表現される。
このため、状態価値関数ν(x:F)を、フィードバック係数行列Fの(i,j)の成分Fijで偏微分した関数∂ν/∂Fij(x:F)は、下記式(12)のように2次形式で表現される。以下の説明では、偏微分した関数を「偏導関数(partial derivative)」と表記する場合がある。
制御手法αは、上記式(12)および下記式(13)により求められるベクトルθFij
Fを利用し、フィードバック係数行列Fの(i,j)の成分Fijに関する偏導関数∂ν/∂Fij(x:F)の推定関数を算出する。○と×を重ねた記号は、クロネッカー積を示す。上付文字のクロネッカー積は、同じ変数同士のクロネッカー積を示す。上付文字のクロネッカー積に付された数字は、クロネッカー積の回数を示す。δF(x:εEij)は、TD誤差である。
制御手法αは、同様に、フィードバック係数行列Fの他の成分についても、摂動を加え、入力決定を行うことをNi回繰り返し、偏導関数∂ν/∂Fij(x:F)の推定関数を算出する。そして、制御手法αは、偏導関数∂ν/∂Fijの推定関数を用いて、フィードバック係数行列の勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列を生成する。これにより、制御手法αは、勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列に基づき、フィードバック係数行列Fを更新することができる。
しかしながら、制御手法αは、勾配関数行列▽Fν(x:F)を推定するために、フィードバック係数行列Fの成分ごとに、入力決定をNi回行うことになるため、フィードバック係数行列Fを更新するまでに、入力決定をn×m×Ni回行うことになる。また、制御手法αは、入力決定をn×m×Ni回行うため、入力決定に応じて所定時間待機して即時コストまたは即時報酬を観測する処理回数の増大化も招くことになる。結果として、制御手法αは、処理負担および処理時間の増大化を招く。
従って、入力決定の回数の低減化を図り、処理負担および処理時間の低減化を図ることが望まれる。これに対し、方策改善装置100により、入力決定の回数の低減化を図りつつ、フィードバック係数行列Fを更新することができる具体例について説明する。
〈方策改善装置100がフィードバック係数行列Fを更新する具体例〉
この具体例は、方策改善装置100が、バッチ処理形式により、フィードバック係数行列Fを更新する場合に対応するものとする。
以下の説明では、上記式(1)~上記式(9)によって、問題設定が行われており、方策が、上記式(8)により表現される場合において、状態価値関数ν(・;F)を、例えば、下記式(14)のように規定する。
また、状態価値関数ν(・;F)を推定した推定状態価値関数を、例えば、上部に^を付して、下記式(15)のように規定する。θFは、推定状態価値関数のパラメータである。θFは、例えば、実数ベクトルまたは実数行列である。状態価値関数の推定は、例えば、θFを更新することに対応する。
《方策改善装置100がフィードバック係数行列Fを更新する流れ》
ここで、まず、方策改善装置100がフィードバック係数行列Fを更新する流れについて説明する。
(6-1)方策改善装置100は、方策と、所定の探索方法とに基づいて、制御対象110への入力を算出し、制御対象110に印加する。探索は、現状の方策により最適と判断される入力とは異なる入力を算出することである。
所定の探索方法は、例えば、方策から算出される入力に、摂動項εtを加える探索方法であり、下記式(16)によって規定される。
摂動項εtは、例えば、下記式(17)によって規定される。下記式(17)は、摂動項εtが、m次元であることを示す。
ここでは、方策改善装置100は、上記式(16)により、摂動項εtを含む入力を算出し、制御対象110に印加したとする。
(6-2)方策改善装置100は、状態価値関数ν(・;F)を推定した推定状態価値関数に基づいて、TD誤差を算出する。
(6-3)方策改善装置100は、TD誤差に基づいて、算出した摂動項εtを含む入力により、好ましい効果が得られたか否かを判断する。好ましい効果とは、累積コストの観点から判断される。方策改善装置100は、例えば、TD誤差が0未満である場合に、好ましい効果が得られたと判断する。
ここで、方策改善装置100は、摂動項εtを含む入力により好ましい効果が得られた場合には、摂動項εtを含む入力を、図3に示した方策改善テーブル300に記録する。そして、方策改善装置100は、入力を算出した際の制御対象110の状態を、図3に示した方策改善テーブル300に記録する。
一方で、方策改善装置100は、摂動項εtを含む入力により好ましい効果が得られなかった場合には、方策から算出される、摂動項εtを含まない入力を、図3に示した方策改善テーブル300に記録する。そして、方策改善装置100は、入力を算出した際の制御対象110の状態を、図3に示した方策改善テーブル300に記録する。
(6-4)方策改善装置100は、バッチ処理形式によりフィードバック係数行列Fを更新するため、(6-1)~(6-3)の処理を複数回繰り返し、(6-5)の処理に移行する。
(6-5)方策改善装置100は、好ましい効果が得られたと判断された摂動項εtを含む入力が1つ以上存在した場合、フィードバック係数行列Fを更新する。方策改善装置100は、例えば、TD誤差が0未満になる摂動項εtを含む入力が1つ以上存在した場合、記録した入力を並べた行列と、記録した状態を並べた行列の一般化逆行列とを用いた更新式により、フィードバック係数行列Fを更新する。
一方で、方策改善装置100は、好ましい効果が得られたと判断された摂動項εtを含む入力が存在しなかった場合、フィードバック係数行列Fを更新しない。方策改善装置100は、例えば、TD誤差が0未満になる摂動項εtを含む入力が存在しなかった場合、フィードバック係数行列Fを更新しない。
(6-6)方策改善装置100は、(6-1)~(6-5)の処理を繰り返す。方策改善装置100は、例えば、(6-1)~(6-5)の処理を所定回数繰り返す。方策改善装置100は、例えば、更新前後のフィードバック係数行列Fの差分が一定以下になるまで、(6-1)~(6-5)の処理を繰り返してもよい。
これにより、方策改善装置100は、フィードバック係数行列Fの大きさに依らず、入力決定の回数の低減化を図りつつ、フィードバック係数行列Fを更新することができる。
《方策改善装置100がフィードバック係数行列Fを更新する詳細》
次に、方策改善装置100がフィードバック係数行列Fを更新する詳細について説明する。ここでは、初期状態で、時刻t=1とする。
(6-10)方策改善装置100は、時刻tで、状態xtを観測する。
(6-11)方策改善装置100は、時刻tで、上記式(16)により、摂動項εtを含む入力utを算出し、制御対象110に印加する。
(6-12)方策改善装置100は、時刻tで、即時コストctを観測する。その後、方策改善装置100は、次の時刻t+1になると、状態xt+1を観測する。
(6-13)方策改善装置100は、下記式(18)により、観測した即時コストctと、観測した状態xtと、観測した状態xt+1と、状態価値関数ν(・;F)を推定した推定状態価値関数とに基づいて、TD誤差δtを算出する。
(6-14)方策改善装置100は、TD誤差δt<0である場合には、摂動項εtを含む入力utにより好ましい効果が得られたと判断し、摂動項εtを含む入力utと、観測した状態xtとを、図3に示した方策改善テーブル300に記録する。一方で、方策改善装置100は、TD誤差δt≧0である場合には、摂動項εtを含む入力utにより好ましい効果が得られなかったと判断し、摂動項εtを含まない入力ut-εtと、観測した状態xtとを、図3に示した方策改善テーブル300に記録する。
(6-15)方策改善装置100は、時刻t=2,3,・・・,Ni
acでも、(6-11)~(6-14)の処理を実行し、(6-16)の処理に移行する。これにより、方策改善装置100は、(6-11)~(6-14)の処理を、Ni
ac回繰り返すことになる。この際、方策改善装置100は、TD誤差δt<0であった回数Mを計測しておく。
(6-16)方策改善装置100は、M>0である場合には、フィードバック係数行列Fを更新する。ここで、説明の簡略化のため、例えば、TD誤差δt<0である場合に記録したM個の状態xtを、下記式(19)によって規定する。上付文字(・)は、状態xtに付した便宜上の番号である。
また、例えば、TD誤差δt<0である場合に記録したM個の入力utを、下記式(20)によって規定する。上付文字(・)は、入力utに付した便宜上の番号である。
また、例えば、TD誤差δt≧0である場合に記録したNi
ac-M個の状態xtを、下記式(21)によって規定する。下付文字(・)は、状態xtに付した便宜上の番号であり、時刻tとは異なる意味を表す。
また、例えば、TD誤差δt<0である場合に記録したNi
ac-M個の入力utを、下記式(22)によって規定する。下付文字(・)は、入力utに付した便宜上の番号であり、時刻tとは異なる意味を表す。
また、例えば、上記式(19)によって規定されたM個の状態xtと、上記式(21)によって規定されたNi
ac-M個の状態xtとを並べた行列Xを、下記式(23)によって規定する。
また、例えば、上記式(20)によって規定されたM個の状態utと、上記式(22)によって規定されたNi
ac-M個の状態utとを並べた行列Ubetterを、下記式(24)によって規定する。
方策改善装置100は、例えば、上記式(23)によって規定された行列Xと、上記式(24)によって規定された行列Ubetterとに基づいて、下記式(25)に示す更新式により、フィードバック係数行列Fを更新する。βは、0より大きく1以下の値を取る重みである。β=1の場合があってもよい。†は、ムーア-ペンローズの一般化逆行列を示す。
そして、方策改善装置100は、(6-17)の処理に移行する。
一方で、方策改善装置100は、M=0である場合には、フィードバック係数行列Fを更新せず、(6-17)の処理に移行する。
(6-17)方策改善装置100は、上記式(15)によって規定された推定状態価値関数のパラメータθFを推定する。方策改善装置100は、例えば、時刻t=1,2,・・・,Ni
acに対する状態xtと即時コストct+1とに基づいて、一括最小二乗法、逐次最小二乗法、一括LSTDアルゴリズム、逐次LSTDアルゴリズムなどを用いて、パラメータθFを推定する。その後、方策改善装置100は、(6-11)の処理に戻る。
これにより、方策改善装置100は、状態価値関数ν(・;F)の勾配関数行列を推定せずに済むため、フィードバック係数行列Fの大きさに依らず、入力決定の回数の低減化を図りつつ、フィードバック係数行列Fを更新することができる。そして、方策改善装置100は、入力決定に応じて所定時間待機して即時コストを観測する処理回数の低減化も図ることができる。このため、方策改善装置100は、処理負担および処理時間の低減化を図ることができる。
また、方策改善装置100は、累積コストが効率よく最適化されるように、フィードバック係数行列Fを更新することができ、方策を効率よく改善していくことができる。また、方策改善装置100は、入力またはフィードバック係数行列Fに、どのような摂動項εtを与えることが適切であるかが明らかではなくても、フィードバック係数行列Fを更新することができ、方策を効率よく改善していくことができる。
次に、上記式(25)に示す更新式により、状態xtを並べた行列Xの一般化逆行列X†を用いて、フィードバック係数行列Fが更新可能になる理論的背景について説明する。
(一般化逆行列X†を用いてフィードバック係数行列Fが更新可能になる理論的背景)
ここで、状態価値関数ν(・;F)の推定精度が比較的高ければ、摂動項εtを加えた入力utに対するTD誤差δt<0である場合には、摂動項εtは、累積コストを減少させる観点から好ましい効果が得られる有用な項であると判断される。この場合には、摂動項εtを加えた入力utが、累積コストを減少させる観点から好ましい効果が得られる有用な入力であると判断される。
一方で、摂動項εtを加えた入力utに対するTD誤差δt≧0である場合には、摂動項εtは、累積コストを減少させる観点から好ましい効果が得られない有用ではない項であると判断される。この場合には、摂動項εtを加えた入力utが、累積コストを減少させる観点から好ましい効果が得られない有用ではない入力であると判断される。そして、摂動項εtを含まない入力ut-εtが、累積コストを減少させる観点から好ましい効果が得られる有用な入力であると判断される。
ここで、以下の説明では、方策により、有用である摂動項εtを加えた入力utと、有用である摂動項εtを含まない入力ut-εtとを出力可能にする、理想的なフィードバック係数行列F=Fnew
idealとする。フィードバック係数行列Fnew
idealは、下記式(26)によって規定する。
フィードバック係数行列Fnew
idealによれば、下記式(27)および下記式(28)が成立することになる。
従って、フィードバック係数行列Fを、理想的なフィードバック係数行列Fnew
idealに更新することが望まれる。例えば、上記式(27)および上記式(28)が成立するように、フィードバック係数行列Fを更新することが望まれる。
ここで、上記式(27)および上記式(28)は、1つの式に纏めると、下記式(29)によって規定される。
上記式(29)は、上記式(23)によって規定された行列Xと、上記式(24)によって規定された行列Ubetterとを用いれば、下記式(30)によって規定される。
ここで、上記式(30)を成立させる理想的なフィードバック係数行列Fnew
idealが存在するとは限らない。
しかしながら、下記式(31)によって規定される、フロベニウスノルム||・||Fで算出した誤差の二乗を最小化するフィードバック係数行列Fnewの中で、||Fnew||Fを最小化するフィードバック係数行列Fnewは1つ存在する。そして、||Fnew||Fを最小化するフィードバック係数行列Fnewは、下記式(32)により算出可能である。また、フィードバック係数行列Fnewは、下記式(33)によって規定する。
以上から、UbetterX†によれば、理想的なフィードバック係数行列Fnew
idealに比較的近いフィードバック係数行列Fnewを算出可能であると判断される。このため、UbetterX†を用いれば、フィードバック係数行列Fを、理想的なフィードバック係数行列Fnew
idealに近づくように更新可能であると判断される。
上記式(25)に示す更新式は、更新前のフィードバック係数行列Fと、フィードバック係数行列Fnewを算出可能なUbetterX†とに重みを付けて、フィードバック係数行列Fを更新する数式である。このため、上記式(25)に示す更新式は、フィードバック係数行列Fを、理想的なフィードバック係数行列Fnew
idealに近づくように更新することができる。上記式(25)に示す更新式は、方策が、状態xtについても、フィードバック係数行列Fについても線形であることに基づいて導出することができる。
上記実施例では、方策改善装置100が、バッチ処理形式により、フィードバック係数行列Fを更新する場合について説明したが、これに限らない。例えば、方策改善装置100が、逐次処理形式により、フィードバック係数行列Fを更新する場合があってもよい。
この場合、方策改善装置100は、(6-11)~(6-14)の処理を、1回ずつ実行する都度、(6-16’)の処理に移行する。
(6-16’)方策改善装置100は、TD誤差δt<0である場合には、フィードバック係数行列Fを更新する。方策改善装置100は、例えば、状態xtと、入力utとに基づいて、下記式(34)に示す更新式により、フィードバック係数行列Fを更新する。βは、重みである。β=1の場合があってもよい。†は、ムーア-ペンローズの一般化逆行列を示す。
そして、方策改善装置100は、(6-17’)の処理に移行する。
一方で、方策改善装置100は、TD誤差δt≧0である場合には、フィードバック係数行列Fを更新せず、(6-17’)の処理に移行する。
(6-17’)方策改善装置100は、下記式(35)によって規定された推定状態価値関数のパラメータθFを推定する。αは、重みである。その後、方策改善装置100は、(6-11)の処理に戻る。
これにより、方策改善装置100は、状態価値関数ν(・;F)の勾配関数行列を推定せずに済むため、フィードバック係数行列Fの大きさに依らず、入力決定の回数の低減化を図りつつ、フィードバック係数行列Fを更新することができる。そして、方策改善装置100は、入力決定に応じて所定時間待機して即時コストを観測する処理回数の低減化も図ることができる。このため、方策改善装置100は、処理負担および処理時間の低減化を図ることができる。
また、方策改善装置100は、累積コストが効率よく最適化されるように、フィードバック係数行列Fを更新することができ、方策を効率よく改善していくことができる。また、方策改善装置100は、入力またはフィードバック係数行列Fに、どのような摂動項εtを与えることが適切であるかが明らかではなくても、フィードバック係数行列Fを更新することができ、方策を効率よく改善していくことができる。
上記実施例では、強化学習において、制御対象110の即時コストを用いる場合について説明したが、これに限らない。例えば、強化学習において、制御対象110の即時報酬を用いる場合があってもよい。
上記実施例では、方策改善装置100が、M>0であれば、フィードバック係数行列Fを更新するようにする場合について説明したが、これに限らない。例えば、方策改善装置100が、M>閾値であれば、フィードバック係数行列Fを更新するようにする場合があってもよい。
上記実施例では、方策が、状態xtについても、フィードバック係数行列Fについても線形である場合について説明したが、これに限らない。例えば、方策改善装置100は、方策が、確定的であり、フィードバック係数行列Fについて線形であり、かつ、状態stから計算される特徴量について線形である場合にも適用することができる。ここで、状態stは、状態xtのように連続値を取るとは限らない、より一般の状態である。
具体的には、方策改善装置100は、n次元実数ベクトル空間とは限らない状態集合Sが存在し、各状態s∈Sに対して、n次元実数ベクトル空間上の特徴量φ(s)を与える関数が、下記式(36)によって定義され、方策が、下記式(37)によって規定される場合にも適用することができる。この場合、方策改善装置100は、状態xtに代わり、特徴量φ(st)を用いればよい。
上記実施例では、方策改善装置100が、上記式(16)により、摂動項εtを含む入力utを算出する場合について説明したが、これに限らない。例えば、方策改善装置100が、下記式(38)により、フィードバック係数行列Fに摂動行列Δtを加えて、入力utを算出する場合があってもよい。摂動行列Δtは、下記式(39)によって規定される。
上記実施例では、方策改善装置100が、状態に関する一般化逆行列として、ムーア-ペンローズの一般化逆行列を用いる場合について説明したが、これに限らない。例えば、方策改善装置100が、状態に関する一般化逆行列として、他の形式の一般化逆行列を用いる場合があってもよい。他の形式の一般化逆行列については、下記参考文献6、下記参考文献7、および下記参考文献8を参照することができる。
参考文献6 : Ben-Israel, Adi, and Thomas NE Greville. Generalized inverses: theory and applications. Vol. 15. Springer Science & Business Media, 2003.
参考文献7 : Yanai, Haruo, Kei Takeuchi, and Yoshio Takane. “Projection Matrices.” Projection Matrices, Generalized Inverse Matrices, and Singular Value Decomposition. Springer, New York, NY, 2011. 25-54.
参考文献8 : Bernstein, Dennis S. Matrix mathematics: theory, facts, and formulas. Princeton university press, 2009.
(入力決定の回数を比較した一例)
次に、図7を用いて、方策改善装置100と、方策改善装置100以外との入力決定の回数を比較した一例について説明する。
図7は、入力決定の回数を比較した一例を示す説明図である。図7に示す表700は、上述した参考文献1を参考にした第1の制御手法、上述した参考文献2および参考文献3を参考にした第2の制御手法(制御手法α)、および、方策改善装置100の入力決定の回数を比較した結果を表す。
第1の制御手法では、状態-行動価値関数に基づいて方策を改善しており、方策評価にかかる入力決定の回数は、Ne回であり、方策更新にかかる入力決定の回数は、0回であるが、入力に適切に摂動項を加える方法が明らかでなければ、方策更新が難しくなるという問題がある。
第2の制御手法では、状態価値関数に基づいて方策を改善しており、方策評価にかかる入力決定の回数は、N’e回であり、方策更新にかかる入力決定の回数は、mnNi回であり、入力決定の回数が、フィードバック係数行列Fの大きさmnに比例して大きくなるという問題がある。ここで、Ne>N’eである。
これに対し、方策改善装置100は、バッチ処理形式により、状態価値関数に基づいて方策を改善する装置であり、方策評価にかかる入力決定の回数を、N’e回として、方策更新にかかる入力決定の回数を、Ni
ac回とすることができる。ここで、Ni
ac<mnNiである。これにより、方策改善装置100は、第1の制御手法とは異なり、状態価値関数に基づいて、方策更新を実施することができる。また、方策改善装置100は、第2の制御手法とは異なり、入力決定の回数の低減化を図りつつ、方策更新を実施することができる。
また、方策改善装置100は、逐次処理形式により、状態価値関数に基づいた方策評価および方策更新にかかる入力決定の回数を、1回とすることができる。これにより、方策改善装置100は、第1の制御手法とは異なり、状態価値関数に基づいて、方策更新を実施することができる。また、方策改善装置100は、第2の制御手法とは異なり、入力決定の回数の低減化を図りつつ、方策更新を実施することができる。
(制御対象110の具体例)
次に、図8~図10を用いて、制御対象110の具体例について説明する。
図8~図10は、制御対象110の具体例を示す説明図である。図8の例では、制御対象110は、熱源であるサーバ801と、CRACやChillerなどの冷却器802とを含むサーバルーム800である。入力は、冷却器802に対する設定温度や設定風量である。状態は、サーバルーム800に設けられたセンサ装置からのセンサデータなどであり、例えば、温度などである。状態は、制御対象110以外から得られる制御対象110に関するデータであってもよく、例えば、気温や天気などであってもよい。即時コストは、例えば、サーバルーム800の単位時間ごとの消費電力量である。単位時間は、例えば、5分である。目標は、サーバルーム800の累積消費電力量の最小化である。状態価値関数は、例えば、サーバルーム800の累積消費電力量についての状態の価値を表す。
方策改善装置100は、累積コストである累積消費電力量を効率よく最小化するように、フィードバック係数行列Fを更新することができる。また、方策改善装置100は、フィードバック係数行列Fの更新にかかる入力決定回数の低減化を図ることができる。このため、方策改善装置100は、制御対象110の累積消費電力量が最小化されるまでにかかる時間の低減化を図ることができ、サーバルーム800の運営コストの低減化を図ることができる。また、方策改善装置100は、サーバ801の使用状況の変化および気温の変化などが発生した場合も、その変化から比較的短い時間で、累積消費電力量を効率よく最小化することができる。
ここでは、即時コストが、サーバルーム800の単位時間ごとの消費電力量である場合について説明したが、これに限らない。即時コストは、例えば、サーバルーム800の目標とする室温と現在の室温との誤差の二乗和であってもよい。目標は、例えば、サーバルーム800の目標とする室温と現在の室温との誤差の二乗和の累積値の最小化であってもよい。状態価値価数は、例えば、目標とする室温と現在の室温との誤差に関する状態の価値を表す。
図9の例では、制御対象110は、発電機900である。発電機900は、例えば、風力発電機である。入力は、発電機900に対する指令値である。指令値は、例えば、発電機トルクである。状態は、発電機900に設けられたセンサ装置からのセンサデータであり、例えば、発電機900の発電量や発電機900のタービンの回転量または回転速度などである。状態は、発電機900に対する風向や風速などであってもよい。即時報酬は、例えば、発電機900の単位時間ごとの発電量である。単位時間は、例えば、5分である。目標は、例えば、発電機900の累積発電量の最大化である。状態価値関数は、例えば、発電機900の累積発電量についての状態の価値を表す。
方策改善装置100は、累積報酬である累積発電量を効率よく最大化するように、フィードバック係数行列Fを更新することができる。また、方策改善装置100は、フィードバック係数行列Fの更新にかかる入力決定回数の低減化を図ることができる。このため、方策改善装置100は、制御対象110の累積発電量が最大化されるまでにかかる時間の低減化を図ることができ、発電機900の利益の増大化を図ることができる。また、方策改善装置100は、発電機900の状況の変化などが発生した場合も、その変化から比較的短い時間で、累積発電量を効率よく最大化することができる。
図10の例では、制御対象110は、産業用ロボット1000である。産業用ロボット1000は、例えば、ロボットアームである。入力は、産業用ロボット1000に対する指令値である。指令値は、例えば、産業用ロボット1000のモータートルクなどである。状態は、産業用ロボット1000に設けられたセンサ装置からのセンサデータであり、例えば、産業用ロボット1000の撮影した画像、産業用ロボット1000の関節位置や関節角度や関節角速度などである。即時報酬は、例えば、産業用ロボット1000の単位時間ごとの組み立て数などである。目標は、産業用ロボット1000の生産性の最大化である。状態価値関数は、例えば、産業用ロボット1000の累積組み立て数についての状態の価値を表す。
方策改善装置100は、累積報酬である累積組み立て数を効率よく最大化するように、フィードバック係数行列Fを更新することができる。また、方策改善装置100は、フィードバック係数行列Fの更新にかかる入力決定回数の低減化を図ることができる。このため、方策改善装置100は、制御対象110の累積組み立て数が最大化されるまでにかかる時間の低減化を図ることができ、産業用ロボット1000の利益の増大化を図ることができる。また、方策改善装置100は、産業用ロボット1000の状況の変化などが発生した場合も、その変化から比較的短い時間で、累積組み立て数を効率よく最大化することができる。
また、制御対象110は、上述した具体例のシミュレータであってもよい。また、制御対象110は、風力発電以外の発電設備であってもよい。また、制御対象110は、例えば、化学プラントなどであってもよい。また、制御対象110は、例えば、自律移動体などであってもよい。自律移動体は、例えば、ドローン、ヘリコプター、自律移動ロボット、自動車などである。また、制御対象110は、ゲームであってもよい。
(バッチ処理形式の強化学習処理手順)
次に、図11を用いて、方策改善装置100が実行する、バッチ処理形式の強化学習処理手順の一例について説明する。バッチ処理形式の強化学習処理は、例えば、図2に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
図11は、バッチ処理形式の強化学習処理手順の一例を示すフローチャートである。方策改善装置100は、例えば、ユーザの所定の操作入力を受け付けた場合などに、バッチ処理形式の強化学習処理を開始する。
図11において、方策改善装置100は、フィードバック係数行列Fを初期化する(ステップS1101)。そして、方策改善装置100は、ステップS1102の処理に移行する。
ステップS1102では、方策改善装置100は、状態価値関数を推定し、方策を評価する(ステップS1102)。次に、方策改善装置100は、現在の方策と所定の探索方法とに基づいて、入力utを算出し、制御対象110に印加する(ステップS1103)。そして、方策改善装置100は、状態価値関数を推定した推定状態価値関数を用いて、入力utに対するTD誤差δtを算出する(ステップS1104)。
次に、方策改善装置100は、TD誤差δt<0であるか否かを判定する(ステップS1105)。ここで、TD誤差δt<0である場合(ステップS1105:Yes)、方策改善装置100は、ステップS1106の処理に移行する。一方で、TD誤差δt≧0である場合(ステップS1105:No)、方策改善装置100は、ステップS1107の処理に移行する。
ステップS1106では、方策改善装置100は、入力utを記録し、状態xtを記録する(ステップS1106)。そして、方策改善装置100は、ステップS1108の処理に移行する。
ステップS1107では、方策改善装置100は、入力ut-εtを記録し、状態xtを記録する(ステップS1107)。そして、方策改善装置100は、ステップS1108の処理に移行する。
ステップS1108では、方策改善装置100は、ステップS1102~S1107の処理を、Ni
ac回繰り返したか否かを判定する(ステップS1108)。ここで、Ni
ac回繰り返していない場合(ステップS1108:No)、方策改善装置100は、ステップS1102の処理に戻る。一方で、Ni
ac回繰り返している場合(ステップS1108:Yes)、方策改善装置100は、ステップS1109の処理に移行する。
ステップS1109では、方策改善装置100は、Ni
ac回のうちTD誤差δt<0であった回数M>0であるか否かを判定する(ステップS1109)。ここで、回数M=0である場合(ステップS1109:No)、方策改善装置100は、ステップS1102の処理に戻る。一方で、回数M>0である場合(ステップS1109:Yes)、方策改善装置100は、ステップS1110の処理に移行する。
ステップS1110では、方策改善装置100は、記録された入力utや入力ut-εtを並べた行列と、状態xtを並べた行列の一般化逆行列とを用いた更新式により、方策を更新する(ステップS1110)。そして、方策改善装置100は、ステップS1102の処理に戻る。
方策改善装置100は、例えば、方策の更新が所定回数実行された場合、更新前後の方策の差異が一定以下である場合、または、ユーザの所定の操作入力を受け付けた場合などに、バッチ処理形式の強化学習処理を終了する。これにより、方策改善装置100は、制御対象110を制御することができる。
(逐次処理形式の強化学習処理手順)
次に、図12を用いて、方策改善装置100が実行する、逐次処理形式の強化学習処理手順の一例について説明する。逐次処理形式の強化学習処理は、例えば、図2に示したCPU201と、メモリ202や記録媒体205などの記憶領域と、ネットワークI/F203とによって実現される。
図12は、逐次処理形式の強化学習処理手順の一例を示すフローチャートである。方策改善装置100は、例えば、ユーザの所定の操作入力を受け付けた場合などに、逐次処理形式の強化学習処理を開始する。
図12において、方策改善装置100は、フィードバック係数行列Fを初期化する(ステップS1201)。そして、方策改善装置100は、ステップS1202の処理に移行する。
ステップS1202では、方策改善装置100は、現在の方策と所定の探索方法とに基づいて、入力utを算出し、制御対象110に印加する(ステップS1202)。次に、方策改善装置100は、状態価値関数を推定した推定状態価値関数を用いて、入力utに対するTD誤差δtを算出する(ステップS1203)。そして、方策改善装置100は、状態価値関数を推定し、方策を評価する(ステップS1204)。
次に、方策改善装置100は、TD誤差δt<0であるか否かを判定する(ステップS1205)。ここで、TD誤差δt<0である場合(ステップS1205:Yes)、方策改善装置100は、ステップS1206の処理に移行する。一方で、TD誤差δt≧0である場合(ステップS1205:No)、方策改善装置100は、ステップS1202の処理に戻る。
ステップS1206では、方策改善装置100は、入力utと、状態xtの一般化逆行列とを用いた更新式により、方策を更新する(ステップS1206)。そして、方策改善装置100は、ステップS1202の処理に戻る。
方策改善装置100は、方策の更新が所定回数実行された場合、更新前後の方策の差異が一定以下である場合、または、ユーザの所定の操作入力を受け付けた場合などに、バッチ処理形式の強化学習処理を終了する。これにより、方策改善装置100は、制御対象110を制御することができる。
以上説明したように、方策改善装置100によれば、方策と、強化学習における制御対象110に対する入力を探索する所定の探索方法とに基づいて、制御対象110に対する入力を算出することができる。方策改善装置100によれば、算出した入力を制御対象110に印加した結果に基づいて、制御対象110に対する入力と、制御対象110の状態に関する一般化逆行列とを用いて、方策のパラメータを更新することができる。これにより、方策改善装置100は、方策のパラメータの成分数に依らず、方策のパラメータの更新にかかる入力決定回数の低減化を図ることができる。
方策改善装置100によれば、方策と探索方法とに基づいて、制御対象110に対する入力を算出することができる。方策改善装置100によれば、算出した入力を制御対象110に印加した結果に基づいて、方策のパラメータの更新に、入力を利用するか否かを判定することができる。方策改善装置100によれば、入力を利用すると判定した場合に、入力と、入力を算出した際の制御対象110の状態に関する一般化逆行列とを用いて、方策のパラメータを更新することができる。これにより、方策改善装置100は、逐次処理形式で強化学習を実施することができる。
方策改善装置100によれば、方策と探索方法とに基づいて、制御対象110に対する入力を算出することができる。方策改善装置100によれば、算出した入力を制御対象110に印加した結果に基づいて、方策のパラメータの更新に、算出した入力を利用するか否かを判定することができる。方策改善装置100によれば、算出した入力を利用すると判定した場合には、算出した入力を記録し、算出した入力を利用しないと判定した場合には、方策から算出される、制御対象110に対する他の入力を記録することができる。方策改善装置100によれば、入力を算出した際の制御対象110の状態を記録することができる。方策改善装置100によれば、記録した複数回分の制御対象110に対する入力と、記録した複数回分の制御対象110の状態に関する一般化逆行列とを用いて、方策のパラメータを更新することができる。これにより、方策改善装置100は、バッチ処理形式で強化学習を実施することができる。
方策改善装置100によれば、状態価値関数を推定し、算出した入力を制御対象110に印加した結果と、状態価値関数を推定した結果とに基づいて、TD誤差を算出することができる。方策改善装置100によれば、算出したTD誤差に基づいて、入力を利用するか否かを判定することができる。これにより、方策改善装置100は、TD誤差に基づいて、入力を利用するか否かを精度よく判定することができる。
方策改善装置100によれば、状態価値関数を推定し、算出した入力を制御対象110に印加した結果と、状態価値関数を推定した結果とに基づいて、TD誤差を算出することができる。方策改善装置100によれば、算出したTD誤差に基づいて、入力により好ましい効果が得られたと判断した場合には、入力を利用すると判定し、入力により好ましい効果が得られなかったと判断した場合には、入力を利用しないと判定することができる。方策改善装置100によれば、好ましい効果が得られたと判断した入力を出力し、かつ、好ましい効果が得られなかったと判断した入力を出力しない傾向が現れるように、方策のパラメータを更新することができる。これにより、方策改善装置100は、好ましい効果が得られたと判断した入力を出力可能に、方策のパラメータを更新することができ、方策を効率よく改善することができる。
方策改善装置100によれば、記録した複数回分の入力を並べて形成した行列と、記録した複数回分の状態を並べて形成した行列の一般化逆行列とにより表現される更新式を用いて、方策のパラメータを更新することができる。これにより、方策改善装置100は、好ましい効果が得られたと判断した入力を出力可能に、方策のパラメータを精度よく更新することができる。
方策改善装置100によれば、方策と、方策から算出される入力に摂動を加える探索方法とに基づいて、制御対象110に対する入力を算出することができる。これにより、方策改善装置100は、現状最適と判断される入力以外に、より適切な入力が存在するか否かを探索するために、制御対象110に、現状最適と判断される入力以外を印加することができる。
方策改善装置100によれば、方策と、方策のパラメータに摂動を加える探索方法とに基づいて、制御対象110に対する入力を算出することができる。これにより、方策改善装置100は、現状最適と判断される入力以外に、より適切な入力が存在するか否かを探索するために、制御対象110に、現状最適と判断される入力以外を印加することができる。
方策改善装置100によれば、方策と、ε貪欲法とに基づいて、制御対象110に対する入力を算出することができる。これにより、方策改善装置100は、現状最適と判断される入力以外に、より適切な入力が存在するか否かを探索するために、制御対象110に、現状最適と判断される入力以外を印加することができる。
方策改善装置100によれば、一括最小二乗法、逐次最小二乗法、一括LSTDアルゴリズム、または、逐次LSTDアルゴリズムのいずれかを用いて、状態価値関数を推定することができる。これにより、方策改善装置100は、状態価値関数を精度よく推定することができる。
方策改善装置100によれば、確定的であり、連続値を取る入力を算出する制御則であり、方策のパラメータについて線形である方策を用いることができる。これにより、方策改善装置100は、パラメータを更新する更新式を導出しやすい方策を用いることができる。
方策改善装置100によれば、空調設備の設定温度と空調設備の設定風量との少なくともいずれかを入力として用いることができる。方策改善装置100によれば、空調設備がある部屋の内部の温度と空調設備がある部屋の外部の温度と気候との少なくともいずれかを状態として用いることができる。方策改善装置100によれば、空調設備の消費電力量をコストとして用いることができる。これにより、方策改善装置100は、制御対象110が空調設備である場合に適用することができる。
方策改善装置100によれば、発電設備の発電機トルクを入力として用いることができる。方策改善装置100によれば、発電設備の発電量と発電設備のタービンの回転量と発電設備のタービンの回転速度と発電設備に対する風向と発電設備に対する風速との少なくともいずれかを状態として用いることができる。方策改善装置100によれば、発電設備の発電量を報酬として用いることができる。これにより、方策改善装置100は、制御対象110が、発電設備である場合に適用することができる。
方策改善装置100によれば、産業用ロボットのモータートルクを入力として用いることができる。方策改善装置100によれば、産業用ロボットの撮影した画像と産業用ロボットの関節位置と産業用ロボットの関節角度と産業用ロボットの関節角速度との少なくともいずれかを状態として用いることができる。方策改善装置100によれば、産業用ロボットの生産量を報酬として用いることができる。これにより、方策改善装置100は、制御対象110が、産業用ロボットである場合に適用することができる。
なお、本実施の形態で説明した方策改善方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した方策改善プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した方策改善プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)状態価値関数に基づいて強化学習の方策を改善する方策改善方法であって、
前記方策と、前記強化学習における制御対象に対する入力を探索する所定の探索方法とに基づいて、前記制御対象に対する入力を算出し、
算出した前記入力を前記制御対象に印加した結果に基づいて、前記制御対象に対する入力と、前記制御対象の状態に関する一般化逆行列とを用いて、前記方策のパラメータを更新する、
処理をコンピュータが実行することを特徴とする方策改善方法。
(付記2)前記方策と前記探索方法とに基づいて、前記制御対象に対する入力を算出し、
算出した前記入力を前記制御対象に印加した結果に基づいて、前記方策のパラメータの更新に、前記入力を利用するか否かを判定し、
前記入力を利用すると判定した場合に、前記入力と、前記入力を算出した際の前記制御対象の状態に関する一般化逆行列とを用いて、前記方策のパラメータを更新する、
処理を前記コンピュータが実行することを特徴とする付記1に記載の方策改善方法。
(付記3)前記方策と前記探索方法とに基づいて、前記制御対象に対する入力を算出し、
算出した前記入力を前記制御対象に印加した結果に基づいて、前記方策のパラメータの更新に、前記入力を利用するか否かを判定し、
前記入力を利用すると判定した場合には、前記入力を記録し、
前記入力を利用しないと判定した場合には、前記方策から算出される、前記制御対象に対する他の入力を記録し、
前記入力を算出した際の前記制御対象の状態を記録する、
処理を前記コンピュータが複数回実行し、
前記更新する処理は、
記録した複数回分の前記制御対象に対する入力と、記録した複数回分の前記制御対象の状態に関する一般化逆行列とを用いて、前記方策のパラメータを更新する、ことを特徴とする付記1または2に記載の方策改善方法。
(付記4)前記状態価値関数を推定し、
算出した前記入力を前記制御対象に印加した結果と、前記状態価値関数を推定した結果とに基づいて、TD誤差を算出する、
処理を前記コンピュータが実行し、
前記判定する処理は、
算出した前記TD誤差に基づいて、前記入力を利用するか否かを判定する、ことを特徴とする付記2または3に記載の方策改善方法。
(付記5)前記状態価値関数を推定し、
算出した前記入力を前記制御対象に印加した結果と、前記状態価値関数を推定した結果とに基づいて、TD誤差を算出する、
処理を前記コンピュータが実行し、
前記判定する処理は、
算出した前記TD誤差に基づいて、前記入力により好ましい効果が得られたと判断した場合には、前記入力を利用すると判定し、前記入力により好ましい効果が得られなかったと判断した場合には、前記入力を利用しないと判定し、
前記更新する処理は、
好ましい効果が得られたと判断した前記制御対象に対する入力を出力し、かつ、好ましい効果が得られなかったと判断した前記制御対象に対する入力を出力しない傾向が現れるように、記録した複数回分の前記制御対象に対する入力と、記録した複数回分の前記制御対象の状態に関する一般化逆行列とを用いて、前記方策のパラメータを更新する、ことを特徴とする付記3に記載の方策改善方法。
(付記6)前記更新する処理は、
記録した複数回分の前記制御対象に対する入力を並べて形成した行列と、記録した複数回分の前記制御対象の状態を並べて形成した行列の一般化逆行列とにより表現される更新式(数25)を用いて、前記方策のパラメータを更新する、ことを特徴とする付記5に記載の方策改善方法。
(付記7)前記算出する処理は、
前記方策と、前記方策から算出される入力に摂動を加える探索方法とに基づいて、前記制御対象に対する入力を算出する、ことを特徴とする付記1~6のいずれか一つに記載の方策改善方法。
(付記8)前記算出する処理は、
前記方策と、前記方策のパラメータに摂動を加える探索方法とに基づいて、前記制御対象に対する入力を算出する、ことを特徴とする付記1~7のいずれか一つに記載の方策改善方法。
(付記9)前記算出する処理は、
前記方策と、ε貪欲法とに基づいて、前記制御対象に対する入力を算出する、ことを特徴とする付記1~8のいずれか一つに記載の方策改善方法。
(付記10)前記推定する処理は、
一括最小二乗法、逐次最小二乗法、一括LSTDアルゴリズム、または、逐次LSTDアルゴリズムのいずれかを用いて、前記状態価値関数を推定する、ことを特徴とする付記4~6のいずれか一つに記載の方策改善方法。
(付記11)前記方策は、確定的であり、連続値を取る入力を算出する制御則であり、前記方策のパラメータについて線形である、ことを特徴とする付記1~10のいずれか一つに記載の方策改善方法。
(付記12)前記制御対象は、空調設備であり、
前記強化学習は、前記空調設備の設定温度と前記空調設備の設定風量との少なくともいずれかを入力とし、前記空調設備がある部屋の内部の温度と前記空調設備がある部屋の外部の温度と気候との少なくともいずれかを状態とし、前記空調設備の消費電力量をコストとする、ことを特徴とする付記1~11のいずれか一つに記載の方策改善方法。
(付記13)前記制御対象は、発電設備であり、
前記強化学習は、前記発電設備の発電機トルクを入力とし、前記発電設備の発電量と前記発電設備のタービンの回転量と前記発電設備のタービンの回転速度と前記発電設備に対する風向と前記発電設備に対する風速との少なくともいずれかを状態とし、前記発電設備の発電量を報酬とする、ことを特徴とする付記1~12のいずれか一つに記載の方策改善方法。
(付記14)前記制御対象は、産業用ロボットであり、
前記強化学習は、前記産業用ロボットのモータートルクを入力とし、前記産業用ロボットの撮影した画像と前記産業用ロボットの関節位置と前記産業用ロボットの関節角度と前記産業用ロボットの関節角速度との少なくともいずれかを状態とし、前記産業用ロボットの生産量を報酬とする、ことを特徴とする付記1~13のいずれか一つに記載の方策改善方法。
(付記15)状態価値関数に基づいて強化学習の方策を改善する方策改善プログラムであって、
前記方策と、前記強化学習における制御対象に対する入力を探索する所定の探索方法とに基づいて、前記制御対象に対する入力を算出し、
算出した前記入力を前記制御対象に印加した結果に基づいて、前記制御対象に対する入力と、前記制御対象の状態に関する一般化逆行列とを用いて、前記方策のパラメータを更新する、
処理をコンピュータに実行させることを特徴とする方策改善プログラム。
(付記16)状態価値関数に基づいて強化学習の方策を改善する方策改善装置であって、
前記方策と、前記強化学習における制御対象に対する入力を探索する所定の探索方法とに基づいて、前記制御対象に対する入力を算出し、
算出した前記入力を前記制御対象に印加した結果に基づいて、前記制御対象に対する入力と、前記制御対象の状態に関する一般化逆行列とを用いて、前記方策のパラメータを更新する、
制御部を有することを特徴とする方策改善装置。