(57)【要約】【課題】最適な入力パラメータを高速に求めることができる。【解決手段】入力データの次元数である入力データ次元数と、入力データ次元数よりも低次元の低次元化次元数と、並列数とに基づいて、並列数分だけ、入力データ次元数で定義される空間を、低次元化次元数で定義される空間に変換するための変換行列を決定することにより、並列数分の探索範囲を決定する。入力データを、シミュレータに入力し、出力データと、予め与えられた観測値との差である目的関数値を取得することを所定の回数繰り返し、獲得関数を用いて、次に入力するパラメータを決定する。決定した次に入力するパラメータ及び変換行列から得られる入力データをシミュレータに入力して、目的関数値を求めることを所定の回数繰り返すことを、並列に実行し、最適な入力パラメータを決定する。【選択図】図１
2020144530.tif 000002
【特許請求の範囲】
【請求項１】
入力データの次元数である入力データ次元数と、前記入力データ次元数よりも低次元の低次元化次元数と、並列数とに基づいて、前記並列数分だけ、前記入力データ次元数で定義される空間を、前記低次元化次元数で定義される空間に変換するための変換行列を決定することにより、前記並列数分の探索範囲を決定する探索範囲決定部と、
前記並列数分の探索範囲の各々について、
前記探索範囲において、前記探索範囲から選んだパラメータおよび前記変換行列から得られる入力データを、予め与えられた観測値に関する目的関数値を出力する所定の装置に入力し、目的関数値を取得することを所定の回数繰り返し、
前記目的関数値が最適となる前記パラメータおよび前記変換行列から得られる、前記目的関数値を求めることを所定の回数繰り返すことを、並列に実行する最適化実行部と、
前記探索範囲の各々について求められた目的関数値の各々に基づいて、前記目的関数値が最適となる前記パラメータ及び前記変換行列から得られる、最適な入力パラメータを決定する最適値決定部と、
を含むパラメータ推定装置。
【請求項２】
前記最適化実行部は、前記並列数分の探索範囲の各々について、前記目的関数値を取得したあとに、
前記入力データと前記目的関数値との関係を表す関数を、確率モデルにより近似し、前記近似した関数と、前記目的関数値が最適となる前記パラメータを用いた獲得関数を用いて、次に入力するパラメータを決定し、決定した前記次に入力するパラメータおよび前記変換行列から得られる入力データを、前記所定の装置に入力し、前記目的関数値を求めることを所定の回数繰り返すことを、並列に実行する請求項１に記載のパラメータ推定装置。
【請求項３】
前記最適化実行部は、前記並列数分の探索範囲の各々について、
前記探索範囲において、前記探索範囲から選んだパラメータおよび前記変換行列から得られる入力データを、シミュレータに入力し、出力データと、前記目的関数値を取得することを所定の回数繰り返し、
前記獲得関数を用いて、次に入力するパラメータを決定し、決定した前記次に入力するパラメータおよび前記変換行列から得られる入力データを、前記シミュレータに入力し、前記目的関数値を求めることを所定の回数繰り返すことを、並列に実行する請求項２に記載のパラメータ推定装置。
【請求項４】
前記探索範囲決定部、前記最適化実行部、および前記最適値決定部による各処理を一つのサイクルとして繰り返す判定部を更に含む請求項１〜請求項３の何れか１項に記載のパラメータ推定装置。
【請求項５】
前記繰り返しにおいて、前記探索範囲決定部は、前のサイクルで決定された前記最適な入力パラメータを含む探索範囲を優先して、前記並列数分の探索範囲を決定する請求項４に記載のパラメータ推定装置。
【請求項６】
探索範囲決定部が、入力データの次元数である入力データ次元数と、前記入力データ次元数よりも低次元の低次元化次元数と、並列数とに基づいて、前記並列数分だけ、前記入力データ次元数で定義される空間を、前記低次元化次元数で定義される空間に変換するための変換行列を決定することにより、前記並列数分の探索範囲を決定するステップと、
最適化実行部が、前記並列数分の探索範囲の各々について、
前記探索範囲において、前記探索範囲から選んだパラメータおよび前記変換行列から得られる入力データを、予め与えられた観測値に関する目的関数値を出力する所定の装置に入力し、目的関数値を取得することを所定の回数繰り返し、
前記目的関数値が最適となる前記パラメータおよび前記変換行列から得られる、前記目的関数値を求めることを所定の回数繰り返すことを、並列に実行するステップと、
最適値決定部が、前記探索範囲の各々について求められた目的関数値の各々に基づいて、前記目的関数値が最適となる前記パラメータ及び前記変換行列から得られる、最適な入力パラメータを決定するステップと、
を含むパラメータ推定方法。
【請求項７】
コンピュータに、
入力データの次元数である入力データ次元数と、前記入力データ次元数よりも低次元の低次元化次元数と、並列数とに基づいて、前記並列数分だけ、前記入力データ次元数で定義される空間を、前記低次元化次元数で定義される空間に変換するための変換行列を決定することにより、前記並列数分の探索範囲を決定し、
前記並列数分の探索範囲の各々について、
前記探索範囲において、前記探索範囲から選んだパラメータおよび前記変換行列から得られる入力データを、予め与えられた観測値に関する目的関数値を出力する所定の装置に入力し、目的関数値を取得することを所定の回数繰り返し、
前記目的関数値が最適となる前記パラメータおよび前記変換行列から得られる、前記目的関数値を求めることを所定の回数繰り返すことを、並列に実行し、
前記探索範囲の各々について求められた目的関数値の各々に基づいて、前記目的関数値が最適となる前記パラメータ及び前記変換行列から得られる、最適な入力パラメータを決定すること、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パラメータ推定装置、方法、及びプログラムに係り、特に、機械学習やシミュレーション等のパラメータを効率的に推定するパラメータ推定装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
ＩｏＴの普及により、沢山の人やものの情報を収集できるようになってきており、取得した情報を、観光や交通、医療分野等に活かす動きが活発化している。データ解析手法として、機械学習やシミュレーション等の技術が利用されているが、これらに最適なパラメータを探索するためには、膨大な計算コストがかかることも多い。そこで、効率的なパラメータ探索の一手法として、ベイズ最適化が存在する（非特許文献１）。
【０００３】
ベイズ最適化は、観測情報から得られる関数の事後分布を元に、ブラックボックス関数の最適値（最大値または最小値）を求める手法である。ベイズ最適化は、観測対象とするパラメータを、確率分布をもとに決定することで、無作為にパラメータを選定するランダムサーチなどに比べて効率的に最適値が求まることが知られている。しかし、ベイズ最適化を用いても、特にパラメータが高次元であったり、とりうる値の範囲が大きかったりする場合、計算コストがかかるという問題は依然存在している。例えば、１回の探索に７分かかる場合、１００回試行すれば１０時間以上かかることになる。
【０００４】
ベイズ最適化における高速化の一手法として、処理の非同期並列化が考えられる。例えば、ベイズ最適化を並列処理する手法として、Ｍ個のワーカーにタスクを投げ、ベイズ最適化を並列で実行する研究がある（非特許文献２）。例えば１００回の探索を、Ｍ＝４個のワーカーで並列化すれば、約４倍の高速化が期待できる。この研究は、他のワーカーの待ち時間を短縮できる非同期並列処理である点も特徴である。非同期並列処理は、それぞれのワーカーが他のワーカーの探索終了を待たずに探索を開始できる並列処理である。
【０００５】
また、ベイズ最適化の低次元化の手法がある。例えば、高次元への対応として、パラメータ空間を低次元に落として最適化を行う手法がある（非特許文献３）。非特許文献３の手法は、低次元化することで、少ない観測点（探索数）で最適解を見つけることが期待できる。
【０００６】
また、ベイズ最適化の空間分割の手法がある。例えば、高次元や大規模な探索区間への対応として、パラメータ空間を分割し、それぞれで最適化を行う手法がある（非特許文献４）。探索空間を狭めることで、効率的に探索を行うことができ、最適解を早く見つけることが期待できる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】J.Snoek, H.Larochelle, R.P.Adams. Practical Bayesian optimization of machine learning algorithms. In Advances in Neural Information Processing Systems (NIPS), 2012.
【非特許文献２】K. Kandasamy, A. Krishnamurthy, J. Schneider, B. Poczos.Parallelised Bayesian Optimisation via Thompson Sampling. In Proceedings of the Twenty-First International Conference on Articial Intelligence and Statistics (AISTATS), 2018.
【非特許文献３】Z. Wang, F. Hutter, M. Zoghi, D. Matheson, N de Freitas.Bayesian Optimization in a Billion Dimensions via Random Embeddings. In Journal of Articial Intelligence Research (JAIR), 2016.
【非特許文献４】Z. Wang, C. Gehring, P. Kohli, S. Jegelka. Batched large-scale bayesian optimization in high-dimensional spaces. In Proceedings of the Twenty-First International Conference on Articial Intelligence and Statistics(AISTATS), 2018.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記の知見を利用すれば、パラメータ探索の高速化が期待できる。しかし、非特許文献２の並列化手法では、各ワーカーが活用する過去の探索情報をワーカー間で共有するため、Ｍ個のワーカーで並列化した場合、探索実行中の最大Ｍ−１個の探索情報を利用できないという問題がある。また、非特許文献３の手法では、低次元化して計算するのみで、並列化は実施されていない。また、低次元化の次元数は、目的関数に影響を与える有用な次元数ｄｅｆｆｅｃｔｉｖｅ以上である必要がある。また、非特許文献４の手法では、パラメータ空間を分割する処理がサイクルごとに入り、最適化にかかる時間が中程度の場合、分割にかかる時間が相対的に大きくなってしまうという問題がある。
【０００９】
本発明は、上記事情を鑑みて成されたものであり、最適な入力パラメータを高速に求めることができるパラメータ推定装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明に係るパラメータ推定装置は、入力データの次元数である入力データ次元数と、前記入力データ次元数よりも低次元の低次元化次元数と、並列数とに基づいて、前記並列数分だけ、前記入力データ次元数で定義される空間を、前記低次元化次元数で定義される空間に変換するための変換行列を決定することにより、前記並列数分の探索範囲を決定する探索範囲決定部と、前記並列数分の探索範囲の各々について、前記探索範囲において、前記探索範囲から選んだパラメータおよび前記変換行列から得られる入力データを、予め与えられた観測値に関する目的関数値を出力する所定の装置に入力し、目的関数値を取得することを所定の回数繰り返し、前記目的関数値が最適となる前記パラメータおよび前記変換行列から得られる、前記目的関数値を求めることを所定の回数繰り返すことを、並列に実行する最適化実行部と、前記探索範囲の各々について求められた目的関数値の各々に基づいて、前記目的関数値が最適となる前記パラメータ及び前記変換行列から得られる、最適な入力パラメータを決定する最適値決定部と、を含んで構成されている。
【００１１】
本発明に係るパラメータ推定方法は、探索範囲決定部が、入力データの次元数である入力データ次元数と、前記入力データ次元数よりも低次元の低次元化次元数と、並列数とに基づいて、前記並列数分だけ、前記入力データ次元数で定義される空間を、前記低次元化次元数で定義される空間に変換するための変換行列を決定することにより、前記並列数分の探索範囲を決定するステップと、最適化実行部が、前記並列数分の探索範囲の各々について、前記探索範囲において、前記探索範囲から選んだパラメータおよび前記変換行列から得られる入力データを、予め与えられた観測値に関する目的関数値を出力する所定の装置に入力し、目的関数値を取得することを所定の回数繰り返し、前記目的関数値が最適となる前記パラメータおよび前記変換行列から得られる、前記目的関数値を求めることを所定の回数繰り返すことを、並列に実行するステップと、最適値決定部が、前記探索範囲の各々について求められた目的関数値の各々に基づいて、前記目的関数値が最適となる前記パラメータ及び前記変換行列から得られる、最適な入力パラメータを決定するステップと、を含んで実行することを特徴とする。
【００１２】
本発明に係るプログラムは、コンピュータに、入力データの次元数である入力データ次元数と、前記入力データ次元数よりも低次元の低次元化次元数と、並列数とに基づいて、前記並列数分だけ、前記入力データ次元数で定義される空間を、前記低次元化次元数で定義される空間に変換するための変換行列を決定することにより、前記並列数分の探索範囲を決定し、前記並列数分の探索範囲の各々について、前記探索範囲において、前記探索範囲から選んだパラメータおよび前記変換行列から得られる入力データを、予め与えられた観測値に関する目的関数値を出力する所定の装置に入力し、目的関数値を取得することを所定の回数繰り返し、前記目的関数値が最適となる前記パラメータおよび前記変換行列から得られる、前記目的関数値を求めることを所定の回数繰り返すことを、並列に実行し、前記探索範囲の各々について求められた目的関数値の各々に基づいて、前記目的関数値が最適となる前記パラメータ及び前記変換行列から得られる、最適な入力パラメータを決定すること、を実行させるためのプログラムである。
【発明の効果】
【００１３】
本発明のパラメータ推定装置、方法、及びプログラムによれば、最適な入力パラメータを高速に求めることができる、という効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態のパラメータ推定装置の構成の一例を示すブロック図である。
【図２】パラメータ推定装置として機能するコンピュータの一例を示す概略ブロック図である。
【図３】データをデータベーステーブルに記録した探索範囲ＤＢの一例を示す図である。
【図４】データをデータベーステーブルに記録した最適化ＤＢの一例を示す図である。
【図５】データをデータベーステーブルに記録した領域別最適値ＤＢの一例を示す図である。
【図６】本発明の実施の形態に係るパラメータ推定装置における処理ルーチンを示すフローチャートである。
【図７】探索範囲決定部の処理ルーチンを示すフローチャートである。
【図８】最適化実行部の処理ルーチンを示すフローチャートである。
【図９】最適値決定部の処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１６】
上記課題に対して、本発明の実施の形態では、複数のワーカーで処理する並列処理において、非同期並列処理を用いて推定を高速化する。
【００１７】
ベイズ最適化を用いたパラメータ探索において、入力パラメータの探索範囲を、入力パラメータを低次元化することにより分割し、分割した探索範囲を各ワーカーに割り当ることで非同期並列処理を行う。
【００１８】
また、最適化を複数サイクル実施しても良く、その際に、前のサイクルで算出された最適値を含む探索範囲を優先して割り当てるようにしてもよい。
【００１９】
本発明の実施の形態では、非同期並列処理を用いたベイズ最適化において、利活用できない観測情報を排除するような処理をするとともに、追加計算コストがかからない方法で高速化することを目的とする。さらに、高速化手法として低次元化を用いる場合、従来手法と比較してより低次の次元数での処理を可能とすることを目的とする。
【００２０】
ベイズ最適化を高速化できれば、観光や交通、医療分野等において、推定結果を用いたより早い意思決定等が可能となる。
【００２１】
［前提条件］
ここで、本発明の実施の形態の前提条件について説明する。本実施形態では、局所的な場所で観察された通行人数ｙをもとに、実際の人流に近い人流シミュレーションを再現する入力パラメータｘの推定を行う問題を例に説明する。
【００２２】
本問題では、入力パラメータｘおよびＧを以下のように定義する。
【００２３】
ｘ：各ルートＲｊを通るエージェント数を要素とするＤ次元ベクトル
Ｇ：ｘを入力としたシミュレーションの出力データｙｓｉｍと、実際の観測値ｙｏｂｓの差
【００２４】
上記定義から、本問題は、以下（１）式のｘを求める最適化問題と考えることができる。
【００２５】
【数１】
2020144530.tif 000003
・・・（１）
【００２６】
さらに、探索範囲分割の一例として、入力パラメータを低次元化したものを並列数分用意して、非同期並列処理を行う。入力空間ｘに、Ｇ（ｘ）に影響を与えない探索次元や、互いに線形な関係をもつｘがある場合は、変換行列Ａを用いてＧ（ｘ）＝Ｇ（Ａｗ）となるＡとｗとが存在する。変換行列Ａは低次元化次元数ｄで定義される空間に変換するための変換行列である。ｗは探索範囲から選んだパラメータである。Ａとｗとが存在する場合は、（１）式の最適化問題を、より低次元空間での最適化問題に変換して考えることができる。非特許文献３によると、観測データ次元数Ｄ、低次元化次元数ｄ（ｄ＞有用な次元数ｄｅｆｆｅｃｔｉｖｅ）、ｘ∈ＲＤ、Ａ∈ＲＤ×ｄとすると、Ｇ（ｘ）＝Ｇ（Ａｗ）となるｗ∈Ｒｄが存在する。つまり、ｘ∈ＲＤについて、Ｇ（ｘ＊）＝Ｇ（Ａｗ＊）となるｗ＊∈Ｒｄが存在する。よって、Ｌ（ｗ）＝Ｇ（Ａｗ）とすると、本問題は、低次元空間でｗ＊を求める以下（２）式の最適化問題と考えることができる。
【００２７】
【数２】
2020144530.tif 000004
・・・（２）
【００２８】
ただし、本発明の実施の形態では、低次元化次元数ｄを有用な次元数以上に限定せず、１≦ｄ＜Ｄの任意の整数を低次元化次元数ｄとして選択し、最適解の探索を実施することができる。なお、Ｌ（ｗ）は、以下では、目的関数または目的関数値を表すとする。
【００２９】
以上のように局所的な場所で観察された通行人数をもとに、実際の人流に近い人流シミュレーションを再現する入力パラメータの推定を行う例を用いて説明するが、機械学習やシミュレーションのパラメータ推定を行う他のデータ、事例に用いても良い。また、低次元化の手法として、非特許文献３以外の方法を用いても良い。また、並列数＝２を例に説明するが、並列数は計算環境等に応じて自由に設定して良い。さらに、探索範囲の分割手段として、入力パラメータの低次元化を複数回実行し、並列処理を行う例を説明するが、空間を複数個に分割して、それぞれの空間について並列処理を行う方法を用いても良い。
【００３０】
以上の前提条件をもとに、以下、本発明の実施の形態の構成および作用について詳細に説明する。
【００３１】
＜本発明の実施の形態に係るパラメータ推定装置の構成＞
【００３２】
次に、本発明の実施の形態に係るパラメータ推定装置の構成について説明する。
【００３３】
図１は、本実施形態のパラメータ推定装置１００の構成の一例を示すブロック図である。図１に示す構成のパラメータ推定装置１００は、ＣＰＵと、ＲＡＭと、後述する各処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。
【００３４】
図２は、パラメータ推定装置１００として機能するコンピュータの一例を示す概略ブロック図である。例えば、パラメータ推定装置１００は、図２に示すコンピュータ５０で実現することができる。コンピュータ５０はＣＰＵ５１、一時記憶領域としてのメモリ５２、及び不揮発性の記憶部５３を備える。また、コンピュータ５０は、入出力装置等（図示省略）が接続される入出力interface（Ｉ／Ｆ）５４、及び記録媒体に対するデータの読み込み及び書き込みを制御するread/write（Ｒ／Ｗ）部５５を備える。また、コンピュータ５０は、インターネット等のネットワークに接続されるネットワークＩ／Ｆ５６を備える。ＣＰＵ５１、メモリ５２、記憶部５３、入出力Ｉ／Ｆ５４、Ｒ／Ｗ部５５、及びネットワークＩ／Ｆ５６は、バス５７を介して互いに接続される。
【００３５】
記憶部５３は、Hard Disk Drive（ＨＤＤ）、solid state drive（ＳＳＤ）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部５３には、コンピュータ５０を機能させるためのプログラムが記憶されている。ＣＰＵ５１は、プログラムを記憶部５３から読み出してメモリ５２に展開し、プログラムが有するプロセスを順次実行する。
【００３６】
このパラメータ推定装置１００は、機能的には、図１に示されるように、探索範囲決定部１０２と、最適化実行部１０３と、最適値決定部１０６と、判定部１０７とを備えている。
【００３７】
探索範囲決定部１０２は、探索範囲決定処理部１１０と、探索範囲ＤＢ１１１とを含む。
【００３８】
探索範囲決定部１０２は、入力データの次元数である入力データ次元数Ｄと、入力データ次元数よりも低次元の低次元化次元数ｄと、並列数Ｐとに基づいて、並列数Ｐ分だけ、入力データ次元数で定義される空間を、低次元化次元数ｄで定義される空間に変換するための変換行列を決定することにより、並列数Ｐ分の探索範囲を決定する。
【００３９】
最適化実行部１０３は、領域最適化実行部１０４１〜１０４Ｎと、最適化ＤＢ１６０と、領域別最適値ＤＢ１７０とを含む。
【００４０】
最適化実行部１０３は、並列数分の探索範囲を、並列数分の領域最適化実行部１０４１〜１０４Ｎに割り当てて、領域最適化実行部１０４１〜１０４Ｎによって次の処理を並列に実行する。
【００４１】
領域最適化実行部１０４１〜１０４Ｎの各々は、割り当てられた探索範囲において、探索範囲から選んだパラメータおよび変換行列から得られる入力データを、シミュレータに入力し、出力データと、予め与えられた観測値との差である目的関数値を取得することを所定の回数繰り返す。
【００４２】
また、領域最適化実行部１０４１〜１０４Ｎの各々は、入力データと目的関数値との関係を表す関数を、ガウス過程により近似し、近似した関数と、目的関数値が最適となるパラメータを用いた獲得関数を用いて、次に入力するパラメータを決定し、決定した次に入力するパラメータ及び変換行列から得られる入力データをシミュレータに入力して、目的関数値を求めることを所定の回数繰り返す。
【００４３】
探索範囲ＤＢ１１１は、ＩＤ、領域、および変換行列を記録しておくデータベースである。図３は、データをデータベーステーブルに記録した探索範囲ＤＢ１１１の一例を示す図である。
【００４４】
最適化ＤＢ１６０は、ＩＤ、探索範囲を示す領域、低次元入力パラメータ、入力パラメータ、および目的関数値を記録しておくデータベースである。図４は、データをデータベーステーブルに記録した最適化ＤＢ１６０の一例を示す図である。
【００４５】
領域別最適値ＤＢ１７０は、ＩＤ、探索範囲を示す領域、最適低次元入力パラメータ、最適入力パラメータ、および目的関数最適値を記録しておくデータベースである。図５は、データをデータベーステーブルに記録した領域別最適値ＤＢ１７０の一例を示す図である。
【００４６】
最適値決定部１０６は、探索範囲の各々について求められた目的関数値の各々に基づいて、目的関数値が最適となるパラメータ及び変換行列から得られる、最適な入力パラメータを決定する。
【００４７】
判定部１０７は、探索範囲決定部１０２、最適化実行部１０３、および最適値決定部１０６による各処理を一つのサイクルとして繰り返す。サイクルを繰り返す際に、探索範囲決定部１０２は、前のサイクルで決定された最適な入力パラメータを含む探索範囲を優先して、並列数分の探索範囲を決定する。
【００４８】
＜本発明の実施の形態に係るパラメータ推定装置の作用＞
【００４９】
次に、本発明の実施の形態に係るパラメータ推定装置１００の作用について説明する。図６は、本発明の実施の形態に係るパラメータ推定装置１００における処理ルーチンを示すフローチャートである。パラメータ推定装置１００は、図６に示す処理ルーチンを実行する。
【００５０】
Ｓ１００では、探索範囲決定部１０２が、入力データの次元数である入力データ次元数Ｄと、入力データ次元数よりも低次元の低次元化次元数ｄと、並列数Ｐとに基づいて、並列数Ｐ分だけ、入力データ次元数で定義される空間を、低次元化次元数ｄで定義される空間に変換するための変換行列を決定することにより、並列数Ｐ分の探索範囲を決定する。
【００５１】
Ｓ１０２では、最適化実行部１０３が、並列数分の探索範囲を、領域最適化実行部１０４１〜１０４Ｎに割り当てて、領域最適化実行部１０４１〜１０４Ｎによって次の処理を並列に実行する。領域最適化実行部１０４１〜１０４Ｎの各々が、割り当てられた探索範囲において、探索範囲から選んだパラメータおよび変換行列から得られる入力データを、シミュレータに入力し、出力データと、予め与えられた観測値との差である目的関数値を取得することを所定の回数繰り返す。領域最適化実行部１０４１〜１０４Ｎの各々が、入力データと目的関数値との関係を表す関数を、ガウス過程により近似し、近似した関数と、目的関数値が最適となるパラメータを用いた獲得関数を用いて、次に入力するパラメータを決定し、決定した次に入力するパラメータ及び変換行列から得られる入力データをシミュレータに入力して、目的関数値を求めることを所定の回数繰り返す。
【００５２】
Ｓ１０４では、最適値決定部１０６が、探索範囲の各々について求められた目的関数値の各々に基づいて、目的関数値が最適となるパラメータ及び変換行列から得られる、最適な入力パラメータを決定する。
【００５３】
Ｓ１０６では、判定部１０７が、所定の条件を満たすかを判定し、条件を満たす場合には処理を終了し、条件を満たさない場合にはＳ１００に戻って次のサイクルの処理を実行する。所定の条件は予め定めたサイクル数分繰り返したか等でよい。このようにして、Ｓ１００〜Ｓ１０４の探索範囲決定部１０２、最適化実行部１０３、および最適値決定部１０６による各処理を一つのサイクルとして繰り返す。
【００５４】
Ｓ１００の探索範囲決定部１０２の処理について説明する。図７は探索範囲決定部１０２の処理ルーチンを示すフローチャートである。
【００５５】
Ｓ５１０では、探索範囲決定処理部１１０が、ユーザから、入力データ次元数Ｄ（観測データ次元数Ｄ）、低次元化次元数ｄ、および並列数Ｐを受け付ける。
【００５６】
Ｓ５２０の処理ステップは、ｉ＝０から実行ごとにｉ＝ｉ＋１でカウントアップし、ｉ＜Ｐの条件で繰り返し、並列数Ｐ回分実行する。
【００５７】
Ｓ５２０では、探索範囲決定処理部１１０は、指定された並列数Ｐ個の探索範囲を生成する。探索範囲は、例えば非特許文献３の方法で低次元に変換した領域とする。ｉごとに繰り返す。具体的には、低次元に変換するための領域情報として、変換行列Ａｉ∈ＲＤ×ｄを生成する。変換行列Ａの生成には、各要素を正規分布や一様分布など任意の確率分布を用いて確率的に生成する方法などが利用できる。
【００５８】
Ｓ５３０では、探索範囲決定処理部１１０が、生成した探索範囲に関する情報（ｉ，Ａｉ）を探索範囲ＤＢ１１１に格納する。
【００５９】
次にＳ１０２の最適化実行部１０３の処理について説明する。図８は、最適化実行部１０３の処理ルーチンを示すフローチャートである。最適化実行部１０３には、Ｓ１００で生成された探索範囲が、領域最適化実行部１０４１〜１０４Ｎに割り当てられる。本実施形態ではＮ＝２である場合を例に説明する。図８の処理ルーチンは、領域最適化実行部１０４１〜１０４Ｎの各々でそれぞれ並列に実行する。また、最適化手法としては、例えばベイズ最適化等を利用することが考えられ、本実施形態ではベイズ最適化を用いた例を説明する。以下は、領域最適化実行部１０４１が処理する場合を例に説明するが、領域最適化実行部１０４Ｎでも同様である。
【００６０】
Ｓ６１０では、領域最適化実行部１０４１が、ランダムサーチ実行回数をＲ、最適化実行回数をＢとする。ＲおよびＢの値は、あらかじめ記憶部５３等に保存した値を用いても良いし、ユーザから入力を受け付けた値を用いても良い。
【００６１】
Ｓ６２０の処理ステップは、ｉ＝０から実行ごとにｉ＝ｉ＋１でカウントアップし、ｉ＜Ｒの条件で繰り返し、ランダムサーチ実行回数のＲ回分実行する。
【００６２】
Ｓ６２０では、領域最適化実行部１０４１が、当該探索範囲を示す領域１の中でランダムにパラメータｗを選び、ｘ＝Ａ１ｗとしてシミュレータに入力し、目的関数値Ｌ（ｗ）を取得する。そして、最適化ＤＢ１６０に（１，ｗ，ｘ，Ｌ（ｗ））を追加する。
【００６３】
以下のＳ６３０〜Ｓ６５０の処理ステップは、ｉ＝０から実行ごとにｉ＝ｉ＋１でカウントアップし、ｉ＜Ｂの条件で繰り返し、最適化実行回数のＢ回分実行する。
【００６４】
Ｓ６３０では、領域最適化実行部１０４１が、最適化ＤＢ１６０の当該探索範囲を示す領域１のデータに基づき、パラメータｗと目的関数Ｌ（ｗ）ｎの関係を表す関数ｆをガウス過程により近似する。ここで、関数ｆがガウス過程に従うとすると、任意の部分集合は次のガウス分布に従う。
【００６５】
Ｐ（ｆ）＝Ｎ（ｆ｜０，Ｋｎｎ）
【００６６】
ただし、Ｋｎｎはｎ×ｎの分散共分散行列であり、分散共分散行列の（ｄ，ｄ′）要素ｋｄｄ′はカーネル関数ｋ（・，・）を用いて、ｋ（ｗｄ，ｗ′ｄ）で表される。
【００６７】
そして、ｙ＝Ｌ（ｗ）が与えられたもとでの未知の入力変数ｗ＊の出力変数ｙ＊の事後確率は、以下（３）式のガウス分布で与えられる。
【００６８】
【数３】
2020144530.tif 000005
・・・（３）
【００６９】
ただし、Ｃｎｎ＝Ｋｎｎ＋σ２Ｉｎと定義し、Ｉｎはｎ×ｎの単位行列を表す。よって、（３）式を用いて予測ができる。
【００７０】
Ｓ６４０では、領域最適化実行部１０４１が、以下（４）式に従い、（２）式を満たす可能性が高い次の観測対象パラメータｗｎｅｘｔを決定する。この時、ｗｎｅｘｔは一つではなくて、可能性が高い順に複数選んでもよい。
【００７１】
【数４】
2020144530.tif 000006
・・・（４）
【００７２】
ここで、αは獲得関数と呼ばれ、いくつかの関数が提案されている（非特許文献１）。例えば、ＥＩ（Ｅｘｐｅｃｔｅｄ  Ｉｍｐｒｏｖｅｍｅｎｔ）を用いる場合、獲得関数は以下（５）式で計算できる。
【００７３】
【数５】
2020144530.tif 000007
・・・（５）
【００７４】
ここで、μは平均、σは標準偏差、Φおよびφは標準正規分布のＣＤＦおよびＰＤＦであり、Ｓ６３０でガウス過程により近似した関数ｆを用いて導出される。
2020144530.tif 000008
は過去の最適なパラメータｗｂｅｓｔであり、当該探索範囲の過去のデータから取得する。
【００７５】
Ｓ６５０では、領域最適化実行部１０４１が、ｗ＝ｗｎｅｘｔにＡをかけて求めた入力パラメータｘをシミュレータに入力し、目的関数値Ｌ（ｗ）を取得する。ｗｎｅｘｔは、獲得関数を用いて求めた、次に入力するパラメータである。そして、最適化ＤＢ１６０に（１，ｗ，ｘ，Ｌ（ｗ））を追加する。
【００７６】
Ｓ６６０では、領域最適化実行部１０４１が、最適化ＤＢ１６０の当該探索範囲を示す領域１のデータをもとに、以下の式に従ってｗ＊ｐを算出し、領域別最適値ＤＢ１７０の領域１のレコードを（１，ｗ＊ｐ，ｘ，Ｌ（ｗ＊ｐ））で更新する。
【００７７】
2020144530.tif 000009
Ｓ６７０では、領域最適化実行部１０４１が、最適化ＤＢ１６０の領域１のデータを削除する。
【００７８】
次にＳ１０４の最適値決定部１０６の処理について説明する。図９は、最適値決定部１０６の処理ルーチンを示すフローチャートである。
【００７９】
Ｓ７１０では、最適値決定部１０６が、領域別最適値ＤＢ１７０のテーブルから各レコードを取得する。
【００８０】
Ｓ７２０では、最適値決定部１０６が、以下の式に従ってｗ＊を算出し、最適な入力パラメータｘ＊を含むレコード（ｗ＊，ｘ＊，Ｌ（ｗ））を出力する。
【００８１】
2020144530.tif 000010
判定部１０７により複数サイクルで繰り返す場合、探索範囲決定処理部１１０で、前のサイクルで算出された最適値を含む探索範囲を優先して採用しても良い。これは、変換行列Ａの生成の方法を工夫する、または目的関数の定義を変えることで対応できる。目的関数の定義を変える場合、例えばある点ｘｐｒｉｏｒの周辺に最適点が存在することが分かるならば、目的関数をＬ（ｗ）＝Ｇ（Ａｗ＋ｘｐｒｉｏｒ）と定義する。このように目的関数を定義することでＬ（ｗ）により求まる点を通る平面での最適化を考えることができる。このように、判定部１０７の繰り返しにおいて、前のサイクルで決定された最適な入力パラメータｘｐｒｉｏｒを含む探索範囲を優先して採用するように、次のサイクルの目的関数を定義するようにしても良い。
【００８２】
以上説明したように、本発明の実施の形態に係るパラメータ推定装置によれば、並列数Ｐ分の探索範囲を決定する。並列数分の探索範囲の各々について、目的関数値を求めることを所定の回数繰り返すことを、並列に実行する。これにより、ベイズ最適化を高速化できる。
【００８３】
また、探索範囲を分割し小さくすることで、ベイズ最適化の高速化を実現する。また、探索範囲を低次元化により分割する処理とすることで、利活用できない観測情報を排除した処理が実現できる。また、簡易な方法で探索範囲を分割することにより、最適化にかかる時間が中程度の場合でも、分割にかかる時間が相対的に大きくならないようにすることができる。また、探索範囲を分割することで、ベイズ最適化が適応困難な高次元や探索範囲の広いパラメータ探索を可能とする。また、探索範囲の分割として低次元化を用いる場合、低次元化された空間の探索を並列処理、および複数サイクル実施することにより、１≦ｄ＜Ｄの任意の整数を低次元化次元数ｄとして選択することができ、より低次元での最適解の探索を可能とする。
【００８４】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００８５】
たとえば、本手法は、ベイズ最適化以外のブラックボックス最適化手法にも適用可能である。例えば、遺伝的アルゴリズム（ＧＡ）や進化戦略（ＥＳ）などへの適応が考えられる。
【００８６】
上述した実施形態では、ベイズ最適化において、ガウス過程による近似を用いる場合を例に説明したが、ランダムフォレストなど、別の確率モデルを用いた近似手法を用いてもよい。
【００８７】
上述した実施形態では、ベイズ最適化に適用した場合に、所定の装置をシミュレータとして、入力パラメータをシミュレータに入力して目的関数値を得る場合を例に説明したが、各々の最適化手法に対応した所定の装置に入力し、目的関数値を取得すればよい。
【符号の説明】
【００８８】
１００ パラメータ推定装置
１０２ 探索範囲決定部
１０３ 最適化実行部
１０４１〜Ｎ  領域最適化実行部
１０６ 最適値決定部
１０７ 判定部
１１０ 探索範囲決定処理部
【図１】
2020144530.tif 000011
【図２】
2020144530.tif 000012
【図３】
2020144530.tif 000013
【図４】
2020144530.tif 000014
【図５】
2020144530.tif 000015
【図６】
2020144530.tif 000016
【図７】
2020144530.tif 000017
【図８】
2020144530.tif 000018
【図９】
2020144530.tif 000019