(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-05
(45)【発行日】2022-12-13
(54)【発明の名称】方策改善方法、方策改善プログラム、および方策改善装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20221206BHJP
G05B 13/04 20060101ALI20221206BHJP
G05B 13/02 20060101ALI20221206BHJP
【FI】
G06N20/00
G05B13/04
G05B13/02 A
G05B13/02 L
(21)【出願番号】P 2019041997
(22)【出願日】2019-03-07
【審査請求日】2021-12-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】佐々木 智丈
【審査官】加藤 優一
(56)【参考文献】
【文献】特開2019-53593(JP,A)
【文献】国際公開第2019/005206(WO,A1)
【文献】米国特許出願公開第2020/0210575(US,A1)
【文献】SASAKI, Tomotake, et al.,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)[online], [検索日:2022.10.18],pp.653-657,米国,IEEE,2017年11月13日,インターネット:<URL:https://ieeexplore.ieee.org/document/8105539>,<DOI:10.23919/SICE.2017.8105539>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G05B 13/00-13/04
(57)【特許請求の範囲】
【請求項1】
状態価値関数による強化学習の方策を改善する方策改善方法であって、
前記方策を与える第1のパラメータの複数の成分に対して摂動を加え、
前記複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、前記強化学習における制御対象に対する入力決定を行った結果に基づいて、前記第1のパラメータに関する前記状態価値関数の勾配関数を推定し、
推定した前記勾配関数を用いて、前記第1のパラメータを更新する、
処理をコンピュータが実行することを特徴とする方策改善方法。
【請求項2】
前記加える処理は、
前記第1のパラメータのすべての成分に対して摂動を加える、ことを特徴とする請求項1に記載の方策改善方法。
【請求項3】
前記複数の成分のそれぞれの成分に対して加えられる摂動は、互いに独立に決定され、かつ、等確率で絶対値が等しい正値と負値とのいずれかに決定される、ことを特徴とする請求項1または2に記載の方策改善方法。
【請求項4】
前記加える処理は、
前記第1のパラメータの複数の成分に対して摂動を加え、前記複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、前記制御対象に対する入力決定を行うことを複数回繰り返し、
前記推定する処理は、
前記複数回のそれぞれの回に応じて得られた前記制御対象に対する入力決定を行った結果に基づいて、前記勾配関数を推定する、ことを特徴とする請求項1~3のいずれか一つに記載の方策改善方法。
【請求項5】
前記推定する処理は、
前記それぞれの回に応じて得られた前記制御対象に対する入力決定を行った結果に基づいて、前記それぞれの回に対応するTD誤差を算出し、
前記第1のパラメータのそれぞれの成分について、前記それぞれの回に対応するTD誤差を、当該回において当該成分に加えた摂動で除算し、
除算した結果と、前記状態価値関数を前記それぞれの成分で微分した結果とを対応付けて、前記勾配関数を推定する、ことを特徴とする請求項4に記載の方策改善方法。
【請求項6】
前記制御対象は、空調設備であり、
前記強化学習は、前記空調設備の設定温度と前記空調設備の設定風量との少なくともいずれかを入力とし、前記空調設備がある部屋の内部の温度と前記空調設備がある部屋の外部の温度と気候との少なくともいずれかを状態とし、前記空調設備の消費電力量をコストとする、ことを特徴とする請求項1~5のいずれか一つに記載の方策改善方法。
【請求項7】
前記制御対象は、発電設備であり、
前記強化学習は、前記発電設備の発電機トルクを入力とし、前記発電設備の発電量と前記発電設備のタービンの回転量と前記発電設備のタービンの回転速度と前記発電設備に対する風向と前記発電設備に対する風速との少なくともいずれかを状態とし、前記発電設備の発電量を報酬とする、ことを特徴とする請求項1~5のいずれか一つに記載の方策改善方法。
【請求項8】
前記制御対象は、産業用ロボットであり、
前記強化学習は、前記産業用ロボットのモータートルクを入力とし、前記産業用ロボットの撮影した画像と前記産業用ロボットの関節位置と前記産業用ロボットの関節角度と前記産業用ロボットの関節角速度との少なくともいずれかを状態とし、前記産業用ロボットの生産量を報酬とする、ことを特徴とする請求項1~5のいずれか一つに記載の方策改善方法。
【請求項9】
状態価値関数による強化学習の方策を改善する方策改善プログラムであって、
前記方策を与える第1のパラメータの複数の成分に対して摂動を加え、
前記複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、前記強化学習における制御対象に対する入力決定を行った結果に基づいて、前記第1のパラメータに関する前記状態価値関数の勾配関数を推定し、
推定した前記勾配関数を用いて、前記第1のパラメータを更新する、
処理をコンピュータに実行させることを特徴とする方策改善プログラム。
【請求項10】
状態価値関数による強化学習の方策を改善する方策改善装置であって、
前記方策を与える第1のパラメータの複数の成分に対して摂動を加え、
前記複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、前記強化学習における制御対象に対する入力決定を行った結果に基づいて、前記第1のパラメータに関する前記状態価値関数の勾配関数を推定し、
推定した前記勾配関数を用いて、前記第1のパラメータを更新する、
制御部を有することを特徴とする方策改善装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、方策改善方法、方策改善プログラム、および方策改善装置に関する。
【背景技術】
【0002】
従来、制御対象に対する入力に応じて発生する即時コストまたは即時報酬に基づき、累積コストまたは累積報酬を示す価値関数を改善し、累積コストや累積報酬が最適化されるように方策を改善していく強化学習の技術がある。価値関数は、状態-行動価値関数(Q関数)または状態価値関数(V関数)などである。
【0003】
先行技術としては、例えば、状態情報stと、状態情報st+1と、行動情報atと、行動情報at+1と、報酬情報rt+1とを入力として、線形モデルで近似した方策関数のモデルパラメータの更新幅を求め、モデルパラメータを更新するものがある。また、例えば、制御信号を制御対象に与える処理を行って、制御対象の状態量を観測器で観測した結果によりTD誤差(Temporal Difference error)を求め、TD誤差近似器を更新して、方策を更新する技術がある。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2014-206795号公報
【文献】特開2007-65929号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、方策を与えるパラメータを更新する過程における入力決定の回数が増大しやすく、処理負担が増大しやすいという問題がある。例えば、パラメータの成分を1つずつ選び、選んだ成分にだけ摂動が加えられた状態で入力決定することを複数回行った結果に基づき、パラメータを更新する場合、パラメータの成分数が増加するほど、入力決定の回数が増大する。
【0006】
1つの側面では、本発明は、パラメータ更新にかかる入力決定回数の低減化を図ることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、状態価値関数による強化学習の方策を改善する場合、前記方策を与える第1のパラメータの複数の成分に対して摂動を加え、前記複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、前記強化学習における制御対象に対する入力決定を行った結果に基づいて、前記第1のパラメータに関する前記状態価値関数の勾配関数を推定し、推定した前記勾配関数を用いて、前記第1のパラメータを更新する方策改善方法、方策改善プログラム、および方策改善装置が提案される。
【発明の効果】
【0008】
一態様によれば、パラメータ更新にかかる入力決定回数の低減化を図ることが可能になる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる方策改善方法の一実施例を示す説明図である。
【
図2】
図2は、方策改善装置100のハードウェア構成例を示すブロック図である。
【
図3】
図3は、方策改善装置100の機能的構成例を示すブロック図である。
【
図4】
図4は、強化学習の実施例を示す説明図である。
【
図5】
図5は、制御対象110の具体例を示す説明図(その1)である。
【
図6】
図6は、制御対象110の具体例を示す説明図(その2)である。
【
図7】
図7は、制御対象110の具体例を示す説明図(その3)である。
【
図8】
図8は、バッチ処理形式の強化学習処理手順の一例を示すフローチャートである。
【
図9】
図9は、逐次処理形式の強化学習処理手順の一例を示すフローチャートである。
【
図10】
図10は、方策改善処理手順の一例を示すフローチャートである。
【
図11】
図11は、推定処理手順の一例を示すフローチャートである。
【
図12】
図12は、更新処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる方策改善方法、方策改善プログラム、および方策改善装置の実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる方策改善方法の一実施例)
図1は、実施の形態にかかる方策改善方法の一実施例を示す説明図である。方策改善装置100は、所定のタイミングで、方策(policy)を改善し、方策によって制御対象110に対する入力(input)を決定することにより、制御対象110を制御するコンピュータである。方策改善装置100は、例えば、サーバやPC(Personal Computer)、マイクロコントローラなどである。
【0012】
制御対象110は、何らかの事象であり、例えば、現実に存在する物理系である。制御対象110は環境(environment)とも呼ばれる。制御対象110は、具体的には、サーバルーム、発電設備、または、産業用機械などである。方策は、所定のパラメータにより、制御対象110に対する入力値を決定する方程式である。方策は、制御則(control law)とも呼ばれる。所定のパラメータは、例えば、フィードバック係数行列である。
【0013】
方策の改善は、方策を与えるパラメータの更新に対応する。方策の改善は、累積コストや累積報酬がより効率よく最適化されるように方策を変更することである。入力(input)は、制御対象110に対する操作である。入力は、行動(action)とも呼ばれる。制御対象110に対する入力に応じて、制御対象110の状態(state)が変化する。
【0014】
ここで、累積コストや累積報酬を最適化するためには、状態価値関数の勾配に沿った方向に、方策を与えるパラメータを変化させることが好ましいという性質がある。これに対し、下記非特許文献1を参考に、方策を与えるパラメータを更新していくことにより方策の改善を図り、制御対象110を制御する第1の制御手法が考えられる。
【0015】
非特許文献1 : 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.
【0016】
第1の制御手法は、例えば、方策を与えるパラメータの成分を1つずつ選び、選んだ成分にだけ摂動が加えられた状態で入力決定することを複数回行った結果に基づき、状態価値関数の勾配関数行列を推定し、方策を与えるパラメータを更新する制御手法である。これによれば、第1の制御手法は、状態価値関数の勾配に沿った方向に、方策を与えるパラメータを変化させることができる。
【0017】
しかしながら、第1の制御手法は、方策を与えるパラメータを更新する過程において入力決定を行う回数が増大しやすく、処理負担が増大しやすいという問題がある。第1の制御手法は、例えば、方策を与えるパラメータの成分ごとに複数回の入力決定を行うため、方策を与えるパラメータの成分数に比例して入力決定の回数の増大化を招き、処理負担および処理時間の増大化を招く。そして、第1の制御手法は、入力決定に応じて所定時間待機して即時コストまたは即時報酬を観測する処理回数の増大化も招き、処理負担および処理時間の増大化を招く。
【0018】
そこで、本実施の形態では、方策を与えるパラメータの複数の成分に纏めて摂動を加え、制御対象110に対する入力決定を行った結果に基づき、状態価値関数の勾配関数行列を推定し、方策を与えるパラメータを更新する方策改善方法について説明する。この方策改善方法によれば、方策を与えるパラメータを更新する過程において入力決定を行う回数の低減化を図ることができる。
【0019】
図1の例では、制御対象110は、制御対象110の状態変化が離散時間線形時不変確定状態方程式で表され、制御対象110の状態方程式と、即時コストまたは即時報酬の発生の仕方を表す2次形式の方程式とにおける係数行列が未知である状況である。また、制御対象110は、制御対象110の状態が出力(output)になり、制御対象110の状態が直接観測可能である状況である。
【0020】
図1の例では、制御対象110の状態変化が、線形差分方程式で規定され、かつ、制御対象110の即時コストまたは即時報酬が、制御対象110の状態および制御対象110への入力の2次形式で規定される。
【0021】
(1-1)方策改善装置100は、方策を与える第1のパラメータの複数の成分に対して摂動を加える。第1のパラメータは、例えば、フィードバック係数行列である。複数の成分は、例えば、第1のパラメータのすべての成分である。方策改善装置100は、例えば、フィードバック係数行列に摂動行列を加えることにより、フィードバック係数行列のすべての成分に対して摂動を加える。摂動を加える具体例は、例えば、
図10を用いて後述する。これによれば、状態価値関数の勾配関数を推定可能にすることができる。
【0022】
(1-2)方策改善装置100は、複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、制御対象110に対する入力決定を行う。そして、方策改善装置100は、制御対象110に対する入力決定を行った結果に基づいて、第1のパラメータに関する状態価値関数の勾配関数を推定する。第2のパラメータは、第1のパラメータの複数の成分に対して摂動を加えた結果に対応する。
【0023】
方策改善装置100は、例えば、制御対象110に対する入力決定を行った結果に基づいて、状態価値関数を推定した推定状態価値関数に対するTD誤差を算出する。次に、方策改善装置100は、TD誤差および摂動に基づき、状態に対するフィードバック係数行列に関する状態価値関数の勾配関数行列を推定した推定勾配関数行列を生成する。推定勾配関数行列を生成する具体例は、例えば、
図10および
図11を用いて後述する。
【0024】
ここで、方策改善装置100は、第1のパラメータの複数の成分に対して摂動を加え、制御対象110に対する入力決定を行うことを、複数回繰り返してもよい。そして、方策改善装置100は、それぞれの回に応じて得られた制御対象110に対する入力決定を行った結果に基づいて、勾配関数を推定する。これによれば、方策改善装置100は、フィードバック係数行列の各成分について摂動に対する反応度合いを示す偏微分の推定結果を取得することができ、取得した偏微分の推定結果を利用して、任意の状態を代入可能な推定勾配関数行列を生成することができる。
【0025】
(1-3)方策改善装置100は、推定した勾配関数を用いて、第1のパラメータを更新する。方策改善装置100は、例えば、生成した推定勾配関数行列を用いて、フィードバック係数行列を更新する。フィードバック係数行列を更新する具体例は、例えば、
図12を用いて後述する。これによれば、方策改善装置100は、任意の状態を代入した推定勾配関数行列の推定値に基づき、フィードバック係数行列を更新することができる。
【0026】
これにより、方策改善装置100は、フィードバック係数行列に、どのような摂動行列を加えれば、累積コストや累積報酬が最適化されていくかを判断することができるようになる。また、方策改善装置100は、フィードバック係数行列の更新にかかる入力決定回数の低減化を図ることができ、入力決定に応じて所定時間待機して即時コストまたは即時報酬を観測する処理回数の低減化も図ることができる。このため、方策改善装置100は、処理負担および処理時間の低減化を図ることができる。
【0027】
結果として、方策改善装置100は、状態価値関数を改善し、累積コストや累積報酬が効率よく最適化されるように、フィードバック係数行列を更新することができ、方策を効率よく改善していくことができる。状態価値関数の改善は、累積コストの場合はすべての状態で価値関数の値がより小さくなることであり、累積報酬の場合はすべての状態で価値関数の値がより大きくなることである。
【0028】
ここでは、方策改善装置100が、第1のパラメータのすべての成分に対して摂動を加える場合について説明したが、これに限らない。例えば、方策改善装置100が、第1のパラメータの成分をグループ分けし、グループごとに複数の成分に対して摂動を加える場合があってもよい。グループは、例えば、行単位の成分のグループまたは列単位の成分のグループなどである。グループは、例えば、上三角部分や下三角部分の成分のグループなどであってもよい。
【0029】
(方策改善装置100のハードウェア構成例)
次に、
図2を用いて、
図1に示した方策改善装置100のハードウェア構成例について説明する。
【0030】
図2は、方策改善装置100のハードウェア構成例を示すブロック図である。
図2において、方策改善装置100は、CPU(Central Processing Unit)201と、メモリ202と、ネットワークI/F(Interface)203と、記録媒体I/F204と、記録媒体205とを有する。また、各構成部は、バス200によってそれぞれ接続される。
【0031】
ここで、CPU201は、方策改善装置100の全体の制御を司る。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU201のワークエリアとして使用される。メモリ202に記憶されるプログラムは、CPU201にロードされることで、コーディングされている処理をCPU201に実行させる。
【0032】
ネットワークI/F203は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F203は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F203は、例えば、モデムやLAN(Local Area Network)アダプタなどである。
【0033】
記録媒体I/F204は、CPU201の制御に従って記録媒体205に対するデータのリード/ライトを制御する。記録媒体I/F204は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体205は、記録媒体I/F204の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体205は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体205は、方策改善装置100から着脱可能であってもよい。
【0034】
方策改善装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、タッチパネル、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、方策改善装置100は、記録媒体I/F204や記録媒体205を複数有していてもよい。また、方策改善装置100は、記録媒体I/F204や記録媒体205を有していなくてもよい。
【0035】
(方策改善装置100の機能的構成例)
次に、
図3を用いて、方策改善装置100の機能的構成例について説明する。
【0036】
図3は、方策改善装置100の機能的構成例を示すブロック図である。方策改善装置100は、記憶部300と、観測部301と、推定部302と、決定部303と、出力部304とを含む。
【0037】
記憶部300は、例えば、
図2に示したメモリ202や記録媒体205などの記憶領域によって実現される。以下では、記憶部300が、方策改善装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部300が、方策改善装置100とは異なる装置に含まれ、記憶部300の記憶内容が方策改善装置100から参照可能である場合があってもよい。
【0038】
観測部301~出力部304は、制御部の一例として機能する。観測部301~出力部304は、具体的には、例えば、
図2に示したメモリ202や記録媒体205などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、ネットワークI/F203により、その機能を実現する。各機能部の処理結果は、例えば、
図2に示したメモリ202や記録媒体205などの記憶領域に記憶される。
【0039】
記憶部300は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部300は、制御対象110の入力と、状態と、即時コストまたは即時報酬とを蓄積する。これにより、記憶部300は、制御対象110の入力と、状態と、即時コストまたは即時報酬とを、推定部302や決定部303に参照させることができる。
【0040】
制御対象110は、例えば、空調設備である場合がある。この場合、入力は、例えば、空調設備の設定温度と、空調設備の設定風量との少なくともいずれかである。状態は、例えば、空調設備がある部屋の内部の温度と、空調設備がある部屋の外部の温度と、気候との少なくともいずれかである。コストは、例えば、空調設備の消費電力量である。制御対象110が、空調設備である場合については、具体的には、
図5を用いて後述する。
【0041】
制御対象110は、例えば、発電設備である場合がある。発電設備は、例えば、風力発電設備である。この場合、入力は、例えば、発電設備の発電機トルクである。状態は、例えば、発電設備の発電量と、発電設備のタービンの回転量と、発電設備のタービンの回転速度と、発電設備に対する風向と、発電設備に対する風速との少なくともいずれかである。報酬は、例えば、発電設備の発電量である。制御対象110は、例えば、発電設備である場合については、具体的には、
図6を用いて後述する。
【0042】
制御対象110は、例えば、産業用ロボットである場合がある。この場合、入力は、例えば、産業用ロボットのモータートルクである。状態は、例えば、産業用ロボットの撮影した画像と、産業用ロボットの関節位置と、産業用ロボットの関節角度と、産業用ロボットの関節角速度との少なくともいずれかである。報酬は、例えば、産業用ロボットの生産量である。生産量は、例えば、組み立て数である。組み立て数は、例えば、産業用ロボットが組み立てた製品の数である。制御対象110が、産業用ロボットである場合については、具体的には、
図7を用いて後述する。
【0043】
記憶部300は、方策を与えるパラメータを記憶してもよい。例えば、記憶部300は、方策を与える第1のパラメータを記憶する。第1のパラメータは、例えば、フィードバック係数行列である。これにより、記憶部300は、所定のタイミングで更新される、方策を与える第1のパラメータを記憶しておくことができる。また、記憶部300は、方策を与える第1のパラメータを、推定部302に参照させることができる。
【0044】
観測部301は、制御対象110の状態と、即時コストまたは即時報酬とを観測し、記憶部300に出力する。これにより、観測部301は、制御対象110の状態と、即時コストまたは即時報酬とを記憶部300に蓄積させることができる。
【0045】
推定部302は、状態価値関数を推定した推定状態価値関数を更新する。例えば、推定部302は、一括最小二乗法、逐次最小二乗法、一括LSTD(Least-Squares Temporal Difference)アルゴリズム、逐次LSTDアルゴリズムなどを用いて、推定状態価値関数の係数を更新することにより、推定状態価値関数を更新する。
【0046】
具体的には、推定部302は、
図8に後述するステップS804において、推定状態価値関数の係数を更新することにより、推定状態価値関数を更新する。これにより、推定部302は、推定状態価値関数を、方策を与える第1のパラメータを更新するために用いることができる。また、推定部302は、状態価値関数を改善することができる。
【0047】
一括最小二乗法、逐次最小二乗法、一括LSTDアルゴリズム、逐次LSTDアルゴリズムなどについては、下記非特許文献2や下記非特許文献3を参照することができる。
【0048】
非特許文献2: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.
【0049】
非特許文献3: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.
【0050】
推定部302は、方策を与える第1のパラメータの複数の成分に対して摂動を加える。複数の成分のそれぞれの成分に対して加えられる摂動は、互いに独立に決定され、かつ、等確率で絶対値が等しい正値と負値とのいずれかに決定される。推定部302は、複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、制御対象110に対する入力決定を行う。
【0051】
例えば、推定部302は、第1のパラメータのすべての成分に対して摂動を加える。具体的には、推定部302は、フィードバック係数行列と同じ大きさの摂動行列を生成し、フィードバック係数行列に摂動行列を加えることにより、フィードバック係数行列のすべての成分に対して摂動を加える。
【0052】
また、推定部302は、第1のパラメータの複数の成分に対して摂動を加え、複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、制御対象110に対する入力決定を行うことを、複数回繰り返してもよい。以下の説明では、推定部302が、入力決定を行うことを複数回繰り返す場合について説明する。
【0053】
例えば、推定部302は、第1のパラメータのすべての成分に対して摂動を加え、入力決定を行うことを、複数回繰り返す。具体的には、推定部302は、フィードバック係数行列と同じ大きさの摂動行列を生成し、フィードバック係数行列に摂動行列を加えることにより、フィードバック係数行列のすべての成分に対して摂動を加え、入力決定を行うことを、複数回繰り返す。より具体的には、推定部302は、
図10に後述するステップS1001,S1003において、フィードバック係数行列のすべての成分に対して摂動を与えることを、複数回繰り返す。
【0054】
また、例えば、推定部302は、第1のパラメータの成分を複数のグループに分け、グループごとに成分に対して摂動を加える場合があってもよい。複数のグループのうち、少なくともいずれかのグループは、複数の成分を含む。複数のグループは、2以上の成分を含まず1つの成分を含むグループを含んでもよい。グループは、例えば、行単位の成分のグループまたは列単位の成分のグループなどである。グループは、例えば、上三角部分や下三角部分の成分のグループなどであってもよい。
【0055】
次に、推定部302は、複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、強化学習における制御対象110に対する入力決定を行った結果に基づいて、第1のパラメータに関する状態価値関数の勾配関数を推定する。第2のパラメータは、第1のパラメータの複数の成分に対して摂動を加えた結果に対応する。例えば、推定部302は、それぞれの回に応じて得られた制御対象110に対する入力決定を行った結果に基づいて、勾配関数を推定する。
【0056】
具体的には、推定部302は、それぞれの回に応じて得られた制御対象110に対する入力決定を行った結果に基づいて、それぞれの回に対応するTD誤差を算出する。次に、推定部302は、第1のパラメータのそれぞれの成分について、それぞれの回に対応するTD誤差を、当該回において当該成分に加えた摂動で除算する。そして、推定部302は、除算した結果と、状態価値関数をそれぞれの成分で微分した結果とを対応付けて、勾配関数を推定する。
【0057】
より具体的には、推定部302は、それぞれの回に応じて得られた制御対象110に対する入力決定を行った結果に基づいて、それぞれの回に対応するTD誤差を算出する。次に、推定部302は、フィードバック係数行列の各成分について、それぞれの回に対応するTD誤差を、当該回において当該成分に加えた摂動で除算する。
【0058】
そして、推定部302は、除算した結果と、状態価値関数をフィードバック係数行列の各成分で微分した結果とを対応付けて、勾配関数行列の各成分を推定した推定成分を生成する。推定勾配関数行列は、制御対象110の状態に対する第1のパラメータに関する状態価値関数の勾配関数行列を推定した行列である。
【0059】
ここで、推定部302は、状態価値関数をフィードバック係数行列の各成分で微分した結果を、状態に依存するベクトルと、状態に依存しないベクトルとの積で規定する。また、推定部302は、制御対象110の状態変化が線形な差分方程式で規定され、かつ、制御対象110の即時コストまたは即時報酬が状態および入力の2次形式で規定されることを利用する。
【0060】
より具体的には、例えば、推定部302は、
図10に後述するステップS1004、および
図11に後述するステップS1101,S1102において、摂動に対応する、状態価値関数を推定した推定状態価値関数に対するTD誤差を生成することができる。これにより、推定部302は、方策を与える第1のパラメータの各成分について、摂動に対する反応度合いを示す偏微分の推定結果を取得することができる。
【0061】
より具体的には、例えば、推定部302は、
図11に後述するステップS1103~S1107において、勾配関数行列の各成分を推定した推定成分を、任意の状態を代入可能な形式で生成する。そして、推定部302は、
図12に後述するステップS1201において、勾配関数行列を推定した推定勾配関数行列を生成する。
【0062】
ここで、推定部302は、フィードバック係数行列の各成分について生成されたTD誤差を摂動で除算した結果と、状態価値関数をフィードバック係数行列の各成分で微分した結果とを対応付けて形成される後述する式(24)を用いる。
【0063】
ここで、推定部302は、勾配関数行列の各成分を推定した推定成分を生成する際に、一括最小二乗法、逐次最小二乗法、一括LSTDアルゴリズム、逐次LSTDアルゴリズムなどを用いてもよい。これにより、推定部302は、任意の状態を代入可能な推定勾配関数行列を生成することができる。
【0064】
推定部302は、推定した勾配関数を用いて、第1のパラメータを更新する。例えば、推定部302は、生成した推定勾配関数行列を用いて、フィードバック係数行列を更新する。具体的には、推定部302は、
図12に後述するステップS1202において、推定勾配関数行列を用いて、フィードバック係数行列を更新する。これにより、推定部302は、状態を代入した推定勾配関数行列の推定値に基づき、フィードバック係数行列を更新することができる。
【0065】
決定部303は、更新したフィードバック係数行列を用いた方策に基づいて、制御対象110に対する入力値を決定する。これにより、決定部303は、累積コストや累積報酬を最適化することができる入力値を決定することができる。
【0066】
出力部304は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F203による外部装置への送信、または、メモリ202や記録媒体205などの記憶領域への記憶である。
【0067】
例えば、出力部304は、決定した入力値を制御対象110に対して出力する。これにより、出力部304は、制御対象110を制御することができる。また、例えば、出力部304は、決定した入力値を記憶部300に対して出力する。これにより、出力部304は、入力値を記憶部300に記憶し、推定部302や決定部303に参照させることができる。
【0068】
(強化学習の実施例)
次に、
図4を用いて、強化学習の実施例について説明する。
【0069】
図4は、強化学習の実施例を示す説明図である。
図4に示すように、実施例において、下記式(1)~下記式(9)によって、制御対象110の状態方程式と、即時コストの2次形式の方程式と、目的と、方策とが規定され、問題設定が行われる。実施例において、制御対象110の状態は、直接観測可能である。
【0070】
【0071】
上記式(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は、未知である。
【0072】
【0073】
上記式(2)は、状態x0が、n次元であることを示す。nは、既知である。中抜き文字のRは、実数空間を示す。中抜き文字のRの上付文字は次元数を示す。
【0074】
【0075】
上記式(3)は、入力utが、m次元であることを示す。
【0076】
【0077】
上記式(4)は、係数行列Aが、n×n次元である(n行n列である)ことを示し、係数行列Bが、n×m次元である(n行m列である)ことを示す。(A,B)は可安定(stabilizable)である。
【0078】
【0079】
上記式(5)は、制御対象110で発生する即時コストの方程式である。ctは、時刻tにおける入力utに応じて単位時間後に発生する即時コストである。上付き文字Tは、転置を示す。上記式(5)は、即時コストctが、時刻tにおける状態xtと、時刻tにおける入力utとの2次形式によって決定される関係があることを示す。係数行列Q,Rは、未知である。即時コストctは、直接観測可能である。
【0080】
【0081】
上記式(6)は、係数行列Qが、n×n次元であることを示す。≧0は、半正定値行列であることを示す。また、上記式(6)は、係数行列Rが、m×m次元であることを示す。>0は、正定値行列であることを示す。
【0082】
【0083】
上記式(7)は、累積コストVを示す方程式である。強化学習の目的は、累積コストVの最小化である。γは、割引率(discount rate)である。γは、0~1の値である。
【0084】
【0085】
上記式(1)~上記式(7)の下では、累積コストVを最小化する方策は、上記式(8)により表現される。従って、以下の説明では、方策が、上記式(8)により表現される場合について説明する。Ftは、時刻tに用いられるフィードバック係数行列であって、状態xtに関する係数行列を示す。上記式(8)は、時刻tにおける状態xtに基づいて、時刻tにおける入力utを決定する方程式である。
【0086】
【0087】
上記式(9)は、フィードバック係数行列Ftが、m×n次元であることを示す。以下の説明では、フィードバック係数行列Ftを単に「フィードバック係数行列F」と表記する場合がある。次に、上述した非特許文献1を参考に、フィードバック係数行列Fを更新する具体例について説明する。
【0088】
(上述した非特許文献1を参考に、フィードバック係数行列Fを更新する具体例)
方策が、上記式(8)により表現される場合、時刻0で状態xから強化学習による制御対象110の制御を開始すると、累積コストVは、フィードバック係数行列Fと状態xとの関数である状態価値関数ν(x:F)によって表現される。
【0089】
ここで、累積コストVを最小化するためには、状態価値関数ν(x:F)のフィードバック係数行列Fに関する勾配関数行列▽Fν(x:F)に沿った方向に、フィードバック係数行列Fを変化させることが好ましい。
【0090】
これに対し、上述した非特許文献1によれば、フィードバック係数行列Fの成分を1つずつ選び、選んだ成分にだけ摂動が加えられた状態で入力決定を行い、勾配関数行列▽Fν(x:F)を推定し、フィードバック係数行列Fを更新する制御手法αが考えられる。ここで、制御手法αについて、具体的に説明する。
【0091】
制御手法αは、フィードバック係数行列F+εEijの数式によって、フィードバック係数行列Fの(i,j)成分Fijに摂動を加え、入力決定を行うことをN’回繰り返す。(i,j)は、行列の成分を特定するインデックスである。インデックス(i,j)は、例えば、行列Fのi行j列の成分を特定する。Eijは、インデックス(i,j)で特定される成分が1、その成分以外の成分が0であるm×n次元行列である。εは、0ではない実数である。
【0092】
制御手法αは、上記式(8)のFtに代わり、フィードバック係数行列F+εEijを用いて、入力決定を行う。この場合、状態価値関数ν(x:F)は、下記式(10)により表現される。
【0093】
【0094】
結果として、決定した入力に対応するTD誤差は、フィードバック係数行列Fの(i,j)の成分Fijに関する状態価値関数の偏微分係数(partial differential coefficient)によって表現することができる。
【0095】
さらに、制御対象110の状態変化が線形時不変確定ダイナミクスに従い、即時コストが2次形式で表現される場合、状態価値関数ν(x:F)は、下記式(11)のように2次形式で表現される。
【0096】
【0097】
このため、状態価値関数ν(x:F)を、フィードバック係数行列Fの(i,j)の成分Fijで偏微分した関数∂ν/∂Fij(x:F)は、下記式(12)のように2次形式で表現される。以下の説明では、偏微分した関数を「偏導関数(partial derivative)」と表記する場合がある。
【0098】
【0099】
制御手法αは、上記式(12)および下記式(13)により求められるベクトルθFij
Fを利用し、フィードバック係数行列Fの(i,j)の成分Fijに関する偏導関数∂ν/∂Fij(x:F)の推定関数を算出する。○と×を重ねた記号は、クロネッカー積を示す。上付文字のクロネッカー積は、同じ変数同士のクロネッカー積を示す。上付文字のクロネッカー積に付された数字は、クロネッカー積の回数を示す。δF(x:εEij)は、TD誤差である。
【0100】
【数13】
以下の説明では、推定関数は、例えば、数式中では、偏導関数∂ν/∂F
ij(x:F)の上部に^を付して、下記式(14)のように記載する場合がある。また、推定関数は、文中では、hat{∂ν/∂F
ij(x:F)}と記載する場合がある。
【0101】
【0102】
制御手法αは、同様に、フィードバック係数行列Fの他の成分についても、摂動を加え、入力決定を行うことをN’回繰り返し、偏導関数∂ν/∂Fij(x:F)の推定関数hat{∂ν/∂Fij(x:F)}を算出する。そして、制御手法αは、偏導関数∂ν/∂Fijの推定関数hat{∂ν/∂Fij(x:F)}を用いて、フィードバック係数行列の勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列を生成する。
【0103】
以下の説明では、推定勾配関数行列は、例えば、数式中では、勾配関数行列▽Fν(x:F)の上部に^を付して、下記式(15)のように記載する場合がある。また、推定勾配関数行列は、例えば、文中では、hat{▽Fν(x:F)}と記載する場合がある。
【0104】
【0105】
これにより、制御手法αは、勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列hat{▽Fν(x:F)}に基づき、フィードバック係数行列Fを更新することができる。
【0106】
しかしながら、制御手法αは、フィードバック係数行列Fの成分ごとに、入力決定をN’回行うことになるため、フィードバック係数行列Fを更新するまでに、入力決定をn×m×N’回行うことになる。また、制御手法αは、入力決定をn×m×N’回行うため、入力決定に応じて所定時間待機して即時コストまたは即時報酬を観測する処理回数の増大化も招くことになる。結果として、制御手法αは、処理負担および処理時間の増大化を招く。
【0107】
従って、入力決定の回数の低減化を図り、処理負担および処理時間の低減化を図ることが望まれる。これに対し、方策改善装置100により、フィードバック係数行列Fのすべての成分に纏めて摂動を加えて入力決定を行うことにより、入力決定の回数の低減化を図りつつ、フィードバック係数行列Fを更新することができる具体例について説明する。
【0108】
(方策改善装置100がフィードバック係数行列Fを更新する具体例)
ここで、例えば、フィードバック係数行列Fと同じ大きさの摂動行列ρを加えることにより、フィードバック係数行列Fのすべての成分に纏めて摂動を加える場合が考えられる。この場合、上記式(8)のFtに代わり、フィードバック係数行列F+ρを用いて、入力決定を行うことになるため、状態価値関数ν(x:F)は、下記式(16)により表現される。ρ=[ρij]∈Rm×nである。|ρij|≦ε≦1である。
【0109】
【0110】
上記式(16)は、フィードバック係数行列Fの(i,j)の成分Fijに関する偏微分係数∂ν/∂Fij(x:F)ρijの和が、余計な項として含まれる。余計な項は、勾配関数行列▽Fν(x:F)の推定に悪影響を与える項である。このため、TD誤差に基づき、フィードバック係数行列Fの勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列hat{▽Fν(x:F)}を求める際に、余計な項を無視可能にすることが望まれる。
【0111】
これに対し、方策改善装置100は、摂動行列ρとして、下記第1の性質および下記第2の性質を有する摂動行列Δ=[Δij]を確率的に生成し、上記式(8)のFtに代わり、フィードバック係数行列F+εΔを用いて、入力決定をN’回繰り返すようにする。
【0112】
第1の性質は、Prob(Δij=1)=Prob(Δij=-1)=1/2,for all i=1,・・・,m j=1,・・・,nという性質である。換言すれば、摂動Δijは、等確率で、絶対値が等しい正値と負値とのいずれかに決定される。ここでは、絶対値=1である。第2の性質は、摂動Δijが、互いに独立に決定されるという性質である。以下の説明では、摂動行列Δまたは摂動Δijを、生成された時刻tを明示する場合、下付文字tを付して表記する場合がある。
【0113】
上記式(8)のFtに代わり、フィードバック係数行列F+εΔを用いて、入力決定を行う場合、状態価値関数ν(x:F)は、下記式(17)により表現される。
【0114】
【0115】
これに対し、上記式(17)の両辺をΔij=1or-1で除算すると、下記式(18)が求められる。下記式(18)は、余計な係数がない∂ν/∂Fij(x:F)εが現れる。∂ν/∂Fij(x:F)εは、上記式(10)に現れる項と同様である。
【0116】
【0117】
さらに、上記式(18)に基づき、上記式(13)に対応する下記式(19)を求めることができる。
【0118】
【0119】
上記式(19)は、上記式(13)と同様の項を含む。一方で、上記式(19)は、上記式(13)とは異なる余計な項を含む。ここでは、余計な項は、Σの項である。しかしながら、上述した第1の性質および第2の性質から、Σの項は、任意のxに対して期待値0かつ異なるxに関して独立である。
【0120】
このため、方策改善装置100は、ガウスマルコフの定理によれば、上記式(19)を、上記式(13)の代わりに用いても、偏導関数∂ν/∂Fij(x:F)の推定関数hat{∂ν/∂Fij(x:F)}を精度よく算出可能になる。
【0121】
そして、方策改善装置100は、偏導関数∂ν/∂Fijの推定関数hat{∂ν/∂Fij(x:F)}を用いて、フィードバック係数行列の勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列を生成可能になる。
【0122】
このため、方策改善装置100は、勾配関数行列▽
Fν(x:F)を推定した推定勾配関数行列hat{▽
Fν(x:F)}に基づき、フィードバック係数行列Fを更新することができる。フィードバック係数行列Fを更新する具体例は、
図8~
図12を用いて後述する。
【0123】
これにより、方策改善装置100は、状態xと分離された形式で、行列∂PF/∂Fijの推定行列を生成することができる。このため、方策改善装置100は、ある時刻に、勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列hat{▽Fν(x:F)}を任意の状態xを代入可能な形式で算出することができる。そして、方策改善装置100は、その時刻以降は、ある状態について勾配関数行列▽Fν(x:F)の推定値を算出する場合、算出済みの推定勾配関数行列hat{▽Fν(x:F)}に、その状態を代入すれば算出可能になる。
【0124】
このように、方策改善装置100は、ある状態xに対する勾配関数行列▽Fν(x:F)の推定値ではなく、ある時刻以降に利用可能である勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列hat{▽Fν(x:F)}を生成することができる。このため、方策改善装置100は、様々な状態について勾配関数行列▽Fν(x:F)の推定値を算出することを比較的容易にすることができ、処理量の低減化を図ることができる。
【0125】
また、方策改善装置100は、実際に観測した状態や即時コスト、入力に基づいて勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列hat{▽Fν(x:F)}を生成することができる。このため、方策改善装置100は、勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列hat{▽Fν(x:F)}を精度よく生成することができる。
【0126】
また、方策改善装置100は、累積コストを効率よく最小化するように、フィードバック係数行列Fを更新することができる。このため、方策改善装置100は、制御対象110の状態が好ましい状態になるまでにかかる時間の低減化を図ることができる。方策改善装置100は、例えば、勾配関数行列▽Fν(x:F)を用いない強化学習の技術に比べて、制御対象110の状態が好ましい状態になるまでにかかる時間の低減化を図ることができる。
【0127】
また、方策改善装置100は、勾配関数行列▽Fν(x:F)を推定した推定勾配関数行列hat{▽Fν(x:F)}に基づき、フィードバック係数行列Fを更新する際に、フィードバック係数行列Fの変化度合いを調整することができる。このため、方策改善装置100は、フィードバック係数行列Fの急変化による制御対象110への悪影響などを防止することができる。
【0128】
例えば、状態価値関数が精度よく推定されていない段階でも、フィードバック係数行列Fの変化度合いを調整することができない場合が考えられる。この場合、フィードバック係数行列Fが急変化し、好ましくない係数行列になり、累積コストや累積報酬が最適化されるように制御対象110を制御することが難しく、制御対象110の安定性を損なう可能性がある。これに対し、方策改善装置100は、フィードバック係数行列Fの変化度合いを調整することができる。このため、方策改善装置100は、状態価値関数が精度よく推定されていない段階でも、フィードバック係数行列Fの変化度合いを調整することができ、フィードバック係数行列Fを急変化しづらくすることができる。
【0129】
また、方策改善装置100は、様々な時刻の状態について勾配関数行列▽Fν(x:F)の推定値を算出した結果に基づいて、勾配関数行列▽Fν(x:F)の推定値の統計値を算出することができる。また、方策改善装置100は、フィードバック係数行列Fを更新するまでに、入力決定を1×N’回行えばよくなり、処理負担および処理時間の低減化を図ることができる。
【0130】
(制御対象110の具体例)
次に、
図5~
図7を用いて、制御対象110の具体例について説明する。
【0131】
図5~
図7は、制御対象110の具体例を示す説明図である。
図5の例では、制御対象110は、熱源であるサーバ501と、CRACやChillerなどの冷却器502とを含むサーバルーム500である。入力は、冷却器502に対する設定温度や設定風量である。状態は、サーバルーム500に設けられたセンサ装置からのセンサデータなどであり、例えば、温度などである。状態は、制御対象110以外から得られる制御対象110に関するデータであってもよく、例えば、気温や天気などであってもよい。即時コストは、例えば、サーバルーム500の単位時間ごとの消費電力量である。単位時間は、例えば、5分である。目標は、サーバルーム500の累積消費電力量の最小化である。状態価値関数は、例えば、サーバルーム500の累積消費電力量についての状態の価値を表す。
【0132】
方策改善装置100は、累積コストである累積消費電力量を効率よく最小化するように、フィードバック係数行列Fを更新することができる。また、方策改善装置100は、フィードバック係数行列Fの更新にかかる入力決定回数の低減化を図ることができる。このため、方策改善装置100は、制御対象110の累積消費電力量が最小化されるまでにかかる時間の低減化を図ることができ、サーバルーム500の運営コストの低減化を図ることができる。また、方策改善装置100は、サーバ501の使用状況の変化および気温の変化などが発生した場合も、その変化から比較的短い時間で、累積消費電力量を効率よく最小化することができる。
【0133】
図6の例では、制御対象110は、発電機600である。発電機600は、例えば、風力発電機である。入力は、発電機600に対する指令値である。指令値は、例えば、発電機トルクである。状態は、発電機600に設けられたセンサ装置からのセンサデータであり、例えば、発電機600の発電量や発電機600のタービンの回転量または回転速度などである。状態は、発電機600に対する風向や風速などであってもよい。即時報酬は、例えば、発電機600の単位時間ごとの発電量である。単位時間は、例えば、5分である。目標は、例えば、発電機600の累積発電量の最大化である。状態価値関数は、例えば、発電機600の累積発電量についての状態の価値を表す。
【0134】
方策改善装置100は、累積報酬である累積発電量を効率よく最大化するように、フィードバック係数行列Fを更新することができる。また、方策改善装置100は、フィードバック係数行列Fの更新にかかる入力決定回数の低減化を図ることができる。このため、方策改善装置100は、制御対象110の累積発電量が最大化されるまでにかかる時間の低減化を図ることができ、発電機600の利益の増大化を図ることができる。また、方策改善装置100は、発電機600の状況の変化などが発生した場合も、その変化から比較的短い時間で、累積発電量を効率よく最大化することができる。
【0135】
図7の例では、制御対象110は、産業用ロボット700である。産業用ロボット700は、例えば、ロボットアームである。入力は、産業用ロボット700に対する指令値である。指令値は、例えば、産業用ロボット700のモータートルクなどである。状態は、産業用ロボット700に設けられたセンサ装置からのセンサデータであり、例えば、産業用ロボット700の撮影した画像、産業用ロボット700の関節位置や関節角度や関節角速度などである。即時報酬は、例えば、産業用ロボット700の単位時間ごとの組み立て数などである。目標は、産業用ロボット700の生産性の最大化である。状態価値関数は、例えば、産業用ロボット700の累積組み立て数についての状態の価値を表す。
【0136】
方策改善装置100は、累積報酬である累積組み立て数を効率よく最大化するように、フィードバック係数行列Fを更新することができる。また、方策改善装置100は、フィードバック係数行列Fの更新にかかる入力決定回数の低減化を図ることができる。このため、方策改善装置100は、制御対象110の累積組み立て数が最大化されるまでにかかる時間の低減化を図ることができ、産業用ロボット700の利益の増大化を図ることができる。また、方策改善装置100は、産業用ロボット700の状況の変化などが発生した場合も、その変化から比較的短い時間で、累積組み立て数を効率よく最大化することができる。
【0137】
また、制御対象110は、上述した具体例のシミュレータであってもよい。また、制御対象110は、風力発電以外の発電設備であってもよい。また、制御対象110は、例えば、化学プラントや自律移動ロボットなどであってもよい。また、制御対象110は、ゲームであってもよい。
【0138】
(強化学習処理手順の一例)
次に、
図8および
図9を用いて、強化学習処理手順の一例について説明する。
【0139】
図8は、バッチ処理形式の強化学習処理手順の一例を示すフローチャートである。
図8において、まず、方策改善装置100は、フィードバック係数行列Fを初期化し、状態x
0を観測し、入力u
0を決定する(ステップS801)。
【0140】
次に、方策改善装置100は、前回の入力ut-1に応じた、状態xtと、即時コストct-1とを観測し、入力ut=Fxtを算出する(ステップS802)。そして、方策改善装置100は、ステップS802をN回繰り返したか否かを判定する(ステップS803)。
【0141】
ここで、N回繰り返していない場合(ステップS803:No)、方策改善装置100は、ステップS802の処理に戻る。一方で、N回繰り返している場合(ステップS803:Yes)、方策改善装置100は、ステップS804の処理に移行する。
【0142】
ステップS804では、方策改善装置100は、状態xt,xt-1,・・・,xt-N-1と、即時コストct-1,ct-2,・・・,ct-N-2とに基づいて、状態価値関数の推定関数を算出する(ステップS804)。
【0143】
次に、方策改善装置100は、状態価値関数の推定関数に基づいて、フィードバック係数行列Fを更新する(ステップS805)。フィードバック係数行列Fを更新する一例については、具体的には、
図10を用いて後述する。そして、方策改善装置100は、ステップS802の処理に戻る。これにより、方策改善装置100は、制御対象110を制御することができる。
【0144】
図9は、逐次処理形式の強化学習処理手順の一例を示すフローチャートである。
図9において、まず、方策改善装置100は、フィードバック係数行列Fと状態価値関数の推定関数とを初期化し、状態x
0を観測し、入力u
0を決定する(ステップS901)。
【0145】
次に、方策改善装置100は、前回の入力ut-1に応じた、状態xtと、即時コストct-1とを観測し、入力ut=Fxtを算出する(ステップS902)。そして、方策改善装置100は、状態xt,xt-1と、即時コストct-1とに基づいて、状態価値関数の推定関数を更新する(ステップS903)。
【0146】
次に、方策改善装置100は、ステップS903をN回繰り返したか否かを判定する(ステップS904)。ここで、N回繰り返していない場合(ステップS904:No)、方策改善装置100は、ステップS902の処理に戻る。一方で、N回繰り返している場合(ステップS904:Yes)、方策改善装置100は、ステップS905の処理に移行する。
【0147】
ステップS905では、方策改善装置100は、状態価値関数の推定関数に基づいて、フィードバック係数行列Fを更新する(ステップS905)。フィードバック係数行列Fを更新する一例については、具体的には、
図10を用いて後述する。そして、方策改善装置100は、ステップS902の処理に戻る。これにより、方策改善装置100は、制御対象110を制御することができる。
【0148】
(方策改善処理手順の一例)
次に、
図10を用いて、ステップS805の具体例であって、方策改善装置100がフィードバック係数行列Fを更新し、方策を改善する方策改善処理手順の一例について説明する。ステップS905の具体例も、ステップS805の具体例と同様である。
【0149】
図10は、方策改善処理手順の一例を示すフローチャートである。
図10において、摂動行列Δ
tを生成する(ステップS1001)。そして、方策改善装置100は、コストc
t-1と状態x
tとを観測し、下記式(20)に基づいて、入力u
tを算出する(ステップS1002)。
【0150】
【0151】
次に、方策改善装置100は、ステップS1002をN’回繰り返したか否かを判定する(ステップS1003)。ここで、N’回繰り返していない場合(ステップS1003:No)、方策改善装置100は、ステップS1001の処理に戻る。一方で、N’回繰り返している場合(ステップS1003:Yes)、方策改善装置100は、ステップS1004の処理に移行する。
【0152】
ステップS1004では、方策改善装置100は、係数F
ijに関する状態価値関数の偏導関数の推定関数を、状態x
t,x
t-1,・・・,x
t-N'-1と即時コストc
t-1,c
t-2,・・・,c
t-N'-2と状態価値関数の推定関数とを用いて算出する(ステップS1004)。係数F
ijに関する状態価値関数の偏導関数の推定関数を算出する一例については、具体的には、
図11を用いて後述する。
【0153】
次に、方策改善装置100は、推定勾配関数行列を用いて、フィードバック係数行列Fを更新する(ステップS1005)。フィードバック係数行列Fを更新する一例については、具体的には、
図12を用いて後述する。そして、方策改善装置100は、方策改善処理を終了する。
【0154】
(推定処理手順の一例)
次に、
図11を用いて、ステップS1005の具体例であって、係数F
ijに関する状態価値関数の偏導関数の推定関数を算出する推定処理手順の一例について説明する。
【0155】
図11は、推定処理手順の一例を示すフローチャートである。
図11において、まず、方策改善装置100は、下記式(21)に基づいて、インデックスセットSを初期化する(ステップS1101)。
【0156】
【0157】
(i,j)は、行列の成分を特定するインデックスである。インデックス(i,j)は、例えば、行列のi行j列の成分を特定する。以下の説明では、mは、フィードバック係数行列Fの行数である。nは、フィードバック係数行列Fの列数である。
【0158】
次に、方策改善装置100は、下記式(22)に基づいて、TD誤差δt-1,・・・,δt-N'-2を算出する(ステップS1102)。
【0159】
【0160】
そして、方策改善装置100は、インデックスセットSから、インデックス(i,j)を取り出す(ステップS1103)。
【0161】
次に、方策改善装置100は、下記式(23)に基づいて、TD誤差δt-1,・・・,δt-N'-2を、それぞれ、摂動εΔij:t-1,・・・,εΔij:t-N'-2で除算した結果を取得する(ステップS1104)。
【0162】
【0163】
次に、方策改善装置100は、一括最小二乗法に基づいて、下記式(24)によって、ベクトルθFij
Fの推定ベクトルを算出する(ステップS1105)。
【0164】
【0165】
Tは、転置を示す。○と×を重ねた記号は、クロネッカー積を示す。†は、ムーア-ペンローズ(Moore-Penrose)の一般化逆行列を示す。
【0166】
上記式(24)は、上記式(23)に対応するベクトルと、状態に依存しないベクトルθFij
Fおよび下記式(25)で規定される状態に依存する行列の積との近似等式を形成し、その近似等式に一括最小二乗法を適用することにより得られる。
【0167】
【0168】
ここで、状態に依存しないベクトルθFij
Fの推定ベクトルおよび上記式(25)で規定される状態に依存する行列の積は、状態価値関数をフィードバック係数行列Fの(i,j)成分で微分した結果に対応する。
【0169】
次に、方策改善装置100は、下記式(26)に基づいて、ベクトルθFij
Fの推定ベクトルを用いて、行列∂PF/∂Fijの推定行列を生成する(ステップS1106)。
【0170】
【0171】
vec-1は、ベクトルを行列に逆変換する記号である。
【0172】
次に、方策改善装置100は、下記式(27)に基づいて、状態価値関数をFijによって偏微分した偏導関数∂ν/∂Fijの推定関数を算出する(ステップS1107)。
【0173】
【0174】
そして、方策改善装置100は、インデックスセットSが空であるか否かを判定する(ステップS1108)。ここで、空ではない場合(ステップS1108:No)、方策改善装置100は、ステップS1103の処理に戻る。一方で、空である場合(ステップS1108:Yes)、方策改善装置100は、推定処理を終了する。
【0175】
(更新処理手順の一例)
次に、
図12を用いて、ステップS1005の具体例であって、方策改善装置100がフィードバック係数行列Fを更新する更新処理手順の一例について説明する。
【0176】
図12は、更新処理手順の一例を示すフローチャートである。
図12において、まず、方策改善装置100は、下記式(28)に基づいて、偏導関数∂ν/∂F
ijの推定関数を用いて、フィードバック係数行列の勾配関数行列▽
Fν(x:F)を推定した推定勾配関数行列を生成する(ステップS1201)。
【0177】
【0178】
次に、方策改善装置100は、下記式(29)に基づいて、フィードバック係数行列Fを更新する(ステップS1202)。
【0179】
【0180】
αは、重みである。そして、方策改善装置100は、更新処理を終了する。これにより、方策改善装置100は、状態価値関数を改善し、累積コストや累積報酬が効率よく最適化されるように、フィードバック係数行列Fを更新することができる。また、方策改善装置100は、任意のxが代入可能な推定勾配関数行列を生成することができる。
【0181】
ここでは、方策改善装置100が、即時コストに基づく強化学習を実現する場合について説明したが、これに限らない。例えば、方策改善装置100が、即時報酬に基づく強化学習を実現する場合があってもよい。この場合、方策改善装置100は、上記式(29)に代わり、下記式(30)を用いるようにする。
【0182】
【0183】
ここでは、方策改善装置100が、フィードバック係数行列Fのすべての成分に対して摂動を加える場合について説明したが、これに限らない。例えば、方策改善装置100が、フィードバック係数行列Fの成分をグループ分けし、グループごとに複数の成分に対して摂動を加える場合があってもよい。グループは、例えば、行単位の成分のグループまたは列単位の成分のグループなどである。グループは、例えば、上三角部分や下三角部分の成分のグループなどであってもよい。この場合も、摂動は、同様に、上述した第1の性質および第2の性質に基づいて決定される。この場合、方策改善装置100は、グループごとに、
図11に示した処理を実行することにより、状態価値関数をF
ijによって偏微分した偏導関数∂ν/∂F
ijの推定関数を算出する。
【0184】
以上説明したように、方策改善装置100によれば、方策を与える第1のパラメータの複数の成分に対して摂動を加えることができる。方策改善装置100によれば、複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、制御対象110に対する入力決定を行った結果に基づいて、第1のパラメータに関する状態価値関数の勾配関数を推定することができる。方策改善装置100によれば、推定した勾配関数を用いて、第1のパラメータを更新することができる。これにより、方策改善装置100は、フィードバック係数行列の更新にかかる入力決定回数の低減化を図ることができ、入力決定に応じて所定時間待機して即時コストまたは即時報酬を観測する処理回数の低減化も図ることができる。このため、方策改善装置100は、処理負担および処理時間の低減化を図ることができる。
【0185】
方策改善装置100によれば、第1のパラメータのすべての成分に対して摂動を加えることができる。これにより、方策改善装置100は、フィードバック係数行列の更新にかかる入力決定回数をさらに低減することができる。
【0186】
方策改善装置100によれば、複数の成分のそれぞれの成分に対して加えられる摂動を、互いに独立に決定し、かつ、等確率で絶対値が等しい正値と負値とのいずれかに決定することができる。これにより、方策改善装置100は、フィードバック係数行列を精度よく更新することができる。
【0187】
方策改善装置100によれば、第1のパラメータの複数の成分に対して摂動を加え、複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、制御対象110に対する入力決定を行うことを複数回繰り返すことができる。方策改善装置100によれば、複数回のそれぞれの回に応じて得られた制御対象110に対する入力決定を行った結果に基づいて、勾配関数を推定することができる。これにより、方策改善装置100は、フィードバック係数行列を精度よく更新することができる。
【0188】
方策改善装置100によれば、それぞれの回に応じて得られた制御対象110に対する入力決定を行った結果に基づいて、それぞれの回に対応するTD誤差を算出することができる。方策改善装置100によれば、第1のパラメータのそれぞれの成分について、それぞれの回に対応するTD誤差を、当該回において当該成分に加えた摂動で除算することができる。方策改善装置100によれば、除算した結果と、状態価値関数をそれぞれの成分で微分した結果とを対応付けて、勾配関数を推定することができる。これにより、方策改善装置100は、状態を代入可能な形式で、推定勾配関数行列を生成することができる。
【0189】
方策改善装置100によれば、制御対象110として、空調設備を設定することができる。これにより、方策改善装置100は、空調設備を制御することができる。
【0190】
方策改善装置100によれば、制御対象110として、発電設備を設定することができる。これにより、方策改善装置100は、発電設備を制御することができる。
【0191】
方策改善装置100によれば、制御対象110として、産業用ロボットを設定することができる。これにより、方策改善装置100は、産業用ロボットを制御することができる。
【0192】
なお、本実施の形態で説明した方策改善方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した方策改善プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した方策改善プログラムは、インターネット等のネットワークを介して配布してもよい。
【0193】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0194】
(付記1)状態価値関数による強化学習の方策を改善する方策改善方法であって、
前記方策を与える第1のパラメータの複数の成分に対して摂動を加え、
前記複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、前記強化学習における制御対象に対する入力決定を行った結果に基づいて、前記第1のパラメータに関する前記状態価値関数の勾配関数を推定し、
推定した前記勾配関数を用いて、前記第1のパラメータを更新する、
処理をコンピュータが実行することを特徴とする方策改善方法。
【0195】
(付記2)前記加える処理は、
前記第1のパラメータのすべての成分に対して摂動を加える、ことを特徴とする付記1に記載の方策改善方法。
【0196】
(付記3)前記複数の成分のそれぞれの成分に対して加えられる摂動は、互いに独立に決定され、かつ、等確率で絶対値が等しい正値と負値とのいずれかに決定される、ことを特徴とする付記1または2に記載の方策改善方法。
【0197】
(付記4)前記加える処理は、
前記第1のパラメータの複数の成分に対して摂動を加え、前記複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、前記制御対象に対する入力決定を行うことを複数回繰り返し、
前記推定する処理は、
前記複数回のそれぞれの回に応じて得られた前記制御対象に対する入力決定を行った結果に基づいて、前記勾配関数を推定する、ことを特徴とする付記1~3のいずれか一つに記載の方策改善方法。
【0198】
(付記5)前記推定する処理は、
前記それぞれの回に応じて得られた前記制御対象に対する入力決定を行った結果に基づいて、前記それぞれの回に対応するTD誤差を算出し、
前記第1のパラメータのそれぞれの成分について、前記それぞれの回に対応するTD誤差を、当該回において当該成分に加えた摂動で除算し、
除算した結果と、前記状態価値関数を前記それぞれの成分で微分した結果とを対応付けて、前記勾配関数を推定する、ことを特徴とする付記4に記載の方策改善方法。
【0199】
(付記6)前記制御対象は、空調設備であり、
前記強化学習は、前記空調設備の設定温度と前記空調設備の設定風量との少なくともいずれかを入力とし、前記空調設備がある部屋の内部の温度と前記空調設備がある部屋の外部の温度と気候との少なくともいずれかを状態とし、前記空調設備の消費電力量をコストとする、ことを特徴とする付記1~5のいずれか一つに記載の方策改善方法。
【0200】
(付記7)前記制御対象は、発電設備であり、
前記強化学習は、前記発電設備の発電機トルクを入力とし、前記発電設備の発電量と前記発電設備のタービンの回転量と前記発電設備のタービンの回転速度と前記発電設備に対する風向と前記発電設備に対する風速との少なくともいずれかを状態とし、前記発電設備の発電量を報酬とする、ことを特徴とする付記1~5のいずれか一つに記載の方策改善方法。
【0201】
(付記8)前記制御対象は、産業用ロボットであり、
前記強化学習は、前記産業用ロボットのモータートルクを入力とし、前記産業用ロボットの撮影した画像と前記産業用ロボットの関節位置と前記産業用ロボットの関節角度と前記産業用ロボットの関節角速度との少なくともいずれかを状態とし、前記産業用ロボットの生産量を報酬とする、ことを特徴とする付記1~5のいずれか一つに記載の方策改善方法。
【0202】
(付記9)前記制御対象の状態変化は、線形な差分方程式で規定され、かつ、前記制御対象の即時コストまたは即時報酬は、状態および入力の2次形式で規定される、ことを特徴とする付記1~8のいずれか一つに記載の方策改善方法。
【0203】
(付記10)状態価値関数による強化学習の方策を改善する方策改善プログラムであって、
前記方策を与える第1のパラメータの複数の成分に対して摂動を加え、
前記複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、前記強化学習における制御対象に対する入力決定を行った結果に基づいて、前記第1のパラメータに関する前記状態価値関数の勾配関数を推定し、
推定した前記勾配関数を用いて、前記第1のパラメータを更新する、
処理をコンピュータに実行させることを特徴とする方策改善プログラム。
【0204】
(付記11)状態価値関数による強化学習の方策を改善する方策改善装置であって、
前記方策を与える第1のパラメータの複数の成分に対して摂動を加え、
前記複数の成分に対して摂動を加えて得られた第2のパラメータを用いた方策により、前記強化学習における制御対象に対する入力決定を行った結果に基づいて、前記第1のパラメータに関する前記状態価値関数の勾配関数を推定し、
推定した前記勾配関数を用いて、前記第1のパラメータを更新する、
制御部を有することを特徴とする方策改善装置。
【符号の説明】
【0205】
100 方策改善装置
110 制御対象
200 バス
201 CPU
202 メモリ
203 ネットワークI/F
204 記録媒体I/F
205 記録媒体
210 ネットワーク
300 記憶部
301 観測部
302 推定部
303 決定部
304 出力部
500 サーバルーム
501 サーバ
502 冷却器
600 発電機
700 産業用ロボット