(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-10
(45)【発行日】2024-09-19
(54)【発明の名称】訓練装置、推定装置、訓練方法、推定方法、プログラム及びコンピュータ読み取り可能な非一時的記憶媒体
(51)【国際特許分類】
G06N 3/044 20230101AFI20240911BHJP
G06N 3/08 20230101ALI20240911BHJP
G06N 3/045 20230101ALI20240911BHJP
【FI】
G06N3/044
G06N3/08
G06N3/045
(21)【出願番号】P 2021537354
(86)(22)【出願日】2020-08-05
(86)【国際出願番号】 JP2020030065
(87)【国際公開番号】W WO2021025075
(87)【国際公開日】2021-02-11
【審査請求日】2023-08-04
(31)【優先権主張番号】P 2019143956
(32)【優先日】2019-08-05
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100091487
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100118876
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100202429
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】吉川 真史
(72)【発明者】
【氏名】酒井 政裕
【審査官】千葉 久博
(56)【参考文献】
【文献】米国特許出願公開第2019/0108436(US,A1)
【文献】米国特許出願公開第2019/0050734(US,A1)
【文献】水谷陽太, 外1名,“モデルベース深層強化学習における隠れ層を用いた環境遷移モデルの提案”,ゲームプログラミングワークショップ2018論文集,2018年11月09日,p.72-79
【文献】CHEN, Tian Qi, 外3名,"Neural Ordinary Differential Equations",[online],2018年06月19日,[検索日:2024.5.28], インターネット<URL: https://arxiv.org/ abs/1806.07366v1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/044
G06N 3/08
G06N 3/045
(57)【特許請求の範囲】
【請求項1】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
第1ネットワークに、入力変数と前記第1ネットワークの出力である特徴量とを入力して、特徴量を抽出し、
第2ネットワークに、抽出した前記特徴量を入力して、前記入力変数に対する状態を推定する
、
ように構成され、
着目している系
の構造に基づ
いて生成された疎行列マスクが適用された前記第1ネットワークのパラメータ行列を用いて前記特徴量を抽出する、
推定装置。
【請求項2】
前記
疎行列マスクは、前記系を構成する要素の接続関係に基づいて前記要素が決定された行列
である、
請求項1に記載の推定装置。
【請求項3】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
第1ネットワークに、
行動を表す時系列データを示す入力変数と
、前記第1ネットワークの出力である特徴量と
、を入力して、特徴量を抽出し、
第2ネットワークに、抽出した前記特徴量を入力して、前記入力変数に対する状態を推定する、
ように構成され、
ランダムに要素が決定され
て生成された疎行列マスク
が適用された前記第1ネットワークのパラメータ行列を用いて前記特徴量を抽出する、
推定装置。
【請求項4】
前記
疎行列マスクは、前記第1ネットワークのパラメータ行列と同じ次元を有す
る、
請求項1乃至3のいずれか一項に記載の推定装置。
【請求項5】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
第1ネットワークに、入力変数と前記第1ネットワークの出力である特徴量とを入力して、特徴量を抽出し、
第2ネットワークに、抽出した前記特徴量を入力して、前記入力変数に対する状態を推定し、
前記第1ネットワークのパラメータ行列
には疎行列マスクが適用され、
前記パラメータ行列は、前記入力変数から前記特徴量へと変換する第1パラメータ行列と、前記特徴量から前記特徴量へと変換する第2パラメータ行列と、を備え、
前記
疎行列マスクは、前記第1パラメータ行列に適用する第1
疎行列マスクと、前記第2パラメータ行列に適用する第2
疎行列マスクと、を備え、
前記1又は複数のプロセッサは、
前記入力変数の各要素に対応するグラフを計算し、
前記グラフを縮約した縮約グラフを計算し、
前記縮約グラフの次元を前記特徴量の次元として、前記第1
疎行列マスク及び前記第2
疎行列マスクを生成する、
推定装置。
【請求項6】
前記1又は複数のプロセッサは、
前記入力変数のそれぞれの要素に対応する前記グラフの頂点と、当該要素に対応する前記グラフの頂点が属する前記縮約グラフの頂点から所定距離内に存在する前記縮約グラフの頂点を接続する要素を1とし、それら以外の要素を0として、前記第1
疎行列マスクを生成する、
請求項5に記載の推定装置。
【請求項7】
前記1又は複数のプロセッサは、
前記縮約グラフのそれぞれの頂点から、所定距離内に存在する前記縮約グラフの頂点を接続する要素を1とし、それら以外の要素を0として、前記第2
疎行列マスクを生成する、
請求項5に記載の推定装置。
【請求項8】
前記
疎行列マスクは、天候との因果関係に基づいて要素が決定された行列
である、
請求項1又は請求項2に記載の推定装置。
【請求項9】
前記1又は複数のプロセッサは、
第3ネットワークに、初期状態を入力し、前記初期状態の特徴量を抽出し、
前記第1ネットワークに、前記初期状態の特徴量を入力する、
請求項1乃至請求項8のいずれか一項に記載の推定装置。
【請求項10】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
第1ネットワークに、入力変数及び前記第1ネットワークの出力を入力して特徴量を抽出し、
第2ネットワークに、抽出した前記特徴量を入力して状態量を取得し、
前記状態量に基づいて、前記第1ネットワーク及び前記第2ネットワークを訓練し、
着目している系
の構造に基づ
いて生成された疎行列マスクが適用された前記第1ネットワークのパラメータ行列を用いて前記特徴量を抽出する、
訓練装置。
【請求項11】
前記
疎行列マスクは、前記系を構成する要素の接続関係に基づいて前記要素が決定された行列
である、
請求項10に記載の訓練装置。
【請求項12】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
第1ネットワークに、
行動を表す時系列データを示す入力変数
と、前記第1ネットワークの出力
と、を入力して特徴量を抽出し、
第2ネットワークに、抽出した前記特徴量を入力して状態量を取得し、
前記状態量に基づいて、前記第1ネットワーク及び前記第2ネットワークを訓練する、
ように構成され、
ランダムに要素が決定され
て生成された疎行列マスク
が適用された前記第1ネットワークのパラメータ行列を用いて前記特徴量を抽出する、
訓練装置。
【請求項13】
前記1又は複数のプロセッサは、
第3ネットワークに、初期状態を入力し、前記初期状態の特徴量を抽出し、
前記第1ネットワークに、前記初期状態の特徴量を入力する、
請求項10乃至請求項12のいずれか一項に記載の訓練装置。
【請求項14】
1又は複数のプロセッサが、
第1ネットワークに、入力変数と前記第1ネットワークの出力とを入力して特徴量を抽出し、
第2ネットワークに、抽出した前記特徴量を入力して、前記入力変数に対する状態を推定することを備え、
着目している系
の構造に基づ
いて生成された疎行列マスクが適用された前記第1ネットワークのパラメータ行列を用いて前記特徴量を抽出する、
推定方法。
【請求項15】
1又は複数のプロセッサが、
第1ネットワークに、入力変数及び前記第1ネットワークの出力を入力して特徴量を抽出し、
第2ネットワークに、抽出した前記特徴量を入力して状態量を取得し、
前記状態量に基づいて、前記第1ネットワーク及び前記第2ネットワークを訓練する、
ことを備え、
着目している系
の構造に基づ
いて生成された疎行列マスクが適用された前記第1ネットワークのパラメータ行列を用いて前記特徴量を抽出する、
訓練方法。
【請求項16】
請求項15に記載の訓練方法を用いて、前記第1ネットワーク及び前記第2ネットワークを生成する方法。
【請求項17】
1又は複数のコンピュータに、
第1ネットワークに、入力変数と前記第1ネットワークの出力とを入力して特徴量を抽出する手段、
第2ネットワークに、前記特徴量を入力して、前記入力変数に対する状態を推定する手段として機能させる、
プログラムであって、
着目している系
の構造に基づ
いて生成された疎行列マスクが適用された前記第1ネットワークのパラメータ行列を用いて前記特徴量を抽出する、
プログラム。
【請求項18】
1又は複数のコンピュータに、
第1ネットワークに、入力変数及び前記第1ネットワークの出力を入力して特徴量を抽出する手段、
第2ネットワークに、抽出した前記特徴量を入力して状態量を取得する手段、
前記状態量に基づいて、前記第1ネットワーク及び前記第2ネットワークを訓練する手段として機能させる、
プログラムであって、
着目している系
の構造に基づ
いて生成された疎行列マスクが適用された前記第1ネットワークのパラメータ行列を用いて前記特徴量を抽出する、
プログラム。
【請求項19】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
第1パラメータ行列により、現ステップの入力変数を特徴量の次元へと変換し、
第2パラメータ行列により、前ステップの前記特徴量を変換し、
前記第1パラメータ行列の変換及び前記第2パラメータ行列の変換に基づいて、現ステップの前記特徴量を出力する、
推定装置であって、
前記第1パラメータ行列は、前記入力変数のそれぞれの要素と、前記特徴量のそれぞれの要素との接続を表す第1
疎行列マスクが適用された行列であり、
前記第2パラメータ行列は、前記特徴量のそれぞれの要素同士の接続を表す第2
疎行列マスクが適用された行列であり、
前記第1
疎行列マスクは、着目している系に基づいて要素が決定された行列である、
推定装置。
【請求項20】
1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
第1パラメータ行列により、現ステップの入力変数を特徴量の次元へと変換し、
第2パラメータ行列により、前ステップの前記特徴量を変換し、
前記第1パラメータ行列の変換及び前記第2パラメータ行列の変換に基づいて、現ステップの前記特徴量を出力し、
前記出力に基づいて、前記第1パラメータ行列及び前記第2パラメータ行列を訓練する、
訓練装置であって、
前記第1パラメータ行列は、前記入力変数のそれぞれの要素と、前記特徴量のそれぞれの要素との接続を表す第1
疎行列マスクが適用された行列であり、
前記第2パラメータ行列は、前記特徴量のそれぞれの要素同士の接続を表す第2
疎行列マスクが適用された行列であり、
前記第1
疎行列マスクは、着目している系の構造に基づいて要素が決定された行列である、
訓練装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、訓練装置、推定装置、訓練方法、推定方法及びプログラムに関する。
【背景技術】
【0002】
様々な事故等の事象をコンピュータ内で再現するために、物理シミュレータが広く用いられている。これらの物理シミュレータは、実際に背後にある物理法則を仮定して反復演算を行うことにより物理現象を再現するが、計算量が多く、例えば、プラントのオペレータの訓練に用いる場合、計算時間が長くなるためオペレータの訓練時間が長くなる。また、一般的にこれらの事象は、微分を求めることが難しく、外部からの制御がある場合にシミュレーションするのが困難である。
【0003】
一方、機械学習によるニューラルネットワークをこのような現象に応用することは、確率的挙動が少なく、データも少ない場合には、確率的なモデリングを行うことにより汎化性能が低くなる。また、制御等による外部からの影響の反映は、一般的には即時的に起きることはなく、ニューラルネットワークによる挙動の推定及びモデリングも困難である。
【先行技術文献】
【非特許文献】
【0004】
【文献】F. Gers, "Long Short-Term Memory in Recurrent Neural Networks," 2001, [インターネット], 2019年7月1日確認, http://www.felixgers.de/papers/phd.pdf
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、機械学習により精度の高いシミュレータを実現する、訓練装置、推定装置、訓練方法、推定方法、プログラム及びコンピュータ読み取り可能な非一時的記憶媒体を提供する。
【課題を解決するための手段】
【0006】
一実施形態によれば、推定装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、第1ネットワークに、時系列の入力変数及び前記第1ネットワークの出力である潜在変数を入力して、現ステップにおける潜在変数を抽出し、第2ネットワークに、前記潜在変数を入力して、前記入力変数に対する時系列の状態を推定する、ように構成される。
【図面の簡単な説明】
【0007】
【
図2】一実施形態に係る推定装置の機能の構成を示す図。
【
図3】一実施形態に係る推定装置の機能を示すブロック図。
【
図4】一実施形態に係る訓練装置の機能を示すブロック図。
【
図5】一実施形態に係る訓練装置の処理を示すフローチャート。
【
図6】一実施形態に係る訓練装置の機能を示すブロック図。
【
図7】一実施形態に係る訓練装置の処理を示すフローチャート。
【
図8】一実施形態に係る訓練装置の処理を示すフローチャート。
【
図9】一実施形態に係る縮約グラフの一例を示す図。
【
図10】一実施形態に係るハードウェア実装例を示す図。
【発明を実施するための形態】
【0008】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
【0009】
例えば、全ての実施形態において、一例としてプラントに関する装置等について説明するが、これには限られず、ある程度決定論的に事象が発生する対象であれば、同じ手法を適用することが可能である。本実施形態は、プラント以外では、例えば、電気回路、水道システム、自動車、生産装置、ロボット、センサ・ネットワーク、スマートグリッド、船舶、飛行機、産業機械等及びその他種々の分野に適用することができる。
【0010】
(第1実施形態)
本実施形態における訓練対象は、自己回帰モデルであるリカレントニューラルネットワーク(RNN:Recurrent Neural Network)である。この訓練対象は、一例としてGRU(Gated Recurrent Unit)モデルとするが、これには限られず、例えば、LSTM(Long Short Term Memory)等の他の構成であっても適用することが可能である。
【0011】
図1は、限定されない実施形態における自己回帰モデルの自己回帰部分(GRU)の構成図である。図の右に記載しているように、四角で囲まれたオペレーションはニューラルネットワークレイヤを示し、丸で囲まれたオペレーションはポイントワイズオペレーションを示し、矢印はベクトルトランスファを示し、h
tへと丸角かつ鋭角で接続されるものはベクトルの結合を示し、x
t又はh
t-1から鋭角かつ丸角で出て行くものはベクトルのコピーを示す。
【0012】
GRUは、直前の自己の出力データ(以下、潜在変数と記載する)ht-1と、現段階における入力変数xtとが入力され、現時点のユニットの潜在変数htを生成する。直前の自己の出力するデータをネットワークへと入力して新たな出力をし、この出力が次の段階の入力となる。このように、GRUには、自己回帰的にデータが入力され、新たな出力を生成する。
【0013】
GRU内の各ベクトルの値は、次のように求めることができる。
【数1】
【数2】
【数3】
【数4】
【0014】
ここで、記号odot(丸の中にドット)は、ベクトルの成分同士の積を表し、σは、シグモイド関数を表す。Wr、Wz、Wは、入力変数空間のデータ(入力変数x)を、潜在変数空間のデータ(第1ネットワークの潜在変数h)へと変換する行列であり、Ur、Uz、Uは、潜在変数空間のデータを潜在変数空間のデータへと変換する行列である。
【0015】
訓練の対象となるのは、Wr、Ur、Wz、Uz、W、Uで示されるパラメータの行列である。訓練の大筋については一般的な機械学習、特にディープラーニングの手法と同等であるので、詳細は省略する。例えば、教師ありのバックプロパゲーションにより実行されるが、これに限られず、適切に訓練されるものであればどのような手法でもよい。本実施形態においては、このGRUに基づいて、ネットワークを構成し、決定論的な自己回帰とランダム疎行列マスクと、を用いた物理シミュレータを実装する。
【0016】
本実施形態では、決定論的にGRUを機能させるために、パラメータ行列Wr、Ur、Wz、Uz、W、Uにマスクを適用し、各パラメータ行列を疎行列として処理する。以下、このマスクを疎行列マスクと記載する。疎行列マスクは、対応するパラメータ行列と同じ要素数を有し、要素のそれぞれは、0又は1の値を有する。
【0017】
なお、マスクを適用するとは、パラメータ行列と対応する疎行列マスクとをその要素ごとに積を取る処理のことを言う。
【0018】
疎行列マスクは、着目している系、例えば、プラントの構造に基づいて設計されてもよい。プラントの構造は、プラントごとに固定されたものであり、また、各要素同士の接続関係が分かるものである。そこで、この接続関係を用いて疎行列マスクを生成し、各パラメータ行列に適用してもよい。例えば、直接接続している要素が関連するベクトルの成分同士を接続する箇所を1とし、それ以外の箇所を0として疎行列マスクを生成してもよい。
【0019】
一方、ベクトル及びパラメータ行列の成分は、プラントにおける種々の状況等により莫大な数となることがある。このような場合は、上記のようにプラントの構造に基づいてマスクを精製することが困難となる。このような場合に、決定論的に物理現象を再現するため、ランダムに疎行列マスクを生成してもよい。例えば、二項分布を用いて疎行列マスクを生成してもよい。pythonのnumpyライブラリを用いた疑似コードとして、
m_wr = numpy.random.binomial(1, ratio, size=wr.shape)
等として記載される。
【0020】
二項分布に限られず、他の乱数分布であってもよい。例えば、平均値と分散を決めた正規分布の乱数を発生させて、あるしきい値を用いて二値化して疎行列マスクを生成してもよい。同様に、ポアッソン分布、ベータ分布等に基づいてもよい。また、物理現象にとらわれず、よりランダム性の高いメルセンヌツイスター等に基づいた他の乱数発生器に基づいて疎行列マスクを生成してもよい。
【0021】
このように疎行列マスクをパラメータ行列に適用することにより、自己回帰の結果として取得される潜在変数が先行する潜在変数のいずれの要素に基づいているかを制限し、自己回帰の汎化性能を向上することが可能となる。例えば、プラントの構造をモデルに適用することができる。また、疎行列マスクを適用するのではなく、パラメータ行列そのものを疎行列として定義してもよい。すなわち、パラメータ行列をスパースな行列とできるものであればよい。
【0022】
図2は、本実施形態に係る推定装置(物理シミュレータ)の機能構成を示す図である。この
図2に示すように、推定装置は、第1ネットワークと、第2ネットワークと、第3ネットワークと、を備える。
【0023】
予測装置の入力変数は、例えば、プラントのオペレータの行動及び天候等の不確実な要素を表すノイズ、のうち少なくとも一方を備える時系列データ(時系列の入力変数)xtである。例えば、時刻1、2、・・・、t、t+1、・・・、T、に対応する行動とノイズのデータ列が入力される。物理シミュレータとして用いる場合、任意の時刻において、例えば、起こっている事象に対してプラントオペレータによりオペレーションされた行動が入力として割り込んでもよい。なお、時刻tとして説明しているが、これは時刻には限られず、決定論的な挙動を示す系に対するステップ等としてもよい。
【0024】
時系列データが行動列である場合、これは、例えば、プラントのバルブがどの程度開けられているかの時系列であってもよいし、プラントがPID制御(Proportional-Integral-Differential Controller)により制御される場合には、その設定値であってもよい。この他、ユーザが制御するデータ、各箇所における電圧値等のその他の行動に関する時系列データであってもよい。
【0025】
ノイズ列である場合、これは、気温、気圧等の環境情報であってもよい。また、例えば、ライフラインに関するデータであり、どこでどの程度の資源が使用されているか等のデータであってもよいし、プラントの各装置における挙動に関するノイズ列であってもよい。これらには限られず、プラントに関するノイズ列であってもよい。
【0026】
第1ネットワークは、上述したパラメータ行列に疎行列マスクを適用したGRU(又は、他の自己回帰ニューラルネットワーク)である。例えば、時刻tにおける状態に着目してみる。第1ネットワークは、時刻t-1、すなわち、直前の第1ネットワークからの出力ht-1及び時刻tにおける入力変数xtを入力とする。時刻tにおいて出力された結果htは、第2ネットワーク及び次の時刻の第1ネットワークへと出力される。
【0027】
第2ネットワークは、例えば、全結合層を備えるニューラルネットワークであり、第1ネットワークの出力である潜在変数htが入力されると、時刻tにおける状態stを出力するネットワークである。すなわち、第2ネットワークは、第1ネットワークから出力される決定論的なプラントの状態の特徴量から、実際のプラントの状態を示す量を取得するネットワークである。第2ネットワークは、全結合層を備えるとしたが、これには限られず、特徴量を状態へと適切に変換できるネットワークであればよい。
【0028】
ここで、一般的なGRUにおいては、最終的な出力sが回帰するデータとして入力されるが、本実施形態においては、最終的な状態は、第1ネットワークへと入力されず、単に第1ネットワークの入力が回帰的に入力される。すなわち、第1ネットワークへは、第1ネットワークの出力する量が入力される一方で、第2ネットワークの出力する量は入力されない。このような処理により、推定された最終的な状態量(例えば、密なベクトルで表される状態量)が第1ネットワークに入力されずに、決定論的に推定された特徴量を回帰するので、時系列にわたって決定論的な特徴量を抽出することが可能となる。
【0029】
第3ネットワークは、第2ネットワークと同様に全結合層を備え、初期状態s0を第1ネットワークの最初の入力となる潜在変数h0へと変換するネットワークである。この第3ネットワークは、初期状態として入力されたベクトルを、例えば、パラメータ行列とバイアスベクトルを備える全結合層により適切に特徴量を抽出し、時刻1における第1ネットワークの入力となる潜在変数h0へと変換する。第2ネットワークと同様に、全結合層には限られず、適切に第1ネットワークの入力となる量を抽出できるネットワークであればよい。
【0030】
初期状態は、例えば、基本的には推定する状態量と同じ量である。ただし、これには限られるものではなく、例えば、プラントの各所に接地されている温度系、物質の流量計等の他の観測値を備えるものであってもよい。
【0031】
図3は、本実施形態における上記のネットワークを備える推定装置の機能を示すブロック図である。推定装置1は、入力部100と、記憶部102と、第3ネットワーク104と、第1ネットワーク106と、第2ネットワーク108と、出力部110と、を備える。
【0032】
推定装置1は、入力部100を介して各種入力変数を受信する。入力変数は、例えば、上記で説明したように、初期状態に関するデータと、行動及びノイズの時系列データである。入力変数は、必要に応じて記憶部102に格納され、必要となったタイミングで各要素から読み出されてもよい。別の例として、必要となるタイミングに間に合うように、都度入力部100がネットワーク等を介して入力変数を受け付けてもよい。
【0033】
記憶部102は、推定装置1に必要となるデータ、プログラム等を記憶する。例えば、推定装置1がプログラムを実行することによりソフトウェアによる情報処理がハードウェア資源により具体的に実現される場合には、必要となるプログラムや実行ファイルが記憶部102に記憶されていてもよい。また、上述したように、入力部100が受け付けたデータを記憶部102に記憶してもよい。
【0034】
第3ネットワーク104は、初期状態のベクトルを第1ネットワーク106の入力に合うように変換する。第3ネットワーク104は、上述したように、例えば、全結合層を備えるニューラルネットワークにより構成されてもよい。
【0035】
第1ネットワーク106は、第3ネットワーク104からの出力又は第1ネットワーク106自身からの出力、及び、入力部100から入力された時系列の入力変数を入力すると、決定論的に処理された特徴量を出力する。第1ネットワーク106は、自己の出力値を入力とする、自己回帰ニューラルネットワークを備えて構成される。
【0036】
第2ネットワーク108は、第1ネットワーク106から出力された決定論的に処理された特徴量を状態量へと変換する。第2ネットワーク108は、上述したように、例えば、全結合層を備えるニューラルネットワークにより構成されてもよい。この第2ネットワーク108は、入力部100から入力された時系列の入力変数に対して、第1ネットワーク106を介して時系列の状態量を出力する。
【0037】
出力部110は、第2ネットワーク108が出力した時系列の状態量を出力する。ここで、出力とは、インタフェースを介した推定装置1の外部への出力はもちろん、例えば、記憶部102に時系列データを記憶させることをも含む概念であるとする。
【0038】
推定装置1が出力する状態量、すなわち、第2ネットワーク108が変換する量は、物理シミュレータとして必要となる量である。例えば、プラントであれば、どのデバイスの電圧がどれだけあがり、どの領域の熱発生がどの程度であり、全体としての発電量がどの程度であるか、又は、製造物がどの程度の歩留まりで製造されているか、等のデータである。もちろん、推定装置1は、決定論的に事象が発生する他の物理系のシミュレータとして動作してもよい。
【0039】
物理シミュレータとして動作する場合、入力部100は、適宜入力を受け付けてもよい。例えば、出力部110を介してシミュレートされている状態をディスプレイ等に出力し、オペレータが当該ディスプレイ等を参照して、制御のシミュレーションをしてもよい。この場合、制御値を入力部100から任意のタイミングにおいてオペレータが入力できるようにしてもよい。
【0040】
オペレータが入力した制御値は、行動を示す時系列データへと変換され、入力部100を介して推定装置1へと入力される。また、これには限られず、入力部100は、オペレータからの制御を受け付けると、行動を示す時系列データへと変換して第1ネットワーク106の入力としてもよい。このように、外部からの制御を受け付ける物理シミュレータとして動作する場合には、推定装置1は、外部からの制御信号等を時系列の入力変数として受け付けてもよい。
【0041】
また、ノイズデータとして、ランダムなノイズを入力することにより、系のシミュレーションを実行してもよい。この場合、外部からの制御入力は、必須ではなく、どのような現象が発生しうるかをシミュレートすることができる。もっとも、制御操作である行動の時系列データと、ノイズの時系列データの双方を入力してもよく、この場合、さらに様々な条件においての物理系のシミュレーションを行うことも可能である。
【0042】
以上のように、本実施形態に係る推定装置1によれば、自己回帰モデルを用いる物理シミュレータを実装することが可能である。この物理シミュレータは、初期状態と時系列の入力変数を入力して、ニューラルネットワークによりこれらのデータを変換するだけで物理現象をシミュレートすることが可能であるので、高速な物理現象の推定を行うことができる。また、時間的コストに加え、必要な特徴量を取得するためのメモリ資源のコスト削減をも実現することが可能である。
【0043】
図4は、本実施形態に係る訓練装置2の機能を示すブロック図である。訓練装置2は、推定装置1を機械学習により訓練する装置であり、入力部200と、記憶部202と、マスク生成部204と、第3ネットワーク206と、第1ネットワーク208と、第2ネットワーク210と、誤差算出部212と、パラメータ更新部214と、出力部216と、を備える。
【0044】
入力部200は、データの入力を受け付ける。入力されるデータは、訓練の対象となるデータであり、例えば、初期状態データ、時系列の行動及びノイズデータ、並びに、教師データである時系列の状態量のデータである。必要であれば、入力されたデータは、記憶部202に格納されてもよい。
【0045】
記憶部202は、訓練装置2に必要なデータを記憶する。例えば、入力部200から入力されたデータを記憶してもよい。また、訓練装置2がソフトウェアにより実行されるのであれば、実行に必要なプログラム、実行ファイル等、また、各ネットワークの初期パラメータ等のデータを記憶してもよい。また、ネットワークの訓練途中における各種パラメータを記憶部202が記憶してもよい。
【0046】
マスク生成部204は、第1ネットワークにおいてパラメータ行列に適用する疎行列マスクを生成する。疎行列マスクは、上述したように、対象となる系に基づいて生成されてもよいし、ランダムに生成されてもよい。マスク生成部204は、生成したマスクを第1ネットワーク208に出力し、各パラメータ行列にマスクを適用させる。
【0047】
第3ネットワーク206、第1ネットワーク208、第2ネットワーク210に関しては、上述の説明と同様であるので詳細は省略する。入力部200から入力された初期状態を第3ネットワーク206で変換して第1ネットワーク208に出力する。第1ネットワーク208は、入力部200から入力された時系列の行動、ノイズデータと、自らの出力値に基づいて、疎行列マスクを適用されたパラメータ行列により決定論的な特徴量を抽出する。第2ネットワーク210は、第1ネットワーク208の出力を状態量へと変換する。
【0048】
誤差算出部212は、第2ネットワーク210が出力した状態量について、例えば、教師データとの誤差を算出し、パラメータ更新部214へと出力する。教師データが存在しない場合には、適切な参照データとの誤差を算出してもよい。
【0049】
パラメータ更新部214は、誤差算出部212が求めた誤差に基づいて、例えば、誤差を逆伝播し、各ネットワークにおける各パラメータの勾配を求めることによりパラメータを更新する。パラメータ更新部214は、所定の条件を満たすまで、ネットワークの更新を継続する。所定の条件を満たした後、出力部216を介して更新されたパラメータ、訓練に用いた疎行列マスク及びその他ネットワークの構成に必要な情報等を出力する。
【0050】
出力部216は、パラメータ更新部214が更新したパラメータ等を訓練装置2の内部又は外部へと出力する。
【0051】
図5は、本実施形態に係る訓練装置2の処理の流れを示すフローチャートである。この
図5を用いて訓練装置2の処理について説明する。
【0052】
まず、入力部200を介して訓練データを受け付ける(S100)。
【0053】
次に、マスク生成部204は、疎行列マスクを生成する(S102)。
【0054】
次に、第3ネットワーク206に入力部200から入力された初期状態データを入力し、初期状態データに対する特徴量を抽出する(S104)。
【0055】
次に、第1ネットワーク208に第3ネットワーク206から出力されたデータ及び行動、ノイズの時系列データにおける時刻1のデータを入力し、決定論的に定められた特徴量を抽出する(S106)。
【0056】
次に、第2ネットワーク210に第1ネットワーク208が出力した決定論的に定められた特徴量を入力し、状態量データへと変換する(S108)。
【0057】
次に、全ての時系列データの処理が終了しているか否かを判断する(S110)。時系列データの処理が終了していない場合(S110:NO)、S106へと戻り、次の時刻の処理を行う。例えば、時刻t-1に続いて時刻tの処理をする場合、第1ネットワーク208に、時刻t-1における第1ネットワーク208の出力値、及び、行動、ノイズの時刻tにおける入力変数を入力し、第1ネットワーク208の時刻tにおける出力値を取得する。このように、最初のS106においては、第3ネットワーク206の出力を用いるものの、次の時刻からは、第3ネットワーク206の出力を入力することなく、第1ネットワーク208の出力が入力される。
【0058】
一方で、全ての時系列データの処理が終了している場合(S110:YES)、誤差算出部212は、各時刻における第2ネットワーク210の出力と、教師データ或いは適正な参照データとの誤差を算出する(S112)。
【0059】
次に、パラメータ更新部214は、誤差算出部212が算出した誤差に基づいて、パラメータを更新する(S114)。例えば、誤差算出部212が算出した誤差を適切に誤差逆伝播することにより各ネットワークのパラメータを更新する。
【0060】
次に、パラメータ更新部214は、訓練が終了したか否かを判断する(S118)。訓練の終了は、例えば、所定のエポック数の処理が終了した、相互検証により所定のエラーを下回った、又は、誤差算出部212の算出した誤差が所定値を下回った、等、一般的に行われている機械学習手法と同様に判断されてもよい。
【0061】
訓練が終了していない場合(S116:NO)、S106へと戻り、更新されたパラメータを用いて初期状態から処理を繰り返す。
【0062】
訓練が終了している場合(S116:YES)、出力部216を介して訓練装置2の外部又は内部に、更新されたパラメータ、及び、その他各ネットワークを構成するのに必要なデータを出力して(S118)、処理を終了する。なお、出力部216は、疎行列マスクの情報を併せて出力してもよい。
【0063】
出力された第1ネットワーク208、第2ネットワーク210及び第3ネットワーク206のパラメータを用いることにより、
図3における推定装置1の第1ネットワーク106、第2ネットワーク108及び第3ネットワーク104のそれぞれを生成することができる。
【0064】
以上のように、本実施形態によれば、疎行列マスクを用い、特徴量を決定論的に定めて処理を行うことにより、教師データが少ない場合においても、精度の高い推定を行うネットワークを訓練することが可能となる。
【0065】
これは、決定論的に結果が定められる物理系において、物理シミュレータについて考慮すべき種々の変数等の全てを全結合層等により結合することに比べて、マスクを用いて変数同士の接続関係を制限することにより、余計な接続関係を削除することに起因すると考えられる。
【0066】
また、上述の推定装置1について述べたように、この訓練装置2により生成されたネットワークを推定装置1に適用することにより、高速な物理現象のシミュレートが可能となる。
【0067】
(第2実施形態)
前述においては、GRU、すなわち、第1ネットワーク208の訓練については、マスク生成部204が生成したマスクを適用することにより決定論的な自己回帰モデルを生成することにより、速度向上及び精度向上を図った。本実施形態においては、第1ネットワーク208の訓練において微分方程式をモデリングする訓練を行うことにより、精度を高めようとするものである。
【0068】
例えば、プラントの挙動の大部分は、微分方程式で表現することができる。そこで、微分方程式を用いたモデリングを行うことにより、より物理現象に即したモデリングを行うことができる。
【0069】
xがプラントの状態等を表すとき、一般的に以下のような微分方程式によりxを表現することができる。
【数5】
【0070】
ここで、f(x)は自明ではないが、訓練データを用いることによりモデリングを行う。xの初期状態x(0)をx
0で表すと、求めるべき状態は、以下のように表すことができる。
【数6】
【0071】
このように、f(x)のモデリングができれば、tについての積分を求めることにより、任意の時刻tにおける状態x(t)を推定することが可能となる。
【0072】
積分計算を数値計算によって求めることにより、f(x)を任意の関数としてもx(t)を推定することが可能となる。ここで、f(x)をニューラルネットワーク等の微分可能なモデルに適用することにより、x(t)が微分可能となり、勾配降下法等の最適化手法により、入力変数からf(x)を推定することができる。
【0073】
このようにネットワークを構成するために、
図2における第1ネットワークとして、以下のような微分方程式をモデリングするネットワークを構成する。
【数7】
【0074】
すなわち、入力変数の時系列データと、第1ネットワーク自らの出力を入力して、現時刻における特徴量を出力する。出力された特徴量は、第2ネットワークにおいて状態へと変換されて出力される。この第2ネットワークの出力値と教師データとの誤差を求めることにより、第1ネットワークのパラメータを最適化する。
【0075】
入力されるデータは、理想的には連続したデータであることが望ましい。本実施形態においては、単位時刻ごとに数値計算を行うので、例えば、単位時刻ごとに離散化された入力変数及び状態に基づいて訓練を行う。この離散化は、データの入力前に行われてもよいし、データの入力後に訓練装置又は推定装置において行われてもよい。例えば、時刻tから時刻t+1までの間の量は、時刻tの値に変換されて入力される。これには限られず、時刻tから時刻t+1までの平均値を算出して、時刻tの値としてもよいし、適切に離散化した値を用いることができるのであれば、どのような手法で離散化してもよい。
【0076】
第1ネットワークは、訓練された結果、式(7)で示す数式の積分値を出力する、すなわち、特徴量h(t)を出力する自己回帰型のニューラルネットワークとして構成される。
【0077】
推定装置1の構成は、基本的に
図3に示す推定装置1と同様の構成である。上記のように微分方程式をモデリングしたニューラルネットワークを訓練することにより、推定装置1の第1ネットワーク106が形成される。第2ネットワーク108及び第3ネットワーク104については、前述の実施形態と同様に、それぞれ、自己回帰モデルからの出力を状態へと変換するネットワーク及び初期状態から特徴量を抽出するネットワークとして訓練され、形成される。
【0078】
図6は、本実施形態に係る訓練装置2の機能を示すブロック図である。基本的には
図4に示す第1実施形態に係る訓練装置2と同等であるが、マスク生成部の代わりに、離散化部218を備える。離散化部218は必要に応じて、データを離散化してネットワークへと入力する。第1ネットワーク208の構成以外の他の要素については、第1実施形態の同じ符号の要素と同等の機能を有する。
【0079】
図7は、本実施形態に係る訓練装置2の処理の流れを示すフローチャートである。
図5と同じ符号が付されている箇所は、同じ処理を表す。異なる箇所は、訓練データを受け付けた(S100)後に、このデータを離散化する(S120)処理である。上述のように、データを離散化することにより、数値計算により微分方程式をモデリングすることが可能となる。
【0080】
以上のように、本実施形態によれば、微分方程式をモデリングした自己回帰型のニューラルネットワークを用いることにより、時刻ごとに物理現象をシミュレートすることが可能となる。例えば、プラントの挙動等は、微分方程式で表現することができる。この微分方程式をネットワークとして訓練することにより、ネットワークを介した数値処理をするだけであるので、時刻ごとに微分方程式を数値計算により解いて状態を取得するよりも高速にシミュレートすることができる。
【0081】
前述の全ての実施形態によれば、データ数が少なくモデル生成が困難でシミュレーションがしづらいものに対しても対応が可能となる。第1実施形態においては、決定論的に変数同士の結合を疎結合とすることができ、あまり意味がない変数同士の結合を抑制することができるためである。第2実施形態においては、微分方程式自体を機械学習の対象とすることにより、機械学習によらない回帰分析等であれば十分でない量の離散的なデータからも、値を外挿することができるためである。
【0082】
これらの実施形態は、強化学習や探索に用いることもできる。
【0083】
例えば、ある程度の精度が得られているシミュレータ等により出力されたデータセットに基づいて、前述の各実施形態の訓練を行うことにより、強化学習を行い、当該シミュレータの動作を高速に再現する推定装置を実装することも可能である。
【0084】
これは、既に取得されている予測モデルを用いたモデルベースの強化学習にも適用することが可能である。例えば、予測モデルにより予測されたデータに対して、よりよく制御が実行できるような強化学習を、前述の各実施形態に記載の方法を用いて実行することができる。別の例として、予測モデルに対してあるノイズが存在する場合に、よりよい制御値を、ビームサーチ、モンテカルロ木探索等の時系列の探索手法を用いて探索することができる。
【0085】
例えば、入力変数として過去及び現在のデータをモニタリングして、前述の推定装置の入力とすることにより、将来的な実機の挙動を予想することも可能である。
【0086】
なお、前述の各実施形態においては、推定装置1及び訓練装置2は、それぞれ別の装置であるとして説明したが、これには限られない。例えば、訓練装置2として訓練した装置そのものを用いて推定装置1として機能させてもよい。
【0087】
(変形例)
前述においては、例えば、決定論的な推定をする場合に、訓練において疎行列マスクをパラメータ行列に対して適用することを説明したが、この疎行列マスクは、別の用途として用いることも可能である。
【0088】
疎行列マスクは、例えば、任意の時系列予測タスクにも利用可能である。一例として、需要予測等では、天候が需要に因果関係をもつ要素とそうでは無い要素とがあるが、このような観点において疎行列マスクを用いることができる。より具体的には、天候と因果関係を有する要素に対して有効となるマスクを適用し、このマスクを掛けた要素についてモデリングを実行してもよい。
【0089】
疎行列マスクは、別の例としては、グラフを表す行列(例えば、エッジを表す行列)に対して用いてもよい。一例として、電気回路等のように互いに接続が制限される場合や、建築における部屋同士及び部屋と廊下との接続関係を示す場合にも、この疎行列マスクを用いてモデリングをしてもよい。もちろん、言語のようにグラフを用いて表すことのできるモデリングにもこの疎行列マスクを用いることが可能である。
【0090】
疎行列マスクは、さらに別の例として、逐次的な計算を実行するモデルに適用してもよい。逐次的な計算の場合、変数同士の処理が決定論的に定義できることがある。このような場合に、疎行列マスクをパラメータ行列に適用することができる。パラメータ行列は、演算子を含むパラメータであってもよく、疎行列マスクにより変数同士の接続を表現し、変数同士の演算を疎行列マスクとパラメータ行列によって定義してもよい。このように、時系列のみならず、空間的或いは概念的に定義される離散的な連続量に対して疎行列マスクを適用してもよい。
【0091】
上記に限られず、パラメータ行列により変数の関係が定義される種々の場合に、疎行列マスクを適用することが可能である。
【0092】
以上のように、本変形例によれば、モデリングにおいて、スパースなパラメータを用いることにより、隠れ変数の次元に対するパラメータの数を抑制させることが可能となり、汎化性能を向上させることが可能となる。同様に、過学習をしてしまう可能性を抑制することもできる。
【0093】
(第3実施形態)
次に、第1実施形態で説明した疎行列マスクについて、さらに一般化した手法について説明する。本実施形態においては、式(1)から式(4)のそれぞれのパラメータ行列に対する疎行列マスクの生成方法を説明する。
【0094】
図8は、本実施形態に係る疎行列マスクの生成処理を示すフローチャートである。一例として、プラントにおける最適化を実行する例について説明する。
【0095】
まず、マスク生成部204は、プラントの構成要素を頂点、その間の依存関係を辺とするグラフGを計算する(S1020)。マスク生成部204は、構成要素を頂点として定義し、例えば、構成要素Aが構成要素Bに影響を及ぼすのであれば、A → Bという辺が存在するグラフGを生成する。
【0096】
このグラフGは、プラントのシミュレータが存在する場合には、プラントのシミュレーションモデルに基づいて構築することができる。シミュレーションモデルの多くは、構成要同士を、その接続関係に基づいて接続することにより記述されている。この接続関係、パラメータの依存関係を、シミュレーションモデルから取得することが可能であり、これらの情報を用いることにより、マスク生成部204は、グラフGを生成することが可能となる。
【0097】
プラントのシミュレータが存在しない場合であっても、プラントの設計は、一般的に、P&ID(Piping and instrumentation diagram)、又は、配線計装図若しくは配管計装図等と呼ばれる図面を用いて記述されている。マスク生成部204は、これらの図面に基づいてグラフGを生成することができる。
【0098】
上記の例において、構成要素Aと構成要素Bとの間に接続関係があることは取得できるが、その依存関係の向きが不明な場合には、A → B及びB → Aの双方向の辺を有するグラフとして扱ってもよい。また、別の例として、依存関係の方向に拘わらず、全ての接続される頂点同士が、双方向の辺により接続されるとしてもよい。
【0099】
次に、マスク生成部204は、縮約グラフを生成する(S1022)。本処理は、部分グラフG’を計算し、このG’を縮約したグラフG’’を生成する2段階の処理であってもよい。
【0100】
(縮約グラフ生成の第1例)
まず、マスク生成部204は、各観測変数に対応する頂点間において、他の観測変数を通らない最短経路を計算する。他の観測変数を通らないという条件は、必須の条件ではない。
【0101】
次に、マスク生成部204は、それらの経路上の頂点だけからなる部分グラフG’を計算する。
【0102】
そして、マスク生成部204は、部分グラフG’において、分岐することなく接続されている頂点群が同一の頂点となるように、グラフを縮約して、縮約グラフG’’を取得する。
【0103】
このよう処理を経ることにより、マスク生成部204は、因果関係を適切に表現できる縮約グラフを生成することが可能となる。すなわち、経路上のある頂点からの影響を適切に表現できるとともに、互いに依存性を有しない頂点間における影響を抑制することができる。
【0104】
(縮約グラフ生成の第2例)
まず、潜在変数の次元が決定される。この次元の決定は、例えば、ハイパーパラメータチューニング、メタラーニング等により実行される。より具体的な一例としては、訓練データに基づいて、ハイパーパラメータを種々に変化させながら訓練を実行し、よい結果が取得できたハイパーパラメータから、潜在変数の次元を決定する。
【0105】
次に、マスク生成部204は、頂点のクラスタリングを実行し、望ましい潜在変数の次元に対応する個数の頂点のクラスタを取得する。このクラスタリングには、一例として、スペクトラルクラスタリングの手法を用いてもよい。これには限られず、K-means、ウォード法等、適切に潜在変数に対応して頂点のクラスタリングをできる手法であればよい。
【0106】
そして、マスク生成部204は、クラスタに属する頂点を同一の頂点として、縮約グラフG’’を取得する。
【0107】
第1例では、事前の学習等が必要ないという利点がある。一方で、第2例では、潜在変数の次元を設定することができるという利点がある。
【0108】
縮約グラフG’’が生成された後、マスク生成部204は、式(1)~式(4)のU、Ur、Uz(第2パラメータ行列)に対する疎行列マスク(第2疎行列マスク)を生成する(S1024)。
【0109】
図9は、縮約グラフG’’の一例を示す図である。○は、頂点を示し、中の数字が頂点の番号を、頂点間の直線が辺をしめす。辺は、無向で表されているが、上述したように、有向であってもよい。有効の場合、依存関係にしたがって片方向へ、又は、依存関係によらず双方向へのグラフであってもよい。
【0110】
マスク生成部204は、U等に対する疎行列マスクの生成処理においては、この縮約グラフG’’に基づいてマスクを生成する。縮約グラフG’’において、j番目の頂点からi番目の頂点までの距離がn以下である場合に、i行j列目の成分を1とし、それ以外である場合に、0である疎行列を取得する。
【0111】
以下に示す式は、
図9において、n = 1とした場合の疎行列マスクの例を示す。
【数8】
例えば、
図9の縮約グラフG’’が無向グラフである、又は、双方に方向を有する有向グラフである場合、式(8)のように疎行列マスクが表される。このような場合、グラフは、対象行列となる。一方で、頂点から頂点への一方的な依存関係が存在し、それを有向グラフとして表す場合には、対象行列であるとは限らない。
【0112】
また、n = 1の場合、自らまでの距離が0であると考えて、以下に示すように、対角成分が1である疎行列マスクとしてもよい。
【数9】
例えば、このように、自らの頂点に対して1を設定しておき、訓練中にU等の対角成分が0に近づくように学習を実行してもよい。
【0113】
ただし、疎行列マスクにおいて1の成分が多くなるとオーバーフィッティングをする可能性が高くなる。このため、疎行列マスクの1の成分が適切になるようにnを設定することが望ましい。例えば、n = 1、2等としてもよい。また、パラメータ行列の成分が多い場合には、これよりも大きい値であっても構わない。これは、対象とする系において、依存関係に基づき、どの程度の距離の頂点まで影響を及ぼすかを考慮して決定してもよい。また、データ同士の影響の冗長性を有するように、多少大きな値をnとして設定してもよい。
【0114】
図8に戻り、次に、マスク生成部204は、W、W
r、W
z(第1パラメータ行列)に対する疎行列マスク(第1疎行列マスク)を生成する(S1026)。このW等は、入力変数から潜在変数へと変換する行列である。このW等に対する疎行列マスクは、縮約グラフG’’の各頂点に属するグラフGの頂点が、G’’上におけるどの頂点まで依存関係を持たせるかを示すマスクとなる。
【0115】
例えば、
図9の例において、縮約グラフG’’における頂点1に属するグラフGの各頂点は、縮約グラフG’’の頂点2、5にそれぞれ依存する。例えば、縮約グラフG’’の頂点1にグラフGにおける、頂点1、2、3が属していたとする。この場合、グラフGの頂点1、2、3から、縮約グラフG’’の頂点2、5には、影響を及ぼす可能性があると考えることができる。マスク生成部204は、このような影響を及ぼしうる潜在変数に対して、入力変数からの値を渡すように、疎行列マスクを生成する。
【0116】
例えば、上記のように、グラフGの頂点1、2、3から、縮約グラフG’’の頂点2、5に影響があるとする場合、マスク生成部204は、以下のような疎行列マスクを生成する。ただし、グラフGの各頂点は、縮約グラフG’’のいずれかの頂点に属するものとする。
【数10】
マスク生成部204は、例えば、グラフGの頂点jをj列目として、この頂点が属する縮約グラフG’’の頂点が頂点iに依存性を有するとする。この場合、W等に対する疎行列マスクのi行j列の成分を1とする。依存性の有しない行列の要素は、0とする。
【0117】
例えば、式(10)において、グラフGの頂点1に対応する1列目に着目すると、縮約グラフG’’の頂点2、5に対して依存性を有するため、2、5行目の成分が1となり、他の成分は0となる。同様に、2、3列目も成分を決定する。例えば、最後の列は、縮約グラフG’’の頂点6に属するとする。この場合、式(10)に示すように、最後の列の成分は、[0 0 1 1 0 0]Tとなる。
【0118】
上記と同様に、グラフGの頂点が、自らが属する縮約グラフG’’の頂点に対して依存性を有するとしてもよい。この場合、W等に対する疎行列マスクは、式(11)のように表すことができる。
【数11】
もちろん、上述したようにnを適切に設定することもできるし、片方の依存性を持たせる有向グラフとすることもできる。これらの適用については、上述に記載するU等に対する疎行列マスクの成分の決定と同様に計算すればよい。
【0119】
マスク生成部204は、このように、W等に対する疎行列マスクを生成する。
【0120】
以上のように、マスク生成部204は、疎行列マスクを生成する。このように疎行列マスクを生成することにより、潜在変数同士の変換を行うパラメータであるU等、また、入力変数から潜在変数への変換を行うパラメータであるW等について、疎行列マスクを、頂点の依存性に基づいて適切に生成することが可能となる。このように疎行列マスクを生成することにより、適切にパラメータから変換される変数同士における影響を適用しつつ、最適化をするパラメータ数を削減することが可能となる。前述の各実施形態のように、乱数として実行することもできるが、本実施形態のように、依存性に基づいたマスクを生成することにより、より高速かつ精度の高い訓練を実現することが可能となる。
【0121】
また、縮約グラフG’’を生成する場合に、第1例のように、部分グラフG’を生成してもよい。このように部分グラフを生成することにより、プラント等の構成をそのまま用いる場合と比較して、予測対象に影響がないと考えられる構成要素からのパラメータを介しての影響を小さくすることができる。
【0122】
また、グラフの縮約をすることにより、潜在変数の次元を調整することができる。特に、クラスタリングを用いることにより、この次元の調整を実行することができる。また、直接的にだけではなく、間接的に接続された要素間での影響を考えたモデルを生成することも可能となる。さらに、1単位時刻内で要素間の影響が伝わり得る場合においても、本実施形態によれば、適切にモデルの最適化をすることができる。また、1単位時刻内で要素間の影響がない場合であっても、潜在変数の成分と構成要素との対応関係に幅を持たせることが可能であり、この結果、訓練において潜在変数にも幅を持たせた変換をすることにより精度を向上させることができる。
【0123】
なお、上記においては、GRUの例を挙げたが、前述の実施形態で記載したように、LSTM、RNN等を用いても同様に処理することが可能である。この場合、マスク生成部204は、適切に各パラメータに対して疎行列マスクを生成する。
【0124】
上記のようにグラフを用いた接続関係の代わりに、グレンジャー因果、グラフィカルLasso等、他の手法を用いることも可能である。
【0125】
第1実施形態から第3実施形態の全ての態様において、
図2における第3ネットワークを削除し、初期状態ではなく、過去の状態を用いて、最初の入力となる潜在変数h
0を取得してもよい。例えば、過去の状態列s[-n]、s[-n + 1]、・・・、s[-1]、s[0]を用いて、
図2に示されるような自己回帰ネットワークを最初の入力となる潜在変数h
0を取得してもよい。このネットワークも疎行列マスクを用いたモデルであってもよい。例えば、第3実施形態で説明したような、疎行列マスクの生成方法が有効である。
【0126】
以上のように、本開示における態様によれば、前述の各実施形態の特徴を有するとともに、プラントを構成する各要素のダイナミクス、プラント全体のダイナミクスを物理モデル等として記述してシミュレーションを行うモデル(ホワイトボックスモデル)と比較して、モデル作成のコストが小さくなる。また、これらを全く与えずにデータのみから機械学習により予測を行うモデルを訓練するモデル(ブラックボックスモデル)と比較して、少量のデータから訓練可能であり、データ効率を向上させることができる。また、物理的な構成を反映することにより、過学習しづらく、外挿に強いモデルを訓練することが可能となる。
【0127】
このように、より高精度な予測を実行することにより、より安全、又は、より経済性の高い制御、運転等を行うことができる。さらに、詳細なモデリングを必要としないで精度を高めることができるので、モデリングの工数を削減し、様々な設備への展開を容易にすることもできる。また、省データにおける訓練を実現することが可能であるので、蓄積されたヒストリデータが少ない場合、又は、シミュレータが存在しないか、存在はするが低速である場合等にも容易に展開を行うことができる。
【0128】
前述した実施形態における推定装置1及び訓練装置2の各機能は、アナログ回路、デジタル回路又はアナログ回路とデジタル回路の混合回路で実現されてもよい。また、推定装置1及び訓練装置2は各機能の制御を行う制御回路を備えていてもよい。これらの各回路は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等により実装されてもよい。
【0129】
上記の全ての記載において、推定装置1及び訓練装置2の一部または全部は、ハードウェアで構成されていてもよいし、CPU等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、推定装置1、訓練装置2及びそれらの少なくとも一部の機能を実現するソフトウェアをフレキシブルディスクやCD-ROM等の記憶媒体に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理が実行されてもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。このようにして、コンピュータを上記の実施形態の装置とすることができる。また、このようにして、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実現されてもよい。さらに、ソフトウェアがASIC、FPGA等の回路に実装されることにより、ソフトウェアにより実行されることを想定していた情報処理がハードウェアにより実行されてもよい。モデルの生成や、生成したモデルを利用した処理は、例えば、GPU等のアクセラレータを使用して行ってもよい。
【0130】
ソフトウェアを収納する記憶媒体の種類は特に限定されるものではない。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスクやメモリ等の固定型の記憶媒体であってもよい。記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
【0131】
図10は、一実施形態におけるハードウェア構成の一例を示すブロック図である。推定装置1及び訓練装置2は、プロセッサ71と、主記憶装置72と、補助記憶装置73と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現できる。
【0132】
なお、
図10のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、
図10では、1台のコンピュータ7が示されているが、ソフトウェアが複数のコンピュータにインストールされて、当該複数のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。
【0133】
推定装置1及び訓練装置2の各種演算は、1又は複数のプロセッサ(例えば、GPU等のアクセラレータ)を用いて、又は、ネットワークを介した複数のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられた処理回路及び記憶装置の少なくとも一方により実行され又は機能されるものであってもよい。このように、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0134】
プロセッサ71は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry)であってもよい。また、プロセッサ71は、コア数を限定しないCPU又はGPUであってもよいし、専用の処理回路を含む半導体装置等であってもよい。プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。換言すると、推定装置1及び訓練装置2、並びにそれらの各ハードウェア構成は、1又は複数のプロセッサ71により実現されてもよい。ここで、処理回路は、1チップ上に配置された1又は複数の電気回路を指してもよいし、2つ以上のチップあるいはデバイス上に配置された1又は複数の電気回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0135】
主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。推定装置1及び訓練装置2内において各種データを保存するためのメモリは、主記憶装置72又は補助記憶装置73により実現されてもよい。例えば、記憶部102、202は、この主記憶装置72又は補助記憶装置73に実装されていてもよい。別の例として、コンピュータ7がアクセラレータを備える場合には、記憶部102、202は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
【0136】
また、メモリ(記憶装置)1つに対して、複数のプロセッサが物理的又は電気的に接続されてもよいし、単数のプロセッサが物理的又は電気的に接続されてもよい。プロセッサ1つに対して、複数のメモリ(記憶装置)が物理的又は電気的に接続されてもよい。一実施形態におけるハードウェアが少なくとも1つのメモリ(記憶装置)とこのメモリ(記憶装置)に接続される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つのメモリ(記憶装置)に物理的に又は電気的に接続される構成を含んでもよい。また、複数のコンピュータに含まれるメモリ(記憶装置)とプロセッサによって、この構成が実現されてもよい。さらに、メモリ(記憶装置)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよく、この場合、これらメモリ(記憶装置)へのアクセスを制御するメモリコントローラをさらに含んでもよい。
【0137】
ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して通信接続された外部装置9Aと情報のやり取りが行われてもよい。
【0138】
外部装置9Aは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイス等が含まれる。外部装置9Aとして、外部のメモリ(記憶装置)、例えば、ネットワークストレージ等を備えてもよい。また、外部装置9Aは、推定装置1及び訓練装置2の構成要素の一部の機能を有する装置でもよい。そして、コンピュータ7は、推定装置1及び訓練装置2の処理結果の一部又は全部を、クラウドサービスのように通信ネットワーク8を介して受信してもよいし、コンピュータ7の外部へと送信してもよい。
【0139】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB(Universal Serial Bus)等のインタフェースである。外部装置9Bは、外部記憶媒体でもよいし、ストレージ装置でもよい。記憶部102、202は、外部装置9Bにより実現されてもよい。
【0140】
外部装置9Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声等を出力する装置等でもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカ等があるが、これらに限られるものではない。
【0141】
なお、外部装置9Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネル等のデバイスを備え、これらのデバイスにより入力された情報をコンピュータ7に与える。入力装置からの信号はプロセッサ71に出力される。
【0142】
本明細書において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)は、a、b、c、a-b、a-c、b-c、a-b-cのいずれかの組み合わせを含む。また、a-a、a-b-b、a-a-b-b-c-c等のいずれかの要素の複数のインスタンスとの組み合わせをカバーする。さらに、a-b-c-dのように、さらにdを有する組み合わせ、すなわち、a、b及び/又はc以外の他の要素が加えられた組み合わせをカバーする。
【0143】
本明細書において、「データに基づいて」の表現(同様な表現を含む)は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。
【0144】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。
【符号の説明】
【0145】
1:推定装置、
100:入力部、102:記憶部、
104:第3ネットワーク、106:第1ネットワーク、108:第2ネットワーク、
110:出力部、
2:訓練装置、
200:入力部、202:記憶部、204:マスク生成部、
206:第3ネットワーク、208:第1ネットワーク、210:第2ネットワーク、
212:誤差算出部、214:パラメータ更新部、216:出力部、218:離散化部