(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】データ算出装置、データ算出方法およびプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241106BHJP
【FI】
G06N20/00
(21)【出願番号】P 2022550307
(86)(22)【出願日】2020-09-18
(86)【国際出願番号】 JP2020035546
(87)【国際公開番号】W WO2022059189
(87)【国際公開日】2022-03-24
【審査請求日】2023-02-22
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】木佐森 慶一
(72)【発明者】
【氏名】清川 裕
【審査官】渡辺 順哉
(56)【参考文献】
【文献】国際公開第2020/105468(WO,A1)
【文献】国際公開第2016/031174(WO,A1)
【文献】吉本潤一郎 ほか,変分法的ベイズ推定法に基づく正規化ガウス関数ネットワークと階層的モデル選択法,計測自動制御学会論文集,日本,社団法人計測自動制御学会,2003年05月31日,Vol.39, No.5,pp.503-512,ISSN 0453-4654
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
対象の部分を模擬して
、前記
対象を模擬する上位モデルのパラメータ値を出力する下位モデルについて、前記上位モデルのパラメータ値の事後分布を示すデータに基づく、前記下位モデルのパラメータ値の事後分布を示すデータを算出する下位事後分布データ算出手段と、
前記下位モデルのパラメータ値の事後分布を示すデータに基づくパラメータ値を前記下位モデルに適用してシミュレーションを実行する下位モデルシミュレーション実行手段と、
前記下位モデルを用いたシミュレーションの結果に基づく前記上位モデルのパラメータ値のサンプルデータを前記上位モデルに適用してシミュレーションを実行する上位モデルシミュレーション実行手段と、
前記上位モデルシミュレーション実行手段による前記シミュレーションの結果として得られる前記上位モデルの出力のサンプルデータと、前記上位モデルの出力に対するターゲットデータとの類似度に基づいて、前記上位モデルの出力に対するターゲットデータに基づく、前記上位モデルのパラメータ値の事後分布を示すデータを算出する上位事後分布データ算出手段と、
を備えるデータ算出装置。
【請求項2】
前記上位事後分布データ算出手段は、前記上位モデルのパラメータ値のサンプルデータのカーネル平均に基づいてカーネルハーディングを実行し、前記上位モデルのパラメータ値の事後分布を示すデータを算出する、
請求項
1に記載のデータ算出装置。
【請求項3】
前記下位事後分布データ算出手段は、前記下位モデルのパラメータ値のサンプルデータのカーネル平均に基づいてカーネルハーディングを実行し、前記下位モデルのパラメータ値の事後分布を示すデータを算出する、
請求項1
または請求項2に記載のデータ算出装置。
【請求項4】
前記下位事後分布データ算出手段が算出する前記下位モデルのパラメータ値の事後分布を示すデータに基づいて、前記対象を制御する制御手段
をさらに備える、請求項1から
3の何れか一項に記載のデータ算出装置。
【請求項5】
コンピュータが、
対象の部分を模擬して
、前記
対象を模擬する上位モデルのパラメータ値を出力する下位モデルについて、前記上位モデルのパラメータ値の事後分布を示すデータに基づく、前記下位モデルのパラメータ値の事後分布を示すデータを算出
し、
前記下位モデルのパラメータ値の事後分布を示すデータに基づくパラメータ値を前記下位モデルに適用してシミュレーションを実行し、
前記下位モデルを用いたシミュレーションの結果に基づく前記上位モデルのパラメータ値のサンプルデータを前記上位モデルに適用してシミュレーションを実行し、
前記上位モデルを用いたシミュレーションの結果として得られる前記上位モデルの出力のサンプルデータと、前記上位モデルの出力に対するターゲットデータとの類似度に基づいて、前記上位モデルの出力に対するターゲットデータに基づく、前記上位モデルのパラメータ値の事後分布を示すデータを算出する、
データ算出方法。
【請求項6】
コンピュータに、
対象の部分を模擬して
、前記
対象を模擬する上位モデルのパラメータ値を出力する下位モデルについて、前記上位モデルのパラメータ値の事後分布を示すデータに基づく、前記下位モデルのパラメータ値の事後分布を示すデータを算出することと、
前記下位モデルのパラメータ値の事後分布を示すデータに基づくパラメータ値を前記下位モデルに適用してシミュレーションを実行することと、
前記下位モデルを用いたシミュレーションの結果に基づく前記上位モデルのパラメータ値のサンプルデータを前記上位モデルに適用してシミュレーションを実行することと、
前記上位モデルを用いたシミュレーションの結果として得られる前記上位モデルの出力のサンプルデータと、前記上位モデルの出力に対するターゲットデータとの類似度に基づいて、前記上位モデルの出力に対するターゲットデータに基づく、前記上位モデルのパラメータ値の事後分布を示すデータを算出することと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ算出装置、データ算出方法およびプログラムに関する。
【背景技術】
【0002】
シミュレータの出力相当するターゲットデータに基づいて、そのシミュレータがターゲットデータを出力するようなパラメータ値を推定する技術が提案されている。例えば、特許文献1には、カーネルABC(Kernel ABC; Kernel Approximate Bayesian Computation)およびカーネルハーディング(Kernel Herding)を用いて、ターゲットデータに応じたパラメータ値の事後分布を算出することが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
シミュレーションの対象の規模が大きい場合など、値を推定したいパラメータの個数が多い場合、パラメータ値の推定に時間がかかることが考えられる。特に、値を推定したいパラメータの個数の増加に応じて、パラメータ値の推定に要する時間が指数的に増加することが考えられる。このため、値を推定したいパラメータの個数が多い場合、現実的な時間内にパラメータの推定値を得られないことが考えられる。
【0005】
本発明の目的の1つは、上述の課題を解決することのできるデータ算出装置、データ算出方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、データ算出装置は、対象の部分を模擬して、前記対象を模擬する上位モデルのパラメータ値を出力する下位モデルについて、前記上位モデルのパラメータ値の事後分布を示すデータに基づく、前記下位モデルのパラメータ値の事後分布を示すデータを算出する下位事後分布データ算出手段と、前記下位モデルのパラメータ値の事後分布を示すデータに基づくパラメータ値を前記下位モデルに適用してシミュレーションを実行する下位モデルシミュレーション実行手段と、前記下位モデルを用いたシミュレーションの結果に基づく前記上位モデルのパラメータ値のサンプルデータを前記上位モデルに適用してシミュレーションを実行する上位モデルシミュレーション実行手段と、前記上位モデルシミュレーション実行手段による前記シミュレーションの結果として得られる前記上位モデルの出力のサンプルデータと、前記上位モデルの出力に対するターゲットデータとの類似度に基づいて、前記上位モデルの出力に対するターゲットデータに基づく、前記上位モデルのパラメータ値の事後分布を示すデータを算出する上位事後分布データ算出手段と、を備える
【0008】
本発明の第2の態様によれば、データ算出方法では、コンピュータが、対象の部分を模擬して、前記対象を模擬する上位モデルのパラメータ値を出力する下位モデルについて、前記上位モデルのパラメータ値の事後分布を示すデータに基づく、前記下位モデルのパラメータ値の事後分布を示すデータを算出し、前記下位モデルのパラメータ値の事後分布を示すデータに基づくパラメータ値を前記下位モデルに適用してシミュレーションを実行し、前記下位モデルを用いたシミュレーションの結果に基づく前記上位モデルのパラメータ値のサンプルデータを前記上位モデルに適用してシミュレーションを実行し、前記上位モデルを用いたシミュレーションの結果として得られる前記上位モデルの出力のサンプルデータと、前記上位モデルの出力に対するターゲットデータとの類似度に基づいて、前記上位モデルの出力に対するターゲットデータに基づく、前記上位モデルのパラメータ値の事後分布を示すデータを算出する。
【0009】
本発明の第3の態様によれば、プログラムは、コンピュータに、対象の部分を模擬して、前記対象を模擬する上位モデルのパラメータ値を出力する下位モデルについて、前記上位モデルのパラメータ値の事後分布を示すデータに基づく、前記下位モデルのパラメータ値の事後分布を示すデータを算出することと、前記下位モデルのパラメータ値の事後分布を示すデータに基づくパラメータ値を前記下位モデルに適用してシミュレーションを実行することと、前記下位モデルを用いたシミュレーションの結果に基づく前記上位モデルのパラメータ値のサンプルデータを前記上位モデルに適用してシミュレーションを実行することと、前記上位モデルを用いたシミュレーションの結果として得られる前記上位モデルの出力のサンプルデータと、前記上位モデルの出力に対するターゲットデータとの類似度に基づいて、前記上位モデルの出力に対するターゲットデータに基づく、前記上位モデルのパラメータ値の事後分布を示すデータを算出することと、を実行させるためのプログラムである。
【発明の効果】
【0010】
上記したデータ算出装置、データ算出方法およびプログラムによれば、シミュレータの出力に基づいて値を推定したいパラメータの個数が多い場合でも、比較的短時間で値を推定することができる。
【図面の簡単な説明】
【0011】
【
図1】実施形態に係るデータ算出装置の機能構成を示す概略ブロック図である。
【
図2】実施形態に係るデータ算出装置が用いる対象のモデルの例を示す図である。
【
図3】実施形態に係るデータ算出装置が階層的なデータ同化を行う処理手順の例を示すフローチャートである。
【
図4】実施形態に係るデータ算出装置が下位モデルごとに行う処理の手順の例を示すフローチャートである。
【
図5】実施形態に係る対象の例に該当する生産システムの構成を示す図である。
【
図6】実施形態に係る生産システムを模擬するモデルの例を示す図である。
【
図7】実施形態に係る事前分布に基づく上位モデルのパラメータ値のサンプルの例を示す図である。
【
図8】実施形態に係る上位モデルの出力値のサンプルの第1例を示す図である。
【
図9】実施形態に係る事後分布に基づく上位モデルのパラメータ値のサンプルの例を示す図である。
【
図10】実施形態に係る事前分布に基づく下位モデルのパラメータ値のサンプルの例を示す図である。
【
図11】実施形態に係る下位モデルの出力値のサンプルの例を示す図である。
【
図12】実施形態に係る事後分布に基づく下位モデルのパラメータ値のサンプルの例を示す図である。
【
図13】実施形態に係る下位モデルの出力値のサンプルの例を示す図である。
【
図14】実施形態に係る上位モデルの出力値のサンプルの第2例を示す図である。
【
図15】実施形態に係る上位モデルのパラメータ値のサンプルの第3例を示す図である。
【
図16】実施形態に係るデータ算出装置による下位モデルのパラメータ値の推定結果の例を示す図である。
【
図17】実施形態に係るモデルの層数が3層以上である場合の中間層におけるデータの入出力の例を示す図である。
【
図18】実施形態に係るデータ算出装置の構成例を示す図である。
【
図19】実施形態に係るデータ算出装置の構成のもう1つの例を示す図である。
【
図20】実施形態に係るデータ算出方法における処理手順の例を示す図である。
【
図21】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係るデータ算出装置の機能構成を示す概略ブロック図である。
図1に示す構成で、データ算出装置100は、通信部110と、表示部120と、操作入力部130と、記憶部170と、制御部180とを備える。制御部180は、初期設定部181と、ループ処理部182と、上位シミュレータ部183と、上位事後分布データ算出部184と、下位シミュレータ部185と、下位事後分布データ算出部186とを備える。
また、
図1には、シミュレーションモデルによる模擬(シミュレーション、Simulation)の対象である対象900が示されている。対象900のシミュレーションモデルを、対象900のモデル、あるいは単にモデルとも称する。
【0013】
データ算出装置100は、モデルの出力に対するターゲットデータを用いて、モデルの出力値がターゲットデータの値に近付くように、モデルのパラメータ値を推定する。データ算出装置100が、例えばワークステーション(Workstation)またはパソコン(Personal Computer;PC)等のコンピュータを用いて構成されていてもよい。
【0014】
データ算出装置100が、1つの装置として構成されていてもよいし、複数の装置の組み合わせにて構成されていてもよい。例えば、上位シミュレータ部183、および、下位シミュレータ部185が、モデルごとに別々のシミュレータ装置として構成されていてもよい。
ターゲットデータの値をターゲット値とも称する。モデルの出力値がターゲット値に近付くように、モデルのパラメータ値を推定する処理をデータ同化とも称する。データ同化におけるパラメータ値の推定をパラメータ値の調整とも称する。
【0015】
ターゲットデータは、対象900における実測データであってもよい。この場合、データ算出装置100がパラメータ値を推定することで、対象900を高精度に模擬できるようにモデルを調整することができる。
また、推定結果のパラメータ値を参照することで、対象900の状態を推定することができる。例えば、対象900が工場であり、データ算出装置100による推定対象のパラメータに、工場の生産ラインごとの生産量である場合、データ算出装置100が推定するパラメータ値を、実測データから推定される、工場の生産ラインごとの生産量として用いることができる。
【0016】
あるいは、ターゲットデータは、対象900における目標値を示すデータであってもよい。この場合、データ算出装置100による推定結果のパラメータを参照することで、目標を達成するための方策を作成することができる。さらには、データ算出装置100によれば、作成した方策に基づいて工場内の各装置を制御するなど、対象900を制御することができる。
【0017】
例えば、対象900が工場であり、データ算出装置100による推定対象のパラメータに、工場の生産ラインごとの生産量である場合、データ算出装置100が推定するパラメータ値を、ターゲットデータに示される目標値を達成するための、工場の生産ラインごとの生産量として用いることができる。
データ算出装置100によれば、工場の生産ラインごとに推定した生産量に基づいて生産ラインごとに機器を制御するなど、推定結果に基づく制御を行うことができる。
【0018】
データ算出装置100は、対象900を模擬するモデルとして階層的なモデルを用いる。例えば、データ算出装置100が、対象900の全体を模擬する上位モデルと、対象900の一部を模擬する1つ以上の下位モデルとを含むモデルを用いるようにしてもよい。
【0019】
ここでいう「階層」は、上下関係を定めることができることである。例えば上記のように、全体と部分との関係に基づいて、対象900の全体を模擬するモデルを上位とし、対象900の部分を模擬するモデルを下位とすることができる。この上下関係は固定的であってもよいし、可変であってもよい。例えば、会社を模擬するモデルで、経費の流れに関しては経理部のモデルが上位となるが、資材の流れに関しては購買部のモデルが上位になるというように、データ算出の目的に応じて上下関係が異なってもよい。
【0020】
さらに、データ算出装置100は、下位モデルが上位モデルのパラメータ値を出力する、階層的なモデルを用いる。これにより、データ算出装置100は、モデルの出力のターゲットデータに基づいてモデルのパラメータ値を推定する処理を、モデルの階層構造に従って繰り返す。
【0021】
例えば、データ算出装置100は、上位モデルの出力のターゲットデータに基づいて上位モデルのパラメータ値を推定する。そして、データ算出装置100は、推定した上位モデルのパラメータ値を下位モデルの出力のターゲットデータとして用いて、下位モデルのパラメータ値を推定する。
【0022】
このように、データ算出装置100がモデルの階層構造に応じてモデルのパラメータ値の推定を階層的に行うことで、対象900を1つのモデルのみで模擬する場合よりも、個々のモデルのパラメータの個数を少なくすることができる。例えば、上位モデルのパラメータが、複数の生産ラインを含む部門ごとの生産量をパラメータとして用いることで、個々の生産ラインの生産量をパラメータとして用いる場合よりも、上位モデルのパラメータの個数が少なくて済む。
【0023】
ここで、モデルのパラメータの個数が多い場合、パラメータ値の推定に時間がかかることが考えられる。特に、パラメータの個数の増加に応じて、パラメータ値の推定に要する時間が指数的に増加することが考えられる。このため、パラメータの個数が多い場合、現実的な時間内にパラメータの推定値を得られないことが考えられる。
これに対して、データ算出装置100では、上記のように個々のモデルのパラメータの個数が比較的少ない階層的なモデルを用いることで、パラメータの個数が多い1つのモデルを用いる場合よりも計算時間が短くて済むと期待される。
【0024】
対象900は、データ算出装置100による模擬の対象である。階層的なシミュレーションモデルを用いて模擬可能ないろいろなものを対象900とすることができる。
例えば、対象900は工場であってもよい。そして、データ算出装置100が、工場全体を模擬する上位のモデルと、工場の一部を模擬する1つ以上の下位のモデルとを含む階層的なモデルを用いるようにしてもよい。
あるいは、対象900が、生産拠点、物流設備、および、販売拠点を含むサプライチェーンであってもよい。そして、データ算出装置100が、サプライチェーン全体を模擬する上位のモデルと、生産拠点、物流設備、販売拠点のそれぞれを模擬する下位のモデルとを含む階層的なモデルを用いるようにしてもよい。
【0025】
あるいは、対象900が、ある地域であってもよい。そして、データ算出装置100が、地域全体について感染の広がりの状況を模擬する上位のモデルと、その地域の一部または交通機関での感染の状況を模擬する下位のモデルとを含む階層的なモデルを用いるようにしてもよい。
対象900は、実在していてもよいし、仮想的なものであってもよい。
【0026】
図2は、データ算出装置100が用いる対象900のモデルの例を示す図である。
図2の例で、モデル200は、1つの上位モデル210と、S個の下位モデル220-1から220-Sまでとを含む。Sは、S≧1の整数であり、下位モデル220の個数を示す。下位モデル220-1から220-Sまでを総称して下位モデル220とも表記する。
【0027】
上位モデル210への入力をベクトルXで示し、上位モデル210のパラメータをベクトルZで示し、上位モデル210の出力をベクトルYで示す。ベクトルX、Y、Zは何れも実数ベクトルである。ベクトルX、Yの何れも次元数は1次元以上であればよい。ベクトルZの次元数はS次元以上であればよい。
ベクトルXを入力ベクトルXとも称する。ベクトルYを出力ベクトルYとも称する。ベクトルZをパラメータベクトルZとも称する。
【0028】
入力ベクトルXの要素に、整数値または二値などの離散値をとる要素が含まれていてもよい。同様に、出力ベクトルYの要素に、整数値または二値などの離散値をとる要素が含まれていてもよい。パラメータベクトルZの要素に、整数値または二値などの離散値をとる要素が含まれていてもよい。
上位モデル210をfで示し、f(X,Z)=Yと表記する。あるいは、入力ベクトルXの表記を省略してf(Z)=Yとも表記する。
【0029】
下位モデル220-sへの入力をベクトルXsで示し、下位モデル220-sのパラメータをベクトルθsで示し、下位モデル220-sの出力をベクトルZsで示す。sは、1≦s≦Sの整数である。
ベクトルXs、Zs、θsは何れも実数ベクトルである。Xs、ベクトルZs、θsの何れも次元数は1次元以上であればよい。ベクトルXsの次元数は、0次元以上であればよい。
【0030】
入力ベクトルXsの要素に、整数値または二値などの離散値をとる要素が含まれていてもよい。同様に、出力ベクトルZsの要素に、整数値または二値などの離散値をとる要素が含まれていてもよい。パラメータベクトルθsの要素に、整数値または二値などの離散値をとる要素が含まれていてもよい。
下位モデル220をgsで示し、gs(Xs,θs)=Zsと表記する。あるいは、入力ベクトルXsの表記を省略し、gs(θs)=Zsとも表記する。
【0031】
データ算出装置100は、入力ベクトルXの値と出力ベクトルYの値との組み合わせを示すターゲットデータを取得し、上位モデル210の出力値がターゲット値に近付くようにパラメータベクトルZの値を調整する。
データ算出装置100による調整前のパラメータベクトルZの確率分布を事前分布πZと表記し、事前分布πZによるパラメータベクトルZの値をサンプルZ<PRI>と表記する。ベクトルの確率分布は、ベクトルの要素ごとの確率分布の組み合わせで示されてもよい。
【0032】
事前分布πZは、ユーザが対象900の情報に基づいて設定するようにしてもよい。あるいは、事前分布πZとして一様分布など所定の分布を用いるようにしてもよい。
データ算出装置100による調整後のパラメータベクトルZの確率分布を事後分布p(Z|Y)と表記し、事後分布p(Z|Y)によるパラメータベクトルZの値をサンプルZ<POST>と表記する。ここでの事後分布p(Z|Y)は、出力ベクトルYのターゲット値が与えられたときの、パラメータベクトルZの値の事後分布を意味する。
【0033】
また、データ算出装置100は、上位モデル210への入力値(入力ベクトルXの値)に基づいて下位モデル220-sへの入力値(入力ベクトルXsの値)を決定する。例えば、入力ベクトルXsのベクトル空間が、入力ベクトルXのベクトル空間の部分空間になっていてもよい。すなわち、入力ベクトルXsが入力ベクトルXの要素のうち一部の要素を用いて構成されていてもよい。この場合、データ算出装置100は、入力ベクトルXと入力ベクトルXsとの関係に応じて、入力ベクトルXの要素の値を入力ベクトルXsの要素の値に設定する。
あるいは、入力ベクトルXsの要素の値に、入力ベクトルXの値に基づく計算値が含まれていてもよい。
【0034】
また、データ算出装置100は、サンプルZ<POST>に基づいて下位モデル220-sの出力のターゲット値を決定する。例えば、出力ベクトルZsのベクトル空間が、パラメータベクトルZのベクトル空間の部分空間になっていてもよい。すなわち、出力ベクトルZsがパラメータベクトルZの要素のうち一部の要素を用いて構成されていてもよい。この場合、データ算出装置100は、パラメータベクトルZと出力ベクトルZsとの関係に応じて、サンプルZ<POST>の要素の値を下位モデル220-sの出力のターゲットデータにおける出力ベクトルZsの要素の値に設定する。
【0035】
パラメータベクトルZの要素のうち、出力ベクトルZsに紐付けられない要素があってもよい。すなわち、上位モデル210のパラメータとして、上位モデル210での計算に用いられ、下位モデル220には値が出力されないパラメータがあってもよい。
データ算出装置100がサンプルZ<POST>に基づいて決定する下位モデル220-sの出力のターゲット値をサンプルZ<POST>
sと表記する。
【0036】
このように、データ算出装置100が、上位モデル210のパラメータ値を下位モデル220の出力値のターゲットデータに設定することで、データ同化を階層的に行うことができる。具体的には、データ算出装置100が、上位モデル210でのパラメータ値の調整後のサンプルZ<POST>に基づいて下位モデル220の出力のターゲット値(サンプルZ<POST>
s)を決定することで、上位モデル210での調整結果を下位モデル220でのパラメータ値の調整に反映させることができる。
【0037】
パラメータベクトルZの次元数が、パラメータベクトルθ1からθSまでの次元数の合計よりも小さいことで、対象900を1つのモデルのみで模擬する場合よりも、個々のモデルのパラメータの個数を少なくすることができる。この点で、データ算出装置100によれば比較的短時間でデータ同化を行うことができ、パラメータベクトルθ1からθSまでの値を推定できると期待される。特に、データ算出装置100によれば、モデルのパラメータの個数が多いことで現実的な時間内にパラメータの推定値を得られないことを回避できると期待される。
【0038】
また、データ算出装置100は、下位モデル220のそれぞれについて、出力ベクトルZsの値がサンプルZ<POST>
sに近付くようにパラメータベクトルθsの値を調整するデータ同化を行う。
データ算出装置100による調整前のパラメータベクトルθsの確率分布を事前分布πθsと表記し、事前分布πθsによるパラメータベクトルθsの値をサンプルθ<PRI>
sと表記する。
【0039】
事前分布πθsは、ユーザが対象900の情報に基づいて設定するようにしてもよい。あるいは、事前分布πθsとして一様分布など所定の分布を用いるようにしてもよい。
データ算出装置100による調整後のパラメータベクトルZの確率分布を事後分布p(θs|Zs)と表記し、事後分布p(θs|Zs)によるパラメータベクトルZの値をサンプルθ<POST>
sと表記する。
【0040】
また、データ算出装置100は、サンプルθ<POST>
sを下位モデル220-sのパラメータに適用してシミュレーションを実行し、入力ベクトルXsに対する出力ベクトルZsを算出する。パラメータのサンプルをモデルのパラメータに適用するとは、サンプル値をパラメータ値として設定することである。サンプルをモデルのパラメータに適用することを、サンプルをモデルに適用するとも称する。サンプルθ<POST>
sを適用したシミュレーションで算出される出力ベクトルZsの値をサンプルZ<PRED>
sと表記する。
【0041】
そして、データ算出装置100は、サンプルZ<PRED>
1からサンプルZ<PRED>
Sまでの値に基づいて、パラメータベクトルZの値のサンプルを生成する。このサンプルは、データ算出装置100が、上位モデル210を用いたデータ同化を繰り返し行う際に、下位モデル220でのデータ同化の結果を反映したサンプルとして用いられる。
【0042】
パラメータベクトルZの何れの要素も、サンプルZ<PRED>
1からサンプルZ<PRED>
Sまでの要素のうち高々1つの要素と紐付けられている場合、この関係に応じて、データ算出装置100が、サンプルZ<PRED>
1からサンプルZ<PRED>
Sまで要素の値を、生成するサンプルの要素の値として用いるようにしてもよい。
【0043】
あるいは、パラメータベクトルZの要素のうち、サンプルZ<PRED>
1からサンプルZ<PRED>
Sまでの複数の要素と紐付けられる要素があってもよい。この場合、データ算出装置100が、サンプルZ<PRED>
1からサンプルZ<PRED>
Sまでの複数の要素の値の平均をとるなど所定の方法で、生成するサンプルの要素の値を算出するようにしてもよい。
【0044】
このように、データ算出装置100が、サンプルZ<PRED>
1からサンプルZ<PRED>
Sまでの値に基づいて、パラメータベクトルZのサンプルを生成することで、階層的なデータ同化を繰り返すことができる。
具体的には、データ算出装置100は、生成したサンプルの値を上位モデル210のパラメータベクトルZに適用してシミュレーションを実行する。これにより、データ算出装置100は、生成したパラメータのサンプルに基づく出力ベクトルYのサンプルを取得する。そして、データ算出装置100は、得られた出力ベクトルYのサンプルとターゲット値との関係に基づいて、上位モデル210の出力値がターゲット値に近付くように、パラメータベクトルZの値を推定する。データ算出装置100は、推定したパラメータベクトルZの値をサンプルZ<POST>として用いて、上述したのと同様に、下位モデル220におけるデータ同化を行い、データ同化の結果に基づいてパラメータベクトルZのサンプルを生成する。データ算出装置100は、所定の終了条件が成立するまで、階層的なデータ同化を繰り返す。
【0045】
このように、データ算出装置100が階層的なデータ同化を繰り返すことで、パラメータ値を高精度に推定できると期待される。特に、パラメータベクトルZの確率分布、および、パラメータベクトルθ1からθSまでのそれぞれの確率分布が、何れもターゲット値に応じたあるパラメータ値に収束していくことが期待される。ここでいう確率分布があるパラメータ値に収束するとは、その値における確率が大きくなることである。
【0046】
例えば、データ同化によって、出力ベクトルYの値がターゲット値に近い値となるパラメータZの値の確率が比較的大きくなることで、データ同化を再度行う際に、出力ベクトルYのサンプリング値としてターゲット値に近いものが多くなる。これにより、再度のデータ同化によって、出力ベクトルYの値がターゲット値に近い値となるパラメータZの値の確率がさらに大きくなると期待される。
パラメータベクトルθ1からθSまでについても、データ同化を繰り返すことで、ターゲット値に応じたパラメータ値の確率が大きくなっていくと期待される。
【0047】
以下では、データ算出装置100が、モデルの出力値をターゲット値に近付けるようにパラメータ値を推定する処理として、カーネルABCおよびカーネルハーディングを用いる場合を例に説明する。
ただし、データ算出装置100が、モデルの出力値をターゲット値に近付けるようにパラメータ値を推定する方法は、特定の方法に限定されない。例えば、データ算出装置100が、モデルの出力値をターゲット値に近付けるようにパラメータ値を推定する処理として、マルコフチェーンモンテカルロ(Markov Chain Monte Carlo;MCMC)、または、ABC(Approximate Bayesian Computation)を用いるようにしてもよい。
【0048】
通信部110は、他の装置と通信を行う。例えば、データ算出装置100がターゲットデータとしてセンサによる実測データを取得する場合、通信部110が、対象900に設置されたセンサから、そのセンサによる実測データを受信するようにしてもよい。
【0049】
表示部120は、例えば液晶パネルまたはLED(Light Emitting Diode、発光ダイオード)パネル等の表示画面を備え、各種画像を表示する。例えば、表示部120が、データ算出装置100によるパラメータ値の推定結果を表示するようにしてもよい。
操作入力部130は、例えばキーボードおよびマウス等の入力デバイスを備え、ユーザ操作を受け付ける。例えば、操作入力部130が、ターゲットデータとして対象900における目標値を入力するユーザ操作を受け付けるようにしてもよい。
【0050】
記憶部170は、各種データを記憶する。例えば、記憶部170は、対象900のモデルとして上記のように階層化されたモデルを記憶する。記憶部170は、データ算出装置100が備える記憶デバイスを用いて構成される。
制御部180は、データ算出装置100の各部を制御して各種処理を行う。制御部180の機能は、データ算出装置100が備えるCPU(Central Processing Unit、中央処理装置)が記憶部170からプログラムを読み出して実行することで実行されてもよい。
【0051】
初期設定部181は、階層的なデータ同化のための初期設定を行う。
具体的には、初期設定部181は、階層的なデータ同化を繰り返すためのループカウンタとして用いられる変数lに1を代入する。
また、初期設定部181は、パラメータベクトルZの事前分布πZに基づくサンプリングを行う。すなわち、事前分布πZに基づいてサンプルZ<PRI>を算出する。初期設定部181は、サンプルZ<PRI>をM個算出する。Mは、M≧1の整数であり、サンプルの個数を示す。初期設定部181のサンプリングによって得られるM個のサンプルZ<PRI>(l)を、{Z<PRI>(1)
m}m=1
Mと表記する。()内の値は、変数lの値である。すなわち、()内の値は、階層的なデータ同化の何回目の実行であるかを示す。「Z<PRI>(1)
m」の下付の「m」はM個のサンプルZ<PRI>(1)を識別する識別番号を示す。
【0052】
ループ処理部182は、階層的なデータ同化を繰り返すループの処理を行う。具体的には、ループ処理部182は、階層的なデータ同化を繰り返し回数に応じて、変数lの値をカウントアップする。また、ループ処理部182は、ループの終了条件が成立しているか否かを判定する。
ここでのループの終了条件として、いろいろな条件を用いることができる。例えば、ループの終了条件が、変数lの値が所定の閾値以上であることであってもよい。あるいは、ループの終了条件が、上位モデル210の出力値が所定の条件以上にターゲット値に近いと評価されることであってもよい。
【0053】
上位シミュレータ部183は、上位モデル210を用いたシミュレーションを実行する。
特に、上位シミュレータ部183は、下位モデル220を用いたシミュレーションの結果として得られるサンプルZ<PRED>
1からZ<PRED>
Sまでに基づく更新後のパラメータベクトルZの値を上位モデル210に適用してシミュレーションを実行する。
上位シミュレータ部183は、上位シミュレータ部183上位モデルシミュレーション実行手段の例に該当する。
【0054】
サンプルZ<PRED>(l)
1からZ<PRED>(l)
Sまでに基づく更新後のパラメータベクトルZの値をサンプルZ<PRI>(l+1)と表記する。上述したように、()内の値は、変数lの値である。
上位シミュレータ部183は、階層的なデータ同化のl回目の実行にて得られるサンプルZ<PRED>(l)
1からZ<PRED>(l)
Sに基づいて、階層的なデータ同化のl+1回目のためのサンプルZ<PRI>(l+1)を取得する。データ算出装置100について上述したように、上位シミュレータ部183が、サンプルZ<PRED>(l)
sの要素の値を、サンプルZ<PRI>(l+1)の要素の値として用いるようにしてもよい。あるいは、データ算出装置100について上述したように、上位シミュレータ部183が、サンプルZ<PRED>
1からサンプルZ<PRED>
Sまでの複数の要素の値の平均をとるなど、所定の方法でサンプルZ<PRED>(l+1)
sの要素の値を算出するようにしてもよい。
【0055】
上位シミュレータ部183は、サンプルZ<PRI>(l+1)を上位モデル210に適用してシミュレーションを実行し、サンプルY<PRI>(l+1)を算出する。
上位シミュレータ部183は、サンプルZ<PRED>(l)
1からZ<PRED>(l)
Sまでの組み合わせをM個取得して、サンプルZ<PRI>(l+1)をM個算出し、サンプルY<PRI>(l+1)をM個算出する。上位シミュレータ部183が算出するM個のサンプルZ<PRI>(l)を、{Z<PRI>(l)
m}m=1
Mと表記する。上位シミュレータ部183が算出するM個のサンプルY<PRI>(l)を、{Y<PRI>(l)
m}m=1
Mと表記する。「Z<PRI>(l)
m」の下付の「m」、および、「Y<PRI>(l)
m」の下付の「m」は、いずれも、M個のサンプルを識別する識別番号を示す。
【0056】
上位事後分布データ算出部184は、上位モデル210の出力ベクトルYに対するターゲットデータに基づく、上位モデル210のパラメータベクトルZの値の事後分布を示すデータを算出する。上位事後分布データ算出部184は、上位事後分布データ算出手段の例に該当する。
具体的には、上位事後分布データ算出部184は、出力ベクトルYの値がターゲット値に近付くようにパラメータベクトルZの値を推定するデータ同化を、カーネルABCおよびカーネルハーディングを用いて行う。上位事後分布データ算出部184は、このデータ同化で、M個のサンプル{Z<PRI>(l)
m}m=1
Mに応じて、サンプルZ<POST>(l)をM個算出する。上述したように、()内の値は、変数lの値である。
【0057】
上位事後分布データ算出部184が算出するM個のサンプルZ<POST>(l)を、{Z<POST>(l)
m}m=1
Mと表記する。「Z<POST>(l)
m」の下付の「m」は、いずれも、M個のサンプル「Z<POST>(l)」を識別する識別番号を示す。M個のサンプル{Z<POST>(l)
m}m=1
Mは、ターゲットデータに基づく、上位モデル210のパラメータベクトルZの値の事後分布p(Z|Y)を示すデータの例に該当する。
【0058】
上位事後分布データ算出部184は、カーネルABCの実行にて、ターゲット値と、{Y<PRI>(l)
m}m=1
Mの各々とを再生核ヒルベルト空間(Reproducing Kernel Hilbert Space;RKHS)における点に射影する。そして、上位事後分布データ算出部184は、ターゲット値が射影された点と、サンプルY<PRI>(l)
mが射影された点との再生核ヒルベルト空間における距離に基づいて、カーネル平均を算出する。上位事後分布データ算出部184は、算出したカーネル平均にカーネルハーディングを適用して、{Z<POST>(l)
m}m=1
Mを算出する。
再生核ヒルベルト空間における距離は、サンプルY<PRI>(l)
mとターゲット値との類似度を示す指標の例に該当する。サンプルY<PRI>(l)
mとターゲット値との類似度が高いほど、再生核ヒルベルト空間における距離は小さくなる。
【0059】
下位シミュレータ部185は、下位モデル220を用いたシミュレーションを実行する。
特に、下位シミュレータ部185は、データ算出装置100について上述したように、下位モデル220-sにおけるデータ同化で得られるサンプルθ<POST>
sを下位モデル220-sに適用してシミュレーションを実行し、サンプルZ<PRED>
sを算出する。下位モデル220-sにおけるデータ同化は、上述した、下位モデル220-sの出力ベクトルZsの値がターゲット値(サンプルZ<POST>
s)に近付くように下位モデル220のパラメータベクトルθsの値を推定するデータ同化である。
【0060】
下位シミュレータ部185は、下位事後分布データ算出部186がデータ同化で算出するM個のサンプルθ<POST>
sを取得して、M個のサンプルZ<PRED>
sを算出する。下位シミュレータ部185は、下位モデルシミュレーション実行手段の例に該当する。
下位事後分布データ算出部186が算出するM個のθ<POST>
sを、{θ<POST>(l)
m}m=1
Mと表記する。上述したように、()内の値は、変数lの値である。「θ<POST>(l)
m」の下付の「m」は、M個のサンプルθ<POST>(l)を識別する識別番号を示す。
下位シミュレータ部185が算出するM個のZ<PRED>
sを、{Z<PRED>(l)
s,m}m=1
Mと表記する。上述したように、()内の値は、変数lの値である。「Z<PRED>(l)
s,m」の下付の「m」は、M個のサンプルZ<PRED>(l)
sを識別する識別番号を示す。
【0061】
下位事後分布データ算出部186は、上位モデル210のパラメータベクトルZの事後分布p(Z|Y)を示すデータに基づく、下位モデル220のパラメータ値の事後分布を示すデータを算出する。下位事後分布データ算出部186は、下位事後分布データ算出手段の例に該当する。
具体的には、下位事後分布データ算出部186は、下位モデル220-sの出力値が、ターゲット値であるサンプルZ<POST>(l)に近付くようにパラメータθsの値を推定するデータ同化を、カーネルABCおよびカーネルハーディングを用いて行う。
下位事後分布データ算出部186は、データ同化にて、上述したようにM個のサンプル{θ<POST>(l)
m}m=1
Mを算出する。
【0062】
制御部180が、通信部110を介して対象900に制御信号を送信するなど、対象900を制御するようにしてもよい。例えば、制御部180が、モデル200のパラメータの推定結果に基づいて、あるいはモデル200を用いたシミュレーションの実行結果に基づいて、対象900の各装置など対象900の各部を制御するようにしてもよい。さらに例えば、制御部180が、下位事後分布データ算出部186が算出する下位モデル220のパラメータ値の事後分布を示すデータ(サンプル{θ<POST>(l)
m}m=1
M)に基づいて、対象900を制御するようにしてもよい。
制御部180は、制御手段の例に該当する。
【0063】
図3は、データ算出装置100が階層的なデータ同化を行う処理手順の例を示すフローチャートである。
(ステップS101)
初期設定部181は、ループカウンタとして用いられる変数lの値を初期設定する。具体的には、初期設定部181は、変数lの値を1に設定する。変数lの値は、ステップS103からS110までのループの繰り返し回数を示す。
ステップS101の後、処理がステップS102へ遷移する。
【0064】
(ステップS102)
初期設定部181は、パラメータベクトルZの事前分布πZからのM個のサンプル{Z<PRI>(1)
m}m=1
Mを算出する。
ステップS102の後、処理がステップS103へ遷移する。
【0065】
(ステップS103)
ループ処理部182は、ループの終了条件が成立しているか否かを判定する。
終了条件が成立していないとループ処理部182が判定した場合(ステップS103:NO)、処理がステップS104へ遷移する。
一方、終了条件が成立しているとループ処理部182が判定した場合(ステップS103:YES)、データ算出装置100は、
図3の処理を終了する。
【0066】
(ステップS104)
上位シミュレータ部183は、サンプルZ<PRI>(l)
m(m=1,・・・,M)を上位モデル210のパラメータに設定してシミュレーションを実行し、出力のサンプルY<PRI>(l)
mを算出する。Y<PRI>(l)
mは、式(1)のように示される。
【0067】
【0068】
ステップS104の後、処理がステップS105へ遷移する。
【0069】
(ステップS105)
上位事後分布データ算出部184は、カーネル平均μ^(l)
Z|Yを算出する。カーネル平均μ^(l)
Z|Yは、式(2)のように示される。
【0070】
【0071】
kzは、カーネルを示す。
括弧内の「・」は、再生核ヒルベルト空間における関数の変数が特定のものに限定されないことを示す。
重みwmは、式(3)のように示される。
【0072】
【0073】
「I」は単位行列を表す。
δは正則化定数(Regularization Constant)を示す。δ>0である。
Gyはグラム行列(Gram Matrix)を示し、式(4)のように表される。
【0074】
【0075】
ky(Y)はyのカーネルを示し、式(5)のように表される。
【0076】
【0077】
上付のTは、行列またはベクトルの転置を示す。
ステップS105の後、処理がステップS106へ遷移する。
【0078】
(ステップS106)
上位事後分布データ算出部184は、カーネル平均μ^(l)
Z|YによるパラメータZのサンプル{Z<POST>(l)
m}m=1
Mを算出する。
カーネル平均μ^(l)
Z|Yは、出力ベクトルYとしてターゲットデータが与えられた場合の事後分布p(Z|Y)と一対一に紐付けられる。カーネルハーディング(Kernel Herding)の処理を行うことで、事後分布によるサンプルを得られる。
例えば、上位事後分布データ算出部184は、式(6)に基づいてZ<POST>(l)
mを算出する。
【0079】
【0080】
「argmaxZhj(Z)」は、「hj(Z)」が最大となる「Z」を出力する関数である。
hjは、式(7)のように再帰的に示される。
【0081】
【0082】
式(7)の「H」は、再生核ヒルベルト空間を示す。
h0は、式(8)のように示される。
【0083】
【0084】
ステップS106の後、処理がステップS107へ遷移する。
【0085】
(ステップS107)
上位事後分布データ算出部184は、M個のサンプルZ<POST>(l)
m(m=1,・・・,M)を、サンプルZ<POST>(l)に集約する。例えば、上位事後分布データ算出部184は、式(9)に示されるように、M個のサンプルZ<POST>(l)
m(m=1,・・・,M)を、サンプルZ<POST>(l)に集約する。
【0086】
【0087】
ステップS107の後、処理がステップS108へ遷移する。
【0088】
(ステップS108)
データ算出装置100は、下位モデル220ごとの処理を実行する。上述したように、データ算出装置100は、下位モデル220-sの処理でサンプルZ<PRED>(l)
sを算出する。
ステップS108の後、処理がステップS109に遷移する。
【0089】
(ステップS109)
上位シミュレータ部183は、下位モデル220ごとの処理結果を上位モデル210の処理に受け渡す。具体的には、データ算出装置100について上述したように、上位シミュレータ部183は、下位モデル220ごとに得られたサンプルZ<PRED>(l)
sの値に基づいて、サンプルZ<PRI>(l+1)の値を設定する。例えば、上位シミュレータ部183は、式(10)に示されるように、サンプルZ<PRI>(l+1)の値を設定する。
【0090】
【0091】
ステップS109の後、処理がステップS110に遷移する。
【0092】
(ステップS110)
ループ処理部182は、ループカウンタとして用いられる変数lの値をカウントアップする。すなわち、ループ処理部182は、変数lの値を1増加させる。
ステップS110の後、処理がステップS102へ遷移する。
【0093】
図4は、データ算出装置100が下位モデル220ごとに行う処理の手順の例を示すフローチャートである。データ算出装置100は、
図3のステップS108で
図4の処理を行う。
(ステップS201)
上位事後分布データ算出部184は、上位モデル210のパラメータベクトルZの値を下位モデル220に受け渡す。具体的には、データ算出装置100について上述したように、上位事後分布データ算出部184は、サンプルZ
<POST>(l)に基づいてサンプルZ’
<POST>(l)
sを取得する。例えば、上位事後分布データ算出部184は、式(11)に基づいてZ’
<POST>(l)
sを取得する。
【0094】
【0095】
Z<POST>(l)[s,:]は、行列Z<POST>(l)のs行目の行ベクトルを示す。
式(11)では、Z<POST>(l)
mと区別するために、Zに’を付している。
Z’<POST>(l)
sは、式(12)のように示される。
【0096】
【0097】
Z’<POST>(l)
s、mは、式(13)のように示される。
【0098】
【0099】
Z<POST>(l)[s,m]は、行列Z<POST>(l)のs行目かつm列目の要素を示す。
式(13)の例で、Z<POST>(l)は、Z’<POST>(l)
s、mを要素とする行列として構成されている。上位事後分布データ算出部184は、式(11)に示されるように、Z<POST>(l)のs行目を読み出すことで、下位モデル220-sのターゲットデータとして用いるためのM個のサンプルZ’<POST>(l)
s、1,・・・,Z’<POST>(l)
s、Mを取得する。
ステップS201の後、処理がステップ202へ遷移する。
【0100】
(ステップS202)
下位シミュレータ部185は、事前分布πθsからのM個のサンプル{θ<PRI>(l)
s,m}m=1
Mを算出する。
ステップS202の後、処理がステップS203へ遷移する。
【0101】
(ステップS203)
下位シミュレータ部185は、サンプルθ<PRI>(l)
s,mを下位モデル220-sに適用してシミュレーションを実行し、サンプルZ<PRI>(l)
s,mを算出する。サンプルZ<PRI>(l)
s,mは、式(14)のように示される。
【0102】
【0103】
ステップS203の後、処理がステップS204へ遷移する。
【0104】
(ステップS204)
下位事後分布データ算出部186は、カーネル平均μ^(l)
θ|Z,sを算出する。カーネル平均μ^(l)
θ|Z,sは、式(15)のように示される。
【0105】
【0106】
kθは、カーネルを示す。
重みws,mは、式(16)のように示される。
【0107】
【0108】
Gz,sはグラム行列を示し、式(17)のように表される。
【0109】
【0110】
Kθ,s(Z)はZのカーネルを示し、式(18)のように表される。
【0111】
【0112】
ステップS204の後、処理がステップS205へ遷移する。
【0113】
(ステップS205)
下位事後分布データ算出部186は、カーネル平均μ^(l)
θ|Z,sによるパラメータθsのサンプル{θ<POST>(l)
s,m}m=1
Mを算出する。
例えば、下位事後分布データ算出部186は、式(19)に基づいてθ<POST>(l)
s,mを算出する。
【0114】
【0115】
hs,jは、式(20)のように再帰的に示される。
【0116】
【0117】
hs,0は、式(21)のように示される。
【0118】
【0119】
ステップS205の後、処理がステップS206へ遷移する。
【0120】
(ステップS206)
下位シミュレータ部185は、サンプルθ<POST>(l)
s,mを下位モデル220-sのパラメータに設定してシミュレーションを実行し、サンプルZ<PRED>(l)
s,mを算出する。Z<PRED>(l)
s,mは、式(22)のように示される。
【0121】
【0122】
ステップS206の後、処理がステップS207へ遷移する。
【0123】
(ステップS207)
下位事後分布データ算出部186は、M個のサンプルZ
<PRED>(l)
s,m(m=1,・・・,M)を、サンプルZ
<PRED>(l)
sに集約する。
ステップS207の後、データ算出装置100は、
図4の処理を終了する。
【0124】
データ算出装置100が行う処理について、例を用いてさらに説明する。
図5は、対象900の例に該当する生産システム910の構成を示す図である。
図5に示す構成で、生産システム910は、第一サブシステム911-1と、第二サブシステム911-2とを備える。第一サブシステム911-1と第二サブシステム911-2とを総称して、サブシステム911と表記する。
【0125】
第一サブシステム911-1は、第一生産ライン912-1、第二生産ライン912-2、第三生産ライン912-3、第四生産ライン912-4、および、第五生産ライン912-5を備える。第二サブシステム911-2は、第六生産ライン912-6、第七生産ライン912-7、第八生産ライン912-8、および、第九生産ライン912-9を備える。第一生産ライン912-1から第九生産ライン912-9までを総称して、生産ライン912と表記する。
【0126】
図6は、生産システム910を模擬するモデルの例を示す図である。
図6の例では、サブシステム911ごとに下位モデル220が設けられており、下位モデル220の個数は2つとなっている。
上位モデル210では、2つの下位モデルに応じて、2つのパラメータz
1およびz
2が設けられている。Z=(z
1,z
2)と表される。
【0127】
下位モデル220-1では、第一サブシステム911-1が備える第一生産ライン912-1から第五生産ライン912-5までの5つの生産ライン912に応じて、5つのパラメータθ1,1からθ1,5までが設けられている。θ1=(θ1,1,・・・,θ1,5)と表される。
【0128】
下位モデル220-2では、第二サブシステム911-2が備える第六生産ライン912-6から第九生産ライン912-9までの4つの生産ライン912に応じて、4つのパラメータθ2,1からθ2,4までが設けられている。θ2=(θ2,1,・・・,θ2,4)と表される。
【0129】
モデルの出力およびパラメータとして、製品または部品など各部での生産単位1つあたりの生産にかかる時間を用いる。
パラメータz1、z1は、それぞれ第一サブシステム911-1、第二サブシステム911-2で、生産単位1つあたりの生産にかかる時間を示す。
パラメータθ1,1からθ1,5までは、第一生産ライン912-1から第五生産ライン912-5までで、生産単位1つあたりの生産にかかる時間を示す。パラメータθ2,1からθ2,4までは、第六生産ライン912-6から第九生産ライン912-9までで、生産単位1つあたりの生産にかかる時間を示す。
【0130】
ターゲットデータに目標時間を設定する場合、このターゲット時間、および、上位モデル210から下位モデル220への出力(サンプル{Z<POST>(l)m}m=1
M)は、タクトタイム(Takt Time)のような、時間についての要求を示すと考えられる。一方、下位モデル220から上位モデル210への出力(サンプル{Z<PRED>(l)
s,m}m=1
M)は、処理に必要な時間を示すと考えられる。
この場合、上位モデル210と下位モデル220とがデータをやり取りすることで、要求される時間と必要な時間との両方に対応できる解を探索すると見ることができる。
【0131】
図7は、事前分布に基づく上位モデル210のパラメータ値のサンプルの例を示す図である。
図7の横軸は、パラメータz
1の値を示す。縦軸は、パラメータz
2の値を示す。
領域A11に、パラメータz
1の事前分布が示されている。領域A12に、パラメータz
2の事前分布が示されている。領域A13の点の各々は、(z
1,z
2)のサンプルの例を示している。領域A13に示されるサンプルは、{Z
<PRI>(1)
m}
m=1
100と表される。
図7は、
図3のステップS102で初期設定部181が算出する、事前分布に基づくパラメータZのサンプルの例を示している。
【0132】
図8は、上位モデル210の出力値のサンプルの第1例を示す図である。
図8の横軸は、上位モデル210の出力値を示す。縦軸は度数を示す。
図8は、
図7に示されるパラメータベクトルZの値ごとに上位モデル210を用いたシミュレーションを実行して得られる、上位モデル210の出力値を度数分布にて示している。
図3のステップS104で、上位シミュレータ部183が、このシミュレーションを行う。
上位事後分布データ算出部184は、
図5のステップS105およびS106の処理で、
図8に示されるモデル出力が、実際値である「5」に近付くような、パラメータZの値を推定する。
【0133】
図9は、事後分布に基づく上位モデル210のパラメータ値のサンプルの例を示す図である。
図9の横軸は、パラメータz
1の値を示す。縦軸は、パラメータz
2の値を示す。
領域A21に、パラメータz
1の事後分布が示されている。領域A22に、パラメータz
2の事後分布が示されている。領域A23の点の各々は、(z
1,z
2)のサンプルの例を示している。領域A23に示されるサンプルは、{Z
<POST>(1)
m}
m=1
100と表される。
【0134】
図9は、
図8に示されるモデル出力および実際値を用いて、上位事後分布データ算出部184が推定するパラメータ値の例を示している。
図7に示されるパラメータZの事前分布のサンプルの場合、領域A13全体にプロットされている。これに対し、
図9に示されるパラメータZの事後分布のサンプルの場合、z
1の値が10から15程度、かつ、z
2の値が10から15程度の領域に多くプロットされている。
上位事後分布データ算出部184によるデータ同化によって、パラメータZの値が収束していると考えられる。
【0135】
図10は、事前分布に基づく下位モデル220のパラメータ値のサンプルの例を示す図である。
図10は、下位モデル220-1のパラメータθ
1,1からθ
1,5まで、および下位モデル220-2のパラメータθ
2,1からθ
2,4までのそれぞれについて、事前分布に基づくサンプルを、横軸にパラメータ値をとり縦軸に度数をとった度数分布にて示している。
下位事後分布データ算出部186は、
図4のステップS202で、
図10に例示される事前分布に基づいて下位モデル220のパラメータ値をサンプリングする。
【0136】
図11は、下位モデル220の出力値のサンプルの例を示す図である。
図11の横軸は、下位モデル220の出力値を示す。縦軸は確率を示す。
図11は、
図10に示されるパラメータ値を下位モデル220に適用してシミュレーションを実行して得られる下位モデル220の出力値を確率分布にて示している。
図4のステップS203で、下位シミュレータ部185が、このシミュレーションを行う。
【0137】
図12は、事後分布に基づく下位モデル220のパラメータ値のサンプルの例を示す図である。
図12は、下位モデル220-1のパラメータθ
1,1からθ
1,5まで、および下位モデル220-2のパラメータθ
2,1からθ
2,4までのそれぞれについて、事後分布に基づくサンプルを、横軸にパラメータ値をとり縦軸に度数をとった度数分布にて示している。
【0138】
図4のステップS204およびS205で、下位事後分布データ算出部186がデータ同化を行って、事後分布に基づく下位モデル220のパラメータ値のサンプルを算出する。
図10と
図12とを比較すると、
図10よりも
図12のほうが、パラメータ値が偏在している。下位事後分布データ算出部186によるデータ同化によって、パラメータθ
1およびθ
2の値が収束していると考えられる。
【0139】
図13は、下位モデル220の出力値のサンプルの例を示す図である。
図13の横軸は、パラメータz
1の値を示す。縦軸は、パラメータz
2の値を示す。
図13は、
図12に示されるパラメータ値を下位モデル220に適用してシミュレーションを実行した場合の、下位モデル220の出力値を示している。
図4のステップS206で、下位シミュレータ部185が、このシミュレーションを行う。
【0140】
領域A33の点の各々は、(z1,z2)のサンプルの例を示している。領域A33に示されるサンプルは、{Z<PRED>(1)
s,m}m=1
100と表される。
領域A31に、領域A33に示されるサンプルに基づくパラメータz1の分布が示されている。領域A32に、領域A33に示されるサンプルに基づくパラメータz2の分布が示されている。
【0141】
図13では、
図9の場合よりもさらにパラメータ値が偏在しており、z
1の値が6から10程度、かつ、z
2の値が7から15程度の領域に多くプロットされている。
下位事後分布データ算出部186によるデータ同化の結果が反映されることで、パラメータZの値がさらに収束していると考えられる。
【0142】
図14は、上位モデル210の出力値のサンプルの第2例を示す図である。
図14の横軸は、上位モデル210の出力値を示す。縦軸は度数を示す。
図14は、
図13に示されるパラメータ値を上位モデル210に適用してシミュレーションを実行した場合の、上位モデル210の出力の例を度数分布で示している。
図3のステップS103からS110のループの2回目の実行におけるステップS104で、上位シミュレータ部183が、このシミュレーションを行う。
図7の場合よりも
図13の場合のほうがパラメータZの値が収束していることに応じて、
図8の場合よりも
図14の場合のほうが、上位モデル210の出力が収束している。
【0143】
図15は、上位モデル210のパラメータ値のサンプルの第3例を示す図である。
図15の横軸は、パラメータz
1の値を示す。縦軸は、パラメータz
2の値を示す
図15は、
図14に示される上位モデル210の出力値に基づいて、上位モデル210の出力値が実際に近付くようにパラメータ値を推定するデータ同化を行った場合の、上位モデル210のパラメータの値を示している。
図3のステップS103からS110のループの2回目の実行における、ステップS104からS105で、上位事後分布データ算出部184が、このデータ同化を行う。
【0144】
領域A43の点の各々は、(z1,z2)のサンプルの例を示している。領域A33に示されるサンプルは、{Z<PRED>(1)
s,m}m=1
100と表される。
領域A41に、領域A43に示されるサンプルに基づくパラメータz1の分布が示されている。領域A42に、領域A33に示されるサンプルに基づくパラメータz2の分布が示されている。
【0145】
図15では、
図13の場合よりもさらにパラメータ値が偏在しており、z
1の値が9程度、かつ、z
2の値が12程度の領域に点が集中している。
データ算出装置100が適切なパラメータZの値の推定に成功したと考えられる。
【0146】
図16は、データ算出装置100による下位モデル220のパラメータ値の推定結果の例を示す図である。
図16は、
図15に示される上位モデル210のパラメータ値を下位モデル220の出力のターゲット値として、下位モデル220の出力値がターゲット値に近付くように下位モデル220のパラメータ値を推定するデータ同化を行った場合の、下位モデル220のパラメータ値の例を、横軸にパラメータ値をとり縦軸に度数をとった度数分布にて示している。
【0147】
図4の処理の2回目の実行におけるステップS204およびS205で、下位事後分布データ算出部186が、このデータ同化を行う。
図16では、
図12の場合よりも、パラメータ値がさらに偏在している。データ算出装置100が、適切なパラメータθ
1およびθ
2の値の推定に成功したと考えられる。
【0148】
モデル200が、3層以上のモデルとして構成されていてもよい。この場合、最上位層のモデルを上位モデルと称し、最下位層のモデルを下位モデルと称し、それ以外の層のモデルを中間モデルと称する。
モデルの層数が3層以上の場合も、上位モデルに関する処理は、
図3を参照して説明したのと同様である。上位モデルと直接データの入出力を行うモデルが中間モデルである場合は、
図3の説明で「下位モデル」を中間モデルと読み替える。
【0149】
モデルの層数が3層以上の場合も、下位モデルに関する処理は、
図4を参照して説明したのと同様である。下位モデルと直接データの入出力を行うモデルが中間モデルである場合は、
図4の説明で「上位モデル」を中間モデルと読み替える。
【0150】
中間層については、
図4の処理に加えて、ステップS205とS206との間に
図3のステップS107からS109の処理を行う。
ここで、中間層における入出力データを
図17のように表記する。
【0151】
図17は、モデルの層数が3層以上である場合の中間層におけるデータの入出力の例を示す図である。
図17の例で、中間モデル232は、上位層モデル231および下位層モデル233とデータの入出力を行う。上位層モデル231は、中間モデル232のすぐ上の層のモデルである。上位層モデル231は、上位モデルであってもよいし、中間モデルであってもよい。
【0152】
下位層モデル233は、中間モデル232のすぐ下の層のモデルである。下位層モデル233は、下位モデルであってもよいし、中間モデルであってもよい。
1つの上位層モデル231とデータの入出力を行う中間モデルの個数は、1つ以上であればよい。1つの中間モデル232とデータの入出力を行う下位層モデルの個数は、1つ以上であればよい。
モデルの層数は一律でなくてもよい。例えば、上位モデルのすぐ下の層のモデルとして、中間モデルと下位モデルとの両方があってもよい。中間モデルのすぐ下の層のモデルとして、中間モデルと下位モデルとの両方があってもよい。
【0153】
入力ベクトルについては、データ算出装置100が、中間モデル232への入力となる入力ベクトルX(u)、および、下位層モデル233への入力となる入力ベクトルX(d)を設定する。これは、上述した、データ算出装置100が、下位モデル220-sの入力ベクトルXsを設定する処理を階層的に行うことに相当する。
【0154】
モデルパラメータについてのサンプルについては、上位層モデル231から中間モデル232へ出力するサンプルを、Z’
<POST>
(u)と表記する。中間モデル232から下位層モデル233へ出力するサンプルを、Z’
<POST>
(d)と表記する。
Z’
<POST>
(u)およびZ’
<POST>
(d)は、
図4の処理におけるZ’
<POST>(l)
s、1,・・・,Z’
<POST>(l)
s、Mに相当する。Z’
<POST>
(u)は、中間モデル232におけるデータ同化でターゲットデータとして用いられる。Z’
<POST>
(u)は、下位層モデル233におけるデータ同化でターゲットデータとして用いられる。
【0155】
下位層モデル233から中間モデル232へ出力するサンプルを、Z
<PRED>
(d)と表記する。中間モデル232から上位層モデル231へ出力するサンプルを、Z
<PRED>
(u)と表記する。
Z
<PRED>
(d)およびZ
<PRED>
(u)は、
図3の処理および
図4の処理におけるZ
<PRED>(l)
sに相当する。Z
<PRED>
(d)は、中間モデル232における、事後分布に基づくサンプルZ
<POST>
(d)を更新するために用いられる。ここでいう事後分布に基づくサンプルは、データ同化によって得られるサンプルであり、モデルの出力値のターゲットデータが与えられたときの、事後分布に基づくパラメータのサンプルに該当する。
【0156】
上位層モデル231が中間モデルである場合、Z<PRED>
(u)は、上位層モデル231における、事後分布に基づくサンプルZ<POST>
(d)を更新するために用いられる。一方、上位層モデル231が上位モデルである場合、Z<PRED>
(u)は、上位層モデル231の、次回のループ実行における、事前分布に基づくサンプルを生成するために用いられる。
【0157】
データ算出装置100は、
図4のステップS201からS205に相当する処理によって、中間モデル232の出力Z
uの値がターゲットデータZ
<POST>
(u)の値に近付くように、パラメータZ
(d)の値を推定するデータ同化を行う。これにより、データ算出装置100は、サンプルZ
<POST>
(d)を算出する。
【0158】
そして、データ算出装置100は、
図3のステップS107からS109に相当する処理によって、下位層モデル233でのデータ同化の結果が反映されたサンプルZ
<PRED>
(d)を算出する。
図3のステップS109では、データ算出装置100は、Z
(PRED)(l)
sを用いてZ
<PRI>(l+1)を算出する。これに対し、中間モデル232に対する処理では、データ算出装置100は、Z
<PRED>
(d)を用いて事後分布に基づくサンプルZ
<POST>
(d)を更新する。
【0159】
そして、データ算出装置100は、
図4のステップS206からS207に相当する処理によって、更新されたサンプルZ
<POST>
(d)を中間モデル232に適用してシミュレーションを実行し、Z
<PRED>
(u)を算出する。
このように、中間モデル232に関する処理では、中間モデル232におけるデータ同化の後、下位層モデル233におけるデータ同化の結果をサンプルZ
<POST>
(d)に反映させてから、Z
<PRED>
(u)を算出する点で、
図4の処理と異なる。それ以外の点では、中間モデルに関する処理は、
図4の処理と同様である。
【0160】
以上のように、上位事後分布データ算出部184は、上位モデル210の出力に対するターゲットデータに基づく、上位モデル210のパラメータ値の事後分布を示すデータ{Z<POST>(l)
m}m=1
Mを算出する。下位事後分布データ算出部186は、下位モデル220について、上位モデル210のパラメータ値の事後分布を示すデータ{Z<POST>(l)
m}m=1
Mに基づく、下位モデル220のパラメータ値の事後分布を示すデータ{θ<POST>(l)
m}m=1
Mを算出する。
【0161】
下位事後分布データ算出部186が、上位モデル210のパラメータ値を用いて下位モデル220のパラメータ値の事後分布を示すデータを算出することで、データ同化を階層的に行うことができる。具体的には、下位事後分布データ算出部186が、上位モデル210でのパラメータ値の調整後のサンプルZ<POST>に基づいて決定される、下位モデル220の出力のターゲット値(サンプルZ<POST>
s)を用いることで、上位モデル210でのパラメータ値の調整結果を下位モデル220でのパラメータ値の調整に反映させることができる。
【0162】
パラメータベクトルZの次元数が、パラメータベクトルθ1からθSまでの次元数の合計よりも小さいことで、対象900を1つのモデルのみで模擬する場合よりも、個々のモデルのパラメータの個数を少なくすることができる。この点で、データ算出装置100によれば比較的短時間でデータ同化を行うことができ、パラメータベクトルθ1からθSまでの値を推定できると期待される。特に、データ算出装置100によれば、モデルのパラメータの個数が多いことで現実的な時間内にパラメータの推定値を得られないことを回避できると期待される。
【0163】
また、下位モデル220同士間では直接的なデータのやり取りは無く、下位モデル220の各々は並列処理可能である。データ算出装置100によれば、この点でも比較的短時間でデータ同化を行えると期待される。
【0164】
また、下位シミュレータ部185は、下位モデル220のパラメータ値の事後分布を示すデータ{θ<POST>(l)
m}m=1
Mに基づくパラメータ値θ<POST>を下位モデル220に適用してシミュレーションを実行する。上位シミュレータ部183は、下位モデル220を用いたシミュレーションの結果{Z<PRED>(l)
s,m}m=1
Mに基づく上位モデル210のパラメータ値のサンプルデータ{Z<PRI>(l+1)
m}m=1
Mを上位モデル210に適用してシミュレーションを実行する。上位事後分布データ算出部184は、上位モデル210を用いたシミュレーションの結果として得られる上位モデル210の出力のサンプルデータ{Y<PRI>(l+1)
m}m=1
Mとターゲットデータとの類似度に基づいて、上位モデル210の出力に対するターゲットデータに基づく、上位モデル210のパラメータ値の事後分布を示すデータ{Z<POST>(l+1)
m}m=1
Mを算出する。
【0165】
このように、データ算出装置100では、下位モデル220におけるデータ同化の結果を上位モデル210のパラメータ値に反映させることができ、これにより、階層的なデータ同化を繰り返すことができる。データ算出装置100が階層的なデータ同化を繰り返すことで、パラメータ値を高精度に推定できると期待される。特に、パラメータベクトルZの確率分布、および、パラメータベクトルθ1からθSまでのそれぞれの確率分布が、何れもターゲット値に応じたあるパラメータ値に収束していくことが期待される。上述したように、確率分布があるパラメータ値に収束するとは、その値における確率が大きくなることである。
【0166】
例えば、データ同化によって、出力ベクトルYの値がターゲット値に近い値となるパラメータZの値の確率が比較的大きくなることで、データ同化を再度行う際に、出力ベクトルYのサンプリング値としてターゲット値に近いものが多くなる。これにより、再度のデータ同化によって、出力ベクトルYの値がターゲット値に近い値となるパラメータZの値の確率がさらに大きくなると期待される。
パラメータベクトルθ1からθSまでについても、データ同化を繰り返すことで、ターゲット値に応じたパラメータ値の確率が大きくなっていくと期待される。
【0167】
また、上位シミュレータ部183によるシミュレーションの実行で、上位モデル210の出力{Y<PRI>(l+1)
m}m=1
Mが、下位モデル220でのデータ同化の結果に応じて特定の値の近傍に集中することが考えられる。上位事後分布データ算出部184が、この出力{Y<PRI>(l+1)
m}m=1
Mを用いてデータ同化を行うことで、上位モデル210の出力の特定の値の近傍について集中的にデータ同化の解となるパラメータ値を探索する。データ算出装置100によれば、この点で、単一階層のモデルを用いてパラメータ空間を均一的に探索する場合よりも効率的に、パラメータ値を推定できると期待される。
【0168】
また、上位事後分布データ算出部184は、上位モデル210のパラメータ値のサンプルデータのカーネル平均に基づいてカーネルハーディングを実行し、上位モデル210のパラメータ値の事後分布を示すデータ{Z<POST>(l)
m}m=1
Mを算出する。
【0169】
このように、上位事後分布データ算出部184がカーネル平均に基づいて、上位モデル210のパラメータ値の事後分布を示すデータを算出することで、与えられるM個の事前分布のサンプルに対して、同数であるM個の事後分布のサンプルを算出することができる。データ算出装置100によれば、この点で、パラメータ値の推定を効率的に行うことができる。
【0170】
また、下位事後分布データ算出部186は、下位モデル220のパラメータ値のサンプルデータのカーネル平均に基づいてカーネルハーディングを実行し、下位モデルのパラメータ値の事後分布を示すデータ{θ<POST>(l)
m}m=1
Mを算出する。
このように、下位事後分布データ算出部186がカーネル平均に基づいて、下位モデル220のパラメータ値の事後分布を示すデータを算出することで、与えられるM個の事前分布のサンプルに対して、同数であるM個の事後分布のサンプルを算出することができる。データ算出装置100によれば、この点で、パラメータ値の推定を効率的に行うことができる。
【0171】
また、制御部180は、下位事後分布データ算出部186が算出する下位モデル220のパラメータ値の事後分布を示すデータに基づいて、対象900を制御する。
上記のように、データ算出装置100が階層的なモデルを用いることで、個々のモデルのパラメータの個数が比較的少ない。これにより、対象900が比較的複雑な場合でも、下位事後分布データ算出部186は、下位モデル220のパラメータ値を推定することができる。制御部180は、下位事後分布データ算出部によるパラメータ値の推定結果を参照することで、対象900の状態を把握して対象900を比較的高精度に制御することができる。
【0172】
図18は、実施形態に係るデータ算出装置の構成例を示す図である。
図18に示す構成で、データ算出装置610は、上位事後分布データ算出部611と、下位事後分布データ算出部612とを備える。
かかる構成で、上位事後分布データ算出部611は、対象を模擬する上位モデルの出力に対するターゲットデータに基づく、上位モデルのパラメータ値の事後分布を示すデータを算出する。下位事後分布データ算出部612は、対象の部分を模擬して上位モデルのパラメータ値を出力する下位モデルについて、上位モデルのパラメータ値の事後分布を示すデータに基づく、下位モデルのパラメータ値の事後分布を示すデータを算出する。
上位事後分布データ算出部611は、上位事後分布データ算出手段の例に該当する。下位事後分布データ算出部612は、下位事後分布データ算出手段の例に該当する。
【0173】
下位事後分布データ算出部612が、上位モデルのパラメータ値を用いて下位モデルのパラメータ値の事後分布を示すデータを算出することで、データ同化を階層的に行うことができる。具体的には、下位事後分布データ算出部612が、上位モデルでのデータ同化後のパラメータ値のサンプルに基づいて決定される、下位モデルの出力のターゲット値を用いることで、上位モデルでのデータ同化の結果を下位モデルでのデータ同化に反映させることができる。
【0174】
上位モデルのパラメータの個数が、下位モデルのパラメータの個数の合計よりも少ないことで、対象を1つのモデルのみで模擬する場合よりも、個々のモデルのパラメータの個数を少なくすることができる。この点で、データ算出装置610によれば比較的短時間でデータ同化を行うことができ、パラメータの値を推定できると期待される。特に、データ算出装置610によれば、モデルのパラメータの個数が多いことで現実的な時間内にパラメータの推定値を得られないことを回避できると期待される。
【0175】
また、下位モデル同士間では直接的なデータのやり取りは無く、下位モデルの各々は並列処理可能である。データ算出装置610によれば、この点でも比較的短時間でデータ同化を行えると期待される。
【0176】
上位事後分布データ算出部611は、例えば、
図1に示される上位事後分布データ算出部184等の機能を用いて実現することができる。下位事後分布データ算出部612は、例えば、
図1に示される下位事後分布データ算出部186等の機能を用いて実現することができる。
【0177】
図19は、実施形態に係るデータ算出装置の構成のもう1つの例を示す図である。
図19に示す構成で、データ算出装置620は、下位モデルシミュレーション実行部621と、上位モデルシミュレーション実行部622とを備える。
かかる構成で、下位モデルシミュレーション実行部621は、対象を模擬する上位モデルのパラメータ値を出力する下位モデルに、下位モデルのパラメータ値の分布を示すデータを適用してシミュレーションを実行し、上位モデルのパラメータ値の分布を示すデータを算出する。上位モデルシミュレーション実行部622は、上位モデルに、算出したパラメータ値の分布を示すデータを適用して対象のシミュレーションを実行する。
【0178】
下位モデルシミュレーション実行部621は、下位モデルシミュレーション実行手段の例に該当する。上位モデルシミュレーション実行部622は、上位モデルシミュレーション実行手段の例に該当する。
データ算出装置620によれば、下位モデルを用いたパラメータ値の推定結果を上位モデルに反映させることができ、この点で、対象のシミュレーションを高精度に実行することができる。
【0179】
下位モデルシミュレーション実行部621は、例えば、
図1に示される下位シミュレータ部185等の機能を用いて実現することができる。上位モデルシミュレーション実行部622は、例えば、
図1に示される上位シミュレータ部183等の機能を用いて実現することができる。
【0180】
図20は、実施形態に係るデータ算出方法における処理手順の例を示す図である。
図20に示すデータ算出方法は、上位モデルについて事後分布を示すデータを算出する工程(ステップS611)と、下位モデルについて事後分布を示すデータを算出する工程(ステップS612)とを含む。
【0181】
上位モデルについて事後分布を示すデータを算出する工程(ステップS611では、対象を模擬する上位モデルの出力に対するターゲットデータに基づく、上位モデルのパラメータ値の事後分布を示すデータを算出する。
下位モデルについて事後分布を示すデータを算出する工程(ステップS612)では、対象の部分を模擬して上位モデルのパラメータ値を出力する下位モデルについて、上位モデルのパラメータ値の事後分布を示すデータに基づく、下位モデルのパラメータ値の事後分布を示すデータを算出する。
【0182】
図20に示すデータ算出方法によれば、上位モデルのパラメータ値を用いて下位モデルのパラメータ値の事後分布を示すデータを算出することで、データ同化を階層的に行うことができる。具体的には、上位モデルでのデータ同化後のパラメータ値のサンプルに基づいて決定される、下位モデルの出力のターゲット値を用いることで、上位モデルでのデータ同化の結果を下位モデルでのデータ同化に反映させることができる。
【0183】
上位モデルのパラメータの個数が、下位モデルのパラメータの個数の合計よりも少ないことで、対象を1つのモデルのみで模擬する場合よりも、個々のモデルのパラメータの個数を少なくすることができる。
図20に示すデータ算出方法によれば、この点で、比較的短時間でデータ同化を行うことができ、パラメータの値を推定できると期待される。特に、
図20に示すデータ算出方法によれば、モデルのパラメータの個数が多いことで現実的な時間内にパラメータの推定値を得られないことを回避できると期待される。
【0184】
また、下位モデル同士間では直接的なデータのやり取りは無く、下位モデルの各々は並列処理可能である。
図20に示すデータ算出方法によれば、この点でも比較的短時間でデータ同化を行えると期待される。
【0185】
図21は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図21に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740と、不揮発性記録媒体750とを備える。
【0186】
上記のデータ算出装置100およびデータ算出装置610のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。また、インタフェース740は、不揮発性記録媒体750用のポートを有し、不揮発性記録媒体750からの情報の読出、および、不揮発性記録媒体750への情報の書込を行う。
【0187】
データ算出装置100がコンピュータ700に実装される場合、制御部180およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0188】
また、CPU710は、プログラムに従って、記憶部170に対応する記憶領域を主記憶装置720に確保する。
通信部110による他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
表示部120による表示は、インタフェース740が表示装置を有し、CPU710の制御に従って各種画像を表示することで実行される。
操作入力部130によるユーザ操作の受け付けは、インタフェース740が例えばキーボードおよびマウスなどの入力デバイスを有してユーザ操作を受け付け、受け付けたユーザ操作を示す情報をCPU710へ出力することで実行される。
【0189】
データ算出装置610がコンピュータ700に実装される場合、上位事後分布データ算出部611、および、下位事後分布データ算出部612の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0190】
また、CPU710は、プログラムに従って、データ算出装置610が行う処理のための記憶領域を主記憶装置720に確保する。
データ算出装置610と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
データ算出装置610とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
【0191】
上述したプログラムのうち何れか1つ以上が不揮発性記録媒体750に記録されていてもよい。この場合、インタフェース740が不揮発性記録媒体750からプログラムを読み出すようにしてもよい。そして、CPU710が、インタフェース740が読み出したプログラムを直接実行するか、あるいは、主記憶装置720または補助記憶装置730に一旦保存して実行するようにしてもよい。
【0192】
なお、データ算出装置100、および、データ算出装置610が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0193】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0194】
本発明の実施形態は、データ算出装置、データ算出方法および記録媒体に適用してもよい。
【符号の説明】
【0195】
100、610 データ算出装置
110 通信部
120 表示部
130 操作入力部
170 記憶部
180 制御部
181 初期設定部
182 ループ処理部
183 上位シミュレータ部
184、611 上位事後分布データ算出部
185 下位シミュレータ部
186、612 下位事後分布データ算出部