(57)【要約】【課題】強化学習において行動を連続量として扱うこと。【解決手段】強化学習装置１００は、状態および行動に関する入力値、および、当該入力値に対応する利得を取得する。強化学習装置１００は、取得した入力値および利得に基づいて、行動を表す変数についての多項式、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる状態行動価値関数の係数を推定する。強化学習装置１００は、限量子消去を用いて、係数が推定された状態行動価値関数の最適行動、または、最適値を求める。【選択図】図１
2020091757.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
状態および行動に関する入力値、および、当該入力値に対応する利得を取得し、
取得した前記入力値および前記利得に基づいて、行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる状態行動価値関数の係数を推定し、
限量子消去を用いて、前記係数が推定された前記状態行動価値関数の最適行動、または、最適値を求める、
処理を実行させることを特徴とする強化学習プログラム。
【請求項２】
前記推定する処理は、
取得した前記入力値および前記利得に基づいて、限量子消去を用いて、前記状態行動価値関数の係数を推定する、ことを特徴とする請求項１に記載の強化学習プログラム。
【請求項３】
前記求める処理は、
限量子消去を用いて、制約条件を適用した、前記係数が推定された前記状態行動価値関数の最適行動、または、最適値を求める、ことを特徴とする請求項１または２に記載の強化学習プログラム。
【請求項４】
前記求める処理は、
限量子消去を用いて、所定の係数を用いた前記状態行動価値関数の最適行動、または、最適値を求める、ことを特徴とする請求項１〜３のいずれか一つに記載の強化学習プログラム。
【請求項５】
コンピュータが、
状態および行動に関する入力値、および、当該入力値に対応する利得を取得し、
取得した前記入力値および前記利得に基づいて、行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる状態行動価値関数の係数を推定し、
限量子消去を用いて、前記係数が推定された前記状態行動価値関数の最適行動、または、最適値を求める、
処理を実行することを特徴とする強化学習方法。
【請求項６】
状態および行動に関する入力値、および、当該入力値に対応する利得を取得し、
取得した前記入力値および前記利得に基づいて、行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる状態行動価値関数の係数を推定し、
限量子消去を用いて、前記係数が推定された前記状態行動価値関数の最適行動、または、最適値を求める、
制御部を有することを特徴とする強化学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、強化学習プログラム、強化学習方法、および強化学習装置に関する。
【背景技術】
【０００２】
従来、制御対象に対する行動に応じた制御対象の利得に基づき制御対象の累積利得を示す価値関数を改善し、改善した価値関数に基づき累積利得が最適化されるように次の行動を決定する強化学習の技術がある。利得は、例えば、報酬である。価値関数は、例えば、状態行動価値関数（Ｑ関数）である。強化学習では、行動は離散量として扱われることがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−４７８６９号公報
【特許文献２】特開２０１４−５９８０４号公報
【特許文献３】特開２０１４−２１１６６７号公報
【特許文献４】特開２０１５−１２５１９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
強化学習において行動を離散量として扱うと、行動を細かく調整して制御対象を効率よく制御することが難しくなることがあり、価値関数を基本とする強化学習において行動を連続量として扱うことが求められる場合がある。しかしながら、従来技術では、強化学習において行動を連続量として扱うことが難しい。例えば、状態行動価値関数を改善したり、次の行動を決定したりする際には、状態行動価値関数に基づく最適化問題を解くことになるが、行動を連続量として扱うと、最適化問題を解くことが難しい。
【０００５】
１つの側面では、本発明は、強化学習において行動を連続量として扱うことができる強化学習プログラム、強化学習方法、および強化学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの実施態様によれば、状態および行動に関する入力値、および、当該入力値に対応する利得を取得し、取得した前記入力値および前記利得に基づいて、行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる状態行動価値関数の係数を推定し、限量子消去を用いて、前記係数が推定された前記状態行動価値関数の最適行動、または、最適値を求める強化学習プログラム、強化学習方法、および強化学習装置が提案される。
【発明の効果】
【０００７】
一態様によれば、強化学習において行動を連続量として扱うことが可能になる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかる強化学習方法の一実施例を示す説明図である。
【図２】図２は、強化学習装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、係数配列Ｗの記憶内容の一例を示す説明図である。
【図４】図４は、履歴テーブル４００の記憶内容の一例を示す説明図である。
【図５】図５は、強化学習装置１００の機能的構成例を示すブロック図である。
【図６】図６は、実施例における強化学習の流れを示す説明図（その１）である。
【図７】図７は、実施例における強化学習の流れを示す説明図（その２）である。
【図８】図８は、制御対象１１０の具体例を示す説明図（その１）である。
【図９】図９は、制御対象１１０の具体例を示す説明図（その２）である。
【図１０】図１０は、制御対象１１０の具体例を示す説明図（その３）である。
【図１１】図１１は、強化学習処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して、本発明にかかる強化学習プログラム、強化学習方法、および強化学習装置の実施の形態を詳細に説明する。
【００１０】
（実施の形態にかかる強化学習方法の一実施例）
図１は、実施の形態にかかる強化学習方法の一実施例を示す説明図である。強化学習装置１００は、強化学習によって、制御対象１１０に対する行動を決定することにより、制御対象１１０を制御するコンピュータである。強化学習装置１００は、例えば、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。
【００１１】
制御対象１１０は、何らかの事象であり、例えば、現実に存在する物理系である。制御対象１１０は、具体的には、自動車、自律移動ロボット、サーバルーム、または発電機などである。行動（ａｃｔｉｏｎ）は、制御対象１１０に対する操作である。行動は、入力（ｉｎｐｕｔ）とも呼ばれる。制御対象１１０に対する行動に応じて、制御対象１１０の状態（ｓｔａｔｅ）が変化し、制御対象１１０の状態が観測可能である。
【００１２】
強化学習は、制御対象１１０の累積利得などを示す価値関数を改善し、改善した価値関数に基づき累積利得が最適化されるように次の行動を決定する技術である。利得は、例えば、報酬である。また、利得は、例えば、コストにマイナスをかけた値であり、報酬として扱うことが可能な値であってもよい。最適化は、例えば、最大化に対応する。ここで、強化学習において行動は離散量として扱われることがある。行動を離散量として扱う技術は、例えば、下記参考文献１〜４を参照することができる。
【００１３】
参考文献１：Ｗａｔｋｉｎｓ，  Ｃｈｒｉｓｔｏｐｈｅｒ  Ｊｏｈｎ  Ｃｏｒｎｉｓｈ  Ｈｅｌｌａｂｙ．  “Ｌｅａｒｎｉｎｇ  ｆｒｏｍ  ｄｅｌａｙｅｄ  ｒｅｗａｒｄｓ．”  Ｄｉｓｓ．  Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｃａｍｂｒｉｄｇｅ，  １９８９．
【００１４】
参考文献２：Ｌｉｎ，  Ｃ−Ｓ．，  ａｎｄ  Ｈｙｏｎｇｓｕｋ  Ｋｉｍ．  “ＣＭＡＣ−ｂａｓｅｄ  ａｄａｐｔｉｖｅ  ｃｒｉｔｉｃ  ｓｅｌｆ−ｌｅａｒｎｉｎｇ  ｃｏｎｔｒｏｌ．”  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ  ２．５  （１９９１）：  ５３０−５３３．
【００１５】
参考文献３：Ｔｈａｍ，  Ｃｈｅｎ  Ｋ．  “Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ  ｏｆ  ｍｕｌｔｉｐｌｅ  ｔａｓｋｓ  ｕｓｉｎｇ  ａ  ｈｉｅｒａｒｃｈｉｃａｌ  ＣＭＡＣ  ａｒｃｈｉｔｅｃｔｕｒｅ．”  Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｎｏｍｏｕｓ  Ｓｙｓｔｅｍｓ  １５．４  （１９９５）：  ２４７−２７４．
【００１６】
参考文献４：Ｓｕｔｔｏｎ，  Ｒｉｃｈａｒｄ  Ｓ．  “Ｇｅｎｅｒａｌｉｚａｔｉｏｎ  ｉｎ  ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ：  Ｓｕｃｃｅｓｓｆｕｌ  ｅｘａｍｐｌｅｓ  ｕｓｉｎｇ  ｓｐａｒｓｅ  ｃｏａｒｓｅ  ｃｏｄｉｎｇ．”  Ａｄｖａｎｃｅｓ  ｉｎ  ｎｅｕｒａｌ  ｉｎｆｏｒｍａｔｉｏｎ  ｐｒｏｃｅｓｓｉｎｇ  ｓｙｓｔｅｍｓ  （１９９６）：  １０３８−１０４４．
【００１７】
しかしながら、強化学習において行動を離散量として扱うと、行動を細かく調整して制御対象１１０を効率よく制御することが難しくなってしまう場合がある。また、行動を離散化する際、離散化の単位をどのような大きさにすればよいかを決定することが難しく、制御対象１１０を効率よく制御することが難しくなってしまう場合もある。
【００１８】
例えば、自律移動ロボットを制御対象１１０とし、自律移動ロボットに対する移動方向の指定値を自律移動ロボットに対する行動とする場合、自律移動ロボットに対する移動方向の指定値が離散化され、移動方向の指定値が前後左右４方向に限定されることがある。この場合、自律移動ロボットは、水平方向３６０度いずれの方向にも移動可能な仕組みを有していても、前後左右４方向いずれかの方向にしか移動しなくなるため、効率よく移動することが難しくなり、危険を回避することが難しくなる。
【００１９】
これに対し、離散化の単位を小さくし、行動を細かく離散化することにより、行動を細かく調整可能にすることが考えられる。しかしながら、行動を細かく離散化すると、強化学習において、価値関数を改善する際にかかる時間、および、次の行動を決定する際にかかる時間などの増大化を招いてしまう。一方で、離散化の単位が大きすぎる場合には、制御対象１１０の制御において十分な性能が得られないことがある。
【００２０】
例えば、Ｑ学習やＳＡＲＳＡなどの強化学習において、行動を決定する際に、価値関数の最適となる行動を求める最適化問題を解くことになる。例えば、Ｑ学習などの強化学習において、価値関数を改善する際に、価値関数の最適値を求める最適化問題を解くことになる。ここで、行動を細かく離散化した場合、離散化した行動のそれぞれを用いて価値関数の値を網羅的に算出し、価値関数の最適値を求めることになり、離散化した行動の数が増加するほど、価値関数を改善する際にかかる時間の増大化を招いてしまう。
【００２１】
このように、強化学習において行動を離散量として扱うと、行動を細かく調整して制御対象１１０を効率よく制御することが難しくなってしまう場合があるため、強化学習において行動を連続量として扱うことが求められる。しかしながら、強化学習において行動を連続量として扱うことが難しい。
【００２２】
例えば、価値関数を改善したり、次の行動を決定したりする際には、価値関数に基づく最適化問題を解くことになるが、行動を連続量として扱うと、最適化問題を解くことが難しい。具体的には、連続的な行動のすべてを用いて価値関数の値を網羅的に算出し、価値関数の最適値を求めることは難しいため、最適化問題を解くことが難しい。
【００２３】
また、強化学習において、制御対象１１０の性質を精度よく考慮するために、価値関数を改善する際、および、次の行動を決定する際などに、制約条件を使用可能にすることが望まれることがある。制約条件は、例えば、行動として採用可能である範囲を規定する条件である。
【００２４】
そこで、本実施の形態では、価値関数を、行動を表す変数を用いた多項式により表現し、実閉体上の限量子消去を用いることにより、行動を連続量として扱うことができ、制約条件を用いることができるようにする強化学習方法について説明する。以下の説明では、実閉体上の限量子消去を、単に、限量子消去と表記する。
【００２５】
限量子消去は、ＱＥ（Ｑｕａｎｔｉｆｉｅｒ  Ｅｌｉｍｉｎａｔｉｏｎ）とも呼ばれる。以下の説明では、限量子消去を「ＱＥ」と表記する場合がある。限量子消去は、限量子を用いて記述された論理式を、限量子を用いない等価な論理式に変換することである。限量子は、全称限量子（∀）と存在限量子（∃）とである。全称限量子（∀）は、すべての実数が対象であると修飾する記号である。存在限量子（∃）は、対象となる実数が少なくとも１つ以上存在すると修飾する記号である。
【００２６】
図１において、強化学習装置１００は、状態および行動に関する入力値、および、当該入力値に対応する利得を取得する。強化学習装置１００は、例えば、所定時間ごとに制御対象１１０の状態を観測し、状態の入力値として取得して記憶する。強化学習装置１００は、所定時間ごとの制御対象１１０に対する行動を、行動の入力値として取得して記憶する。強化学習装置１００は、制御対象１１０に対する行動ごとに、行動から所定時間後の制御対象１１０における利得を取得する。入力値、および、利得を取得する具体例は、例えば、実施例に後述する。
【００２７】
強化学習装置１００は、取得した入力値および利得に基づいて、状態行動価値関数の係数を推定する。状態行動価値関数は、例えば、行動を表す変数についての多項式、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる関数である。係数は、多項式にかけられ、行動を表す変数または状態を表す変数にかけられる。係数は、強化学習により学習される。強化学習装置１００は、例えば、取得した入力値および利得としては、所定のタイミングまでに取得した状態および行動に関する入力値、および、当該入力値に対応する利得を用いる。状態行動価値関数の係数を推定する具体例は、例えば、実施例に後述する。
【００２８】
強化学習装置１００は、ＱＥを用いて、係数が推定された状態行動価値関数の最適行動、または、最適値を求める。強化学習装置１００は、例えば、ＱＥを用いて、状態行動価値関数を含む論理式を、行動を表す変数を含まない論理式に変形し、状態行動価値関数の最適行動、または、最適値を求める。最適行動、または、最適値を求める具体例は、例えば、実施例に後述する。
【００２９】
これにより、強化学習装置１００は、強化学習において、行動を連続量として扱うことができ、行動を細かく調整して制御対象１１０を効率よく制御することができる。また、強化学習装置１００は、連続的な行動のすべてを用いて状態行動価値関数の値を網羅的に算出しなくても状態行動価値関数の最適値を求めることができるため、強化学習にかかる時間の増大化を抑制することができる。強化学習装置１００は、例えば、状態行動価値関数を改善する際、および、次の行動を決定する際などにかかる時間の増大化を抑制することができる。
【００３０】
また、状態行動価値関数を含む論理式は、さらに制約条件を含んでもよい。これにより、強化学習装置１００は、強化学習において制約条件を使用可能にすることができ、制御対象１１０の性質を精度よく考慮して制御対象１１０を制御可能にすることができる。このため、強化学習装置１００は、様々な種類の制御対象１１０に強化学習を適用可能にし、強化学習の利便性の向上を図ることができる。制約条件を使用可能にする具体例は、例えば、実施例に後述する。
【００３１】
（強化学習装置１００のハードウェア構成例）
次に、図２を用いて、強化学習装置１００のハードウェア構成例について説明する。
【００３２】
図２は、強化学習装置１００のハードウェア構成例を示すブロック図である。図２において、強化学習装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００３３】
ここで、ＣＰＵ２０１は、強化学習装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。
【００３４】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００３５】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、強化学習装置１００から着脱可能であってもよい。
【００３６】
強化学習装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、スピーカー、マイク、プリンタ、スキャナなどを有してもよい。また、強化学習装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００３７】
（係数配列Ｗの記憶内容）
次に、図３を用いて、係数配列Ｗの記憶内容について説明する。係数配列Ｗは、例えば、図２に示した強化学習装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００３８】
図３は、係数配列Ｗの記憶内容の一例を示す説明図である。図３に示すように、係数配列Ｗは、係数のフィールドを有する。係数配列Ｗは、係数ごとに各フィールドに情報を設定することにより、係数情報が記憶される。
【００３９】
係数のフィールドには、状態行動価値関数を規定する係数が設定される。
【００４０】
（履歴テーブル４００の記憶内容）
次に、図４を用いて、履歴テーブル４００の記憶内容について説明する。履歴テーブル４００は、例えば、図２に示した強化学習装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００４１】
図４は、履歴テーブル４００の記憶内容の一例を示す説明図である。図４に示すように、履歴テーブル４００は、時点のフィールドに対応付けて、状態と、行動と、利得とのフィールドを有する。履歴テーブル４００は、時点ごとに各フィールドに情報を設定することにより、特徴量情報が記憶される。
【００４２】
時点のフィールドには、所定時間ごとの時点が設定される。状態のフィールドには、時点における制御対象１１０の状態が設定される。行動のフィールドには、時点における制御対象１１０に対する行動が設定される。利得のフィールドには、時点における制御対象１１０に対する行動に対応する利得が設定される。
【００４３】
（強化学習装置１００の機能的構成例）
次に、図５を用いて、強化学習装置１００の機能的構成例について説明する。
【００４４】
図５は、強化学習装置１００の機能的構成例を示すブロック図である。強化学習装置１００は、記憶部５００と、設定部５０１と、状態取得部５０２と、行動決定部５０３と、利得取得部５０４と、更新部５０５と、出力部５０６とを含む。
【００４５】
記憶部５００は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域によって実現される。設定部５０１〜出力部５０６は、制御部となる機能である。設定部５０１〜出力部５０６は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００４６】
記憶部５００は、制御対象１１０の行動と、状態と、利得とを蓄積する。記憶部５００は、例えば、制御対象１１０の行動と、状態と、利得とを、履歴テーブル４００を用いて記憶する。これにより、記憶部５００は、制御対象１１０の行動と、状態と、利得とを、各処理部に参照させることができる。
【００４７】
記憶部５００は、状態行動価値関数を記憶する。状態行動価値関数は、例えば、行動を表す変数についての多項式、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる。行動を表す変数についての多項式は、非線形であってもよい。行動を表す変数についての多項式は、例えば、行動を表す変数の二乗を含んでもよい。記憶部５００は、例えば、状態行動価値関数の係数を記憶する。係数は、多項式にかけられ、行動を表す変数または状態を表す変数にかけられる。係数は、強化学習により学習される。係数は、具体的には、後述するｗiである。これにより、記憶部５００は、状態行動価値関数を各処理部に参照させることができる。
【００４８】
設定部５０１は、各処理部が用いる変数などを初期化する。設定部５０１は、例えば、利用者の操作入力に基づいて、状態行動価値関数の係数を初期化する。設定部５０１は、例えば、利用者の操作入力に基づいて、制約条件を設定する。設定部５０１の動作例は、例えば、実施例に後述する。これにより、設定部５０１は、まだ更新部５０５が状態行動価値関数の係数を推定していない時点において、状態行動価値関数を使用可能にすることができる。また、設定部５０１は、制約条件を、各処理部に参照させることができる。
【００４９】
状態取得部５０２は、状態に関する入力値を取得する。強化学習装置１００は、例えば、所定時間ごとに制御対象１１０の状態を示す値を観測し、状態に関する入力値として取得し、観測した時点に対応付けて記憶部５００に記憶する。状態取得部５０２の動作例は、例えば、実施例に後述する。これにより、状態取得部５０２は、行動決定部５０３や更新部５０５に、状態に関する入力値を参照させることができる。
【００５０】
行動決定部５０３は、限量子消去を用いて、状態行動価値関数の最適行動、または、最適値を求め、制御対象１１０に対する今回の行動を決定する。最適値は、例えば、最大値である。最適行動は、状態行動価値関数を最適値にする行動である。
【００５１】
行動決定部５０３は、例えば、限量子消去を用いて、設定部５０１が初期化した係数、または、更新部５０５が推定した係数を用いた状態行動価値関数の最適行動、または、最適値を求める。行動決定部５０３は、具体的には、所定のタイミングまでに取得した、状態に関する入力値、行動に関する入力値、および、当該入力値に対応する利得に基づいて、状態行動価値関数の係数を推定する。
【００５２】
行動決定部５０３は、より具体的には、取得した状態に関する入力値、および、行動に関する入力値に基づいて、状態行動価値関数を含む論理式に対して限量子消去を用いて、状態行動価値関数の値が取りうる範囲を特定する。次に、行動決定部５０３は、特定した範囲を含む論理式に対して限量子消去を用いて、状態行動価値関数の最適値を求める。そして、行動決定部５０３は、求めた最適値を含む論理式に対して限量子消去を用いて、状態行動価値関数の最適行動を求める。その後、行動決定部５０３は、求めた最適行動、または、求めた最適行動にノイズを加えた行動を、制御対象１１０に対する今回の行動に決定する。これにより、行動決定部５０３は、制御対象１１０に対して好ましい行動を決定し、制御対象１１０を効率よく制御可能にすることができる。
【００５３】
また、行動決定部５０３は、限量子消去を用いて、制約条件を適用した、更新部５０５が推定した係数を用いた状態行動価値関数の最適行動、または、最適値を求めてもよい。これにより、行動決定部５０３は、制約条件を満たす、制御対象１１０に対して好ましい行動を決定し、制御対象１１０を効率よく制御可能にすることができる。
【００５４】
行動決定部５０３は、行動に関する入力値を記憶部５００に記憶する。行動決定部５０３は、例えば、決定した今回の行動を示す値を、行動に関する入力値として記憶部５００に記憶する。行動決定部５０３の動作例は、例えば、実施例に後述する。これにより、行動決定部５０３は、制御対象１１０に対する次回の行動を決定する際に、制御対象１１０に対する今回の行動を参照可能にすることができる。
【００５５】
利得取得部５０４は、行動に関する入力値に対応する利得を取得する。利得は、例えば、利得である。利得取得部５０４は、制御対象１１０に対する行動が行われる都度、行動が行われてから所定時間後の制御対象１１０における利得を取得する。利得取得部５０４の動作例は、例えば、実施例に後述する。これにより、利得取得部５０４は、利得を、更新部５０５に参照させることができる。
【００５６】
更新部５０５は、取得した状態に関する入力値、行動に関する入力値、および利得に基づいて、状態行動価値関数の係数を推定する。更新部５０５は、状態行動価値関数の係数を推定する数式に最適化問題が含まれない場合、ＱＥを用いずに状態行動価値関数の係数を推定する。最適化問題が含まれない数式は、例えば、ＳＡＲＳＡを参照することができる。これにより、更新部５０５は、状態行動価値関数の係数を推定し、状態行動価値関数を改善することができる。
【００５７】
更新部５０５は、取得した状態に関する入力値、行動に関する入力値、および利得に基づいて、ＱＥを用いて、状態行動価値関数の係数を推定する。更新部５０５は、状態行動価値関数の係数を推定する数式に最適化問題が含まれる場合、ＱＥを用いて状態行動価値関数の係数を推定する。
【００５８】
更新部５０５は、具体的には、取得した状態に関する入力値、行動に関する入力値に基づいて、状態行動価値関数を含む論理式に対してＱＥを用いて、状態行動価値関数の値が取りうる範囲を特定する。次に、更新部５０５は、特定した範囲を含む論理式に対してＱＥを用いて、状態行動価値関数の最適値を求める。そして、更新部５０５は、取得した状態に関する入力値、行動に関する入力値、および利得に基づいて、求めた最適値を用いて状態行動価値関数の係数を推定する。更新部５０５の動作例は、例えば、実施例に後述する。これにより、更新部５０５は、状態行動価値関数の係数を推定し、状態行動価値関数を改善することができる。
【００５９】
出力部５０６は、行動決定部５０３が決定した行動を制御対象１１０に対して出力する。これにより、出力部５０６は、制御対象１１０を制御することができる。出力部５０６は、各処理部の処理結果を出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ２０３による外部装置への送信、または、メモリ２０２や記録媒体２０５などの記憶領域への記憶である。
【００６０】
（実施例における強化学習の流れ）
次に、図６および図７を用いて、実施例における強化学習の流れについて説明する。
【００６１】
図６および図７は、実施例における強化学習の流れを示す説明図である。図６の例では、強化学習装置１００が、状態行動価値関数を最大化するように、制御対象１１０を制御する場合について説明する。この場合、強化学習装置１００は、表６００に示すように、左側の論理式が入力されると右側の論理式を出力するようなＱＥを用いて、状態行動価値関数の最適値や最適行動を求めることにより、制御対象１１０を制御する。
【００６２】
ＱＥは、限量子を用いて記述された論理式を、限量子を用いない等価な論理式に変換することである。限量子は、全称限量子（∀）と存在限量子（∃）とである。全称限量子（∀）は、すべての実数が対象であると修飾する記号である。存在限量子（∃）は、対象の実数が１つ以上存在すると修飾する記号である。ＱＥは、例えば、下記参考文献５〜７を参照することができる。
【００６３】
参考文献５：Ｂａｓｕ，  Ｓａｕｇａｔａ，  Ｒｉｃｈａｒｄ  Ｐｏｌｌａｃｋ，  ａｎｄ  Ｍａｒｉｅ−Ｆｒａｎｃｏｉｓｅ  Ｒｏｙ．  “Ａｌｇｏｒｉｔｈｍｓ  ｉｎ  ｒｅａｌ  ａｌｇｅｂｒａｉｃ  ｇｅｏｍｅｔｒｙ．”  Ｖｏｌ．  ２００３３．  Ｓｐｒｉｎｇｅｒ，  １９９６．
【００６４】
参考文献６：Ｃａｖｉｎｅｓｓ，  Ｂｏｂ  Ｆ．，  ａｎｄ  Ｊｅｒｅｍｙ  Ｒ．  Ｊｏｈｎｓｏｎ，  ｅｄｓ．  “Ｑｕａｎｔｉｆｉｅｒ  ｅｌｉｍｉｎａｔｉｏｎ  ａｎｄ  ｃｙｌｉｎｄｒｉｃａｌ  ａｌｇｅｂｒａｉｃ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ．”  Ｓｐｒｉｎｇｅｒ  Ｓｃｉｅｎｃｅ  ＆  Ｂｕｓｉｎｅｓｓ  Ｍｅｄｉａ，  ２０１２．
【００６５】
参考文献７：Ｈｉｔｏｓｈｉ  Ｙａｎａｍｉ，  “Ｍｕｌｔｉ−ｏｂｊｅｃｔｉｖｅ  ｄｅｓｉｇｎ  ｂａｓｅｄ  ｏｎ  ｓｙｍｂｏｌｉｃ  ｃｏｍｐｕｔａｔｉｏｎ  ａｎｄ  ｉｔｓ  ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  ｈａｒｄ  ｄｉｓｋ  ｓｌｉｄｅｒ  ｄｅｓｉｇｎ．”  ＪＭＩ２００９Ｂ−８  −  Ｊｏｕｒｎａｌ  ｏｆ  Ｍａｔｈ−ｆｏｒ−Ｉｎｄｕｓｔｒｙ．
【００６６】
ここで、表６００の１段目は、ＱＥにより、関数ｙ＝ｆ（ｘ）と制約条件Ｃ（ｘ）とを含む論理式を、関数ｙ＝ｆ（ｘ）の実行可能領域Ｔ（ｙ）を示す論理式に変換可能であることを示している。実行可能領域Ｔ（ｙ）は、関数ｙ＝ｆ（ｘ）が取りうる範囲である。表６００の２段目は、ＱＥにより、実行可能領域Ｔ（ｙ）を含み、ｙより大きいｚが存在しないという条件を含む論理式を、関数ｙ＝ｆ（ｘ）の最大値Ｐ（ｙ）を示す論理式に変換可能であることを示している。
【００６７】
表６００の３段目は、ＱＥにより、関数ｙ＝ｆ（ｘ）と制約条件Ｃ（ｘ）と関数ｙ＝ｆ（ｘ）の最大値Ｐ（ｙ）を含む論理式を、関数ｙ＝ｆ（ｘ）の最適解Ｘ（ｘ）を示す論理式に変換可能であることを示している。最適解は、関数ｙ＝ｆ（ｘ）を最大値Ｐ（ｙ）にすることができる解である。
【００６８】
強化学習装置１００は、表６００に示すようなＱＥを、状態行動価値関数に適用する。強化学習装置１００は、例えば、表６００の関数ｆ（ｘ）を、状態行動価値関数を示す下記式（１）に置き換える。ここで、Ｑ（ｓ，ａ）は状態行動価値関数である。ｓは、状態である。ａは、行動である。ｗiは、強化学習が学習する係数である。ｗiは、係数配列Ｗにより記憶される。ｗiΦi（ｓ，ａ）は、係数がかかる状態と行動とを表す変数を含む項である。Φi（ｓ，ａ）は、ｓとａとの２次以下の単項式により、または、ｓに値を代入した結果ａについての多項式になるように、状態行動価値関数を表現するための項である。
【００６９】
【数１】
2020091757.tif 000003
【００７０】
これにより、強化学習装置１００は、状態行動価値関数を示す上記式（１）を含む論理式と等価であり、限量子を含まず、行動ａを含まない論理式を求めることができ、状態行動価値関数を示す上記式（１）の最適行動、または最適値を求めることができる。このため、強化学習装置１００は、行動ａが連続量である場合、強化学習を実現することができる。
【００７１】
さらに、強化学習装置１００は、状態行動価値関数を示す上記式（１）の最適値を求めることができるため、更新則としてＱ学習を用いる場合、下記式（２）を用いて、状態行動価値関数を示す上記式（１）の係数ｗiを更新し、状態行動価値関数を改善することができる。強化学習装置１００は、例えば、下記式（２）の下線部に、状態行動価値関数を示す上記式（１）の最適値を代入可能になる。ここで、ｔは、時点である。ｓtは、時点ｔにおける状態である。ａtは、時点ｔにおける行動である。ｒtは、時点ｔにおける行動ａtに対する利得である。
【００７２】
【数２】
2020091757.tif 000004
【００７３】
さらに、強化学習装置１００は、制約条件Ｃ（ｘ）を用いることができる。強化学習装置１００は、例えば、下記式（３）および下記式（４）などを制約条件Ｃ（ｘ）に用いることにより、行動についての制約条件を考慮して、強化学習を実現することができる。下記式（３）および下記式（４）のａ1やａ2は、ある時点における行動ａを表す複数の変数ａ1，ａ1，・・・，ａnに含まれる変数でる。
【００７４】
【数３】
2020091757.tif 000005
【００７５】
【数４】
2020091757.tif 000006
【００７６】
これにより、強化学習装置１００は、強化学習において制約条件を使用可能にすることができ、制御対象１１０の性質を精度よく考慮して制御対象１１０を制御可能にすることができる。このため、強化学習装置１００は、様々な種類の制御対象１１０に強化学習を適用可能にし、強化学習の利便性の向上を図ることができる。制約条件を使用可能にする具体例は、例えば、実施例に後述する。次に、図７の説明に移行する。
【００７７】
図６の例では、強化学習装置１００が、状態行動価値関数を最大化するように、制御対象１１０を制御する場合について説明した。これに対し、図７の例では、強化学習装置１００が、状態行動価値関数を最小化するように、制御対象１１０を制御する場合について説明する。この場合、強化学習装置１００は、表７００に示すように、左側の論理式を入力されると右側の論理式を出力するようなＱＥを用いて、状態行動価値関数の最適値や最適行動を求めることにより、制御対象１１０を制御する。
【００７８】
ここで、表７００の１段目は、表６００の１段目と同様であるため、説明を省略する。表７００の２段目は、ＱＥにより、実行可能領域Ｔ（ｙ）を含み、ｙより小さいｚが存在しないという条件を含む論理式を、関数ｙ＝ｆ（ｘ）の最小値Ｐ（ｙ）を示す論理式に変換可能であることを示している。
【００７９】
表７００の３段目は、ＱＥにより、関数ｙ＝ｆ（ｘ）と制約条件Ｃ（ｘ）と関数ｙ＝ｆ（ｘ）の最小値Ｐ（ｙ）を含む論理式を、関数ｙ＝ｆ（ｘ）の最適解Ｘ（ｘ）を示す論理式に変換可能であることを示している。最適解は、関数ｙ＝ｆ（ｘ）を最小値Ｐ（ｙ）にすることができる解である。
【００８０】
強化学習装置１００は、表７００に示すようなＱＥを、状態行動価値関数に適用する。表７００に示すようなＱＥを状態行動価値関数に適用する具体例は、表６００に示すようなＱＥを状態行動価値関数に適用する具体例と同様であるため、説明を省略する。
【００８１】
強化学習装置１００は、状態を表す変数と行動を表す変数との両方についての多項式により状態行動価値関数を表現してもよい。この場合、強化学習装置１００は、ＱＥにより状態行動価値関数の最適値や最適行動を求める数式を事前に求めておけば、状態行動価値関数の最適値や最適行動を求める都度ＱＥを用いなくてもよく、処理量を低減することができる。
【００８２】
（実施例における強化学習の具体例）
次に、実施例における強化学習の具体例について説明する。ここでは、実施例において、強化学習装置１００が、状態行動価値関数を最大化するように、制御対象１１０を制御する強化学習の具体例について説明する。
【００８３】
実施例において、設定部５０１は、上記式（１）において、状態行動価値関数を規定するΦi（ｓ，ａ）を設定する。設定部５０１は、例えば、利用者の操作入力に基づいて、Φi（ｓ，ａ）を設定する。設定部５０１は、具体的には、下記式（５）のように、Φi（ｓ，ａ）をａについての多項式として設定する。ｄi,jは、下記式（６）により定義される。ψjは、任意の関数を設定可能である。
【００８４】
【数５】
2020091757.tif 000007
【００８５】
【数６】
2020091757.tif 000008
【００８６】
例えば、設定部５０１が、ｓとａとの２次以下の単項式により、Φi（ｓ，ａ）を設定する場合がある。この場合、例えば、「Φ1＝１，Φ2＝ｓ1，Φ3＝ｓ2，・・・，Φn+2＝ａ1，・・・」が設定される。
【００８７】
また、例えば、設定部５０１が、ｓに値を代入した結果、ａについての多項式になるように、Φi（ｓ，ａ）を設定する場合がある。この場合、例えば、「Φ１＝１，Φ２＝ｅｘｐ（ｓ１），・・・，Φｎ＋２＝ａ１＊ｅｘｐ（ｓ２），・・・」が設定される。これにより、設定部５０１は、状態行動価値関数を使用可能にすることができ、多項式により行動を連続量で扱うことができるようにすることができる。
【００８８】
また、設定部５０１は、制約条件Ｃ（ｓ，ａ）を設定する。設定部５０１は、例えば、利用者の操作入力に基づいて制約条件Ｃ（ｓ，ａ）を設定する。制約条件Ｃ（ｓ，ａ）は、例えば、ｓ，ａに関する一階述語論理式の形式で規定される。制約条件Ｃ（ｓ，ａ）は、ａについての多項式として規定される。これにより、設定部５０１は、強化学習において制約条件を使用可能にすることができ、制御対象１１０の性質を精度よく考慮して制御対象１１０を制御可能にすることができる。
【００８９】
設定部５０１は、係数配列Ｗを初期化する。設定部５０１は、例えば、係数配列Ｗの要素である係数ｗiを、−１〜１の範囲のランダムな値で初期化する。設定部５０１は、利用者の操作入力に基づいて、係数配列Ｗの要素である係数ｗiを、制御対象１１０に関するモデルにより初期化してもよい。
【００９０】
設定部５０１は、時点を示す変数ｔを初期化する。設定部５０１は、例えば、時点を示す変数ｔ＝０と設定する。変数ｔは、例えば、単位時間ごとの時点を示す変数である。変数ｔは、例えば、単位時間が経過する都度インクリメントされる変数である。
【００９１】
その後、状態取得部５０２と、行動決定部５０３と、利得取得部５０４と、更新部５０５とが、以下に示すような処理を繰り返すことになる。
【００９２】
実施例において、状態取得部５０２は、単位時間ごとに、時点ｔの制御対象１１０の状態ｓtを観測し、履歴テーブル４００を用いて記憶する。
【００９３】
実施例において、行動決定部５０３は、単位時間ごとに、時点ｔの制御対象１１０の状態ｓtを履歴テーブル４００から読み出し、制御対象１１０に対する行動を決定する。行動決定部５０３は、例えば、ＱＥを用いて、状態行動価値関数Ｑ（ｓt，ａ）を最大化することができる最適行動ａtを決定する。
【００９４】
まず、行動決定部５０３は、具体的には、下記式（７）の右辺の論理式にＱＥを適用し、下記式（７）の左辺に示した、状態行動価値関数Ｑ（ｓt，ａ）の値が取りうる範囲Ｔ（Ｆ）を特定する。状態行動価値関数Ｑ（ｓt，ａ）は、ｓtが代入可能であるため、ａについての多項式になる。下記式（７）は、表６００の１段目に対応する。
【００９５】
【数７】
2020091757.tif 000009
【００９６】
次に、行動決定部５０３は、範囲Ｔ（Ｆ）を含む下記式（８）の右辺の論理式にＱＥを適用し、下記式（８）の左辺に示した、状態行動価値関数Ｑ（ｓt，ａ）の最大値Ｔ*（Ｆ*）を特定する。上付の＊は、最大値を示す記号である。下記式（８）は、表６００の２段目に対応する。
【００９７】
【数８】
2020091757.tif 000010
【００９８】
そして、行動決定部５０３は、最大値Ｔ*（Ｆ*）を含む下記式（９）の右辺の論理式にＱＥを適用し、下記式（９）の左辺に示した、状態行動価値関数Ｑ（ｓt，ａ）を最大値Ｔ*（Ｆ*）にすることができる最適行動Ｔ*a（ａ）を特定する。上付の＊は、最適行動を示す記号である。下記式（９）は、表６００の３段目に対応する。
【００９９】
【数９】
2020091757.tif 000011
【０１００】
行動決定部５０３は、最適行動Ｔ*a（ａ）、または、最適行動Ｔ*a（ａ）にノイズを加えた探索行動を、出力部５０６を介して制御対象１１０に与えることにより、制御対象１１０を制御する。そして、行動決定部５０３は、制御対象１１０に与えた行動ａtを履歴テーブル４００を用いて記憶する。
【０１０１】
これにより、行動決定部５０３は、強化学習において、行動を連続量として扱うことができ、行動を細かく調整して制御対象１１０を効率よく制御することができる。また、行動決定部５０３は、連続的な行動のすべてを用いて状態行動価値関数の値を網羅的に算出しなくても状態行動価値関数の最大値を求めることができるため、強化学習にかかる時間の増大化を抑制することができる。
【０１０２】
実施例において、利得取得部５０４は、制御対象１１０に行動ａtが与えられた単位時間後、時点を示す変数ｔ＝ｔ＋１になると、行動ａtに応じた利得ｒt-1を、制御対象１１０から取得する。利得ｒt-1は、スカラー量である。利得取得部５０４は、利得ｒt-1を、履歴テーブル４００を用いて記憶する。
【０１０３】
実施例において、更新部５０５は、所定のタイミングで、係数配列Ｗ＝ｗ1，・・・，ｗnを更新する。所定のタイミングは、例えば、行動決定部５０３がＮ回行動ａtを求め、行動ａtを制御対象１１０に与えるごとのタイミングである。
【０１０４】
更新部５０５は、例えば、更新則としてＱ学習を用い、履歴テーブル４００に、時点ｔ０，…，ｔｋに対応するレコードが記憶されている場合、下記式（１０）に示す更新則を用いて、時点ｔ０，…，ｔｋ−１に対して処理を行う。ｓt，ａt，ｓt+1，ｒtは、履歴テーブル４００から取得可能である。
【０１０５】
【数１０】
2020091757.tif 000012
【０１０６】
更新部５０５は、上記式（１０）のｍａｘ部については、ＱＥを用いて算出する。ｍａｘ部について制約条件が規定されてもよい。まず、更新部５０５は、具体的には、下記式（１１）の右辺の論理式にＱＥを適用し、下記式（１１）の左辺に示した、状態行動価値関数Ｑ（ｓt+1，ａ）の値が取りうる範囲Ｔ（Ｆ）を特定する。状態行動価値関数Ｑ（ｓt+1，ａ）は、ａについての多項式により表現される。下記式（１１）は、表６００の１段目に対応する。
【０１０７】
【数１１】
2020091757.tif 000013
【０１０８】
次に、更新部５０５は、範囲Ｔ（Ｆ）を含む下記式（１２）の右辺の論理式にＱＥを適用し、下記式（１２）の左辺に示した、状態行動価値関数Ｑ（ｓt+1，ａ）の最大値Ｔ*（Ｆ*）を特定する。上付の＊は、最大値を示す記号である。下記式（１２）は、表６００の２段目に対応する。
【０１０９】
【数１２】
2020091757.tif 000014
【０１１０】
そして、更新部５０５は、最大値Ｔ*（Ｆ*）を、上記式（１０）のｍａｘ部に用いて、上記式（１０）に基づいて、係数配列Ｗ＝ｗ1，・・・，ｗnを更新する。
【０１１１】
これにより、更新部５０５は、係数配列Ｗ＝ｗ1，・・・，ｗnを更新し、状態行動価値関数を、さらに制御対象１１０の累積利得を精度よく示すように改善することができ、制御対象１１０を効率よく制御することができる。また、更新部５０５は、履歴テーブル４００のレコードを、末尾のレコードを残して削除する。更新部５０５は、更新則として、例えば、ＳＡＲＳＡを参照する場合には、ｍａｘ部を算出しなくてよい。
【０１１２】
（制御対象１１０の具体例）
次に、図８〜図１０を用いて、制御対象１１０の具体例について説明する。
【０１１３】
図８〜図１０は、制御対象１１０の具体例を示す説明図である。図８の例では、制御対象１１０は、自律移動ロボット８００であり、具体的には、自律移動ロボット８００の移動機構８０１である。行動は、移動機構８０１に対する指令値であり、移動方向や移動距離などである。移動方向や移動距離は、連続量として扱うことができる。
【０１１４】
状態は、自律移動ロボット８００に設けられたセンサ装置からのセンサデータであり、例えば、自律移動ロボット８００の位置などである。利得は、例えば、短期的な、自律移動ロボット８００の目標の位置と、自律移動ロボット８００の現在の位置との誤差にマイナスをかけた値などである。状態行動価値関数は、例えば、長期的な、自律移動ロボット８００の目標の位置と、自律移動ロボット８００の現在の位置の誤差にマイナスをかけた値を累積利得として表す関数である。
【０１１５】
ここで、強化学習装置１００は、長期的な誤差を効率よく最小化するように、状態行動価値関数の係数を更新することができ、次の行動になる指令値を決定し、制御対象１１０になる移動機構８０１を制御することができる。この際、強化学習装置１００は、次の行動になる指令値を細かな単位で設定することができ、制御対象１１０になる移動機構８０１を効率よく制御することができる。強化学習装置１００は、例えば、移動方向を３６０度いずれの方向にも指定することができ、制御対象１１０になる移動機構８０１を効率よく制御することができる。
【０１１６】
このため、強化学習装置１００は、誤差が最小化されるまでにかかる時間の低減化を図ることができ、自律移動ロボット８００が、最終的な目標の位置に、精度よく、素早く辿り着くことができるようにすることができる。
【０１１７】
図９の例では、制御対象１１０は、熱源であるサーバ９０１と、ＣＲＡＣやＣｈｉｌｌｅｒなどの冷却器９０２とを含むサーバルーム９００である。行動は、冷却器９０２に対する設定温度や設定風量である。状態は、サーバルーム９００に設けられたセンサ装置からのセンサデータなどであり、例えば、温度などである。状態は、制御対象１１０以外から得られる制御対象１１０に関するデータであってもよく、例えば、気温や天気などであってもよい。利得は、例えば、サーバルーム９００の５分間の消費電力量にマイナスをかけた値である。状態行動価値関数は、例えば、サーバルーム９００の２４時間分の累積消費電力量にマイナスをかけた値を累積利得として表す関数である。
【０１１８】
ここで、強化学習装置１００は、２４時間分の累積消費電力量を効率よく最小化するように、状態行動価値関数を更新することができ、次の最適行動を効率よく決定することができる。この際、強化学習装置１００は、次の行動である設定温度や設定風量を細かな単位で設定することができ、制御対象１１０になるサーバルーム９００を効率よく制御することができる。
【０１１９】
このため、強化学習装置１００は、制御対象１１０の累積消費電力量が最小化されるまでにかかる時間の低減化を図ることができ、サーバルーム９００の運営コストの低減化を図ることができる。また、強化学習装置１００は、サーバ９０１の使用状況の変化および気温の変化などが発生した場合も、その変化から比較的短い時間で、累積消費電力量を効率よく最小化することができる。
【０１２０】
図１０の例では、制御対象１１０は、発電機１０００である。行動は、発電機１０００に対する指令値である。状態は、発電機１０００に設けられたセンサ装置からのセンサデータであり、例えば、発電機１０００の発電量や発電機１０００のタービンの回転量などである。利得は、例えば、発電機１０００の５分間の発電量である。状態行動価値関数は、例えば、発電機１０００の２４時間分の累積発電量を累積利得として表す関数である。
【０１２１】
ここで、強化学習装置１００は、２４時間分の累積発電量を効率よく最大化するように、状態行動価値関数の係数を更新することができ、次の行動になる指令値を決定し、制御対象１１０になる発電機１０００を制御することができる。この際、強化学習装置１００は、次の行動になる指令値を細かな単位で設定することができ、制御対象１１０になる発電機１０００を効率よく制御することができる。
【０１２２】
このため、強化学習装置１００は、制御対象１１０の累積発電量が最大化されるまでにかかる時間の低減化を図ることができ、発電機１０００の利益の増大化を図ることができる。また、強化学習装置１００は、発電機１０００の状況の変化などが発生した場合も、その変化から比較的短い時間で、累積発電量を効率よく最大化することができる。また、制御対象１１０は、例えば、化学プラントなどであってもよい。
【０１２３】
（強化学習処理手順の一例）
次に、図１１を用いて、強化学習処理手順の一例について説明する。
【０１２４】
図１１は、強化学習処理手順の一例を示すフローチャートである。図１１において、強化学習装置１００は、変数ｔを０に設定し、係数配列Ｗを初期化する（ステップＳ１１０１）。
【０１２５】
次に、強化学習装置１００は、状態ｓtを観測する（ステップＳ１１０２）。そして、強化学習装置１００は、ＱＥを用いて、状態行動価値関数を最適化する行動ａtを決定する（ステップＳ１１０３）。次に、強化学習装置１００は、ｔをｔ＋１に設定する（ステップＳ１１０４）。そして、強化学習装置１００は、行動ａt-1に対応する利得ｒt-1を取得する（ステップＳ１１０５）。
【０１２６】
次に、強化学習装置１００は、状態行動価値関数を更新するか否かを判定する（ステップＳ１１０６）。更新は、例えば、ステップＳ１１０２〜Ｓ１１０５の一連の処理が、Ｎ回実行されるごとに行われる。ここで、状態行動価値関数を更新しない場合（ステップＳ１１０６：Ｎｏ）、強化学習装置１００は、ステップＳ１１０２の処理に戻る。一方で、状態行動価値関数を更新する場合（ステップＳ１１０６：Ｙｅｓ）、強化学習装置１００は、ＱＥを用いて、状態行動価値関数を更新する（ステップＳ１１０７）。
【０１２７】
次に、強化学習装置１００は、制御対象１１０の制御を終了するか否かを判定する（ステップＳ１１０８）。ここで、終了しない場合（ステップＳ１１０８：Ｎｏ）、強化学習装置１００は、ステップＳ１１０２の処理に戻る。一方で、終了する場合（ステップＳ１１０８：Ｙｅｓ）、強化学習装置１００は、強化学習処理を終了する。これにより、強化学習装置１００は、強化学習において行動を連続量として扱うことができる。
【０１２８】
図１１の例では、強化学習装置１００が、バッチ処理形式で強化学習処理を実行する場合について説明したが、これに限らない。例えば、強化学習装置１００が、逐次処理形式で強化学習処理を実行する場合があってもよい。
【０１２９】
以上説明したように、強化学習装置１００によれば、状態および行動に関する入力値、および、当該入力値に対応する利得を取得することができる。強化学習装置１００によれば、取得した入力値および利得に基づいて、状態行動価値関数の係数を推定することができる。強化学習装置１００によれば、ＱＥを用いて、係数が推定された状態行動価値関数の最適行動、または、最適値を求めることができる。これにより、強化学習装置１００は、強化学習において、行動を連続量として扱うことができ、行動を細かく調整して制御対象１１０を効率よく制御することができる。また、強化学習装置１００は、強化学習にかかる時間の増大化を抑制することができる。
【０１３０】
強化学習装置１００によれば、取得した入力値に基づいて、状態行動価値関数を含む論理式に対してＱＥを用いて、状態行動価値関数の範囲を特定することができる。強化学習装置１００によれば、特定した範囲を含む論理式に対してＱＥを用いて、状態行動価値関数の最適値を求めることができる。強化学習装置１００によれば、求めた最適値を含む論理式に対してＱＥを用いて、状態行動価値関数の最適行動を求めることができる。これにより、強化学習装置１００は、行動に関する変数を消去して、状態行動価値関数の最適値を求め、状態行動価値関数の最適行動を求めることができる。
【０１３１】
強化学習装置１００によれば、取得した入力値および利得に基づいて、ＱＥを用いて、状態行動価値関数の係数を推定することができる。これにより、強化学習装置１００は、状態行動価値関数の係数を求める際に、最適化問題を行う場合であっても、状態行動価値関数の係数を推定し、状態行動価値関数を改善することができる。
【０１３２】
強化学習装置１００によれば、取得した入力値に基づいて、状態行動価値関数を含む論理式に対してＱＥを用いて、状態行動価値関数の範囲を特定することができる。強化学習装置１００によれば、特定した範囲を含む論理式に対してＱＥを用いて、状態行動価値関数の最適値を求めることができる。強化学習装置１００によれば、取得した入力値および利得に基づいて、求めた最適値を用いて状態行動価値関数の係数を推定することができる。これにより、強化学習装置１００は、行動に関する変数を消去して、状態行動価値関数の最適値を求め、状態行動価値関数の係数を推定することができる。
【０１３３】
強化学習装置１００によれば、ＱＥを用いて、制約条件を適用した、係数が推定された状態行動価値関数の最適行動、または、最適値を求めることができる。これにより、強化学習装置１００は、強化学習において制約条件を使用可能にすることができ、制御対象１１０の性質を精度よく考慮して制御対象１１０を制御可能にすることができる。
【０１３４】
強化学習装置１００によれば、ＱＥを用いて、所定の係数を用いた状態行動価値関数の最適行動、または、最適値を求めることができる。これにより、強化学習装置１００は、まだ状態行動価値関数の係数を推定していない時点でも、最適行動、または、最適値を求めることができる。
【０１３５】
なお、本実施の形態で説明した強化学習方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した強化学習プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した強化学習プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１３６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１３７】
（付記１）コンピュータに、
状態および行動に関する入力値、および、当該入力値に対応する利得を取得し、
取得した前記入力値および前記利得に基づいて、行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる状態行動価値関数の係数を推定し、
限量子消去を用いて、前記係数が推定された前記状態行動価値関数の最適行動、または、最適値を求める、
処理を実行させることを特徴とする強化学習プログラム。
【０１３８】
（付記２）前記求める処理は、
取得した前記入力値に基づいて、前記状態行動価値関数を含む論理式に対して限量子消去を用いて、前記状態行動価値関数の範囲を特定し、特定した前記範囲を含む論理式に対して限量子消去を用いて、前記状態行動価値関数の最適値を求め、求めた前記最適値を含む論理式に対して限量子消去を用いて、前記状態行動価値関数の最適行動を求める、ことを特徴とする付記１に記載の強化学習プログラム。
【０１３９】
（付記３）前記推定する処理は、
取得した前記入力値および前記利得に基づいて、限量子消去を用いて、前記状態行動価値関数の係数を推定する、ことを特徴とする付記１または２に記載の強化学習プログラム。
【０１４０】
（付記４）前記推定する処理は、
取得した前記入力値に基づいて、前記状態行動価値関数を含む論理式に対して限量子消去を用いて、前記状態行動価値関数の範囲を特定し、特定した前記範囲を含む論理式に対して限量子消去を用いて、前記状態行動価値関数の最適値を求め、
取得した前記入力値および前記利得に基づいて、求めた前記最適値を用いて前記状態行動価値関数の係数を推定する、ことを特徴とする付記３に記載の強化学習プログラム。
【０１４１】
（付記５）前記求める処理は、
限量子消去を用いて、制約条件を適用した、前記係数が推定された前記状態行動価値関数の最適行動、または、最適値を求める、ことを特徴とする付記１〜４のいずれか一つに記載の強化学習プログラム。
【０１４２】
（付記６）前記求める処理は、
限量子消去を用いて、所定の係数を用いた前記状態行動価値関数の最適行動、または、最適値を求める、ことを特徴とする付記１〜５のいずれか一つに記載の強化学習プログラム。
【０１４３】
（付記７）コンピュータが、
状態および行動に関する入力値、および、当該入力値に対応する利得を取得し、
取得した前記入力値および前記利得に基づいて、行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる状態行動価値関数の係数を推定し、
限量子消去を用いて、前記係数が推定された前記状態行動価値関数の最適行動、または、最適値を求める、
処理を実行することを特徴とする強化学習方法。
【０１４４】
（付記８）状態および行動に関する入力値、および、当該入力値に対応する利得を取得し、
取得した前記入力値および前記利得に基づいて、行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる状態行動価値関数の係数を推定し、
限量子消去を用いて、前記係数が推定された前記状態行動価値関数の最適行動、または、最適値を求める、
制御部を有することを特徴とする強化学習装置。
【符号の説明】
【０１４５】
１００  強化学習装置
１１０  制御対象
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２１０  ネットワーク
４００  履歴テーブル
５００  記憶部
５０１  設定部
５０２  状態取得部
５０３  行動決定部
５０４  利得取得部
５０５  更新部
５０６  出力部
６００，７００  表
８００  自律移動ロボット
８０１  移動機構
９００  サーバルーム
９０１  サーバ
９０２  冷却器
１０００  発電機
【図１】
2020091757.tif 000015
【図２】
2020091757.tif 000016
【図３】
2020091757.tif 000017
【図４】
2020091757.tif 000018
【図５】
2020091757.tif 000019
【図６】
2020091757.tif 000020
【図７】
2020091757.tif 000021
【図８】
2020091757.tif 000022
【図９】
2020091757.tif 000023
【図１０】
2020091757.tif 000024
【図１１】
2020091757.tif 000025