(57)【要約】【課題】パラメータの最適化にかかる時間を短縮できる探索点決定プログラム、探索点決定方法および探索点決定装置を提供する。【解決手段】探索点決定プログラムは、関数に関する過去の探索結果から、探索候補点それぞれにおける、探索予想時間と、関数にガウス過程を用いて得られる信頼区間上限とを算出する処理をコンピュータに実行させる。探索点決定プログラムは、探索候補点それぞれについて、当該探索候補点と近接した過去の探索結果における探索点の位置、各探索候補点に対応した探索予想時間、および、各探索候補点に対応した信頼区間上限を用いて、各探索候補点に対しパラメータ空間内の領域を生成する処理をコンピュータに実行させる。探索点決定プログラムは、複数のパラメータ空間内の領域の大きさに基づき、探索点を決定する処理をコンピュータに実行させる。【選択図】図６
2019159933.tif 000002
【特許請求の範囲】
【請求項１】
関数の推定過程における探索点を決定する処理をコンピュータに実行させる探索点決定プログラムであって、
前記関数に関する過去の探索結果から、探索候補点それぞれにおける、探索予想時間と、前記関数にガウス過程を用いて得られる信頼区間上限とを算出し、
前記探索候補点それぞれについて、当該探索候補点と近接した過去の探索結果における探索点の位置、各探索候補点に対応した探索予想時間、および、各探索候補点に対応した信頼区間上限を用いて、各探索候補点に対しパラメータ空間内の領域を生成し、
複数の前記パラメータ空間内の領域の大きさに基づき、探索点を決定する、
処理をコンピュータに実行させる探索点決定プログラム。
【請求項２】
前記パラメータ空間内の領域は、Ｎ次元超直方体である、
請求項１に記載の探索点決定プログラム。
【請求項３】
前記パラメータ空間内の領域は、Ｎ次元超球である、
請求項１に記載の探索点決定プログラム。
【請求項４】
前記生成する処理は、前記パラメータ空間内の領域の大きさを、過去の探索結果における探索点の位置に応じて補正する、
請求項１〜３のいずれか１つに記載の探索点決定プログラム。
【請求項５】
前記探索候補点は、過去の探索結果における評価値が最も高い探索点の評価値よりも、前記関数の期待値が高い範囲で設定する、
請求項１〜４のいずれか１つに記載の探索点決定プログラム。
【請求項６】
前記決定する処理は、各探索候補点における過去の探索結果における評価値からの改善値と、前記領域の大きさとの積を、前記探索予想時間で割った値に基づいて、前記探索点を決定する、
請求項１〜５のいずれか１つに記載の探索点決定プログラム。
【請求項７】
関数の推定過程における探索点決定方法であって、
前記関数に関する過去の探索結果から、探索候補点それぞれにおける、探索予想時間と、前記関数にガウス過程を用いて得られる信頼区間上限とを算出し、
前記探索候補点それぞれについて、当該探索候補点と近接した過去の探索結果における探索点の位置、各探索候補点に対応した探索予想時間、および、各探索候補点に対応した信頼区間上限を用いて、各探索候補点に対しパラメータ空間内の領域を生成し、
複数の前記パラメータ空間内の領域の大きさに基づき、探索点を決定する、
処理をコンピュータが実行する探索点決定方法。
【請求項８】
関数の推定過程における探索点を決定する探索点決定装置であって、
前記関数に関する過去の探索結果から、探索候補点それぞれにおける、探索予想時間と、前記関数にガウス過程を用いて得られる信頼区間上限とを算出する算出部と、
前記探索候補点それぞれについて、当該探索候補点と近接した過去の探索結果における探索点の位置、各探索候補点に対応した探索予想時間、および、各探索候補点に対応した信頼区間上限を用いて、各探索候補点に対しパラメータ空間内の領域を生成する生成部と、
複数の前記パラメータ空間内の領域の大きさに基づき、探索点を決定する決定部と、
を有する探索点決定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、探索点決定プログラム、探索点決定方法および探索点決定装置に関する。
【背景技術】
【０００２】
近年、機械学習やニューラルネットワークを基盤としたサービスの開発が行われている。機械学習やニューラルネットワークでは、取り扱うデータに合わせてパラメータを最適化することが重要となるが、複数のパラメータの組み合わせは膨大な数となる。パラメータの組み合わせの探索には、グリッドサーチやベイズ最適化といった手法が用いられる。グリッドサーチは、関数のパラメータ空間を格子状に分割し、各格子点について探索を行うが処理量が大きくなる。ベイズ最適化は、解が未知のガウス過程に従うと仮定し、既知の点を通るガウス過程から最も解が小さく（または大きく）なる点を予想して探索行い、探索結果からガウス過程を更新して新たな探索点を求めることを繰り返す。すなわち、ベイズ最適化は、解がどのあたりにあるかを予測しながら探索を行うので、グリッドサーチよりも探索の処理量を抑えることができる。また、実行時間を考慮したベイズ最適化が提案されている（J.Snoek  et.al「Practical  bayesian  optimization  of  machine  learning  algorithms.」、In  Adances  in  Neural  Information  Processing  Systems  25(NIPS‘12),pp.2951-2959  2012）。さらに、探索済みの探索点の近傍における探索では、探索済みの探索点の計算結果を再利用することで計算時間を短縮することが提案されている。
【０００３】
また、パラメータ探索としては、複数の計算機のうち１台をサーバとし、当該サーバに全ての計算機の探索履歴を保持させて、他の計算機がパラメータセットを探索済みかどうかサーバに問い合わせることで効率よくパラメータ探索を行うことが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１４９６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、パラメータの組み合わせは膨大であるので、実業務における締め切り時間内に、全ての探索を行うことは困難である。例えば、コールセンタのＦＡＱ（Frequently  Asked  Questions）に用いる人工知能をチューニングする場合、業務終了時間から次の業務開始時間までの間に作業を終えることが求められる。このように、時間制約がある場合には、例えば、計算結果を再利用しつつ、上述のＳｎｏｅｋによる方式を適用することが考えられる。ところが、上述のＳｎｏｅｋによる方式では、現在の最良評価値から単位時間当たりどれだけ評価値がよくなるかを評価するので、計算結果を再利用できるパラメータの組み合わせばかりが選択され、異なる場所が探索されず、探索点が偏ってしまう。また、Ｓｎｏｅｋによる方式では、締め切り時間が考慮されていないため、締め切り時間が近くても確信度が低い点の探索を続ける可能性がある。このため、時間制約がある場合に、パラメータを最適化することが困難となる場合がある。
【０００６】
一つの側面では、パラメータの最適化にかかる時間を短縮できる探索点決定プログラム、探索点決定方法および探索点決定装置を提供することにある。
【課題を解決するための手段】
【０００７】
一つの態様では、探索点決定プログラムは、関数の推定過程における探索点を決定する処理をコンピュータに実行させる。すなわち、探索点決定プログラムは、前記関数に関する過去の探索結果から、探索候補点それぞれにおける、探索予想時間と、前記関数にガウス過程を用いて得られる信頼区間上限とを算出する処理をコンピュータに実行させる。探索点決定プログラムは、前記探索候補点それぞれについて、当該探索候補点と近接した過去の探索結果における探索点の位置、各探索候補点に対応した探索予想時間、および、各探索候補点に対応した信頼区間上限を用いて、各探索候補点に対しパラメータ空間内の領域を生成する処理をコンピュータに実行させる。探索点決定プログラムは、前記複数のパラメータ空間内の領域の大きさに基づき、探索点を決定する処理をコンピュータに実行させる。
【発明の効果】
【０００８】
パラメータの最適化にかかる時間を短縮できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、評価対象の処理の一例を示す図である。
【図２】図２は、ベイズ最適化の一例を示す図である。
【図３】図３は、ベイズ最適化における新規探索点の決定の一例を示す図である。
【図４】図４は、評価結果を再利用して単位時間あたりで最もよい結果が得られる新規探索点を決定する場合の一例を示す図である。
【図５】図５は、次の新規探索点を決定する場合の一例を示す図である。
【図６】図６は、実施例の探索点決定装置の構成の一例を示すブロック図である。
【図７】図７は、探索範囲記憶部の一例を示す図である。
【図８】図８は、既知探索点記憶部の一例を示す図である。
【図９】図９は、進捗管理記憶部の一例を示す図である。
【図１０】図１０は、実施例における次の新規探索点を決定する場合の一例を示す図である。
【図１１】図１１は、実施例の探索点決定処理の一例を示すフローチャートである。
【図１２】図１２は、探索点決定プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて、本願の開示する探索点決定プログラム、探索点決定方法および探索点決定装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例】
【００１１】
図１は、評価対象の処理の一例を示す図である。まず、図１を用いて評価対象５０における処理について説明する。図１に示す評価対象５０には、入力データ１０が入力される。評価対象５０は、例えば、処理ａと処理ｂとを有する。処理ａおよび処理ｂは、それぞれ調整可能なパラメータＰａ、Ｐｂを有する。なお、パラメータＰａ、Ｐｂは、１個以上のパラメータを有するベクトルである。評価対象５０は、入力データ１０に対して、処理ａおよび処理ｂを実行して出力データ１１を取得する。評価対象５０は、出力データ１１を評価することで、評価結果１２を取得する。評価対象５０では、評価結果１２が最もよくなるようにパラメータＰａ、Ｐｂを最適化する。
【００１２】
すなわち、評価対象５０が実行する処理は、評価関数（処理ｂ（Ｐｂ，処理ａ（Ｐａ，入力データ１０）））の結果を最小化または最大化する。ここで、パラメータＰａを変更せず、パラメータＰｂを変更する場合には、処理ａの結果が再利用可能となる。つまり、処理ａの結果は、メモ化が可能である。
【００１３】
次に、図２から図５を用いて、パラメータＰａ、Ｐｂの最適化に用いるベイズ最適化について説明する。図２は、ベイズ最適化の一例を示す図である。図２に示すグラフ２０およびグラフ２１は、評価対象の関数、および、パラメータ（探索点）ごとの探索予想時間を示すグラフである。ベイズ最適化では、初期探索として、例えばランダムに探索点２２ａ、２３ａ、２４ａが決定される。すなわち、初期探索では、探索点２２ａ、２３ａ、２４ａに対応するパラメータが決定される。次に、ベイズ最適化では、探索点２２ａ、２３ａ、２４ａに対応するパラメータをそれぞれ処理に設定した場合における出力データが評価される。グラフ２０では、評価結果を評価値２２ｂ、２３ｂ、２４ｂで表している。
【００１４】
ベイズ最適化では、評価値２２ｂ、２３ｂ、２４ｂを通る期待値の関数２５と、関数２５にガウス過程を用いて得られる信頼区間上限２６および信頼区間下限２７とが算出される。なお、グラフ２０中の関数２８は、評価対象の関数における評価値の真値であり、評価前には分からないものである。また、信頼区間上限２６および信頼区間下限２７は、評価値の正規分布における９５％の範囲を示すものである。すなわち、評価対象の関数における評価値の真値は、信頼区間上限２６と信頼区間下限２７との間に９５％の確率で存在することを示す。つまり、関数２５、信頼区間上限２６および信頼区間下限２７は、評価対象の関数の期待値とその広がりを予測したものである。
【００１５】
ベイズ最適化では、探索点２２ａ、２３ａ、２４ａを決定した際の探索時間２２ｃ、２３ｃ、２４ｃに基づいて、探索予想時間の関数２９が算出される。なお、図２では、探索予想時間を示すグラフ２１についても、探索点２２ａ、２３ａ、２４ａを示している。
【００１６】
図３は、ベイズ最適化における新規探索点の決定の一例を示す図である。図３は、図２の状態から新規探索点を決定する場合を示す。ベイズ最適化では、例えば、グラフ２０の探索点２２ａと探索点２３ａとの間、つまり評価値２２ｂと評価値２３ｂとの間にある、信頼区間上限２６の最大点である評価値３０ｂに対応する探索点３０ａが新規探索点とされる。ところが、グラフ２１では、探索点３０ａに対応する探索予想時間３０ｃは、探索時間２２ｃ、２３ｃよりも長い探索予想時間であり、このまま探索点３０ａを採用して評価を行うと、制限時間内で評価が完了しない場合がある。
【００１７】
これに対し、時間制約がある場合に、探索時間を短縮するため探索済みの探索点の評価結果を再利用すると、探索予想時間は、図４に示すようになる。図４は、評価結果を再利用して単位時間あたりで最もよい結果が得られる新規探索点を決定する場合の一例を示す図である。図４に示すように、グラフ２１の既存の探索点２２ａ、２３ａ、２４ａに対応する探索時間２２ｃ、２３ｃ、２４ｃの近傍では、矢印３３で示すように探索予想時間が短くなる。つまり、探索時間２２ｃ、２３ｃ、２４ｃの近傍では、探索予想時間が関数２９上の期待値よりも短くなる。この状態で、例えばＳｎｏｅｋによる方式を適用すると、新規探索点は、探索点３１ａとなる。すなわち、Ｓｎｏｅｋによる方式では、評価値を探索予想時間で割った値が最大となる探索点３１ａが新規探索点となる。しかしながら、本来、評価値を発見したい領域は、グラフ２０の領域３２付近である。
【００１８】
ここで、探索点３１ａは採用するものとし、さらに、探索点３１ａの次の新規探索点をＳｎｏｅｋによる方式で決定する場合について図５を用いて説明する。図５は、次の新規探索点を決定する場合の一例を示す図である。図５では、グラフ２０の探索点３１ａと探索点２３ａとの間、つまり評価値３１ｂと評価値２３ｂとの間に、信頼区間上限２６の新たなピークが現れている。また、図５では、グラフ２１の探索点２２ａと探索点３１ａとの間の関数２９が取りうる探索予想時間と比べて、探索点３１ａと探索点２３ａとの間の探索予想時間が短くなっている。このため、この状態で、例えばＳｎｏｅｋによる方式を適用すると、次の新規探索点は、信頼区間上限２６における評価値３１ｂと評価値２３ｂとの間のピークである評価値３３ｂに対応する探索点３３ａとなる。なお、探索点３１ａの関数２９による探索予想時間は、探索予想時間３１ｃであったが、評価結果の再利用を行ったため、探索点３１ａの探索時間は、探索時間３１ｄとなっている。このように、Ｓｎｏｅｋによる方式では、評価結果の再利用を併用すると、本来、評価値を発見したい領域３２付近を探索せずに、既存の探索点、つまり評価値の近傍ばかり探索され、抜け出せなくなってしまうことがある。
【００１９】
そこで、本発明では、時間制約がある場合において、評価結果の再利用を併用しつつ、既存の探索点近傍ばかりが探索されないように探索点を分散できるようにする。つまり、本発明では、結果を再利用することで時間あたりの改善を意識した探索と、幅広い探索とを両立させ、これらのバランスを締め切り時間によって変化させる。すなわち、本発明では、締め切り時間までの残り時間が多ければ幅広く探索し、残り時間が少なければ結果を再利用して探索する。
【００２０】
言い換えると、探索点決定装置１００は、関数の推定過程における探索点を決定する処理を実行する際に、関数に関する過去の探索結果から、探索候補点それぞれにおける、探索予想時間と、関数にガウス過程を用いて得られる信頼区間上限とを算出する。探索点決定装置１００は、探索候補点それぞれについて、当該探索候補点と近接した過去の探索結果における探索点の位置、各探索候補点に対応した探索予想時間、および、各探索候補点に対応した信頼区間上限を用いて、各探索候補点に対しパラメータ空間内の領域を生成する。探索点決定装置１００は、複数のパラメータ空間内の領域の大きさに基づき、探索点を決定する。これにより、探索点決定装置１００は、パラメータの最適化にかかる時間を短縮できる。また、探索点決定装置１００は、時間制約が存在する中でのパラメータ最適化に適した形の実験計画を立てることができる。
【００２１】
なお、本実施例では、信頼区間上限を用いて説明するが、信頼区間上限に代えて期待値を用いてもよい。つまり、信頼区間上限を用いることが経験的によいと判っているが、期待値でも同様の処理を行うことが可能である。
【００２２】
次に、図６を用いて探索点決定装置１００の構成について説明する。図６は、実施例の探索点決定装置の構成の一例を示すブロック図である。
【００２３】
図６に示すように、探索点決定装置１００は、通信部１１０と、表示部１１１と、操作部１１２と、記憶部１２０と、制御部１３０とを有する。なお、探索点決定装置１００は、図６に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。探索点決定装置１００の一例としては、据置型のパーソナルコンピュータやサーバ等を採用できる。なお、探索点決定装置１００には、上記の据置型のパーソナルコンピュータのみならず、可搬型のパーソナルコンピュータを採用することもできる。
【００２４】
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、図示しないネットワークを介して他の情報処理装置と有線または無線で接続され、他の情報処理装置との間で情報の通信を司る通信インタフェースである。
【００２５】
表示部１１１は、各種情報を表示するための表示デバイスである。表示部１１１は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部１１１は、制御部１３０から入力された表示画面等の各種画面を表示する。
【００２６】
操作部１１２は、探索点決定装置１００のユーザから各種操作を受け付ける入力デバイスである。操作部１１２は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部１１２は、ユーザによって入力された操作を操作情報として制御部１３０に出力する。なお、操作部１１２は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部１１１の表示デバイスと、操作部１１２の入力デバイスとは、一体化されるようにしてもよい。
【００２７】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、入力データ記憶部１２１と、探索範囲記憶部１２２と、既知探索点記憶部１２３と、進捗管理記憶部１２４と、出力データ記憶部１２５と、評価結果記憶部１２６と、評価対象記憶部１２７とを有する。また、記憶部１２０は、制御部１３０での処理に用いる情報を記憶する。
【００２８】
入力データ記憶部１２１は、例えば機械学習のモデルに対する入力データを記憶する。入力データは、例えば機械学習のモデルに学習させるための学習データである。学習データの一例としては、コールセンタのＦＡＱ集、各種マニュアル等が挙げられる。入力データ記憶部１２１には、これらの入力データが予め記憶される。なお、入力データは、通信部１１０を介して、図示しない他の情報処理装置から取得して、入力データ記憶部１２１に記憶するようにしてもよい。
【００２９】
探索範囲記憶部１２２は、ユーザから受け付けた探索範囲を記憶する。図７は、探索範囲記憶部の一例を示す図である。図７に示すように、探索範囲記憶部１２２は、横軸に「Ｘ」、「Ｙ」といった項目を有し、縦軸に「下限」、「上限」といった項目を有する。なお、横軸は、パラメータ空間の次元数に対応し、Ｎ次元であればＮ個の項目を有する。
【００３０】
横軸の「Ｘ」および「Ｙ」は、パラメータ空間における軸を示す情報である。図７の例では、２次元の場合の一例を示す。縦軸の「下限」および「上限」は、パラメータ空間における軸が取りうる値、つまり探索範囲の下限値および上限値を示す情報である。図７の例では、探索範囲は、Ｘ軸が下限値「−１０．０」〜上限値「１０．０」の範囲、Ｙ軸が下限値「−５０．０」〜上限値「１００．０」の範囲であることを示す。
【００３１】
図６の説明に戻って、既知探索点記憶部１２３は、評価値が求められた探索点である既知探索点を記憶する。図８は、既知探索点記憶部の一例を示す図である。図８に示すように、既知探索点記憶部１２３は、「探索回数」、「Ｘ」、「Ｙ」といった項目を有する。
【００３２】
「探索回数」は、探索点の探索回数を示す情報である。「Ｘ」および「Ｙ」は、パラメータ空間における軸の値を示す情報である。なお、図８の例では、２次元の場合の一例を示す。図８の１行目の例では、探索回数「１回目」で決定した探索点は、Ｘ軸の値が「−５．０」、Ｙ軸の値が「−０．２」であることを示す。
【００３３】
図６の説明に戻って、進捗管理記憶部１２４は、探索点決定処理の制限時間等の時間に関する情報を記憶する。図９は、進捗管理記憶部の一例を示す図である。図９に示すように、進捗管理記憶部１２４は、「開始時刻」、「現在時刻」、「終了時刻」、「残り時間」といった項目を有する。
【００３４】
「開始時刻」は、探索点決定処理の実行を開始した時刻を示す情報である。「現在時刻」は、現在の時刻を示す情報であり、例えば制御部１３０によって随時更新される。「終了時刻」は、探索点決定処理の実行を終了する時刻を示す情報である。「残り時間」は、現在時刻から終了時刻までの残り時間、つまり、探索点決定処理を実行できる制限時間を示す情報である。図９の例では、探索点決定処理が「１０：００：００」に開始され、現在時刻が「１４：００：００」であり、終了時刻が「１８：００：００」であるので、残り時間は「０４：００：００」であることを示す。
【００３５】
図６の説明に戻って、出力データ記憶部１２５は、例えば、制御部１３０で評価を実行する機械学習のモデルに入力データが入力され、当該モデルが出力する出力データを記憶する。出力データは、例えば機械学習のパラメータの評価に用いられる。
【００３６】
評価結果記憶部１２６は、各探索点の評価結果、つまり各探索点における評価値を、各探索点に対応付けて記憶する。また、評価結果記憶部１２６は、各探索点における探索時間を、各探索点に対応付けて記憶するようにしてもよい。
【００３７】
評価対象記憶部１２７は、例えば、図１に示す評価対象５０を記憶する。また、評価対象記憶部１２７は、例えば、評価対象として機械学習のモデルを記憶するようにしてもよい。なお、評価対象は、探索開始前に評価対象記憶部１２７に記憶する。また、評価対象は、探索点決定装置１００の外部の情報処理装置等に記憶し、評価対象記憶部１２７に当該情報処理装置へアクセスして評価対象を呼び出す方法を記憶するようにしてもよい。
【００３８】
制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。
【００３９】
制御部１３０は、受付部１３１と、算出部１３２と、生成部１３３と、決定部１３４とを有し、以下に説明する情報処理の機能や作用を実現または実行する。すなわち、制御部１３０の各処理部は、探索点決定処理を実行する。なお、制御部１３０の内部構成は、図６に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００４０】
受付部１３１は、例えばユーザによって操作部１１２から入力された探索範囲を受け付ける。受付部１３１は、受け付けた探索範囲を探索範囲記憶部１２２に記憶する。また、受付部１３１は、例えばユーザによって操作部１１２から入力された終了時刻を受け付ける。受付部１３１は、受け付けた終了時刻を進捗管理記憶部１２４に記憶する。受付部１３１は、探索範囲および終了時刻を受け付けると、探索指示を算出部１３２に出力する。
【００４１】
また、受付部１３１は、現在時刻を開始時刻として進捗管理記憶部１２４に記憶するとともに、進捗管理記憶部１２４の現在時刻の更新を開始する。受付部１３１は、開始時刻を進捗管理記憶部１２４に記憶すると、現在時刻と終了時刻とに基づいて、残り時間の算出および進捗管理記憶部１２４への記憶を開始する。すなわち、受付部１３１は、探索点決定処理の進捗管理を行う。なお、現在時刻および残り時間の更新は、例えば１秒ごと等のように定期的に実行する。
【００４２】
算出部１３２は、受付部１３１から探索指示が入力されると、探索範囲記憶部１２２を参照して探索範囲を取得する。算出部１３２は、取得した探索範囲に基づいて、評価対象の処理を表す関数について、初期探索を実行する。算出部１３２は、例えば、１つ以上の探索点をランダムに決定する。なお、初期探索における探索点は、２つ以上であることが好ましい。算出部１３２は、探索点を決定すると、決定した探索点における評価対象の処理のパラメータを、当該評価対象の処理に設定する。算出部１３２は、入力データ記憶部１２１を参照して入力データを取得する。算出部１３２は、取得した入力データに対して評価対象の処理を実行して出力データを取得し、取得した出力データを出力データ記憶部１２５に記憶する。また、算出部１３２は、取得した出力データに対して評価を実行して評価結果を取得し、評価結果記憶部１２６に記憶するとともに、決定した探索点を既知探索点記憶部１２３に記憶する。すなわち、決定した探索点は、評価結果が得られたので、既知探索点となる。
【００４３】
算出部１３２は、初期探索が終了するか、決定部１３４から継続指示が入力されると、評価対象の処理の探索範囲における関数について、既知探索点に基づいてガウス過程を算出する。すなわち、算出部１３２は、当該関数にガウス過程を用いて得られる信頼区間上限および信頼区間下限を算出する。また、算出部１３２は、評価対象の処理の探索範囲における関数について、既知探索点に基づいて探索予想時間を算出する。つまり、算出部１３２は、探索範囲における探索予想時間を表す関数を算出する。なお、評価対象の処理の探索範囲における関数とは、探索候補点の集合と捉えることができる。また、探索予想時間を表す関数は、実行時間のパラメータ依存性を表す関数であるとも言える。算出部１３２は、算出したガウス過程（信頼区間上限および信頼区間下限）および探索予想時間の関数を生成部１３３に出力する。
【００４４】
生成部１３３は、算出部１３２からガウス過程および探索予想時間の関数が入力されると、既知探索点記憶部１２３を参照し、既知探索点を取得する。生成部１３３は、取得した既知探索点のうち、例えば、ある既知探索点と、隣接する探索点との間の関数の区間について、各探索候補点に対するパラメータ空間内の領域を生成する。生成部１３３は、パラメータ空間内の領域として、例えば、Ｎ次元超直方体やＮ次元超球を用いることができる。すなわち、パラメータ空間内の領域は、探索点周囲の空間の広さを指標とするものであり、探索候補点の周囲にどれだけ既知探索点がないかを示すものである。Ｎ次元超直方体では、特定の方向に対する空間の広さを表す。Ｎ次元超球では、全方向に対する空間の広さを表す。なお、パラメータ空間内では、探索点に対応する評価値を用いて領域を示すが、以下の説明では、単に探索点として表現する場合がある。
【００４５】
生成部１３３は、Ｎ次元超直方体を用いる場合には、例えば、探索候補点の周囲の既知探索点を結んだＮ次元超直方体の超体積を用いる。生成部１３３は、Ｎ次元超球を用いる場合には、探索候補点から最も近い既知探索点との距離を半径とするＮ次元超球の超体積を用いる。なお、パラメータ空間内の領域を生成する場合には、パラメータについて正規化を行う。
【００４６】
生成部１３３は、探索候補点ごとにパラメータ空間内の領域を生成すると、ガウス過程の信頼区間上限に基づいて、探索候補点ごとの補正スコアを算出する。なお、補正スコアは、信頼区間上限の評価値から最も評価値が高い既知探索点の評価値との差分を補正前スコアとした場合において、進捗割合を考慮した場合の評価値である。生成部１３３は、進捗管理記憶部１２４を参照し、開始時刻から終了時刻までの時間のうち、現在時刻がどれくらい経過しているかを示す進捗割合を算出する。図９の例では、開始時刻から終了時刻までの時間が８時間であり、残り時間が４時間であるので、実行可能な最大の実行時間は４時間、進捗割合は、５割、つまり「０．５」となる。
【００４７】
生成部１３３は、探索候補点ごとの補正スコアを下記の式（１）に基づいて算出する。なお、補正前スコアは、下記の式（２）に基づいて算出する。
【００４８】
補正スコア＝補正前スコア×（１＋進捗割合×（１−実行時間／残り時間））
・・・（１）
補正前スコア＝探索候補点に対応する信頼区間上限の評価値
−最も評価値が高い既知探索点の評価値            ・・・（２）
【００４９】
生成部１３３は、各探索候補点における算出した補正スコア、および、パラメータ空間内の領域の大きさと、探索予想時間の関数とを決定部１３４に出力する。
【００５０】
言い換えると、生成部１３３は、探索候補点それぞれについて、当該探索候補点と近接した過去の探索結果における探索点の位置、各探索候補点に対応した探索予想時間、および、各探索候補点に対応した信頼区間上限を用いて、各探索候補点に対しパラメータ空間内の領域を生成する。また、生成部１３３は、パラメータ空間内の領域の大きさを、過去の探索結果における探索点の位置に応じて補正する。また、探索候補点は、過去の探索結果における評価値が最も高い探索点の評価値よりも、関数の期待値が高い範囲で設定する。
【００５１】
決定部１３４は、生成部１３３から各探索候補点における補正スコアおよびパラメータ空間内の領域の大きさと、探索予想時間の関数とが入力されると、探索候補点ごとに評価スコアを下記の式（３）に基づいて算出する。なお、各探索候補点における探索予想時間は、探索予想時間の関数に基づいて決定することができる。
【００５２】
評価スコア  ＝  補正スコア  ×  領域の大きさ  ／  探索予想時間  ・・・（３）
【００５３】
決定部１３４は、各探索候補点における評価スコアを比較し、評価スコアが最も高い探索候補点を探索点に決定する。すなわち、決定部１３４は、補正スコアと領域の大きさと探索予想時間とに基づいて、探索点を決定する。なお、補正スコアと領域の大きさとの積は、評価によって探索候補点の周囲で減少する評価値の曖昧さの合計の近似値を表している。これは、一度にどれだけ曖昧さを減らせるかを指標とすることであり、エントロピーサーチを近似することになる。つまり、評価スコアは、時間あたりにどれだけ曖昧さを減らせるかを表す指標となる。
【００５４】
決定部１３４は、探索点を決定すると、決定した探索点の評価を実行する。具体的には、決定部１３４は、決定した探索点における評価対象の処理のパラメータを、当該評価対象の処理に設定する。決定部１３４は、入力データ記憶部１２１を参照して入力データを取得する。また、決定部１３４は、評価対象記憶部１２７を参照して評価対象を取得する。決定部１３４は、取得した入力データに対して評価対象の処理を実行して出力データを取得し、取得した出力データを出力データ記憶部１２５に記憶する。また、決定部１３４は、取得した出力データに対して評価を実行して評価結果を取得して評価結果を評価結果記憶部１２６に記憶するとともに、今回の探索点を既知探索点記憶部１２３に記憶する。
【００５５】
決定部１３４は、今回の探索点を既知探索点記憶部１２３に記憶すると、次の探索点を探索するか否かを判定する。決定部１３４は、例えば、評価対象の期待値の関数がさらに良くなる見込みがある場合や、残り時間がある場合には、次の探索点を探索すると判定する。決定部１３４は、次の探索点を探索する場合には、算出部１３２に対して継続指示を出力する。
【００５６】
決定部１３４は、例えば、評価対象の期待値の関数がこれ以上良くなる見込みがない場合や、終了時刻に到達して残り時間がなくなった場合には、次の探索点を探索しないと判定する。決定部１３４は、次の探索点を探索しない場合には、探索点決定処理を終了する。評価結果記憶部１２６には、各探索点の評価結果、つまり各探索点における評価値が、各探索点に対応付けて記憶される。また、既知探索点記憶部１２３には、各探索点におけるパラメータが記憶される。
【００５７】
言い換えると、決定部１３４は、複数のパラメータ空間内の領域の大きさに基づき、探索点を決定する。また、決定部１３４は、各探索候補点における過去の探索結果における評価値からの改善値と、領域の大きさとの積を、探索予想時間で割った値に基づいて、探索点を決定する。
【００５８】
ここで、図１０を用いて図４の状態から実施例における次の新規探索点を決定する場合について説明する。図１０は、実施例における次の新規探索点を決定する場合の一例を示す図である。図１０では、図５と同様に、グラフ２０の探索点３１ａと探索点２３ａとの間、つまり評価値３１ｂと評価値２３ｂとの間に、信頼区間上限２６の新たなピークが現れている。また、図１０では、図５と同様に、グラフ２１の探索点２２ａと探索点３１ａとの間の関数２９が取りうる探索予想時間と比べて、探索点３１ａと探索点２３ａとの間の探索予想時間が短くなっている。このとき、探索点決定装置１００は、探索点３１ａの評価値３１ｂから、探索点２２ａの評価値２２ｂ、および、探索点２３ａの評価値２３ｂに向けて、探索候補点ごとにパラメータ空間内の領域３５および領域３６を生成する。探索点決定装置１００は、上記の式（３）で算出する評価スコアに基づいて、本来、評価値を発見したい領域である領域３２近傍の、領域３５に基づく探索点３７ａを決定する。なお、領域３６に基づく探索点３３ａは、探索点３７ａよりも評価スコアが低くなるため選択されない。このように、探索点決定装置１００は、本来、評価値を発見したい領域である領域３２近傍において、次の新規探索点を決定することができる。
【００５９】
次に、実施例の探索点決定装置１００の動作について説明する。図１１は、実施例の探索点決定処理の一例を示すフローチャートである。
【００６０】
探索点決定装置１００の受付部１３１は、例えばユーザによって操作部１１２から入力された探索範囲を受け付ける（ステップＳ１）。また、受付部１３１は、例えばユーザによって操作部１１２から入力された終了時刻を受け付ける。受付部１３１は、探索範囲および終了時刻を受け付けると、探索指示を算出部１３２に出力する。また、受付部１３１は、受け付けた終了時刻、および、現在時刻に基づく開始時刻を進捗管理記憶部１２４に記憶するとともに、現在時刻、残り時間の更新を開始する。
【００６１】
算出部１３２は、受付部１３１から探索指示が入力されると、探索範囲記憶部１２２を参照して探索範囲を取得する。算出部１３２は、取得した探索範囲に基づいて、評価対象の処理を表す関数について、初期探索を実行する（ステップＳ２）。算出部１３２は、初期探索によって決定した探索点を既知探索点記憶部１２３に記憶して初期探索を終了する。
【００６２】
算出部１３２は、初期探索が終了すると、評価対象の処理の探索範囲における関数について、既知探索点に基づいてガウス過程を算出する（ステップＳ３）。また、算出部１３２は、評価対象の処理の探索範囲における関数について、既知探索点に基づいて探索予想時間の関数を算出する（ステップＳ４）。算出部１３２は、算出したガウス過程および探索予想時間の関数を生成部１３３に出力する。
【００６３】
生成部１３３は、算出部１３２からガウス過程および探索予想時間の関数が入力されると、既知探索点記憶部１２３を参照し、既知探索点を取得する。生成部１３３は、探索候補点ごとにパラメータ空間内の領域を生成する（ステップＳ５）。生成部１３３は、探索候補点ごとにパラメータ空間内の領域を生成すると、ガウス過程の信頼区間上限に基づいて、探索候補点ごとの補正スコアを算出する（ステップＳ６）。生成部１３３は、各探索候補点における算出した補正スコア、および、パラメータ空間内の領域の大きさと、探索予想時間の関数とを決定部１３４に出力する。
【００６４】
決定部１３４は、生成部１３３から各探索候補点における補正スコアおよびパラメータ空間内の領域の大きさと、探索予想時間の関数とが入力されると、補正スコアと領域の大きさと探索予想時間とに基づいて、探索点を決定する（ステップＳ７）。決定部１３４は、探索点を決定すると、決定した探索点の評価を実行する（ステップＳ８）。決定部１３４は、評価結果を評価結果記憶部１２６に記憶するとともに、今回の探索点を既知探索点記憶部１２３に記憶する。決定部１３４は、今回の探索点を既知探索点記憶部１２３に記憶すると、次の探索点を探索するか否かを判定する（ステップＳ９）。
【００６５】
決定部１３４は、次の探索点を探索すると判定した場合には（ステップＳ９：肯定）、算出部１３２に対して継続指示を出力し、ステップＳ３に戻る。決定部１３４は、次の探索点を探索しないと判定した場合には（ステップＳ９：否定）、探索点決定処理を終了する。これにより、探索点決定装置１００は、パラメータの最適化にかかる時間を短縮できる。また、探索点決定装置１００は、時間制約が存在する中でのパラメータ最適化に適した形の実験計画を立てることができる。つまり、探索点決定装置１００は、時間制約が存在する中でパラメータ最適化に適した探索点を求めることができる。また、探索点決定装置１００は、実行と評価とを実行時間に応じて最も良いスコア（評価値）が得られると考えられる点を評価することができる。また、探索点決定装置１００は、実行結果の再利用を行っても、既知探索点の近傍を執拗に評価することを避けることができる。このため、探索点決定装置１００は、実行結果の再利用を安全に行うことができる。また、探索点決定装置１００は、締め切り時間に合わせて手堅くスコアアップが狙える探索点を探索できる。
【００６６】
このように、探索点決定装置１００は、関数の推定過程における探索点を決定する。すなわち、探索点決定装置１００は、関数に関する過去の探索結果から、探索候補点それぞれにおける、探索予想時間と、関数にガウス過程を用いて得られる信頼区間上限とを算出する。また、探索点決定装置１００は、探索候補点それぞれについて、当該探索候補点と近接した過去の探索結果における探索点の位置、各探索候補点に対応した探索予想時間、および、各探索候補点に対応した信頼区間上限を用いて、各探索候補点に対しパラメータ空間内の領域を生成する。また、探索点決定装置１００は、複数のパラメータ空間内の領域の大きさに基づき、探索点を決定する。その結果、探索点決定装置１００は、パラメータの最適化にかかる時間を短縮できる。また、探索点決定装置１００は、時間制約が存在する中でのパラメータ最適化に適した形の実験計画を立てることができる。
【００６７】
また、探索点決定装置１００では、パラメータ空間内の領域は、Ｎ次元超直方体である。その結果、幅広い範囲で既存探索点から離れている探索点を決定することができる。
【００６８】
また、探索点決定装置１００では、パラメータ空間内の領域は、Ｎ次元超球である。その結果、幅広い範囲で既存探索点から離れている探索点を決定することができる。
【００６９】
また、探索点決定装置１００は、パラメータ空間内の領域の大きさを、過去の探索結果における探索点の位置に応じて補正する。その結果、既存探索点から離れている探索点を決定することができる。
【００７０】
また、探索点決定装置１００では、探索候補点は、過去の探索結果における評価値が最も高い探索点の評価値よりも、関数の期待値が高い範囲で設定する。その結果、パラメータ最適化に適した探索点を求めることができる。
【００７１】
また、探索点決定装置１００は、各探索候補点における過去の探索結果における評価値からの改善値と、領域の大きさとの積を、探索予想時間で割った値に基づいて、探索点を決定する。その結果、探索予想時間と既存探索点からの離れ具合とを考慮して探索点を決定することができる。
【００７２】
なお、上記実施例では、初期探索の探索点をランダムに決定したが、これに限定されない。例えば、探索範囲の上限および下限を用いたり、探索範囲を複数に区分して、それぞれの中央値を用いたりして初期探索の探索点を決定してもよい。
【００７３】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、受付部１３１の進捗管理機能を別の機能部として分散してもよい。また、図示した各処理は、上記の順番に限定されるものでなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【００７４】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【００７５】
ところで、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１２は、探索点決定プログラムを実行するコンピュータの一例を示す図である。
【００７６】
図１２に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、各種装置と接続するためのインタフェース装置２０５と、他の情報処理装置等と有線または無線により接続するための通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。
【００７７】
ハードディスク装置２０８には、図６に示した受付部１３１、算出部１３２、生成部１３３および決定部１３４の各処理部と同様の機能を有する探索点決定プログラムが記憶される。また、ハードディスク装置２０８には、入力データ記憶部１２１、探索範囲記憶部１２２、既知探索点記憶部１２３、進捗管理記憶部１２４、出力データ記憶部１２５、評価結果記憶部１２６、評価対象記憶部１２７、および、探索点決定プログラムを実現するための各種データが記憶される。入力装置２０２は、例えば、コンピュータ２００のユーザから操作情報等の各種情報の入力を受け付ける。モニタ２０３は、例えば、コンピュータ２００のユーザに対して表示画面等の各種画面を表示する。インタフェース装置２０５は、例えば印刷装置等が接続される。通信装置２０６は、例えば、図６に示した通信部１１０と同様の機能を有し図示しないネットワークと接続され、図示しない他の情報処理装置等と各種情報をやりとりする。
【００７８】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ２００を図６に示した受付部１３１、算出部１３２、生成部１３３および決定部１３４として機能させることができる。
【００７９】
なお、上記の探索点決定プログラムは、必ずしもハードディスク装置２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの探索点決定プログラムを記憶させておき、コンピュータ２００がこれらから探索点決定プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００８０】
１００  探索点決定装置
１１０  通信部
１１１  表示部
１１２  操作部
１２０  記憶部
１２１  入力データ記憶部
１２２  探索範囲記憶部
１２３  既知探索点記憶部
１２４  進捗管理記憶部
１２５  出力データ記憶部
１２６  評価結果記憶部
１２７  評価対象記憶部
１３０  制御部
１３１  受付部
１３２  算出部
１３３  生成部
１３４  決定部
【図１】
2019159933.tif 000003
【図２】
2019159933.tif 000004
【図３】
2019159933.tif 000005
【図４】
2019159933.tif 000006
【図５】
2019159933.tif 000007
【図６】
2019159933.tif 000008
【図７】
2019159933.tif 000009
【図８】
2019159933.tif 000010
【図９】
2019159933.tif 000011
【図１０】
2019159933.tif 000012
【図１１】
2019159933.tif 000013
【図１２】
2019159933.tif 000014