(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024140139
(43)【公開日】2024-10-10
(54)【発明の名称】学習装置、学習方法およびプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241003BHJP
G06N 3/092 20230101ALI20241003BHJP
【FI】
G06N20/00
G06N3/092
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023051144
(22)【出願日】2023-03-28
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(71)【出願人】
【識別番号】301021533
【氏名又は名称】国立研究開発法人産業技術総合研究所
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】窪澤 駿平
(72)【発明者】
【氏名】大西 貴士
(72)【発明者】
【氏名】鶴岡 慶雅
(57)【要約】
【課題】制御対象に対する制御の学習に要する時間を比較的短くする。
【解決手段】学習装置が、制御対象に対する制御の強化学習を行う強化学習手段と、前記強化学習に用いられたデータを用いて、前記制御対象に関する状態と、前記制御対象に対する制御と、前記制御対象に関する状態の時間変化との関係を示すモデルの学習を行うモデル学習手段と、前記モデルと、前記強化学習の結果とを用いて、前記制御対象に対する制御の学習を行うモデル制御学習手段と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
制御対象に対する制御の強化学習を行う強化学習手段と、
前記強化学習に用いられたデータを用いて、前記制御対象に関する状態と、前記制御対象に対する制御と、前記制御対象に関する状態の時間変化との関係を示すモデルの学習を行うモデル学習手段と、
前記モデルと、前記強化学習の結果とを用いて、前記制御対象に対する制御の学習を行うモデル制御学習手段と、
を備える学習装置。
【請求項2】
前記モデル制御学習手段は、前記モデルと、前記強化学習で得られた方策とを用いて、前記制御対象に対する制御の時系列の初期値を生成し、前記制御対象に対する制御の学習にて、前記制御対象に対する制御の時系列を更新する、
請求項1に記載の学習装置。
【請求項3】
前記強化学習手段は、前記制御対象に実行させる複数のタスクそれぞれについて前記強化学習を行い、
前記モデル学習手段は、前記制御対象に実行させる複数のタスクそれぞれについて前記強化学習に用いられたデータを用いて、前記モデルの学習をおこなってそのモデルを更新し、
前記モデル制御学習手段は、前記複数のタスクそれぞれについて、前記強化学習を実行済みのタスクに関して学習済みの前記モデルを用いて、前記制御対象に対する制御の学習を行う、
請求項1または請求項2に記載の学習装置。
【請求項4】
前記強化学習手段は、前記強化学習に用いる方策の初期値を、前記強化学習を実行済みのタスクに関して学習済みの前記モデルを用いて決定する、
請求項3に記載の学習装置。
【請求項5】
前記強化学習手段は、前記強化学習に用いる報酬関数を、前記強化学習を実行済みのタスクに関して学習済みの前記モデルを用いて決定する、
請求項3に記載の学習装置。
【請求項6】
コンピュータが、
制御対象に対する制御の強化学習を行い、
前記強化学習に用いられたデータを用いて、前記制御対象に関する状態と、前記制御対象に対する制御と、前記制御対象に関する状態の時間変化との関係を示すモデルの学習を行い、
前記モデルと、前記強化学習の結果とを用いて、前記制御対象に対する制御の学習を行う、
ことを含む学習方法。
【請求項7】
コンピュータに、
制御対象に対する制御の強化学習を行うことと、
前記強化学習に用いられたデータを用いて、前記制御対象に関する状態と、前記制御対象に対する制御と、前記制御対象に関する状態の時間変化との関係を示すモデルの学習を行うことと、
前記モデルと、前記強化学習の結果とを用いて、前記制御対象に対する制御の学習を行うことと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法およびプログラムに関する。
【背景技術】
【0002】
制御対象に対する制御の学習方法の1つに強化学習がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
制御対象に対する制御の学習をなるべく短時間で行えることが好ましい。
【0005】
本発明の目的の一例は、上述の課題を解決することのできる学習装置、学習方法、およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、学習装置は、制御対象に対する制御の強化学習を行う強化学習手段と、前記強化学習に用いられたデータを用いて、前記制御対象に関する状態と、前記制御対象に対する制御と、前記制御対象に関する状態の時間変化との関係を示すモデルの学習を行うモデル学習手段と、前記モデルと、前記強化学習の結果とを用いて、前記制御対象に対する制御の学習を行うモデル制御学習手段と、を備える。
【0007】
本発明の第2の態様によれば、学習方法は、コンピュータが、制御対象に対する制御の強化学習を行い、前記強化学習に用いられたデータを用いて、前記制御対象に関する状態と、前記制御対象に対する制御と、前記制御対象に関する状態の時間変化との関係を示すモデルの学習を行い、前記モデルと、前記強化学習の結果とを用いて、前記制御対象に対する制御の学習を行う、ことを含む。
【0008】
本発明の第3の態様によれば、プログラムは、コンピュータに、制御対象に対する制御の強化学習を行うことと、前記強化学習に用いられたデータを用いて、前記制御対象に関する状態と、前記制御対象に対する制御と、前記制御対象に関する状態の時間変化との関係を示すモデルの学習を行うことと、前記モデルと、前記強化学習の結果とを用いて、前記制御対象に対する制御の学習を行うことと、を実行させるためのプログラムである。
【発明の効果】
【0009】
本発明によれば、制御対象に対する制御の学習に要する時間が比較的短いことが期待される。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る学習装置の構成の例を示す図である。
【
図2】実施形態に係る学習装置が行う処理の手順の例を示す図である。
【
図3】実施形態に係る制御対象に対する制御を行うときの、システムの構成の例を示す図である。
【
図4】実施形態に係る制御装置の構成の例を示す図である。
【
図5】実施形態に係る学習装置の構成のもう1つの例を示す図である。
【
図6】実施形態に係る学習方法における処理の手順の例を示す図である。
【
図7】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下では、サーカムフレックス(Circumflex)を付された文字を、その文字の次に^を付すことで表す場合がある。例えば、サーカムフレックスを付されたsを、s^とも表記する。
【0012】
図1は、実施形態に係る学習装置の構成の例を示す図である。
図1に示す構成で、学習装置100は、通信部110と、表示部120と、操作入力部130と、記憶部180と、処理部190とを備える。処理部190は、強化学習部191と、モデル学習部192と、モデル制御学習部193と、シミュレータ部194とを備える。
【0013】
学習装置100が制御方法の学習を行う対象である制御対象は、特定のものに限定されない。制御可能ないろいろなものを、制御対象とすることができる。例えば、制御対象は、工場(Plant または Factory)または発電プラントなどの設備であってもよいし、工場における製造ラインなどのシステムであってもよいし、単体の装置であってもよい。あるいは、制御対象は、自動車、飛行機、船舶、自走式移動ロボットなどの移動体であってもよい。
【0014】
学習装置100は、制御対象に対する制御の学習を行う。特に、学習装置100は、制御対象に対する制御の学習を、強化学習と、制御対象に関する状態の時間変化を示すモデルを用いた学習とによって行う。
学習装置100は、例えばパソコン(Personal Computer:PC)またはワークステーション(Workstation;WS)等のコンピュータを用いて構成されていてもよい。
【0015】
ここでいう強化学習は、ある環境(Environment)に対して行動(Action)を行うエージェント(Agent)の行動規則である方策(Policy)を、環境における状態(State)と、状態または行動に対する評価を表す報酬(Reward)とに基づいて学習する機械学習である。
【0016】
学習装置100と制御対象との組み合わせを、エージェントの例と捉えることができる。
制御対象を含む、制御対象の動作環境を、環境の例と捉えることができる。
学習装置100による制御に基づく制御対象の動作を、行動の例と捉えることができる。以下では、制御対象に対する制御指令と、制御対象の動作とを同一視する場合を例に説明する。制御対象に対する制御指令を、制御対象の動作を示す情報として用いる場合がある。
制御対象に対する制御規則を、方策の例と捉えることができる。
【0017】
制御対象を含む、制御対象の動作環境を、単に、制御対象の動作環境とも称する。制御対象の動作環境の状態を、制御対象に関する状態、または、単に状態とも称する。
【0018】
学習装置100は、強化学習のための訓練データとして、例えば(状態、行動、報酬、次状態)の四つ組のデータを取得する。学習装置100は、得られたデータを用いて強化学習を行う。さらに、学習装置100は、得られたデータを用いて、状態の時間変化を示すモデルを更新する。特に、学習装置100は、ある状態において、制御対象がある動作をおこなったときの、状態の勾配を示すモデルを用いる。このモデルを勾配モデルとも称する。勾配モデルは、制御対象に関する状態と、制御対象に対する制御と、制御対象に関する状態の時間変化との関係を示すモデルの例に該当する。
【0019】
学習装置100は、得られた勾配モデルを用いて、制御対象に対する制御の学習を行う。これにより、学習装置100は、バックプロパゲーション(Backpropagation、誤差逆伝播法)などの勾配法を用いた学習を行うことができ、この点で、効率的に学習を行うことができる。
【0020】
以下では、勾配モデルとして、ニューラルネットワークで常微分方程式を表す計算モデルであるニューラル常微分方程式(Neural Ordinary Differential Equations;Neural ODE)を用いる場合を例に説明する。ただし、学習装置100が勾配モデルとして用いるモデルは、特定の種類のモデルに限定されず、上記のように状態の勾配を示すモデルであればよい。
【0021】
通信部110は、他の装置と通信を行う。例えば、通信部110が、制御対象に対する制御指令を送信し、また、制御対象または制御対象の動作環境に設けられたセンサから、センサ測定値を受信するようにしてもよい。
表示部120は、例えば液晶パネルまたはLED(Light Emitting Diode、発光ダイオード)パネル等の表示画面を備え、各種画像を表示する。例えば、表示部120が、学習装置100が行う学習の進捗状況など、学習装置100が行う学習に関する情報を表示するようにしてもよい。
【0022】
操作入力部130は、例えばキーボードおよびマウス等の入力デバイスを備え、ユーザ操作を受け付ける。例えば、操作入力部130が、学習率など学習に関するハイパーパラメータの値を設定するユーザ操作を受け付けるようにしてもよい。
【0023】
記憶部180は、各種データを記憶する。例えば、記憶部180が、強化学習で得られる四つ組のデータ、および、ニューラル常微分方程式を記憶するようにしてもよい。記憶部180は、学習装置100が備える記憶デバイスを用いて構成される。
【0024】
処理部190は、学習装置100の各部を制御して各種処理を行う。処理部190の機能は、例えば学習装置100が備えるCPU(Central Processing Unit、中央処理装置)が、記憶部180からプログラムを読み出して実行することで実行される。
【0025】
強化学習部191は、制御対象に対する制御の強化学習を行う。特に、強化学習部191は、制御対象に実行させる複数のタスクそれぞれについて強化学習を行う。強化学習部191は、強化学習手段の例に該当する。
【0026】
また、強化学習部191は、強化学習に用いる方策の初期値を、強化学習を実行済みのタスクに関して学習済みのニューラル常微分方程式を用いて決定する。
例えば、強化学習部191が、方策の初期値として方策のパラメータ値を仮設定し、そのパラメータ値を用いた場合の報酬関数値を、ニューラル常微分方程式を用いて算出し、報酬関数値がより大きくなるように(報酬関数値が示す評価がより良くなるように)、方策のパラメータ値を調整するようにしてもよい。この場合、強化学習部191が、方策のパラメータ値の調整に、バックプロパゲーション等の勾配法を用いるようにしてもよい。
【0027】
ここで、強化学習の初期段階など学習の実績が蓄積されていない場合、行動をランダムに決定するような方策を用いることが考えられる。この場合、報酬として示される評価が良い評価となるような行動が選択される可能性が比較的低く、学習に時間を要することが考えられる。個々のタスクの学習に、それまでのタスクの学習の結果を用いない場合も、同様に、行動をランダムに決定するような方策を用いることが考えられ、学習に時間がかかることが考えられる。
【0028】
これに対し、強化学習部191が、強化学習を実行済みのタスクに関して学習済みのニューラル常微分方程式を用いて方策の初期値を決定することで、方策の決定に、それまでのタスクの学習の結果を反映させることができる。学習装置100によれば、この点で、行動をランダムに決定するような方策を用いる場合よりも良い評価となるような行動を選択し易くなり、学習に要する時間が比較的短いことが期待される。
【0029】
また、強化学習部191は、強化学習に用いる報酬関数を、強化学習を実行済みのタスクに関して学習済みのニューラル常微分方程式を用いて決定する。
例えば、強化学習部191が、報酬関数のパラメータ値を仮設定し、タスク実行に成功するシナリオを実行した場合の報酬関数値を、ニューラル常微分方程式を用いて算出し、報酬関数値がより大きくなるように(報酬関数値が示す評価がより良くなるように)、報酬関数のパラメータ値を調整するようにしてもよい。この場合、強化学習部191が、報酬関数のパラメータ値の調整に、バックプロパゲーション等の勾配法を用いるようにしてもよい。
【0030】
ここで、報酬関数を学習する場合、学習が進んで適切な報酬関数を得られるまでは、方策関数の学習を適切に行えないことが考えられる。報酬関数が累積報酬の計算を含み、タイムステップごとの係数が学習対象となっている場合など、報酬関数に含まれる学習対象のパラメータの個数が多い場合、特に、学習に時間を要することが考えられる。
【0031】
これに対し、強化学習部191が、強化学習に用いる報酬関数を、強化学習を実行済みのタスクに関して学習済みのニューラル常微分方程式を用いて決定することで、報酬関数の決定に、それまでのタスクの学習の結果を反映させることができる。学習装置100によれば、この点で、強化学習を実行済みのタスクの学習結果を用いない場合よりも短時間で報酬関数を得られるようになり、これにより、方策の学習に要する時間も比較的短いことが期待される。
【0032】
モデル学習部192は、強化学習に用いられたデータを用いてニューラル常微分方程式の学習を行う。具体的には、モデル学習部192は、強化学習のための訓練データで示される、(状態、行動、次状態)の組み合わせを、ニューラル常微分方程式の学習のための訓練データとして用いる。
【0033】
特に、モデル学習部192は、制御対象に実行させる複数のタスクそれぞれについて強化学習に用いられたデータを用いてニューラル常微分方程式の学習をおこなって、ニューラル常微分方程式を更新する。モデル学習部192は、モデル学習手段の例に該当する。
【0034】
学習装置100は、ニューラル常微分方程式を、状態と、制御対象に対する制御指令の入力を受けて、状態の時間微分を出力する計算モデルとして用いる。この場合のニューラル常微分方程式は、式(1)のように表される。
【0035】
【0036】
tは、時刻を表す。
x(t)は、時刻tにおける状態を表す。
u(t)は、時刻tにける、制御対象に対する制御指令を表す。
fは、ニューラルネットワークを表す関数である。
【0037】
また、時刻tの初期値(開始時刻)をt0で表す。状態xの初期値をx0で表す。状態xの初期値x0は、式(2)のように表される。
【0038】
【0039】
学習装置100は、状態の微分dx/dtを積分することで、時刻tにおける状態x(t)を算出する。例えば、学習装置100は、時刻tfにおける状態x(tf)は、式(3)に基づいて計算する。
【0040】
【0041】
ここで、ニューラル常微分方程式において、微分が、差分を用いて近似的に表されていてもよい。
また、学習装置100が、積分の計算を数値積分の手法を用いて行うようにしてもよい。
また、以下では、時刻がタイムステップで表される場合を例に説明する。
【0042】
モデル制御学習部193は、ニューラル常微分方程式と、強化学習の結果とを用いて、制御対象に対する制御の学習を行う。モデル制御学習部193は、モデル制御学習手段の例に該当する。
モデル制御学習部193は、ニューラル常微分方程式と、強化学習で得られた方策とを用いて、例えば3時間後など有限の所定期間の未来までの、制御対象に対する制御の時系列の初期値を生成する。
【0043】
例えば、モデル制御学習部193が、所定の初期状態x0から順に、状態に応じた行動を、強化学習で得られた(最新の)方策を用いて算出し、その状態で制御対象がその行動をおこなったときの次状態を、ニューラル常微分方程式を用いて算出するようにしてもよい。そして、モデル制御学習部193が、次状態として得られた状態について、その状態に応じた行動の算出と、その状態で制御対象がその行動をおこなったときの次状態の算出とを繰り返すことで、制御対象に対する制御の時系列の初期値(制御対象が行う動作の時系列の初期値)を算出するようにしてもよい。
モデル制御学習部193は、制御対象に行わせるタスクに応じて設定されている評価関数が示す評価がなるべく良くなるように、制御対象に対する制御の時系列を更新する。
【0044】
ここで、モデル制御学習部193が用いる制御対象に対する制御の時系列の初期値の精度が低い場合、評価関数が示す評価が良い時系列の探索に時間を要し、モデル制御学習部193が行う学習に要する時間が比較的長くなることが考えられる。
これに対し、モデル制御学習部193が、強化学習の(暫定的な)結果を用いて制御の時系列の初期値を生成することで、評価関数が示す評価が良い時系列の探索に要する時間が比較的短くなり、これによって、モデル制御学習部193が行う学習に要する時間が比較的短くなることが期待される。
【0045】
モデル制御学習部193は、複数のタスクそれぞれについて、強化学習を実行済みのタスクに関して学習済みのニューラル常微分方程式を用いて、制御対象に対する制御の学習を行う。
なお、学習段階では、学習装置100が、制御対象に対する実際の制御を行う必要はない。すなわち、学習装置100が、制御対象の実機に対して制御指令を出力しないようにしてもよい。
【0046】
モデル制御学習部193は、強化学習部191が強化学習に用いる方策関数に相当する評価関数(目的関数)を用いて、制御対象に対する制御の学習を行う。これにより、強化学習部191が行う強化学習と、モデル制御学習部193が行う学習とに、制御対象に対する制御の一貫性を持たせることができる。
例えば、強化学習部191が、式(4)で示されるような強化学習を行うようにしてもよい。
【0047】
【0048】
r(s^t,at)は、時刻tにおける状態s^tの下で制御対象が動作(行動)atをおこなったときに得られる報酬を表す。
γは、将来得られる報酬に対する割引率を表す0≦γ≦1の定数である。
Σt=0
∞Eat~pπ(at|s^t)[γtr(s^t,at)]は、状態s^tの下で、方策πに従って制御対象の動作atが決定されるときの、時刻t=0からt=∞までの累積報酬の期待値を表す。Σt=0
∞Eat~pπ(at|s^t)[γtr(s^t,at)]は、報酬関数の例に該当する。
【0049】
argmaxは、argmaxの後ろ(右側)に示される式の値が最大になるような、argmaxの下に示されるパラメータの値を出力する関数である。
argmaxπΣt=0
∞Eat~pπ(at|s^t)[γtr(s^t,at)]は、上記の累積報酬の期待値がなるべく大きくなるような方策πを探索することを表している。
【0050】
s^t+1~pf^(s^t+1|s^t,at)は、状態s^tの下で制御対象が動作atをおこなったときに、所定の遷移確率に基づいて状態s^tから状態s^t+1に遷移することを表している。この状態遷移確率は、強化学習部191が強化学習にて方策πを探索する際の制約条件として用いられる。
【0051】
また、モデル制御学習部193が、式(5)に基づいて、制御対象に対する制御の学習を行うようにしてもよい。
【0052】
【0053】
l(st,at)は、状態stの下で制御対象が動作atをおこなったときの評価を示す関数である。式(5)の例では、関数lとして、関数値が小さいほど良い評価を示すコスト関数を用いている。
Σt=0
Tl(st,at)は、時刻t=0からt=Tまでの評価値l(st,at)の合計を表す。Σt=0
Tl(st,at)は、目的関数の例に該当する。
【0054】
argminは、argminの後ろ(右側)に示される式の値が最小になるような、argminの下に示されるパラメータの値を出力する関数である。
argmina0Σt=0
Tl(st,at)は、時刻t=0からt=Tまでの評価値l(st,at)の合計がなるべく小さくなるような動作a0を探索することを表している。
【0055】
式(4)に示される期待値Eat~pπ(at|s^t)[γtr(s^t,at)]は、状態s^tと動作atとを引数に持つ関数と捉えることができる。モデル制御学習部193は、関数l(st,at)として、期待値Eat~pπ(at|st)[γtr(st,at)]が大きいほど関数値(l(st,at)の値)が小さくなるような関数を用いる。これにより、同一のタスクについて、強化学習部191が強化学習で行う方策の探索と、モデル制御学習部193が行う制御対象の動作の探索とに一貫性を持たせることができる。
【0056】
例えば、式(4)の関数rとして負または0の実数を出力する関数を用いて、関数rの値が大きいほど(したがって、式(4)のΣt=0
∞Eat~pπ(at|s^t)[γtr(s^t,at)]の値が大きいほど)良い評価を表す場合について考える。この場合、式(7)の関数lを、関数rに-1を乗じた関数としてもよい。すなわち、l(st,at)=-r(st,at)としてもよい。これにより、関数lの値が小さいほど(したがって、式(5)のΣt=0
Tl(st,at)の値が小さいほど)良い評価を表すようにすることができる。
ただし、強化学習部191が用いる報酬関数と、モデル制御学習部193が用いる評価関数(目的関数)との関係は、特定の関係に限定されない。
【0057】
モデル制御学習部193が行う、制御対象に対する制御の時系列の更新は、モデル予測制御の手法を用いた、制御対象に対する制御の学習と捉えることができる。
ただし、モデル制御学習部193が行う、制御対象に対する制御の学習は、モデル予測制御の手法を用いた学習に限定されない。モデル制御学習部193が、制御対象に対する制御の学習を行う方法として、制御対象に行わせるタスクに応じた評価関数を用い、かつ、ニューラル常微分方程式が示す勾配情報を利用可能な、いろいろな最適制御の手法にて制御対象に対する制御指令を探索する方法を用いることができる。
モデル制御学習部193が、制御対象に対する制御の学習の結果に基づいて、強化学習部191による強化学習で得られた方策を更新するようにしてもよい。
【0058】
シミュレータ部194は、制御対象の動作のシミュレーションを行う。具体的には、シミュレータ部194は、状態と、制御対象の動作とに基づいて次状態を算出する。シミュレータ部194がシミュレーションに用いる制御対象のモデルは、微分不可能なモデル(勾配情報を直接算出することはできないモデル)であってもよい。
強化学習部191は、シミュレータ部194による制御対象の動作のシミュレーションを用いて、制御対象に対する制御の強化学習を行う。
【0059】
図2は、学習装置100が行う処理の手順の例を示す図である。
図2の処理で、強化学習部191は、報酬関数を設定する(ステップS101)。強化学習部191が報酬関数の設定および更新を行う方法は、特定の方法に限定されない。例えば、強化学習部191が、公知の強化学習手法で示されている、報酬関数の設定および更新方法を用いるようにしてもよい。
【0060】
次に、学習装置100は、ステップS101で設定した報酬関数を用いて強化学習を行う(ステップS102)。ステップS102では、学習装置100は、制御対象に行わせるタスクのうち1つのタスクについて、制御対象に対する制御の学習を行う。学習の対象となっているタスクを対象タスクとも称する。
【0061】
次に、強化学習部191は、強化学習での学習結果の評価を行う(ステップS103)。
次に、処理部190は、ステップS103での評価結果に基づいて、対象タスクについての学習の終了条件が成立しているか否かを判定する(ステップS104)。
ここでの学習の終了条件は、特定のものに限定されない。例えば、ステップS104での終了条件は、強化学習における処理ステップを所定の回数以上繰り返しおこなった、という条件であってもよい。あるいは、ステップS104での終了条件は、報酬関数値が示す評価が、所定の値以上に良い評価である、という条件であってもよい。
【0062】
対象タスクについての学習の終了条件が成立していないと処理部190が判定した場合(ステップS104:NO)、モデル学習部192は、ステップS102における強化学習で得られたデータを用いてニューラル常微分方程式の学習を行うことで、ニューラル常微分方程式を更新する(ステップS105)。
【0063】
次に、強化学習部191は、報酬関数を変更する(ステップS106)。
次に、モデル制御学習部193は、モデル予測制御の手法を用いて制御対象の挙動を計算する(ステップS107)。
次に、処理部190は、対象タスクについての、モデル予測制御の手法を用いた学習の終了条件が成立しているか否かを判定する(ステップS108)。
【0064】
ここでの学習の終了条件は、特定のものに限定されない。例えば、ステップS107での終了条件は、モデル制御学習部193が行う学習における処理ステップを所定の回数以上繰り返しおこなった、という条件であってもよい。あるいは、ステップS107での終了条件は、目的関数値が示す評価が、所定の値以上に良い評価である、という条件であってもよい。
対象タスクについての、モデル予測制御の手法を用いた学習の終了条件が成立していないと処理部190が判定した場合(ステップS108:NO)、処理がステップS106へ戻る。
【0065】
一方、対象タスクについての、モデル予測制御の手法を用いた学習の終了条件が成立していると判定した場合(ステップS108:YES)、処理部190は、制御対象に実行させるタスクのうち未だ学習をおこなっていないタスクがあるか否かを判定する(ステップS109)。
学習を行っていないタスクがあると判定した場合、処理がステップS101へ戻る。この場合、学習装置100は、学習をおこなっていないタスクのうち1つのタスクを対象タスクに設定して、ステップS101からの処理を行う。
【0066】
一方、ステップS104で、対象タスクについての学習の終了条件が成立していると処理部190が判定した場合(ステップS104:YES)、処理がステップS109へ進む。
一方、ステップS108で、対象タスクについてのモデル予測制御の終了条件が成立していないと処理部190が判定した場合(ステップS108:NO)、処理がステップS106へ戻る。
一方、ステップS109で、制御対象に実行させるタスクのうち未だ学習をおこなっていないタスクは無いと処理部190が判定した場合(ステップS109:NO)、学習装置100は、
図2の処理を終了する。
【0067】
図3は、制御対象に対する制御を行うときの、システムの構成の例を示す図である。
図3に示す構成で、システム1は、制御装置200と、制御対象910とを備える。また、制御対象910を含む、制御対象の動作環境を環境920と表記する。
【0068】
制御対象910は、学習装置100が制御の学習の対象とする制御対象である。
制御装置200は、学習装置100による学習の結果を用いて、環境920の状態の観測データに基づいて、制御対象910に対する制御を行う。例えば、制御装置200は、学習装置100の強化学習部191による強化学習で得られた方策を、モデル制御学習部193が、制御対象に対する制御の学習の結果に基づいて更新した方策を用いて、制御対象910に対する制御を行う。
制御装置200は、例えばパソコンまたはワークステーション等のコンピュータを用いて構成されていてもよい。制御装置200が、学習装置100が実装されたコンピュータに実装されていてもよい。あるいは、制御装置200が、学習装置100が実装されたコンピュータとは異なるコンピュータに実装されていてもよい。
【0069】
図4は、制御装置200の構成の例を示す図である。
図4に示す構成で、制御装置200は、通信部210と、表示部220と、操作入力部230と、記憶部280と、処理部290とを備える。処理部290は、制御実行部291を備える。
【0070】
通信部210は、他の装置と通信を行う。例えば、通信部210が、制御対象910に対する制御指令を送信し、また、環境920に設けられたセンサから、センサ測定値を受信するようにしてもよい。
表示部220は、例えば液晶パネルまたはLEDパネル等の表示画面を備え、各種画像を表示する。例えば、表示部220が、制御対象910に対する制御指令など、制御対象910に対する制御に関する情報を表示するようにしてもよい。
【0071】
操作入力部230は、例えばキーボードおよびマウス等の入力デバイスを備え、ユーザ操作を受け付ける。例えば、操作入力部230が、制御対象910の通信アドレスの情報など、制御対象910に対する制御に関する設定を行うユーザ操作を受け付けるようにしてもよい。
【0072】
記憶部280は、各種データを記憶する。例えば、記憶部280が、制御対象910に対する制御のための制御記憶など、制御対象910に対する制御のための各種情報を記憶しておくようにしてもよい。記憶部280は、制御装置200が備える記憶デバイスを用いて構成される。
【0073】
処理部290は、制御装置200の各部を制御して各種処理を行う。処理部290の機能は、例えば制御装置200が備えるCPUが、記憶部280からプログラムを読み出して実行することで実行される。
制御実行部291は、学習装置100による学習の結果を用いて、環境920の状態の観測データに基づいて、制御対象910に対する制御を実行する。
具体的には、制御実行部291は、環境920に設けられたセンサによるセンサ測定値を、通信部210を介して受信し、学習装置100による学習の結果として得られた制御規則にて、得られたセンサ測定値を入力して、制御対象910に対する制御指令を決定する。そして、制御実行部291は、決定した制御指令を、通信部210を介して制御対象910へ送信する。
【0074】
以上のように、強化学習部191は、制御対象に対する制御の強化学習を行う。モデル学習部192は、強化学習に用いられたデータを用いて勾配モデルの学習を行う。勾配モデルは、制御対象に関する状態と、制御対象に対する制御と、制御対象に関する状態の時間変化との関係を示すモデルである。モデル制御学習部193は、勾配モデルと、強化学習の結果とを用いて、制御対象に対する制御の学習を行う。
【0075】
学習装置100によれば、制御対象に対する制御の学習を、強化学習と、勾配モデルを用いた学習とによって行うことができる。勾配モデルを用いた学習では、バックプロパゲーションなど勾配法を用いた学習手法を用いて比較的短時間で学習を行えることが期待される。
学習装置100によれば、この点で、制御対象に対する制御の学習に要する時間が比較的短いことが期待される。
【0076】
また、学習装置100では、モデル学習部192が、強化学習に用いられたデータを用いて勾配モデルの学習を行う点で、モデル制御学習部193が勾配モデルを用いる際の内挿性が高いことが期待される。すなわち、モデル制御学習部193が勾配モデルに入力する引数値が、学習済みの引数値の範囲内にあり、この点で、勾配モデルの出力値の精度が比較的高いことが期待される。
学習装置100によれば、この点で、モデル制御学習部193が比較的高精度に制御対象に対する制御の学習を行えることが期待される。
【0077】
また、モデル制御学習部193は、勾配モデルと、強化学習で得られた方策とを用いて、制御対象に対する制御の時系列の初期値を生成し、制御対象に対する制御の学習にて、制御対象に対する制御の時系列を更新する。
ここで、モデル制御学習部193が用いる制御対象に対する制御の時系列の初期値の精度が低い場合、評価関数が示す評価が良い時系列の探索に時間を要し、モデル制御学習部193が行う学習に要する時間が比較的長くなることが考えられる。
これに対し、モデル制御学習部193が、強化学習の(暫定的な)結果を用いて制御の時系列の初期値を生成することで、評価関数が示す評価が良い時系列の探索に要する時間が比較的短くなり、これによって、モデル制御学習部193が行う学習に要する時間が比較的短くなることが期待される。
【0078】
また、強化学習部191は、制御対象に実行させる複数のタスクそれぞれについて強化学習を行う。モデル学習部192は、制御対象に実行させる複数のタスクそれぞれについて強化学習に用いられたデータを用いて、勾配モデルの学習をおこなってそのモデルを更新する。モデル制御学習部193は、複数のタスクそれぞれについて、強化学習を実行済みのタスクに関して学習済みの勾配モデルを用いて、制御対象に対する制御の学習を行う。
【0079】
ここで、強化学習は一般的にタスクへの依存性が高く、強化学習で得られる方策は、学習済みのタスク以外のタスクについては、決定する行動の精度が低いことが考えられる。
これに対し、学習装置100では、モデル学習部192が、タスクに依存しない勾配モデルの学習を行う。この勾配モデルを用いて、学習済みのタスク以外のタスクについても効率的に学習を行えることが期待される。例えば、強化学習部191が、次の対象タスクの強化学習における初期値を、勾配モデルを用いて設定するようにしてもよい。
【0080】
また、強化学習部191は、強化学習に用いる方策の初期値を、前記強化学習を実行済みのタスクに関して学習済みの勾配モデルを用いて決定する。
【0081】
ここで、強化学習の初期段階など学習の実績が蓄積されていない場合、行動をランダムに決定するような方策を用いることが考えられる。この場合、報酬として示される評価が良い評価となるような行動が選択される可能性が比較的低く、学習に時間を要することが考えられる。個々のタスクの学習に、それまでのタスクの学習の結果を用いない場合も、同様に、行動をランダムに決定するような方策を用いることが考えられ、学習に時間がかかることが考えられる。
【0082】
これに対し、強化学習部191が、強化学習を実行済みのタスクに関して学習済みのニューラル常微分方程式を用いて方策の初期値を決定することで、方策の決定に、それまでのタスクの学習の結果を反映させることができる。学習装置100によれば、この点で、行動をランダムに決定するような方策を用いる場合よりも良い評価となるような行動を選択し易くなり、学習に要する時間が比較的短いことが期待される。
【0083】
また、強化学習部191は、強化学習に用いる報酬関数を、強化学習を実行済みのタスクに関して学習済みの勾配モデルを用いて決定する。
【0084】
ここで、報酬関数を学習する場合、学習が進んで適切な報酬関数を得られるまでは、方策関数の学習を適切に行えないことが考えられる。報酬関数が累積報酬の計算を含み、タイムステップごとの係数が学習対象となっている場合など、報酬関数に含まれる学習対象のパラメータの個数が多い場合、特に、学習に時間を要することが考えられる。
【0085】
これに対し、強化学習部191が、強化学習に用いる報酬関数を、強化学習を実行済みのタスクに関して学習済みのニューラル常微分方程式を用いて決定することで、報酬関数の決定に、それまでのタスクの学習の結果を反映させることができる。学習装置100によれば、この点で、強化学習を実行済みのタスクの学習結果を用いない場合よりも短時間で報酬関数を得られるようになり、これにより、方策の学習に要する時間も比較的短いことが期待される。
【0086】
図5は、実施形態に係る学習装置の構成のもう1つの例を示す図である。
図5に示す構成で、学習装置610は、強化学習部611と、モデル学習部612と、モデル制御学習部613とを備える。
かかる構成で、強化学習部611は、制御対象に対する制御の強化学習を行う。モデル学習部612は、強化学習に用いられたデータを用いて、勾配モデルの制御を行う。勾配モデルは、制御対象に関する状態と、制御対象に対する制御と、制御対象に関する状態の時間変化との関係を示すモデルである。モデル制御学習部613は、勾配モデルと、強化学習の結果とを用いて、制御対象に対する制御の学習を行う。
強化学習部611は、強化学習手段の例に該当する。モデル学習部612は、モデル学習手段の例に該当する。モデル制御学習部613は、モデル制御学習手段の例に該当する。
【0087】
学習装置610によれば、制御対象に対する制御の学習を、強化学習と、勾配モデルを用いた学習とによって行うことができる。勾配モデルを用いた学習では、バックプロパゲーションなど勾配法を用いた学習手法を用いて比較的短時間で学習を行えることが期待される。
学習装置610によれば、この点で、制御対象に対する制御の学習に要する時間が比較的短いことが期待される。
【0088】
また、学習装置610では、モデル学習部612が、強化学習に用いられたデータを用いて勾配モデルの学習を行う点で、モデル制御学習部613が勾配モデルを用いる際の内挿性が高いことが期待される。すなわち、モデル制御学習部613が勾配モデルに入力する引数値が、学習済みの引数値の範囲内にあり、この点で、勾配モデルの出力値の精度が比較的高いことが期待される。
学習装置610によれば、この点で、モデル制御学習部613が比較的高精度に制御対象に対する制御の学習を行えることが期待される。
【0089】
強化学習部611は、例えば、
図1の強化学習部191等の機能を用いて実現することができる。モデル学習部612は、例えば、
図1のモデル学習部192等の機能を用いて実現することができる。モデル制御学習部613は、例えば、
図1のモデル制御学習部193等の機能を用いて実現することができる。
【0090】
図6は、実施形態に係る学習方法における処理の手順の例を示す図である。
図6に示す学習方法は、強化学習を行うこと(ステップS611)と、モデルを学習すること(ステップS612)と、モデルを用いた制御の学習を行うこと(ステップS613)とを含む。
【0091】
強化学習を行うこと(ステップS611)では、コンピュータが、制御対象に対する制御の強化学習を行う。
モデルを学習すること(ステップS612)では、コンピュータが、強化学習に用いられたデータを用いて、勾配モデルの学習を行う。勾配モデルは、制御対象に関する状態と、制御対象に対する制御と、制御対象に関する状態の時間変化との関係を示すモデルである。
モデルを用いた制御の学習を行うこと(ステップS613)では、コンピュータが、勾配モデルと、強化学習の結果とを用いて、制御対象に対する制御の学習を行う。
【0092】
図6に示す学習方法によれば、制御対象に対する制御の学習を、強化学習と、勾配モデルを用いた学習とによって行うことができる。勾配モデルを用いた学習では、バックプロパゲーションなど勾配法を用いた学習手法を用いて比較的短時間で学習を行えることが期待される。
図6に示す学習方法によれば、この点で、制御対象に対する制御の学習に要する時間が比較的短いことが期待される。
【0093】
また、
図6に示す学習方法では、強化学習に用いられたデータを用いて勾配モデルの学習を行う点で、勾配モデルを用いる際の内挿性が高いことが期待される。すなわち、勾配モデルに入力する引数値が、学習済みの引数値の範囲内にあり、この点で、勾配モデルの出力値の精度が比較的高いことが期待される。
図6に示す学習方法によれば、この点で、比較的高精度に制御対象に対する制御の学習を行えることが期待される。
【0094】
図7は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図7に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740と、不揮発性記録媒体750とを備える。
【0095】
上記の学習装置100、制御装置200、および、学習装置610のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。また、インタフェース740は、不揮発性記録媒体750用のポートを有し、不揮発性記録媒体750からの情報の読出、および、不揮発性記録媒体750への情報の書込を行う。
【0096】
学習装置100がコンピュータ700に実装される場合、処理部190およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0097】
また、CPU710は、プログラムに従って、記憶部180のための記憶領域を主記憶装置720に確保する。通信部110による他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。表示部120による画像の表示は、インタフェース740が表示装置を備え、CPU710の制御に従って各種画像の表示することで実行される。操作入力部130によるユーザ操作の受け付けは、インタフェース740が入力デバイスを備え、CPU710の制御に従ってユーザ操作を受け付けることで実行される。
【0098】
制御装置200がコンピュータ700に実装される場合、処理部290およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0099】
また、CPU710は、プログラムに従って、記憶部180のための記憶領域を主記憶装置720に確保する。通信部210による他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。表示部220による画像の表示は、インタフェース740が表示装置を備え、CPU710の制御に従って各種画像の表示することで実行される。操作入力部230によるユーザ操作の受け付けは、インタフェース740が入力デバイスを備え、CPU710の制御に従ってユーザ操作を受け付けることで実行される。
【0100】
学習装置610がコンピュータ700に実装される場合、強化学習部611と、モデル学習部612と、モデル制御学習部613との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0101】
また、CPU710は、プログラムに従って、学習装置610が処理を行うための記憶領域を主記憶装置720に確保する。学習装置610と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。学習装置610とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
【0102】
上述したプログラムのうち何れか1つ以上が不揮発性記録媒体750に記録されていてもよい。この場合、インタフェース740が不揮発性記録媒体750からプログラムを読み出すようにしてもよい。そして、CPU710が、インタフェース740が読み出したプログラムを直接実行するか、あるいは、主記憶装置720または補助記憶装置730に一旦保存して実行するようにしてもよい。
【0103】
なお、学習装置100、制御装置200、および、学習装置610が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0104】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0105】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0106】
(付記1)
制御対象に対する制御の強化学習を行う強化学習手段と、
前記強化学習に用いられたデータを用いて、前記制御対象に関する状態と、前記制御対象に対する制御と、前記制御対象に関する状態の時間変化との関係を示すモデルの学習を行うモデル学習手段と、
前記モデルと、前記強化学習の結果とを用いて、前記制御対象に対する制御の学習を行うモデル制御学習手段と、
を備える学習装置。
【0107】
(付記2)
前記モデル制御学習手段は、前記モデルと、前記強化学習で得られた方策とを用いて、前記制御対象に対する制御の時系列の初期値を生成し、前記制御対象に対する制御の学習にて、前記制御対象に対する制御の時系列を更新する、
付記1に記載の学習装置。
【0108】
(付記3)
前記強化学習手段は、前記制御対象に実行させる複数のタスクそれぞれについて前記強化学習を行い、
前記モデル学習手段は、前記制御対象に実行させる複数のタスクそれぞれについて前記強化学習に用いられたデータを用いて、前記モデルの学習をおこなってそのモデルを更新し、
前記モデル制御学習手段は、前記複数のタスクそれぞれについて、前記強化学習を実行済みのタスクに関して学習済みの前記モデルを用いて、前記制御対象に対する制御の学習を行う、
付記1または付記2に記載の学習装置。
【0109】
(付記4)
前記強化学習手段は、前記強化学習に用いる方策の初期値を、前記強化学習を実行済みのタスクに関して学習済みの前記モデルを用いて決定する、
付記3に記載の学習装置。
【0110】
(付記5)
前記強化学習手段は、前記強化学習に用いる報酬関数を、前記強化学習を実行済みのタスクに関して学習済みの前記モデルを用いて決定する、
付記3または付記4に記載の学習装置。
【0111】
(付記6)
コンピュータが、
制御対象に対する制御の強化学習を行い、
前記強化学習に用いられたデータを用いて、前記制御対象に関する状態と、前記制御対象に対する制御と、前記制御対象に関する状態の時間変化との関係を示すモデルの学習を行い、
前記モデルと、前記強化学習の結果とを用いて、前記制御対象に対する制御の学習を行う、
ことを含む学習方法。
【0112】
(付記7)
コンピュータに、
制御対象に対する制御の強化学習を行うことと、
前記強化学習に用いられたデータを用いて、前記制御対象に関する状態と、前記制御対象に対する制御と、前記制御対象に関する状態の時間変化との関係を示すモデルの学習を行うことと、
前記モデルと、前記強化学習の結果とを用いて、前記制御対象に対する制御の学習を行うことと、
を実行させるためのプログラム。
【符号の説明】
【0113】
1 システム
100、610 学習装置
110、210 通信部
120、220 表示部
130、230 操作入力部
180、280 記憶部
190、290 処理部
191、611 強化学習部
192、612 モデル学習部
193、613 モデル制御学習部
194 シミュレータ部
200 制御装置
291 制御実行部
910 制御対象
920 環境