(57)【要約】【課題】推定精度を向上させることを課題とする。【解決手段】シミュレーション装置は、過去のデータに基づき学習された結果値からパラメータ値を推定する第１の推定器、および、パラメータ値から結果値を推定する第２の推定器を用いた推定装置である。シミュレーション装置は、特定の結果値、または、特定の結果値の近傍にある近傍結果値を用いて、第１の推定器、および、第２の推定器により推定された再構成値と入力された結果値から再構成誤差を算出する。シミュレーション装置は、入力された結果値と特定の結果値から算出される代用誤差、および、再構成誤差の和を最小とする第１の結果値を探索する。シミュレーション装置は、第１の結果値から第１の推定器を用いて推定されるパラメータ値を出力する。【選択図】図１
2018195029.tif 000002
【特許請求の範囲】
【請求項１】
過去のデータに基づき学習された結果値からパラメータ値を推定する第１の推定器、および、パラメータ値から結果値を推定する第２の推定器を用いた推定プログラムであって、
特定の結果値、または、前記特定の結果値の近傍にある近傍結果値を用いて、前記第１の推定器、および、前記第２の推定器により推定された再構成値と入力された結果値から再構成誤差を算出し、
前記入力された結果値と前記特定の結果値から算出される代用誤差、および、前記再構成誤差の和を最小とする第１の結果値を探索し、
前記第１の結果値から前記第１の推定器を用いて推定されるパラメータ値を出力する、
処理をコンピュータに実行させることを特徴とする推定プログラム。
【請求項２】
前記探索する処理は、前記過去のデータの総数が閾値以下である場合、前記和を算出する際に、前記再構成誤差の重みを前記代用誤差よりも小さくして算出することを特徴とする請求項１に記載の推定プログラム。
【請求項３】
前記探索する処理は、前記第１の推定器および前記第２の推定器がニューラルネットワークを用いた推定器である場合、前記代用誤差と前記再構成誤差との和である合計誤差の勾配を用いて、前記特定の結果値の近傍にある近傍結果値を探索することを特徴とする請求項１に記載の推定プログラム。
【請求項４】
過去のデータに基づき学習された結果値からパラメータ値を推定する第１の推定器、および、パラメータ値から結果値を推定する第２の推定器を用いた推定方法であって、
特定の結果値、または、前記特定の結果値の近傍にある近傍結果値を用いて、前記第１の推定器、および、前記第２の推定器により推定された再構成値と入力された結果値から再構成誤差を算出し、
前記入力された結果値と前記特定の結果値から算出される代用誤差、および、前記再構成誤差の和を最小とする第１の結果値を探索し、
前記第１の結果値から前記第１の推定器を用いて推定されるパラメータ値を出力する、
処理をコンピュータが実行することを特徴とする推定方法。
【請求項５】
過去のデータに基づき学習された結果値からパラメータ値を推定する第１の推定器、および、パラメータ値から結果値を推定する第２の推定器を用いた推定装置であって、
特定の結果値、または、前記特定の結果値の近傍にある近傍結果値を用いて、前記第１の推定器、および、前記第２の推定器により推定された再構成値と入力された結果値から再構成誤差を算出する算出部と、
前記入力された結果値と前記特定の結果値から算出される代用誤差、および、前記再構成誤差の和を最小とする第１の結果値を探索する探索部と、
前記第１の結果値から前記第１の推定器を用いて推定されるパラメータ値を出力する出力部と
をを有することを特徴とする推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定プログラム、推定方法および推定装置に関する。
【背景技術】
【０００２】
従来から、災害の分析やテーラーメード医療など様々な分野で、ある状態（ｙ）を実現するための入力パラメータ（ｘ）を探索するシミュレーション技術が使用されている。例えば、過去のシミュレーションの実行結果である入力と出力の組を訓練データとして使用して、出力から入力を推定する推定器を学習する。そして、学習した推定器を使用して、求めたい出力（ｙ）を出力する入力（ｘ）を推定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１８５８８０号公報
【特許文献２】特開２０１６−８５６４号公報
【特許文献３】特開２００４−６２４４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、求めたい値が訓練データから離れており、推定器が推定可能な範囲を逸脱している場合、推定精度が劣化する。
【０００５】
例えば、洪水などの極端な状況（ｙ）を発生させるパラメータ（ｘ）を推定する場合、極端な状況（ｙ）が過去のシミュレーション結果に含まれない可能性が高く、そのような場合は、推定されたパラメータ（ｘ）が訓練データからかけ離れたものとなり、信頼性が低下する。また、出力（ｙ）が実データに一致するパラメータ（ｘ）を推定する場合、実データがシミュレータによって実現可能な範囲に含まれるとは限らず、訓練データから逸脱している可能性がある。なお、多種多様かつ膨大な訓練データを予め用意することも考えられるが、非常に時間がかかり、現実的ではない。
【０００６】
一つの側面では、推定精度を向上させることができる推定プログラム、推定方法および推定装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の案では、推定プログラムは、過去のデータに基づき学習された結果値からパラメータ値を推定する第１の推定器、および、パラメータ値から結果値を推定する第２の推定器を用いた推定プログラムであって、特定の結果値、または、前記特定の結果値の近傍にある近傍結果値を用いて、前記第１の推定器、および、前記第２の推定器により推定された再構成値と入力された結果値から再構成誤差を算出する処理をコンピュータに実行させる。推定プログラムは、前記入力された結果値と前記特定の結果値から算出される代用誤差、および、前記再構成誤差の和を最小とする第１の結果値を探索する処理をコンピュータに実行させる。推定プログラムは、前記第１の結果値から前記第１の推定器を用いて推定されるパラメータ値を出力する処理をコンピュータに実行させる。
【発明の効果】
【０００８】
一実施形態によれば、推定精度を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１にかかるシミュレーション装置の機能構成を示す機能ブロック図である。
【図２】図２は、訓練データＤＢに記憶される訓練データの例を示す図である。
【図３】図３は、テストデータＤＢに記憶されるテストデータの例を示す図である。
【図４】図４は、想定する訓練データとテストデータの関係を説明する図である。
【図５】図５は、推定器の学習を説明する図である。
【図６】図６は、シミュレーションを説明する図である。
【図７】図７は、再構成誤差の算出を説明する図である。
【図８】図８は、代用データの生成を説明する図である。
【図９】図９は、実施例１にかかるシミュレーションを説明する図である。
【図１０】図１０は、処理の流れを示すフローチャートである。
【図１１】図１１は、推定値の比較を説明する図である。
【図１２】図１２は、推定器の学習の別例を説明する図である。
【図１３】図１３は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する推定プログラム、推定方法および推定装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではなく、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１１】
実施例１にかかるシミュレーション装置１０は、シミュレータ等のブラックボックス関数に対して、ある出力に対応する入力を高精度に推定するためのコンピュータ装置である。例えば、シミュレーション装置１０は、過去のシミュレーション結果に含まれない洪水などの極端な状況を発生させるパラメータの推定、出力が実データに一致するパラメータの推定などに用いられる。
【００１２】
一般的に、単純なシミュレータの入力パラメータの予測問題として考えた場合、出力（ｙ）に対する予測結果（ｘ）の誤差の最小化を目指してシミュレーションが実行される。しかし、実際は推定パラメータ（ｘ）の誤差は重要ではなく、（ｘ）をシミュレータに適用した場合の結果ｓ（ｘ）と予測対象（ｙ）の誤差の最小化が重要である。
【００１３】
そこで、実施例１にかかるシミュレーション装置１０は、本来推定したいデータではなく、精度よく推定可能な範囲内にある似たデータを代わりに推定する。具体的には、シミュレーション装置１０は、実際の推定対象（ｙ）を推定する問題を直接解かずに、訓練データから推定可能であり、（ｙ）になるべく近い別の（ｙ´）を推定する問題に置き換えて解く。例えば、シミュレーション装置１０は、ある入力（ｘ）をブラックボックス関数ｓ（ｘ）に適用した場合の誤差（適用誤差）の見積もりを行う。そして、シミュレーション装置１０は、実際の推定対象（ｙ）の代わりに、適用誤差が小さいと見積もられる範囲に存在し、（ｙ）の近傍にある近傍値である代用データ（ｙ´）に対する入力（ｘ）を推定する。
【００１４】
すなわち、シミュレーション装置１０は、入力から出力を推定する推定器の学習と、出力から入力を推定する推定器の学習とを併用して、精度よく推定可能な出力の範囲を見積もることで、求めたい値が訓練データの集合から離れており、推定器が推定可能な範囲を逸脱している場合でも、推定精度の劣化を抑制する。
【００１５】
［機能構成］
図１は、実施例１にかかるシミュレーション装置１０の機能構成を示す機能ブロック図である。図１に示すように、シミュレーション装置１０は、通信部１１、記憶部１２、制御部２０を有する。なお、シミュレーション装置１０は、これら以外にも、表示部や入力部などを有していてもよい。
【００１６】
通信部１１は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、管理者端末などから処理開始の指示を受信し、訓練データやテストデータの入力を受け付け、推定結果を管理者端末に送信する。
【００１７】
記憶部１２は、プログラムやデータなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。記憶部１２は、訓練データＤＢ１３、テストデータＤＢ１４、推定結果ＤＢ１５を記憶する。
【００１８】
訓練データＤＢ１３は、過去のシミュレーションの実行結果である入力と出力の組を訓練データとして記憶するデータベースである。図２は、訓練データＤＢ１３に記憶される訓練データの例を示す図である。図２に示すように、訓練データＤＢ１３は、「入力、出力（ｙ１、ｙ２）」を記憶する。「入力」は、シミュレータ等の未知の関数であるブラックボックス関数（ｓ（ｘ））への入力であり、「出力」は、入力（ｘ）をブラックボックス関数に入力したときの出力である。図２の例では、ブラックボックス関数（ｓ（ｘ））に、ｘ＝０．０を入力したときのシミュレーション結果が（ｙ１＝０．４，ｙ２＝０．１）であることを示す。なお、ブラックボックス関数（ｓ（ｘ））は、未知の関数であるが、例えば「ｙ１＝２ｘ＋ε、ｙ２＝ｘ＋ε、εはノイズ」などが想定される。
【００１９】
テストデータＤＢ１４は、想定される実データを記憶するデータベースである。図３は、テストデータＤＢ１４に記憶されるテストデータの例を示す図である。図３に示すように、テストデータＤＢ１４は、「入力、出力（ｙ１、ｙ２）」を記憶する。「入力」は、出力を得るための入力値であり、「出力」は、入力をブラックボックス関数に入力したときの出力である。図３に示すように、出力が既知で、入力が不明であることから、ここでは、ブラックボックス関数（ｓ（ｘ））から生成された訓練データを学習し、できるだけテストデータに近い出力（ｙ１，ｙ２）を生成する入力（ｘ）を求める。
【００２０】
ここで、実施例１が想定する、訓練データとテストデータとの関係を説明する。図４は、想定する訓練データとテストデータの関係を説明する図である。図４に示すように、テストデータは、訓練データの分布から離れた出力値である。したがって、テストデータは、推定器が推定可能な範囲を逸脱しているので、従来手法でシミュレーションを実行しても、推定精度が悪くなる値である。
【００２１】
推定結果ＤＢ１５は、後述する制御部２０による推定結果を記憶するデータベースである。例えば、推定結果ＤＢ１５は、後述する合計誤差が閾値未満となったときの入力の推定器ｅｎｃ（ｙ１，ｙ２）の推定値を記憶する。
【００２２】
制御部２０は、シミュレーション装置１０全体を司る処理部であり、例えばプロセッサなどである。この制御部２０は、訓練部２１と入力推定部２２と出力推定部２３と代用データ生成部２４とを有する。なお、訓練部２１と入力推定部２２と出力推定部２３と代用データ生成部２４は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。また、代用データ生成部２４は、算出部と探索部と出力部の一例である。
【００２３】
訓練部２１は、訓練データを用いて入力の推定器ｅｎｃ（ｙ）を学習し、訓練データを用いて出力の推定器ｄｅｃ（ｘ）を学習する処理部である。図５は、推定器の学習を説明する図である。図５に示すように、訓練部２１は、訓練データＤＢ１３に記憶される訓練データの出力（ｙ１，ｙ２）を、入力の推定器ｅｎｃ（ｙ１，ｙ２）に代入して、入力（ｘ）を学習する。また、訓練部２１は、訓練データＤＢ１３に記憶される訓練データの入力（ｘ）を、出力の推定器ｄｅｃ（ｘ）に代入して、出力（ｙ１，ｙ２）を学習する。なお、実施例１では、各推定器として線形学習器（単純パーセプトロン）を用いるが、これに限定されるものではなく、公知の様々な学習器を採用することができる。
【００２４】
入力推定部２２は、入力の推定器ｅｎｃ（ｙ）を用いて、出力（ｙ）から入力（ｘ）を推定する処理部である。例えば、入力推定部２２は、訓練部２１によって学習した推定器ｅｎｃ（ｙ）にテストデータの出力（ｙ１，ｙ２）を適用して、入力（ｘ）を推定する。そして、入力推定部２２は、推定した入力（ｘ）を出力推定部２３に出力する。
【００２５】
出力推定部２３は、出力の推定器ｄｅｃ（ｘ）を用いて、入力（ｘ）から出力（ｙ）を推定する処理部である。例えば、出力推定部２３は、訓練部２１によって学習した推定器ｄｅｃ（ｘ）に入力推定部２２から入力された（ｘ）を適用して、出力（ｙ）を推定する。そして、出力推定部２３は、推定した出力（ｙ）を代用データ生成部２４に出力する。
【００２６】
代用データ生成部２４は、実際の推定対象（ｙ）の代わりに、誤差（適用誤差）が小さいと見積もられる範囲に存在する代用データ（ｙ´）を生成して、入力推定部２２に入力する処理部である。また、代用データ生成部２４は、実際の推定対象（ｙ）と代用データ（ｙ´）との差である代用誤差と、（ｙ´）と（ｙ´）から再構成された（ｙ´´）との差である再構成誤差の総和（合計誤差）が最小になるような（ｙ´）を最適化によって求める処理部である。
【００２７】
［シミュレーション処理］
ここで、実施例１にかかるシミュレーションについて説明する。図６は、シミュレーションを説明する図である。図６の左図に示すように、代用データ生成部２４は、推定対象である（ｙ）との誤差である代用誤差が小さい代用データ（ｙ´）を見積もり、入力推定部２２に入力する。入力推定部２２は、入力された代用データ（ｙ´）を学習済みの推定器ｅｎｃ（ｙ）に適用して、入力（ｘ）を推定する。さらに、出力推定部２３は、推定された入力（ｘ）を学習済みの推定器ｄｅｃ（ｘ）に適用して、出力（ｙ´´）を推定する。
【００２８】
そして、代用データ生成部２４は、代用データ（ｙ´）と推定器ｄｅｃ（ｘ）によって推定された再構成データ（ｙ´´＝ｄｅｃ（ｅｎｃ（ｙ´）））との差である再構成誤差を算出する。続いて、代用データ生成部２４は、代用誤差と再構成誤差との合計である合計誤差を算出する。その後、代用データ生成部２４は、合計誤差が収束しない場合は、合計誤差が小さくなる新たな代用データ（ｙ´）が算出して、再度、推定器ｅｎｃ（ｙ）および推定器ｄｅｃ（ｘ）による推定を繰り返す。そして、代用データ生成部２４は、合計誤差が収束した場合は、その時の（ｘ）を推定結果として出力する。
【００２９】
なお、実施例１にかかるシミュレーション装置１０は、入力（ｘ）の誤差の最小化を目指すのではなく、推定したｅｎｃ（ｙ）をシミュレータに適用した結果ｓ（ｅｎｃ（ｙ））の誤差（合計誤差はその見積もり）の最小化を目指するので、推定対象であるｙを変更してもよい。
【００３０】
ここで、各データと誤差との関係を説明する。図６の右図に示すように、予測対象であるデータ（ｙ）は訓練データから離れた位置のデータである。そこで、予測対象（ｙ）よりも訓練データに近い代用データ（ｙ´）を用いて、ｄｅｃ（ｘ）を推定し、ｄｅｃ（ｘ）を用いて再構成データ（ｙ´´＝ｄｅｃ（ｅｎｃ（ｙ´）））を推定する。ここで、予測対象（ｙ）と代用データ（ｙ´）との距離（例えばユークリッド距離）が代用誤差であり、と代用データ（ｙ´）と再構成データ（ｙ´´）との距離が再構成誤差である。
【００３１】
［再構成誤差の算出］
次に、再構成誤差の算出手法について説明する。図７は、再構成誤差の算出を説明する図である。図７に示すように、入力推定部２２は、テストデータの出力（ｙ１，ｙ２）に入力の推定器ｅｎｃ（ｙ）を適用して、入力（ｘ）を推定する。例えば、入力推定部２２は、学習結果「ｘ＝−０．００７３２＊ｙ１＋１．１７６３＊ｙ２−０．１２４９」を用いて、入力（ｘ＝３．２５７）を算出する。
【００３２】
続いて、出力推定部２３は、推定器ｄｅｃ（ｘ）に入力（ｘ）を適用して、出力（ｙ１，ｙ２）を推定する。例えば、出力推定部２３は、学習結果「ｙ１＝１．９１７１＊ｘ＋０，３２３８，ｙ２＝０．９６８６＊ｘ＋０．１２８６」を用いて、出力（ｙ１＝６．５６９，ｙ２＝３．２８４）を算出する。
【００３３】
そして、代用データ生成部２４は、テストデータの出力（ｙ１，ｙ２）と、推定結果（ｙ１＝６．５６９，ｙ２＝３．２８４）とのユークリッド距離である４．５７８を、再構成誤差（Ｌ２）として算出する。そして、代用データ生成部２４は、この再構成誤差（Ｌ２）が閾値以下となるまで、代用データを生成して、各推定器による推定処理を実行させる。
【００３４】
［代用データの生成］
続いて、代用データの生成について説明する。図８は、代用データの生成を説明する図である。図８に示すひし形は訓練データを示し、網掛けの四角はテストデータ（初期値）を示し、白い四角は代用データを示し、三角は再構成データを示す。代用データ生成部２４は、代用誤差と再構成誤差とを加算した合計誤差が小さくなるように、テストデータ（初期値）から値（代用データ）を変更して、シミュレーション（推定処理）を実行させる。
【００３５】
ここで、代用データ生成部２４は、実際の推定対象（ｙ）と代用データ（ｙ´）の差（代用誤差）と、代用データ（ｙ´）と代用データ（ｙ´）から再構成された再構成データ（ｙ´´）の差（再構成誤差）の総和（合計誤差）が最小になるような（ｙ´）を最適化によって求める。
【００３６】
例えば、代用データ生成部２４は、訓練データの総数が閾値以下で少なく、代用誤差の推定精度が不十分と考えられる場合は、合計誤差の計算に再構成誤差の重みを小さくした重み付き和を用いることもできる。より詳細には、代用データ生成部２４は、推定誤差＋０．８＊再合成誤差＝合計誤差のように、再構成誤差の重みを小さくして、合計誤差を算出することもできる。
【００３７】
また、代用データ生成部２４は、推定器ｅｎｃや推定器ｄｅｃがニューラルネットワーク等の微分可能な関数として構成されている場合、代用データ（ｙ´）に対する合計誤差の勾配を使って（ｙ´）を最適化することもできる。より詳細には、合計誤差をＬ＝ｆ（ｙ）とすると、ｅｎｃおよびｄｅｃがニューラルネットワーク等の微分可能な関数として構成されている場合、ｆは微分可能となる。この場合、あるｙに対して、Ｌを小さくするためにｙに加える微小な値（一般にはベクトル）を求めることができる。この性質を利用して適当なｙから開始して、ｙに対する合計誤差Ｌの勾配を求め勾配を下る方向にｙを順次移動させることで、Ｌの小さいｙを効率よく求めることができる。このような勾配を使う方法（勾配法）としては再急降下法の更新式などを用いることができるが、他の様々な手法の更新式を用いることができる。
【００３８】
［具体例］
次に、シミュレーションの具体例を説明する。図９は、実施例１にかかるシミュレーションを説明する図である。図９に示すように、まず、入力推定部２２は、テストデータの出力ｙ（ｙ１＝２．０，ｙ２＝３．０）に入力の推定器ｅｎｃ（ｙ）を適用して、入力（ｘ）＝３．２５７を推定し、出力推定部２３は、推定器ｄｅｃ（ｘ）に入力（ｘ）を適用して、出力ｙ´´（ｙ１，ｙ２）を推定する。この結果、代用データ生成部２４は、出力ｙと出力ｙ´´との再構成誤差（４．５７８）と代用誤差（０）を算出し、合計誤差（４．５７８）を算出する。
【００３９】
ここで、合計誤差（４．５７８）が閾値（例えば２）以上であることから、代用データ生成部２４は、上述した手法を用いて、再構成誤差が小さくなるように、代用データｙ´（ｙ１＝２．０，ｙ２＝２．５）を生成する。そして、入力推定部２２は、代用データｙ´（ｙ１＝２．０，ｙ２＝２．５）に入力の推定器ｅｎｃ（ｙ）を適用して、入力（ｘ）＝２．６６９を推定し、出力推定部２３は、推定器ｄｅｃ（ｘ）に入力（ｘ）を適用して、出力ｙ´´（ｙ１，ｙ２）を推定する。この結果、代用データ生成部２４は、出力ｙ´と出力ｙ´´との再構成誤差（３．４４８）と代用誤差（０．５００）を算出し、合計誤差（３．９４８）を算出する。
【００４０】
このようにして、代用データ生成部２４は、合計誤差が閾値未満となるまで、代用データを順次生成して、各推定器による推定を繰り返す。そして、代用データｙ´が（ｙ１＝３．０，ｙ２＝１．５）のときに、合計誤差が１．８４９で閾値未満となることから、このときの入力の推定器ｅｎｃ（ｙ１，ｙ２）の推定値「１．４２０」を推定結果として推定結果ＤＢ１５に出力する。なお、テストデータは、訓練データから遠いデータであることがわかっている場合は、テストデータを用いた推定を実行せずに、処理開始後にまず代用データを生成して、次に代用データによる推定を開始することもできる。
【００４１】
［処理の流れ］
図１０は、処理の流れを示すフローチャートである。図１０に示すように、訓練部２１は、訓練データを用いて入力の推定器ｅｎｃを学習し（Ｓ１０１）、訓練データを用いて出力の推定器ｄｅｃを学習する（Ｓ１０２）。
【００４２】
その後、代用データ生成部２４は、テストデータｙから代用データｙ´生成する（Ｓ１０３）。そして、入力推定部２２は、入力の推定器ｅｎｃ（ｙ）を用いて、代用データｙ´に対する入力ｘを推定し（Ｓ１０４）、出力推定器２３は、出力の推定器ｄｅｃ（ｘ）を用いて、入力ｘに対するｙ´´を推定する（Ｓ１０５）。
【００４３】
その後、代用データ生成部２４は、ｙとｙ´の差である代用誤差を計算し（Ｓ１０６）、ｙ´とｙ´´の差である再構成誤差を計算する（Ｓ１０７）。そして、代用データ生成部２４は、代用誤差と再構成誤差との総和Ｌを算出し（Ｓ１０８）、Ｌが収束しない場合（Ｓ１０９：Ｎｏ）、Ｌが小さくなる方向に代用データｙ´を修正して（Ｓ１１０）、Ｓ１０４以降を実行させる。
【００４４】
一方で、代用データ生成部２４は、Ｌが収束した場合（Ｓ１０９：Ｙｅｓ）、そのときのｘを出力する（Ｓ１１１）。
【００４５】
［効果］
上述したように、シミュレーション装置１０は、推定器を利用して結果値よりパラメータ値を推定する推定方法において、結果値の近傍の値を用いることができる場合に、推定精度の高い近傍の値を用いて、パラメータ値を推定することができる。すなわち、シミュレーション装置１０は、入力から出力を推定する学習を出力から入力を推定する学習と併用することで、精度よく推定可能な出力の範囲を見積もることができ、外れ値に対する推定がロバストになり、推定精度を向上することができる。
【００４６】
図１１は、推定値の比較を説明する図である。図１１に示すように、シミュレーション装置１０は、訓練データから離れたテストデータに対して、単純に入力の推定値を使用する場合より、ブラックボックス関数に適用したときにテストデータに近い値を出力する。つまり、テストデータ（ｙ１＝２．０、ｙ２＝３．０）を用いた推定結果の合計誤差からノイズを除いた適用誤差が４．５２２となる。その一方で、テストデータから順次生成される代用データを用いた推定結果の場合、最終的には適用誤差を１．７８９まで小さくすることができ、一般的な手法と比較して精度が向上する。
【００４７】
つまり、過去のシミュレーション結果に含まれる洪水などの極端な状況を発生させるパラメータ推定を行う場合、一般的な手法のように、極端な状況をそのまま推定したとしても、推定精度が低下するが、洪水に近い状況を発生させる入力（例えば雨量）を推定することで、推定精度の低下を抑制できる。
【実施例２】
【００４８】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００４９】
［推定器の学習］
例えば、シミュレーション装置１０は、AutoEncoder方式を用いて、学習時に、訓練データに対する再構成誤差が小さくなるように、推定器ｅｎｃおよび推定器ｄｅｃを学習することもできる。図１２は、推定器の学習の別例を説明する図である。AutoEncoder方式では訓練データとして、（１）入力ｘに対する出力ｙの組、（２）入力が不明な出力ｙ（オプション）の２つを使用できる。
【００５０】
そこで、図１２に示すように、シミュレーション装置１０は、３つの学習を実行することができる。例えば、図１２の（ａ）に示すように、シミュレーション装置１０は、（１）のデータを使用して、出力ｙに対する入力の推定値ｘ´＝ｅｎｃ（ｙ）とｘの誤差が小さくなるように、推定器ｅｎｃを学習する。また、図１２の（ｂ）に示すように、シミュレーション装置１０は、（１）のデータを使用して、入力ｘに対する出力の推定値ｙ´＝ｄｅｃ（ｘ）とｙの誤差が小さくなるように、推定器ｄｅｃを学習する。
【００５１】
また、シミュレーション装置１０は、図１２の（ｃ）に示すように、（１）のｙと（２）のデータを使用して、出力ｙに対する入力の推定値ｘ´＝ｅｎｃ（ｙ）に対する出力の推定値ｙ´＝ｄｅｃ（ｘ´）＝ｄｅｃ（ｅｎｃ（ｙ））とｙの誤差が小さくなるように、推定器ｅｎｃと推定器ｄｅｃを学習する。このようにすることで、シミュレーション装置１０は、推定精度をより向上させることができる。
【００５２】
［代用データの生成］
例えば、シミュレーション装置１０は、上述した手法以外の様々な手法を用いて、代用データの生成を行うことができる。例えば、シミュレーション装置１０は、訓練データの集合を近似値や平均値などを用いて直線で表し、テストデータがその直線に近づくように、代用データの生成を行うことができる。
【００５３】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５５】
［ハードウェア構成］
図１３は、ハードウェア構成例を示す図である。図１３に示すように、シミュレーション装置１０は、通信インタフェース１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。
【００５６】
通信インタフェース１０ａは、他の装置の通信を制御するネットワークインタフェースカードなどである。ＨＤＤ１０ｂは、プログラムやデータなどを記憶する記憶装置の一例である。
【００５７】
メモリ１０ｃの一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。プロセッサ１０ｄの一例としては、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＰＬＤ（Programmable  Logic  Device）等が挙げられる。
【００５８】
また、シミュレーション装置１０は、プログラムを読み出して実行することで推定方法を実行する情報処理装置として動作する。つまり、シミュレーション装置１０は、訓練部２１と入力推定部２２と出力推定部２３と代用データ生成部２４と同様の機能を実行するプログラムを実行する。この結果、シミュレーション装置１０は、訓練部２１と入力推定部２２と出力推定部２３と代用データ生成部２４と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、シミュレーション装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【００５９】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【００６０】
１０  シミュレーション装置
１１  通信部
１２  記憶部
１３  訓練データＤＢ
１４  テストデータＤＢ
１５  推定結果ＤＢ
２０  制御部
２１  訓練部
２２  入力推定部
２３  出力推定部
２４  代用データ生成部
【図１】
2018195029.tif 000003
【図２】
2018195029.tif 000004
【図３】
2018195029.tif 000005
【図４】
2018195029.tif 000006
【図５】
2018195029.tif 000007
【図６】
2018195029.tif 000008
【図７】
2018195029.tif 000009
【図８】
2018195029.tif 000010
【図９】
2018195029.tif 000011
【図１０】
2018195029.tif 000012
【図１１】
2018195029.tif 000013
【図１２】
2018195029.tif 000014
【図１３】
2018195029.tif 000015