IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧

特許7580246パラメータ最適化装置、方法及びシステム
<>
  • 特許-パラメータ最適化装置、方法及びシステム 図1
  • 特許-パラメータ最適化装置、方法及びシステム 図2
  • 特許-パラメータ最適化装置、方法及びシステム 図3
  • 特許-パラメータ最適化装置、方法及びシステム 図4
  • 特許-パラメータ最適化装置、方法及びシステム 図5
  • 特許-パラメータ最適化装置、方法及びシステム 図6
  • 特許-パラメータ最適化装置、方法及びシステム 図7
  • 特許-パラメータ最適化装置、方法及びシステム 図8
  • 特許-パラメータ最適化装置、方法及びシステム 図9
  • 特許-パラメータ最適化装置、方法及びシステム 図10
  • 特許-パラメータ最適化装置、方法及びシステム 図11
  • 特許-パラメータ最適化装置、方法及びシステム 図12
  • 特許-パラメータ最適化装置、方法及びシステム 図13
  • 特許-パラメータ最適化装置、方法及びシステム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-31
(45)【発行日】2024-11-11
(54)【発明の名称】パラメータ最適化装置、方法及びシステム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20241101BHJP
【FI】
G06N99/00 180
【請求項の数】 22
(21)【出願番号】P 2020185291
(22)【出願日】2020-11-05
(65)【公開番号】P2022074880
(43)【公開日】2022-05-18
【審査請求日】2023-02-17
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】中川 英之
(72)【発明者】
【氏名】田口 安則
(72)【発明者】
【氏名】雁木 比呂
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特開2020-144530(JP,A)
【文献】特開2020-027370(JP,A)
【文献】武田惇史/太田 健,サンプル点制限と再起動戦略に基づくベイズ最適化の計算量削減,Preferred Networks Research & Development [online],日本,2019年10月24日,[令和6年3月13日検索], pp.1-10,インターネット<URL:https://tech.preferred.jp/ja/blog/limited-gp/>
【文献】KIRSCHNER, Johannes et.al.,Adaptive and Safe Bayesian Optimization in High Dimensions via One-Dimensional Subspaces,Proceedings of the 36th International Conference on Machine Learning (ICML),Vol.97 of PMLR,米国,2019年05月28日,pp.3429-3438,インターネット<URL:https://web.archive.org/web/20190615074833id_/http://proceedings.mlr.press/v97/kirschner19a/kirschner19a.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
第1次元数の第1パラメータ値と第1パラメータ値に対応する目的関数の観測値とを含む複数のデータセットを記憶する記憶部と、
所定の第1パラメータ値を含む前記第1次元数より小さい第2次元数の探索空間を決定する探索空間決定部と、
前記探索空間から所定の距離に含まれる第1パラメータ値を有する1以上のデータセット又は当該データセットに対応する前記第2次元数の第2パラメータ値を有する1以上のデータセットを前記複数のデータセットに基づいて取得する第1取得部と、
前記取得された1以上のデータセットに基づく前記目的関数の代理モデルを用いて前記探索空間内で前記目的関数を最適化し得る第1パラメータ値又は第2パラメータ値を探索するパラメータ探索部と、
を具備し、
前記第1取得部は、前記複数のデータセット各々について第1パラメータ値と前記探索空間との距離を算出し、前記距離が閾値以下の第1パラメータ値又は当該第1パラメータ値に対応する前記第2次元数の第2パラメータ値を、前記1以上の第1パラメータ値又は第2パラメータ値として取得する、
パラメータ最適化装置。
【請求項2】
前記探索された第1パラメータ値に対応する前記目的関数の観測値又は前記探索された第2パラメータ値に対応する第1パラメータ値に対応する前記目的関数の観測値と、前記探索された第1パラメータ値又は第2パラメータ値とを含むデータセットを生成する生成部、を更に備え、
前記記憶部は、前記生成されたデータセットを記憶する、
請求項1記載のパラメータ最適化装置。
【請求項3】
前記探索空間決定部は、前記生成部によりデータセットが生成された後、外側の判定条件が満たされるか否かを判定し、
前記外側の判定条件が満たされない場合、前記記憶部、前記探索空間決定部、前記第1取得部、前記パラメータ探索部及び前記生成部による処理が繰り返される、
請求項2記載のパラメータ最適化装置。
【請求項4】
前記探索空間決定部は、前記生成部によりデータセットが生成された後、内側の判定条件を満たすか否かを判定し、前記内側の判定条件が満たされた場合、前記外側の判定条件を満たすか否かを判定し、
前記探索空間決定部は、前記探索空間決定部、前記第1取得部、前記パラメータ探索部及び前記生成部による繰り返し処理において、前記内側の判定条件が満たされ且つ前記外側の判定条件が満たされない場合、前記記憶部に記憶されている複数のデータセットから目的関数の観測値が最小又は最大となる第1パラメータ値を取得し、前記第2次元数の他の第2パラメータを選択し、前記取得した第1パラメータ値を含むように前記選択した第2パラメータを探索するための前記第2次元数の探索空間を決定する、請求項3記載のパラメータ最適化装置。
【請求項5】
前記探索空間決定部は、前記繰り返し処理毎に、複数のグループに分けられた前記第2次元数の第2パラメータ値の中から一のグループに属する第2パラメータを選択する、又は前記第1次元数の第1パラメータの中からランダムに前記第2次元数の第2パラメータを選択する、請求項4記載のパラメータ最適化装置。
【請求項6】
前記探索空間決定部は、
前記所定の第1パラメータ値を含む前記第2次元数のアフィン部分空間を前記探索空間に設定し、
前記繰り返し処理毎に、前記第2次元数又は前記アフィン部分空間に付随する線型部分空間の少なくともいずれか一方を変化させることで前記第2次元数のアフィン部分空間を変化させる、
請求項4記載のパラメータ最適化装置。
【請求項7】
前記パラメータ探索部は、前記内側の判定条件が満たされない場合、繰り返し同一の前記探索空間を探索して前記第1パラメータ値又は第2パラメータ値を探索する、請求項4記載のパラメータ最適化装置。
【請求項8】
前記繰り返し処理は、並列的又は直列的に複数のタスクとして実行され、
前記記憶部は、前記複数のタスクにそれぞれ対応する複数のタスク記憶部を有し、
前記複数のタスク記憶部各々は、当該タスク毎に第1パラメータ値と第1パラメータ値に対応する観測値とを蓄積し、
前記複数のタスク記憶部各々は、前記内側の判定条件が満たされない場合、前記複数のタスク記憶部に記憶されている第1パラメータ値のうちの、最小又は最大の観測値に対応する第1パラメータ値を記憶する、
請求項4記載のパラメータ最適化装置。
【請求項9】
前記外側の判定条件が満たされるときに前記記憶部に記憶されているデータセットの中から最大又は最小の観測値を有する第1パラメータ値を取得する第2取得部を更に備える、請求項3記載のパラメータ最適化装置。
【請求項10】
前記記憶部、前記探索空間決定部、前記第1取得部、前記パラメータ探索部及び前記生成部による繰り返し処理は、並列的又は直列的に複数のタスクとして実行され、
前記記憶部は、前記複数のタスクにそれぞれ対応する複数のタスク記憶部を有し、
前記複数のタスク記憶部各々は、当該タスク毎に第1パラメータ値と第1パラメータ値に対応する観測値とを蓄積し、
前記第2取得部は、前記外側の判定条件が満たされた場合、前記複数のタスク記憶部に記憶されている第1パラメータ値のうちの、最小又は最大の観測値に対応する第1パラメータ値を取得する、
請求項9記載のパラメータ最適化装置。
【請求項11】
前記閾値は、正の値である、請求項1記載のパラメータ最適化装置。
【請求項12】
前記第1取得部は、前記複数のデータセット各々について第1パラメータ値と前記探索空間との距離を算出し、前記距離が閾値以下の第1パラメータ値又は当該第1パラメータ値に対応する前記第2次元数の第2パラメータ値を、前記1以上の第1パラメータ値又は第2パラメータ値として取得し、
前記閾値は、前記探索空間決定部、前記第1取得部、前記パラメータ探索部及び前記生成部による繰り返し処理の回数に応じて異なる、
請求項3記載のパラメータ最適化装置。
【請求項13】
前記閾値を、ユーザからの指示に従い選択するためのGUI画面を表示する表示部を更に備える、請求項1記載のパラメータ最適化装置。
【請求項14】
前記距離は、ユークリッド距離、マンハッタン距離、コサイン距離又はマハラノビス距離である、請求項1記載のパラメータ最適化装置。
【請求項15】
前記距離の種類を、ユーザからの指示に従い選択するためのGUI画面を表示する表示部を更に備える、請求項14記載のパラメータ最適化装置。
【請求項16】
前記第1取得部は、前記探索空間までの距離が前記所定の距離に含まれる前記1以上の第1パラメータ値又は第2パラメータ値を、前記複数のデータセットに基づいて抽出する又は前記第2次元数の探索空間に基づいてランダムに生成する、請求項1記載のパラメータ最適化装置。
【請求項17】
前記1以上の第1パラメータ値に対応する前記目的関数の観測値又は前記1以上の第2パラメータ値に対応する第1パラメータ値に対応する前記目的関数の観測値と、前記1以上の第1パラメータ値又は第2パラメータ値とを含むデータセットを生成する生成部、を更に備え、
前記記憶部は、前記生成されたデータセットを記憶する、
請求項16記載のパラメータ最適化装置。
【請求項18】
前記第2次元数を、ユーザからの指示に従い選択するためのGUI画面を表示する表示部を更に備える、請求項1記載のパラメータ最適化装置。
【請求項19】
前記パラメータ探索部は、前記取得された1以上のデータセットに基づき前記代理モデルを生成し、前記代理モデルを最適化する前記探索空間内の第1パラメータ値又は第2パラメータ値を、前記目的関数を最適化し得る第1パラメータ値又は第2パラメータ値として探索する、請求項1記載のパラメータ最適化装置。
【請求項20】
前記所定の第1パラメータ値は、デフォルト値と、ランダム値と、前記記憶部に記憶された第1パラメータ値のうちの最小又は最大の観測値に対応する第1パラメータ値との何れか1つである、請求項1記載のパラメータ最適化装置。
【請求項21】
第1次元数の所定の第1パラメータ値を含む前記第1次元数より小さい第2次元数の探索空間を決定し、
前記探索空間から所定の距離に含まれる第1パラメータ値を有する1以上のデータセット又は当該データセットに対応する前記第2次元数の第2パラメータ値を有する1以上のデータセットを複数のデータセットに基づいて取得し、ここで、前記複数のデータセットの各々は、前記第1次元数の第1パラメータ値と当該第1パラメータ値に対応する目的関数の観測値とを含み、
前記取得された1以上のデータセットに基づく前記目的関数の代理モデルを用いて前記探索空間内で前記目的関数を最適化し得る第1パラメータ値又は第2パラメータ値を探索する、
ことを具備し、
前記取得することは、前記複数のデータセット各々について第1パラメータ値と前記探索空間との距離を算出し、前記距離が閾値以下の第1パラメータ値又は当該第1パラメータ値に対応する前記第2次元数の第2パラメータ値を、前記1以上の第1パラメータ値又は第2パラメータ値として取得する、
パラメータ最適化方法。
【請求項22】
第1次元数の第1パラメータ値と第1パラメータ値に対応する目的関数の観測値とを含む複数のデータセットを記憶する記憶部と、
所定の第1パラメータ値を含む前記第1次元数より小さい第2次元数の探索空間を決定する探索空間決定部と、
前記探索空間から所定の距離に含まれる第1パラメータ値を有する1以上のデータセット又は当該データセットに対応する前記第2次元数の第2パラメータ値を有する1以上のデータセットを前記複数のデータセットに基づいて取得する第1取得部と、
前記取得された1以上のデータセットに基づく前記目的関数の代理モデルを用いて前記探索空間内で前記目的関数を最適化し得る第1パラメータ値又は第2パラメータ値を探索するパラメータ探索部と、
前記探索された第1パラメータ値に対応する前記目的関数の観測値又は前記探索された第2パラメータ値に対応する第1パラメータ値に対応する前記目的関数の観測値を算出する算出部と、
前記探索された第1パラメータ値又は第2パラメータ値に対応する第1パラメータ値と前記算出された観測値とを含むデータセットを生成する生成部と、
を具備し、
前記第1取得部は、前記複数のデータセット各々について第1パラメータ値と前記探索空間との距離を算出し、前記距離が閾値以下の第1パラメータ値又は当該第1パラメータ値に対応する前記第2次元数の第2パラメータ値を、前記1以上の第1パラメータ値又は第2パラメータ値として取得する、
パラメータ最適化システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、パラメータ最適化装置、方法及びシステムに関する。
【背景技術】
【0002】
社会には、様々な機器があり、それら機器は様々な部品から構成されている。これらの機器や部品は、設計され、製造され、活用される。
【0003】
設計段階においては、特性が仕様を満たす機器や部品が設計される場合がある。この際、設計時に調整できるパラメータを様々な値に変更し、シミュレーションや実験、アンケートを実施することで、それらのパラメータ値で設計したときの特性を取得し、その特性が仕様を満たすパラメータ値を求める。ここで、特性は例えば、機器や部品の性能や製造コスト、顧客満足度である。機器や部品の性能は良いほど好ましく、製造コストは低いほど好ましく、顧客満足度は高いほど好ましい。特性の値が大きいほど良い場合は、その特性を最大化するパラメータ値を少ない時間や手間で求めることが要求される。特性の値が小さいほど良い場合は、その特性を最小化するパラメータ値を少ない時間や手間で求めることが要求される。
【0004】
特性が最大又は最小となるパラメータ値を求めることは、パラメータ最適化と呼ばれる。パラメータ値に応じて変化する特性は、目的関数と呼ばれる。シミュレーションや実験、アンケートは、目的関数の値を観測するための手段である。
【0005】
製造段階においても、パラメータ最適化が用いられる場合がある。例えば、製造時の歩留まりを最大化するパラメータ値を求めたり、出荷後の故障率を最小化するパラメータ値を求めたりする場合がある。
【0006】
活用段階においても、パラメータ最適化が用いられる場合がある。例えば、ユーザの手元に届いた機器や部品が、ユーザの利用環境に合った性能を発揮するパラメータ値をユーザによる初期設定時に求める場合がある。
【0007】
パラメータは複数ある場合が多い。調整するパラメータの数をDで表すと、複数のパラメータはD次元ベクトルで表現できる。D次元ベクトルで表現できるパラメータをD次元パラメータと呼び、D次元パラメータが持つ値をD次元パラメータ値と呼ぶことにする。最適なD次元パラメータ値を探索する空間はD次元空間となる。Dが大きいほど、探索空間が広いため、最適化が困難である。
【0008】
D次元空間(D≧2)において、目的関数を最大又は最小にするD次元パラメータ値を探索するパラメータ最適化方式として、非特許文献1の手法が知られている。この手法では、探索空間をD次元空間中の1次元空間に限定し、その1次元探索空間を切り替えながらベイズ最適化を反復することで、パラメータ値を探索する。これにより、D次元パラメータの探索を効率化する。
【先行技術文献】
【特許文献】
【0009】
【文献】特開2020-27370号公報
【非特許文献】
【0010】
【文献】J. Kirschner, M. Mutny, N. Hiller, R. Ischebeck, and A. Krause,“Adaptive and safe Bayesian optimization in high dimensions via one-dimensional subspaces,” in Proceedings of the 36th International Conference on Machine Learning, vol. 97, pp. 3429-3438, PMLR, 2019.
【発明の概要】
【発明が解決しようとする課題】
【0011】
非特許文献1の手法が利用しているベイズ最適化では、逆行列の計算が必要であり、パラメータ探索の反復回数に応じて計算量が増加する。シミュレーションや実験、アンケートといった、目的関数の値を観測するのにかかる時間が長いとはいえ、パラメータ探索の反復回数が多くなったときの計算量も、無視できない長さになる場合がある。
【0012】
本発明が解決する課題は、効率的に最適なパラメータ値を探索できるパラメータ最適化装置、方法及びシステムを提供することである。
【課題を解決するための手段】
【0013】
実施形態に係るパラメータ最適化装置は、記憶部、探索空間決定部、第1取得部及びパラメータ探索部を有する。記憶部は、第1次元数の第1パラメータ値と第1パラメータ値に対応する目的関数の観測値とを含む複数のデータセットを記憶する。探索空間決定部は、所定の第1パラメータ値を含む前記第1次元数より小さい第2次元数の探索空間を決定する。第1取得部は、前記探索空間から所定の距離に含まれる第1パラメータ値を有する1以上のデータセット又は当該データセットに対応する第2パラメータ値を有するデータセットを前記複数のデータセットに基づいて取得する。パラメータ探索部は、前記取得された1以上のデータセットに基づく前記目的関数の代理モデルを用いて前記探索空間内で前記目的関数を最適化し得る第1パラメータ値又は第2パラメータ値を探索する。
【図面の簡単な説明】
【0014】
図1】第1実施形態に係るパラメータ最適化システムの機能構成例を示す図
図2】データ記憶部に記憶されるデータセットの一例を示す図
図3】2次元パラメータ空間における1次元探索空間の一例を示す図
図4】2次元パラメータ空間における1次元探索空間付近のデータセットの概念を示す図
図5】20次元データセットを1次元データセットへ変換する方法の一例を示す図
図6】1次元パラメータ値から20次元パラメータ値へ変換する方法の一例を示す図
図7】第1実施形態に係るパラメータ最適化システムの処理動作の一例を示すフローチャート
図8】1次元アフィン部分空間の一例を示す図
図9】第2実施形態に係るパラメータ最適化システムの機能構成例を示す図
図10】第2実施形態に係るパラメータ最適化システムの処理動作の一例を示すフローチャート
図11】次元取得画面の一例を示す図
図12】距離種入力画面の一例を示す図
図13】閾値入力画面の一例を示す図
図14】パラメータ最適化装置のハードウェア構成例を示す図
【発明を実施するための形態】
【0015】
本実施形態において使用する用語について定義する。調整対象のパラメータの数をDで表す。D個のパラメータはD次元ベクトルで表現できる。D次元ベクトルで表現できるパラメータをD次元パラメータと呼び、D次元パラメータが持つ値をD次元パラメータ値と呼ぶことにする。D次元パラメータ値をxで表す。最適化する目的関数をf(・)、目的関数の観測値をyで表す。r次元のパラメータ値をxで表す。D>rとする。
【0016】
目的関数の値を最大化するD次元パラメータ値を求めたい場合、目的関数の符号を反転させることにより、等価な最小化問題に書き直せる。そこで、以下では、目的関数f(・)の値を最小化するD次元パラメータ値を求める場合の例を説明し、最大化問題の説明を省略する。
【0017】
以下、図面を参照しながら本実施形態に係わるパラメータ最適化装置、方法及びシステムを説明する。以下の実施形態では、パラメータ最適化装置の特徴的な構成および動作を主に説明するが、パラメータ最適化装置には以下の説明で省略した構成および動作が存在しうる。
【0018】
(第1実施形態)
図1は、第1実施形態に係るパラメータ最適化システム1の機能構成例を示す図である。図1に示すように、パラメータ最適化システム1は、パラメータ最適化装置2Aと観測値出力装置3とを有するコンピュータシステムである。パラメータ最適化装置2Aと観測値出力装置3とは、有線又は無線を介して通信可能に接続されている。パラメータ最適化装置2Aは、観測値出力装置3からの観測値とそれに対応するパラメータ値に基づいて、目的関数を最適化する可能性のあるパラメータ値を探索するコンピュータである。観測値出力装置3は、パラメータ値に基づいてシミュレーション、実験又はアンケートを行い、目的関数の値を観測、換言すれば、目的関数の観測値を出力するコンピュータである。パラメータ最適化システム1は、パラメータ最適化装置2Aによる目的関数を最適化する可能性のあるパラメータ値の探索と、探索されたパラメータ値に対応する観測値出力装置3を利用した目的関数の観測値の出力とを繰り返す。
【0019】
図1に示すように、パラメータ最適化装置2Aは、例えば、データ記憶部11、探索空間決定部12、データ取得部13、パラメータ探索部14、データ生成部15及び最適パラメータ値取得部16を有する。
【0020】
データ記憶部11は、例えば、D次元パラメータ値と当該D次元パラメータ値に対応する目的関数の観測値とのセットをデータとして記憶する。D次元パラメータ値と観測値とのセットのデータをデータセットと呼ぶことにする。データ記憶部11には、1以上のデータセットが記憶されている。目的関数の観測値は、観測値出力装置3によりD次元パラメータ値に基づいて計算される。
【0021】
データ記憶部11は、N個のデータセット{(x,y)|n=0,1,…,N-1}を記憶しているものとする。xはn番目のD次元パラメータ値を表す。yは、xに関する目的関数fの観測値を表す。すなわち、y=f(x)+εである。ここで、εは観測値yに含まれるノイズ成分を表す。データセット数Nは、データ生成部15により生成されたデータセットがデータ記憶部11に記憶されることにより増加し得る。
【0022】
観測値yは、観測値出力装置3によるシミュレーションや実験、アンケ―ト等に基づいて観測される。実験やシミュレーション、アンケ―トなどでは、1つ以上の項目についての特性値が得られる。項目数が1つである場合、得られる特性値がスカラーであるため、特性値が目的関数の観測値に用いられる。実験やシミュレーション、アンケ―ト等で得られる特性値の項目が複数の場合、得られる特性値はベクトルで表現される。ベクトルで表現される特性値をスカラーに変換したものが目的関数の観測値に用いられる。スカラーへの変換には、例えば、線形加重和法等が用いられる。
【0023】
図2は、データ記憶部11に記憶されるデータセットの一例を示す図である。図2は、D=20のデータセットの一例である。20次元パラメータは、20個の変数x(0)、x(1)、…、x(19)を有し、各変数は固有の値を有する。各変数は、フィルタやデバイスの設計パラメータでもよいし、製造装置の設定パラメータでもよい。各変数の値は、連続値、離散値、あるいは、カテゴリ変数でもよい。20次元パラメータ値から計算される目的関数の観測値の変数をyとする。図2の各行が20次元パラメータ値と当該20次元パラメータ値に対応する目的関数の観測値とを有するデータセットである。
【0024】
探索空間決定部12は、データ記憶部11に記憶されているデータセットから目的関数の観測値が最小であるD次元パラメータ値xexpを取得し、D次元パラメータからD次元未満のr次元パラメータを選択し、取得したD次元パラメータ値を含むr次元の探索空間を決定する。前記データ記憶部11に記憶されているデータセットがなければ、D次元パラメータ値xexpをランダムに設定してもよいし、過去の調整結果から転用してもよい。探索空間はアフィン部分空間である。次元数rの値は、予め決められた値でもよいし、ランダムに決めた値でもよい。
【0025】
図3は、2次元パラメータ空間における1次元探索空間の一例を示す図である。つまり、図3は、D=2且つr=1の場合の一例である。図3に示す2次元パラメータ空間は、座標軸x及び座標軸xにより規定される空間である。等高線図50は、当該2次元パラメータ空間内の2次元の目的関数を表したものである。等高線図50の中心51は目的関数の最小値に対応する。4つの点は4つの2次元パラメータ値を示す。これら2次元パラメータ値のうち、目的関数の観測値が最小の2次元パラメータ値がxexpとしてマークされている。2次元パラメータ値xexpは1次元探索空間52の基準点である。1次元探索空間52を決定する場合、注目する1次元を選択する必要があるが、図3ではxが注目する1次元として選択されている。探索空間決定部12は、2次元パラメータ値xexpを含むxに沿った1次元空間を、1次元探索空間52として決定する。このように次元選択することで、高次元パラメータの最適化問題を低次元パラメータの最適化問題に部分問題化して解くことが可能になる。
【0026】
データ取得部13は、探索空間決定部12から取得した探索空間から所定の距離に含まれるD次元パラメータ値を有するデータセットを、データ記憶部11に記憶されている複数のデータセットに基づいて取得する。探索空間から所定の距離に含まれるD次元パラメータ値を有するデータセットを探索空間付近のデータセットと呼ぶことにする。探索空間とD次元パラメータ値との間の距離は、ユークリッド距離、マンハッタン距離、コサイン距離及びマハラノビス距離の中から任意に選択されるとよい。コサイン距離は、1からコサイン類似度を減算したものとする。コサイン距離は数学的な距離の公理を満たさないが、探索空間との距離を計測するための尺度として利用することが可能である。なお、データ取得部13により取得されるデータセットは、D次元パラメータ値と観測値とのセットでもよいし、r次元パラメータ値と観測値とのセットでもよい。
【0027】
図4は、2次元パラメータ空間における1次元探索空間付近のデータセットの概念を示す図である。つまり、図4は、D=2且つr=1の場合の一例である。1次元探索空間付近の2次元パラメータ値とは、1次元探索空間52から所定の距離が閾値d以下の2次元パラメータ値である。つまり、1次元探索空間52からの距離が閾値d以下の空間53に含まれる2次元パラメータ値xexpと2次元パラメータ値xothとが取得される。2次元パラメータ値xothは、空間53には含まれるが、1次元探索空間52には含まれない。d=0の場合、1次元探索空間付近の2次元パラメータ値は、1次元探索空間51上の2次元パラメータ値を意味する。図4中の4つの点の中では、1次元探索空間51上の2次元パラメータ値は、xexpのみである。d=0の場合、2次元パラメータ値xothはデータ取得部13によって取得されない。
【0028】
データ取得部13は、探索空間付近のデータセットを、データ記憶部11に記憶されている複数のデータセットから選択してもよいし、データ記憶部11に記憶されている複数のデータセットに基づいて生成してもよい。データ取得部13は、データ記憶部11から取得した探索空間付近のD次元パラメータ値を有するデータセットを、r次元パラメータ値と当該r次元パラメータ値に対応する目的関数の観測値とのデータセットに変換してもよい。また、探索空間付近のD次元パラメータ値又はr次元パラメータ値をランダムに生成し、当該パラメータ値に基づいてデータセットを作成してもよい。
【0029】
図5は、20次元データセットを1次元データセットへ変換する方法の一例を示す図である。つまり、図5は、D=20且つr=1の場合の一例である。図5は、探索空間決定部12で選択された1次元パラメータがx(2)の場合の例であり、図5の左側がデータ記憶部11から取得した1次元探索空間付近の20次元データセットである。この20次元のデータセットの1次元のデータセットへの変換は、例えば、探索空間決定部12で選択された1次元パラメータx(2)の値と目的関数の観測値yとをセットにしてデータ化することにより行われる。
【0030】
パラメータ探索部14は、データ取得部13により取得された1以上のデータセットに基づく目的関数の代理モデルを用いて、探索空間決定部12により決定された探索空間内で目的関数を最適化し得るD次元パラメータ値xnext又はr次元パラメータ値x nextを決定する。具体的には、パラメータ探索部14は、取得されたデータセットに基づいて目的関数の代理モデルを生成し、代理モデルを最適化するr次元探索空間内のD次元パラメータ値又はr次元パラメータを、目的関数を最適化し得るD次元パラメータ値xnext又はr次元パラメータ値x nextとして探索する。データ取得部13から取得したデータセットのパラメータ値がD次元である場合は、D次元パラメータ値xnextが探索される。一方で、データ取得部13から取得したデータセットのパラメータ値がr次元である場合は、r次元パラメータ値x nextが探索される。パラメータ値の探索にはベイズ最適化等が用いられればよい。
【0031】
データ生成部15は、パラメータ探索部14により探索されたD次元パラメータ値xnext又はr次元パラメータ値x nextに対応する目的関数の観測値ynextと、当該D次元パラメータ値xnext又はr次元パラメータ値x nextとを含むデータセットを生成する。
【0032】
具体的には、データ生成部15は、パラメータ探索部14によりD次元パラメータ値xnextが探索された場合、D次元パラメータ値xnextを観測値出力装置3に入力する。観測値出力装置3は、シミュレーションや実験、アンケートを実行してD次元パラメータ値xnextから観測値ynextを出力する。データ生成部15は、観測値出力装置3から観測値ynextを取得し、D次元パラメータ値xnextと観測値ynextとを含むデータセットを生成し、当該データセットをデータ記憶部11に記憶する。データ生成部15は、パラメータ探索部14によりr次元パラメータ値x nextが探索された場合、r次元パラメータ値x nextをD次元パラメータ値xnextに変換する。
【0033】
図6は、1次元パラメータ値から20次元パラメータ値へ変換する方法の一例を示す図である。つまり、図6は、D=20且つr=1の場合の一例である。図6は探索空間決定部12で選択された1次元パラメータが3番目の要素の1次元パラメータ値x(2)の場合の例である。図6のように20次元のパラメータ値xexpのうち3番目の要素の1次元パラメータ値x(2)に、1次元パラメータ値x nextを埋め込むことにより20次元パラメータ値xexpに変換してもよい。
【0034】
その後、データ生成部15は、変換したD次元パラメータ値xnextを観測値出力装置3に入力する。観測値出力装置3は、シミュレーションや実験、アンケートを実行してD次元パラメータ値xnextから観測値ynextを出力する。データ生成部15は、観測値出力装置3から観測値ynextを取得し、D次元パラメータ値xnextと観測値ynextとを含むデータセットを生成し、当該データセットをデータ記憶部11に記憶する。
【0035】
最適パラメータ値取得部16は、データ記憶部11に記憶されている複数のデータセットのうちの、最小の観測値に対応するD次元パラメータ値を、最適パラメータ値xbestとして選択する。
【0036】
次に、図7を参照しながら、第1実施形態に係るパラメータ最適化装置2Aを有するパラメータ最適化システム1の処理動作を説明する。図7は、第1実施形態に係るパラメータ最適化システム1の処理動作の一例を示すフローチャートである。
【0037】
図7に示すように、まず、探索空間決定部12は、探索空間の基準点となるパラメータ値xexpに初期パラメータ値を設定する(ステップSA1)。初期パラメータ値は、ランダムに選択されてもよいし、過去の調整結果から転用してもよい。
【0038】
ステップSA1が行われると探索空間決定部12は、D次元未満のr次元パラメータを選択する(ステップSA2)。また、探索空間決定部12は、データ記憶部11に記憶されているデータセットがあれば目的関数の観測値が最小であるD次元パラメータ値xexpを取得し、記憶されているデータセットがなければステップSA1において設定されたパラメータ値xexpを取得する。r次元パラメータの選択は、例えば、D次元パラメータを予め複数のr次元パラメータからなるグループに分割しておいて、複数のグループの中から1つのグループが選択されてもよいし、ランダムに選択してもよい。後述の第2条件に関するループの反復が所定回数行われる毎に、複数のグループの中から順番にグループが選択されるとよい。例えば、xからxが第1グループ、xからxが第2グループ、x10からx14が第3グループ、x15からx19が第4グループに設定し、第1グループ、第2グループ、第3グループ及び第4グループが第2条件に関するループの反復毎に順番に選択されるとよい。また、グループ分けせずに、D次元パラメータの中からランダムにr次元パラメータを選択してもよい。
【0039】
ステップSA2が行われると探索空間決定部12は、ステップSA2において取得したD次元パラメータ値xexpを含み、ステップSA2において選択されたr次元パラメータに対応するr次元のアフィン部分空間を、探索空間として決定する(ステップSA3)。具体的には、探索空間決定部12は、パラメータ値xexpを通るr次元アフィン部分空間を決定する。ここで、r次元アフィン部分空間をAで表す。Aは、A=xexp+U={xexp+u|u∈U}で表される。xexpは、Aの位置ベクトルになっている。Uは、Aに付随するr次元線型部分空間である。r次元アフィン部分空間は、第2条件に関するループの反復毎に変更されるとよい。
【0040】
図8は、1次元アフィン部分空間61の一例を示す図である。すなわち、図8は、D=2且つr=1の場合の一例である。図8は、x及びxを座標軸とする2次元空間に設定された1次元アフィン部分空間61が例示されている。1次元アフィン部分空間61に付随する1次元線型部分間62が設定されている。1次元線型部分間62は2次元座標空間の原点を通る。1次元アフィン部分空間61は、xexpを通る範囲内において、第2条件に関するループの反復回数に応じて1次元線型部分空間62を変更可能である。例えば、1次元アフィン部分空間61は、第2条件に関するループの反復回数に応じて2次元空間の各座標軸に平行するように変更する。図8の例の場合、変更前の1次元アフィン部分空間61は、ステップSA2において選択された1次元xに対応するx軸に平行であるが、第2条件に関するループを反復する場合、ステップSA2において選択された1次元xに対応するx軸に平行するように変更してもよい。このように、第2条件に関するループを反復する毎に、1次元アフィン部分空間61に付随する1次元線型部分間62をx軸とx軸とで交互に変更してもよい。探索空間決定部12は、変更後の1次元アフィン部分空間61を1次元探索空間に設定する。
【0041】
D>r≧2であり、アフィン部分空間の次元が2以上の場合、第2条件に関するループの反復毎に、r次元アフィン部分空間に付随するr次元線型部分間がD次元空間を規定するD個の座標軸のうち何れかr個を含むように設定されればよい。これにより、xexpがゼロベクトルでない場合、r次元アフィン部分空間は、そのr個の各座標軸と平行になる。
【0042】
ステップSA3が行われるとデータ取得部13は、r次元探索空間から所定距離(閾値)内にあるデータセットを取得する(ステップSA4)。具体的には、データ取得部13は、データ記憶部11に含まれる複数のデータセットの中から、r次元探索空間から所定距離内に含まれるD次元パラメータ値(探索空間付近のD次元パラメータ値)を有するデータセットを選択して取得する。具体的には、データ取得部13は、N個のデータセット各々について、D次元パラメータ値とr次元探索空間との距離を算出し、算出された距離が所定の距離以下のD次元パラメータ値を特定する。特定されたD次元パラメータ値と当該D次元パラメータ値に対応する観測値とを含むデータセットが、データ記憶部11から取得される。ここで、データ取得部13は、特定されたD次元パラメータ値のうちのr次元パラメータ値を取得してもよい。この場合、データ取得部13は、特定されたD次元パラメータ値に関するデータセットを、図6に示すように、r次元パラメータ値と当該r次元パラメータ値に関するデータセットに変換してもよい。距離の閾値は、一定値である必要はなく、可変としても構わない。距離の閾値は、例えば、後述のステップSA11やSA12に関するループにおいて、毎回、変更しても構わない。そのループの反復回数に応じて変更しても構わない。反復回数が多いほど、閾値を小さく設定しても構わない。
【0043】
データ取得部13により取得されたデータセットの個数をNで表す。N個のデータセットを{(x,y)|n=0,1,…,N-1}で表す。データ記憶部11に記憶されるデータセットの数Nは、第1条件に関するループ及び第2条件に関するループを繰り返すことにより増加するので、第1条件に関するループ及び第2条件に関するループの反復に応じて、個数Nの値は変化することとなる。
【0044】
ステップSA4が行われるとデータ取得部13は、ステップSA4においてデータ記憶部11から1以上のデータセットを取得したか否かを判定する(ステップSA5)。
【0045】
ステップSA5において1以上のデータセットを取得したと判定された場合(ステップSA5:YES)、パラメータ探索部14は、1以上のデータセットに基づいて目的関数の代理モデルを生成する(ステップSA6)。上述の通り、ステップSA6においてパラメータ探索部14は、一例として、ガウス過程回帰により目的関数をモデル化する。ステップSA4において取得されたデータセットのパラメータ値がD次元パラメータ値である場合、D次元パラメータの関数として目的関数がモデル化される。ステップSA4において取得されたデータセットのパラメータ値がr次元パラメータ値である場合は、r次元パラメータの関数として目的関数がモデル化される。
【0046】
ステップSA6が行われるとパラメータ探索部14は、代理モデルを使用してr次元探索空間内で目的関数の観測値を最小にする可能性の高いD次元パラメータ値xnext又はr次元パラメータ値x nextを探索する(ステップSA7)。目的関数をD次元パラメータの関数としてモデル化した場合はD次元パラメータ値xnextが探索され、目的関数をr次元パラメータの関数としてモデル化した場合はr次元パラメータ値x nextが探索される。
【0047】
ここで、ステップSA6及びステップSA7について詳細に説明する。目的関数の代理モデルの生成には、ガウス過程回帰を用いてもよいし、TPE(Tree-structured Parzen Estimator)やランダムフォレスト回帰など他の代理モデルを用いてもよい。
【0048】
ベイズ最適化の場合、D次元パラメータの関数であるガウス過程回帰が用いられるとよい。この場合、パラメータ探索部14は、ステップSA4において取得されたN個のデータセット{(x,y)|n=0,1,…,N-1}に基づいて、目的関数の代理モデルとして、ガウス過程回帰モデルを生成する。次にパラメータ探索部14は、ガウス過程回帰モデルを使用して、任意のD次元パラメータ値xに対応する目的関数の観測値yの予測分布の平均値m(x)と標準偏差σ(x)とを計算する。パラメータ探索部14は、平均値m(x)と標準偏差σ(x)とに基づいて獲得関数a(x)を計算する。パラメータ探索部14は、獲得関数a(x)を最大にするD次元パラメータ値xnextを、r次元探索空間内に制限して決定する。D次元パラメータ値xnextは、目的関数の観測値を最小にする可能性が高いD次元パラメータ値として決定される。
【0049】
データ取得部13から取得したパラメータ値がr次元の場合、ガウス過程回帰モデルを使うと、任意のr次元パラメータ値x に対応する目的関数の観測値yの予測分布の平均値m(x )と標準偏差σ(x )が計算できる。そして、平均値m(x )と標準偏差σ(x )を用いて計算される獲得関数a(x )をr次元探索空間内で最大にするr次元パラメータ値x nextを求め、このr次元パラメータ値x nextを目的関数の観測値を最小にする可能性が高いr次元パラメータ値とする。データ取得部13から取得したパラメータ値がD次元の場合の数式と比較すると、添え字rがあるかないかの違いがある。r次元の場合の数式にはD次元の場合の数式に添え字rをつければ良いため、以降、パラメータ値がr次元の場合の説明を一部、省略する場合がある。
【0050】
獲得関数は、例えば、PI(Probability of Improvement)を用いてもよいし、EI(Expected Improvement)を用いてもよい。あるいは、UCB(Upper Confidential Bound)やTS(Thompson Sampling)、ES(Entropy Search)、MI(Mutual Information)を用いてもよい。また、獲得関数を最大にするD次元パラメータ値xnextを求める方法として、例えば、全探索やランダムサーチ、グリッドサーチ、ニュートン法、L-BFGS、DIRECT、CMA-ES、多スタート局所探索等が知られている。獲得関数の最大化方法としては、これらに限らず、任意のものを用いてよい。
【0051】
ここで、ガウス過程回帰について詳細に説明する。データ取得部13により取得されたN個のデータセットを{(x,y)|n=0,1,…,N-1}とする。ガウス過程回帰は、入力パラメータ値のベクトル{x|n=0,1,…,N-1}に対応する目的関数の観測値のベクトル{y|n=0,1,…,N-1}がガウス分布Norm(m, K+sI)に従うと仮定してモデル化する。mはN次元の平均ベクトルである。mの第i成分は平均関数m(x)によって計算される。Kは全ての入力パラメータ値xの間の共分散を表すN×N行列である。Kの第(x,x)成分はカーネル関数k(x,x)によって計算される。カーネル関数は、例えば、ガウスカーネルやMaternカーネル、線形カーネルでもよい。sは目的関数f(・)を観測した時のノイズ成分の標準偏差である。IはN×Nの単位行列である。また、mはデータを適切に処理して0ベクトルとして扱うことが多い。したがって、以下では、ガウス分布Norm(0,K+sI)に従うようにモデル化したものとして説明する。
【0052】
ガウス過程回帰モデルを使って任意のD次元パラメータ値xに対応する目的関数の観測値yの分布を予測する場合、観測値yの予測分布の平均値m(x)は、m(x)=k(x,x0:N-1(K+sI)-10:N-1で計算され、分散σ(x)は、σ(x)=k(x,x)-k(x,x0:N-1(K+sI)-1k(x,x0:N-1)で計算される。観測値yの予測分布の計算で使われるK+sIの逆行列(K+sI)-1は、N行N列の逆行列であり、その計算量のオーダーはО(N)であることが知られている。パラメータ値がr次元の場合も同様に、計算量のオーダーはО(N)である。一方、データ取得部13により取得されたN個のデータセットではなく、データ記憶部11に記憶されているN個のデータセットすべてを利用する場合、対応する逆行列の計算量のオーダーはО(N )である。
【0053】
本実施形態に係るデータ取得部13のように、データ記憶部11に記憶されているN個のデータセットの中から、ガウス過程回帰で使用するN個のデータセットを選択することで、ガウス過程回帰に使用するデータセット数を減らしてK+sIの逆行列(K+sI)-1の計算量を減らすことができる。これにより、K+sIの逆行列(K+sI)-1の計算量の課題を解消することができる。加えて、データセットの選択方針として、r次元探索空間付近のデータセットを利用することは、探索効率の劣化を防ぐことにつながる。つまり、本実施形態により、計算量の削減と探索効率の劣化抑制とを両立することができる。
【0054】
ガウス過程回帰でなくTPEを使う場合は、ステップSA2において探索空間決定部12は、r=1に設定する。ステップSA6においてパラメータ探索部14は、予め決められた閾値を基にデータセットの目的関数の観測値が閾値より小さいグループと閾値以上のグループの2つに分け、2つのグループのr次元パラメータ値xの分布をカーネル密度推定によりモデル化する。目的関数の観測値が閾値より小さいグループの分布をl(x)、目的関数の観測値が閾値より大きいグループの分布をg(x)とする。分布l(x)と分布(x)とが目的関数の代理モデルに対応する。
【0055】
次に、ステップSA7においてパラメータ探索部14は、g(x)/l(x)を最小にするr次元パラメータ値x nextを、目的関数の観測値を最小にする可能性が高いr次元パラメータ値として決定する。TPEを使用する場合でも、使用するデータセットが探索空間近傍のデータセットに制限されているので、g(x)/l(x)等の計算量を削減することができる。探索効率の劣化を防ぐことにつながる。よって、本実施形態によれば、計算量の削減と探索効率の劣化抑制とを両立することができる。
【0056】
ステップSA5において1以上のデータセットを取得していないと判定された場合(ステップSA5:NO)、データ取得部13は、D次元パラメータ値xnextを取得する(ステップSA8)。ステップSA8においてデータ取得部13は、例えば、ステップSA2において設定されたD次元パラメータ値xexpを目的関数の観測値を計算するためのD次元パラメータ値xnextとして取得する。データ取得部13は、D次元パラメータ値xnextを、r次元探索空間内からランダムに生成してもよい。なお、データ取得部13は、D次元パラメータ値xnextと同様の手法により、r次元パラメータ値x nextを取得してもよい。
【0057】
ステップSA7又はSA8が行われた場合、観測値出力装置3は、ステップSA7又はSA8において探索又は取得されたD次元パラメータ値xnextに基づき目的関数の観測値を出力する(ステップSA9)。具体的には、まず、データ生成部15は、ステップSA7又はSA8において探索又は取得されたD次元パラメータ値xnextを観測値出力装置3に通知する。データ生成部15は、ステップSA7又はSA8においてr次元パラメータ値x nextを探索又は取得した場合、r次元パラメータ値x nextをD次元パラメータ値xnextに変換し、観測値出力装置3に通知する。観測値出力装置3は、D次元パラメータ値xnextを使用してシミュレーション、実験又はアンケート等を実行して当該D次元パラメータ値xnextに対応する目的関数の観測値を出力する。
【0058】
例えば、観測値出力装置3は、シミュレータ・実験装置と変換装置とを有する。シミュレータ・実験装置と変換装置とは、コンピュータにより実現される。シミュレータ・実験装置は、D次元パラメータ値xnextでシミュレーション、実験又はアンケートを実施したり、観測値出力装置3の外部でシミュレーション、実験又はアンケートが実施された結果を取得したりして、D次元パラメータ値xnextの1つ以上の項目についての特性値を出力する。変換装置は、シミュレータ・実験装置から特性値を取得し、取得した特性値をスカラーに変換する。スカラーに変換後の特性値は、D次元パラメータ値xnextに関する目的関数の観測値ynextとして、データ生成部15に送信される。
【0059】
なお、シミュレータ・実験装置と変換装置とは単一のコンピュータにより実現されてもよい。また、シミュレータ・実験装置と変換装置との何れか一方がパラメータ最適化装置2Aに組み込まれ、例えば、データ生成部15に含まれてもよい。
【0060】
ステップSA9が行われるとデータ記憶部11は、ステップSA7又はSA8において探索又は取得されたD次元パラメータ値xnextとステップSA9において出力された観測値とを含むデータセットをデータ記憶部11に記憶する(ステップSA10)。具体的には、まず、データ生成部15は、ステップSA7又はSA8において探索又は取得されたD次元パラメータ値xnextとステップSA9において出力された観測値ynextとを結合してデータセット(xnext,ynext)を生成する。そしてデータ記憶部11は、生成されたデータセット(xnext,ynext)を記憶する。
【0061】
ステップSA10が行われるとデータ取得部13は、第1条件を満たすか否かを判定する(ステップSA11)。第1条件は、探索空間決定部12で決定されたr次元探索空間内でパラメータ探索を繰り返す回数を規定している。したがって、この繰り返し内でr次元探索空間は変わらない。第1条件を満たすとは、例えば、回数が予め決められた回数を超えた場合でもよいし、経過時間が予め決められた時間を超えた場合でもよいし、目的関数の観測値の改善量が予め決められた値を下回った場合でもよい。あるいは、これらを組み合わせた条件でもよい。
【0062】
第1条件を満たさないと判定された場合(ステップSA11:NO)、データ取得部13は、同一のr次元探索空間についてステップSA4の処理を実行する。その後、ステップSA5からステップSA11が行われる。ステップSA11において第1条件を満たすと判定されるまで、データ記憶部11、データ取得部13、パラメータ探索部14及びデータ生成部15のステップSA4からステップSA11までの処理が繰り返され、同一のr次元探索空間についてD次元パラメータ値xnextの探索又は取得と、当該D次元パラメータ値xnextと観測値ynextとを含むデータセット(xnext,ynext)の生成及び記憶とが繰り返される。ステップSA4からステップSA11までの一連の処理は、複数タスクにより並列に実行されてもよいし、直列に実行されてもよい。この場合、各タスクにデータ記憶部11が設けられており、各データ記憶部11に、対応するタスクの複数のデータセット(xnext,ynext)が蓄積される。
【0063】
そしてステップSA11において第1条件を満たすと判定された場合(ステップSA11:YES)、探索空間決定部12は、第2条件を満たすか否かを判定する(ステップSA12)。第2条件は、探索空間決定部12によるr次元探索空間の決定回数を規定している。rの値は、予め決められた値でもよいし、ランダムに決めた値でもよい。第2条件を満たすとは、例えば、回数が予め決められた回数を超えた場合でもよいし、経過時間が予め決められた時間を超えた場合でもよいし、目的関数の観測値の改善量が予め決められた値を下回った場合でもよい。あるいは、これらを組み合わせた条件でもよい。
【0064】
第2条件を満たさないと判定された場合(ステップSA12:NO)、探索空間決定部12は、D次元パラメータのうちの異なるr次元パラメータを選択する(ステップSA2)。また、探索空間決定部12は、データ記憶部11に記憶されているデータセットから目的関数の観測値が最小であるD次元パラメータ値xexpを取得する。r次元パラメータの選択は、上記の通り、D次元パラメータを予め複数のr次元パラメータのグループが分割されている場合、複数のグループの中から1つを順番に選択してもよいし、ランダムに選択してもよい。また、D次元パラメータの中からランダムにr次元パラメータを選択してもよい。D未満の範囲でrの値をランダムに設定してもよい。その後、ステップSA3からステップSA12が行われる。ステップSA12において第2条件を満たすと判定されるまで、データ記憶部11、探索空間決定部12、データ取得部13、パラメータ探索部14及びデータ生成部15のステップSA2からステップSA12までの処理が繰り返され、r次元パラメータを変更しながら、すなわち、r次元探索空間を変更しながら、D次元パラメータ値xnextの探索又は取得と、当該D次元パラメータ値xnextと観測値ynextとを含むデータセット(xnext,ynext)の生成及び記憶とが繰り返される。ステップSA2からステップSA12までの一連の処理は、複数タスクにより並列に実行されてもよいし、直列に実行されてもよい。この場合、各タスクにデータ記憶部11が設けられており、各データ記憶部11に、対応するタスクの複数のデータセット(xnext,ynext)が蓄積される。
【0065】
なお、ステップSA4からステップSA11までの一連の処理が複数タスクにより並列又は直列に実行されている場合、第1条件を満たすと判定された後、ステップSA2の処理が行われる前に、データ生成部15は、各タスクのデータ記憶部11に記憶されている複数のデータセットのうち目的関数の観測値を最小にするD次元パラメータ値を取得してもよい。取得されたD次元パラメータ値と当該D次元パラメータ値に対応する観測値のデータセットは各タスクのデータ記憶部11に記憶される。
【0066】
そしてステップSA12において第2条件を満たすと判定された場合(ステップSA12:YES)、最適パラメータ値取得部16は、データ記憶部11に記憶されているデータセットの中から目的関数の観測値が最小である最適パラメータ値xbestを取得する(ステップSA13)。最適パラメータ値xbestは、外部の装置に出力される。製造段階である場合、最適パラメータ値xbestは、例えば、製造時の歩留まりを最大化するパラメータ値や、出荷後の故障率を最小化するパラメータ値を意味する。活用段階である場合、最適パラメータ値xbestは、例えば、ユーザの手元に届いた機器や部品が、ユーザの利用環境に合った性能を発揮するパラメータ値を意味する。最適パラメータ値xbestは、出力先の外部装置において種々の目的に応じて利用されるなお、最適パラメータ値xbestは、データ記憶部11に記憶されたり、表示機器に表示されたりしてもよい。
【0067】
なお、ステップSA2からステップSA12までの一連の処理が複数タスクにより並列又は直列に実行されている場合、第2条件を満たすと判定された後、最適パラメータ値取得部16は、各タスクのデータ記憶部11に記憶されている複数のデータセットのうち目的関数の観測値を最小にする最適パラメータ値xbestを取得してもよい。
【0068】
以上により、第1実施形態に係るパラメータ最適化システム1の処理動作が終了する。
【0069】
上記の通り、第1実施形態によれば、代理モデルの計算に使用するデータセットを探索空間近傍のデータセットに制限するため、従来に比して、代理モデルの計算量を削減することができる。また、代理モデルの計算に使用するデータセットとして、探索空間からの距離が比較的短いデータセットを活用することにより、パラメータ値xnextの探索効率の劣化を防ぐ。すなわち、計算量の削減と探索効率の劣化抑制とを両立することができ、最適パラメータ値xbestの探索効率、換言すれば、パラメータ最適化の効率が向上する。
【0070】
(第2実施形態)
次に第2実施形態に係るパラメータ最適化システム1及びパラメータ最適化装置2Bについて説明する。なお以下の説明において、第1実施形態と略同一の機能を有する構成要素については、同一符号を付し、必要な場合にのみ重複説明する。
【0071】
図9は、第2実施形態に係るパラメータ最適化システム1の機能構成例を示す図である。図9に示すように、第2実施形態に係るパラメータ最適化システム1は、パラメータ最適化装置2Bと観測値出力装置3とを有する。
【0072】
パラメータ最適化装置2Bは、データ記憶部11、探索空間決定部12、データ取得部13、パラメータ探索部14、データ生成部15、最適パラメータ値取得部16、次元取得部17、距離取得部18、閾値取得部19、表示部20及び外部データ取得部21を有する。
【0073】
次元取得部17は、入力機器等を介してユーザにより入力された次元数rを取得する。例えば、次元取得部17は、表示部20に表示された次元数rの入力のためのGUI(Graphical User Interface)画面(以下、次元入力画面と呼ぶ)に入力された次元数rを取得する。
【0074】
距離取得部18は、入力機器等を介してユーザにより入力された距離の種類を取得する。例えば、距離取得部18は、表示部20に表示された距離の種類の入力のためのGUI画面(以下、距離種入力画面と呼ぶ)に入力された距離の種類を取得する。
【0075】
閾値取得部19は、入力機器等を介してユーザにより入力された、r次元探索空間からの距離に対する閾値を取得する。例えば、閾値取得部19は、表示部20に表示された閾値の入力のためのGUI画面(以下、閾値入力画面と呼ぶ)に入力された閾値を取得する。
【0076】
表示部20は、次元入力画面、距離種入力画面、閾値入力画面等を表示機器に表示する。表示機器は、例えば、ディスプレイやプロジェクタにより実現されればよい。
【0077】
外部データ取得部21は、パラメータ最適化装置1Bの外部の装置から複数のデータセットを取得する。
【0078】
次に、図10を参照しながら、第2実施形態に係るパラメータ最適化装置2Bを有するパラメータ最適化システム1の処理動作を説明する。図10は、第2実施形態に係るパラメータ最適化システム1の処理動作の一例を示すフローチャートである。
【0079】
図10に示すように、次元取得部17、距離取得部18及び/又は閾値取得部19は、ユーザからの入力機器を介した指示に従う種々の設定値を取得する(ステップSB1)。設定値は、次元数r、距離の種類及び閾値の総称であるとする。
【0080】
ステップSB1において次元取得部17は、ユーザからの次元数についての指示を受理し、探索空間決定部12と表示部20とに供給する。例えば、次元取得部17は、表示部20に表示された次元取得画面に対する、ユーザによる次元数の入力指示を受理する。
【0081】
図11は、次元取得画面I1の一例を示す図である。図11に示すように、次元取得画面I1には、「探索空間の次元数rを入力して下さい」等の次元数rの入力を促すメッセージ、次元数rの表示欄I11及びアップダウンボタンI12が表示される。表示欄I11には、ユーザにより指定された次元数rの数値が表示される。アップダウンボタンI12は、ユーザにより、入力機器を介して押下されることにより、次元数rの数値を上げ下げするものである。アップダウンボタンI12が押下されることにより、表示部20は、表示欄I11に表示されている次元数rの数値を所定値単位で上げ下げする。表示部20に表示されている数値が、次元数の入力指示として、次元取得部17に受理される。
【0082】
なお、図11に示す次元取得画面I1は一例であり種々の変更が可能である。例えば、次元取得画面I1には、ユーザが入力機器を介して直接的に次元数rの数値を入力するためのテキストボックスが表示されてもよい。ユーザにより、テキストボックス内に、次元数を表す数値が入力されることにより、次元取得部17に受理させる次元数の指示が出力される。本実施形態で想定するrは1以上D未満の整数値であるため、次元取得部17は、1未満またはD以上の数値や小数の入力ができないように入力値を制限してもよい。また、次元取得部17は、1未満またはD以上の数値や小数が入力された場合、エラーを表示部20に表示させてもよい。
【0083】
ユーザによる次元数の入力指示は必須ではない。ユーザからの次元数の入力指示がない場合、次元取得部17は、次元数のデフォルト値を探索空間決定部12と表示部20とに供給する。デフォルト値は、例えば、「1」に設定されればよい。デフォルト値もテキストボックスに表示されるとよい。
【0084】
ステップSB1において距離取得部18は、ユーザからの距離の種類についての指示を受理し、探索空間決定部12と表示部20とに供給する。例えば、距離取得部18は、表示部20に表示された距離種入力画面に対する、ユーザによる距離の種類の入力指示を受理する。
【0085】
図12は、距離種入力画面I2の一例を示す図である。図12に示すように、距離種入力画面I2は、「距離の種類を選択して下さい」等の距離の種類の入力を促すメッセージ、距離の種類の候補表示欄I21及び選択ボタンI22が表示される。候補表示欄I21には、例えば、ユークリッド距離、マンハッタン距離、コサイン距離、マハラノビス距離等が表示される。選択ボタンI22は、候補表示欄I21に表示されている複数の候補各々に対応して設けられる。ユーザにより、マウス等の入力機器を介して選択ボタンI22が押下されることにより、対応する距離の種類が、距離の種類の入力指示として、距離取得部18に受理される。
【0086】
なお、図12に示す距離種入力画面I2は一例であり種々の変更が可能である。例えば、距離種入力画面I2には、ユーザが入力機器を介して直接的に距離の種類を入力するためのテキストボックスが表示されてもよい。ユーザにより、テキストボックス内に、距離の種類を表す文字列が入力されることにより、距離取得部18に受理させる距離の種類の指示が出力される。
【0087】
ユーザによる距離の種類の入力指示は必須ではない。ユーザによる距離の種類の入力指示がない場合、距離取得部18は、距離の種類のデフォルト値をデータ取得部13と表示部20とに供給する。デフォルト値は、例えば、ユークリッド距離に設定されるとよい。しかし、デフォルト値は、マンハッタン距離やコサイン距離、マハラノビス距離に設定されてもよい。D種類のパラメータのそれぞれで単位やスケール、定義域が異なる場合、マハラノビス距離が有効な場合がある。ガウス過程回帰で利用するカーネル関数の距離尺度についても、ユークリッド距離の代わりにマンハッタン距離やコサイン距離、マハラノビス距離が採用されてもよい。
【0088】
ステップSB1において閾値取得部19は、ユーザからの閾値についての指示を受理し、データ取得部13と表示部20とに供給する。閾値取得部19により取得される閾値は、探索空間からの距離に対する閾値である。例えば、閾値取得部19は、表示部20に表示された閾値入力画面に対する、ユーザによる閾値の入力指示を受理する。
【0089】
図13は、閾値入力画面I3の一例を示す図である。図13に示すように、閾値入力画面I3は、「探索空間からの距離に対する閾値を入力して下さい」等の閾値の入力を促すメッセージ、閾値の表示欄I31及びアップダウンボタンI32が表示される。表示欄I31には、ユーザにより指定された閾値dの数値が表示される。アップダウンボタンI32は、ユーザにより、入力機器を介して押下されることにより、閾値dの数値を上げ下げするものである。アップダウンボタンI32が押下されることにより、表示部20は、表示欄I31に表示されている閾値dの数値を所定値単位で上げ下げする。表示部20に表示されている数値が、閾値dの入力指示として、次元取得部17に受理される。
【0090】
なお、図13に示す閾値入力画面I3は一例であり種々の変更が可能である。例えば、閾値入力画面I3には、ユーザが入力機器を介して直接的に閾値dの数値を入力するためのテキストボックスが表示されてもよい。ユーザにより、テキストボックス内に、閾値dを表す数値が入力されることにより、閾値取得部19に受理させる閾値dの指示が出力される。本実施形態で想定する閾値dは、0.0以上の小数であるため、閾値取得部19は、負の値の入力ができないように入力値を制限してもよい。また、閾値取得部19は、負の値が入力された場合、エラーを表示部20に表示させてもよい。
【0091】
ユーザによる閾値の入力指示は必須ではない。ユーザからの閾値の入力指示がない場合、閾値取得部19は、閾値のデフォルト値を探索空間決定部12と表示部20とに供給する。デフォルト値は、例えば、「0.0」や任意の正の値に設定されればよい。デフォルト値もテキストボックスに表示されるとよい。ユーザからの閾値の入力指示がない場合、閾値は、デフォルト値のまま一定値とする必要はなく、自動で変更しても構わない。閾値は、例えば、後述のステップSB10やSB11やSB12に関するループにおいて、毎回、変更しても構わない。そのループの反復回数に応じて変更しても構わない。反復回数が多いほど、閾値を小さく設定しても構わない。
【0092】
ステップSB1が行われると外部データ取得部21は、観測値出力装置3等の外部装置からN個のデータセット{(x,y)|n=0,1,…,N-1}を取得する(ステップSB2)。これにより、過去のシミュレーションや実験、アンケート等の結果が取得される。取得されたN個のデータセットは、データ記憶部11に記憶される。
【0093】
ステップSB2が行われると探索空間決定部12は、パラメータ値xexpを設定する(ステップSB3)。パラメータ値xexpは、データ記憶部11に記憶されているN個のデータセットのうちの、最小の観測値に対応するD次元パラメータ値に設定される。
【0094】
ステップSB3が行われると探索空間決定部12は、D次元未満のr次元パラメータを選択する(ステップSB4)。ステップSB4はステップSA3と略同一である。なお、次元数rは、ステップSB1において次元取得部17により取得されたものが用いられる。
【0095】
ステップSB4が行われるとデータ取得部13は、r次元探索空間から所定距離内にあるデータセットを取得する(ステップSB5)。ステップSB5はステップSA4と略同一である。なお、距離の種類は、ステップSB1において距離取得部18により取得されたものが用いられる。閾値は、ステップSB1において閾値取得部19により取得されたものが用いられる。取得したN個のデータセットを{(x,y)|n=0,1,…,N-1}で表す。第1条件に関するループの反復に応じて、Nの値は変化する。
【0096】
ステップSB5が行われるとパラメータ探索部14は、1以上のデータセットに基づいて目的関数の代理モデルを生成する(ステップSB6)。ステップSB6はステップSA6と略同一である。
【0097】
ステップSB6が行われるとパラメータ探索部14は、代理モデルを使用してr次元探索空間を探索して目的関数の観測値を最小にする可能性の高いパラメータ値xnextを決定する(ステップSB7)。ステップSB7はステップSA7と略同一である。
【0098】
ステップSB7が行われると観測値出力装置3は、ステップSB7において決定されたD次元パラメータ値xnextに基づき目的関数の観測値ynextを出力する(ステップSB8)。ステップSB8はステップSA9と略同一である。
【0099】
ステップSB8が行われるとデータ記憶部11は、ステップSB7において決定されたD次元パラメータ値xnextとステップSB8において出力された観測値ynextとを含むデータセット(xnext,ynext)をデータ記憶部11に記憶する(ステップSB9)。ステップSB9はステップSA10と略同一である。
【0100】
ステップSB9が行われるとデータ取得部13は、第1条件を満たすか否かを判定する(ステップSB10)。第2実施形態に関する第1条件は、当該第1条件に関するループの反復回数が所定回数に到達したことに規定される。
【0101】
第1条件を満たさないと判定された場合(ステップSB10:NO)、ステップSB5からステップSB10が行われる。ステップSB10において第1条件を満たすと判定されるまで、データ記憶部11、データ取得部13、パラメータ探索部14及びデータ生成部15のステップSB5からステップSB10までの処理が繰り返され、同一のr次元探索空間についてD次元パラメータ値xnextの探索又は取得と、当該D次元パラメータ値xnextと観測値ynextとを含むデータセット(xnext,ynext)の生成とが繰り返される。
【0102】
そしてステップSB10において第1条件を満たすと判定された場合(ステップSB10:YES)、探索空間決定部12は、第2条件を満たすか否かを判定する(ステップSB11)。第2実施形態に関する第2条件は、当該第2条件に関するループの反復回数が所定回数に到達したことに規定される。
【0103】
第2条件を満たさないと判定された場合(ステップSB11:NO)、ステップSB3からステップSB11が行われる。ステップSB11において第2条件を満たすと判定されるまで、データ記憶部11、探索空間決定部12、データ取得部13、パラメータ探索部14及びデータ生成部15のステップSB3からステップSB11までの処理が繰り返される。これにより、探索空間を規定するD次元パラメータ値xexpと当該パラメータ値を含むr次元探索空間を変更しながら、D次元パラメータ値xnextの探索又は取得と、当該D次元パラメータ値xnextと観測値ynextとを含むデータセット(xnext,ynext)の生成とが繰り返される。
【0104】
ステップSB11において第2条件を満たすと判定された場合(ステップSB11:YES)、探索空間決定部12は、第3条件を満たすか否かを判定する(ステップSB12)。第3条件は、例えば、ステップSB3からSB12の反復回数の条件に規定される。具体的には、反復回数が所定の回数に到達したことに規定される。所定の回数は1以上の整数に設定される。
【0105】
第3条件を満たさないと判定された場合(ステップSB12:NO)、ステップSB3からステップSB12が行われる。ステップSB12において第3条件を満たすと判定されるまで、データ記憶部11、探索空間決定部12、データ取得部13、パラメータ探索部14及びデータ生成部15のステップSB3からステップSB12までの処理が繰り返される。これにより、探索空間を規定するD次元パラメータ値xexpと当該パラメータ値を含むr次元探索空間を変更しながら、D次元パラメータ値xnextの探索又は取得と、当該D次元パラメータ値xnextと観測値ynextとを含むデータセット(xnext,ynext)の生成とが繰り返される。
【0106】
そしてステップSB12において第3条件を満たすと判定された場合(ステップSB12:YES)、最適パラメータ値取得部16は、データ記憶部11に記憶されているデータセットから目的関数の観測値が最小である最適パラメータ値xbestを取得する(ステップSB13)。最適パラメータ値xbestは、外部の装置に出力される。
【0107】
以上により、第2実施形態に係るパラメータ最適化システム1の処理動作が終了する。
【0108】
上記の通り、第2実施形態によれば、第1実施形態と同様、代理モデルの計算に使用するデータセットを探索空間近傍のデータセットに制限するため、従来に比して、代理モデルの計算量を削減することができる。また、代理モデルの計算に使用するデータセットは、探索空間からの距離が比較的短いデータセットを活用することにより、パラメータ値xnextの探索効率の劣化を防ぐ。すなわち、計算量の削減と探索効率の劣化抑制とを両立することができ、最適パラメータ値xbestの探索効率、換言すれば、パラメータ最適化の効率が向上する。
【0109】
更に第2実施形態によれば、次元数、距離の種類及び閾値等の設定項目を、GUI等を利用してユーザ指示に従い設定することが可能になる。従って、ユーザの知見を利用して効率良くパラメータ最適化を行うことが可能になる。
【0110】
(変形例)
以下、第1実施形態及び/又は第2実施形態に係る幾つかの変形例について説明する。なお以下の説明において、本実施形態と略同一の機能を有する構成要素については、同一符号を付し、必要な場合にのみ重複説明する。
【0111】
(変形例1)
上記実施形態においてデータ取得部13は、探索空間近傍のデータセットを、データ記憶部11に記憶されているデータベースの中から取得するとした。変形例1に係るデータ取得部13は、探索空間近傍のD次元パラメータ値をランダムに生成する。生成されたD次元パラメータ値は、データ生成部15に供給される。ランダムに生成したD次元パラメータ値の数をRで表す。ここで、Rは1以上の整数である。生成したR個のランダムなD次元パラメータ値を{xrand,i|i=0,1,…,R-1}で表す。
【0112】
データ生成部15は、D次元パラメータ値{xrand,i|i=0,1,…,R-1}を観測値出力装置3に送信する。
【0113】
次に、例えば、観測値出力装置3の構成要素の一例であるシミュレータ・実験装置は、R個のD次元パラメータ値{xrand,i|i=0,1,…,R-1}のそれぞれについてシミュレーション、実験又はアンケートを実施し、{xrand,i|i=0,1,…,R-1}のそれぞれに関して、1以上の項目に対する特性値を出力する。観測値出力装置3の構成要素の一例である変換装置は、1以上の特性値を取得し、それぞれスカラーに変換する。スカラーに変換された特性値は、D次元パラメータ値{xrand,i|i=0,1,…,R-1}に対応する目的関数の観測値{yrand,i|i=0,1,…,R-1}として出力される。観測値{yrand,i|i=0,1,…,R-1}は、データ生成部15に送信される。
【0114】
データ生成部15は、データセット{(xrand,i,yrand,i)|i=0,1,…,R-1}をデータ記憶部11に供給し、データ記憶部11は、データセット{(xrand,i,yrand,i)|i=0,1,…,R-1}を記憶する。
【0115】
最後に、データ取得部13は、データ記憶部11に記憶されているデータから、探索空間までの距離が閾値以下のD次元パラメータ値を要素に持つデータセットを取得する。
【0116】
こうして取得したN個のデータセット{(x,y)|n=0,1,…,N-1}には、{(xrand,i,yrand,i)|i=0,1,…,R-1}が含まれることとなる。すなわち、データ取得部13は、データ記憶部11に記憶されているデータから、探索空間までの距離が閾値以下のD次元パラメータ値を要素に持つデータセットを取得するのに加えて、探索空間までの距離が閾値以下のD次元パラメータ値をランダムに生成し、当該D次元パラメータ値とそれに対応する目的関数の観測値とを含むデータセットを取得してもよい。
【0117】
これにより、探索空間までの距離が閾値以下のD次元パラメータ値を、ガウス過程回帰なしで簡単に追加できる。ガウス過程回帰が不要なため、逆行列の計算も不要である。
【0118】
(変形例2)
第2実施形態に関し、次元取得部17、距離取得部18、閾値取得部19が動作するタイミングは、ステップSB1とは異なるタイミングであってもよい。
【0119】
次元取得部17で取得する次元数rは、探索空間決定部12で利用される。すなわち、探索空間決定部12が動作する前に次元取得部17が動作すればよい。
【0120】
距離取得部18で取得する距離の種類は、データ取得部13で利用される。すなわち、データ取得部13が動作する前に距離取得部18が動作すればよい。
【0121】
閾値取得部19で取得する閾値は、データ取得部13で利用される。すなわち、データ取得部13が動作する前に閾値取得部19が動作すればよい。
【0122】
第1条件、第2条件、第3条件に関するループの反復毎に、次元数や距離の種類、閾値を変更できるタイミングで、次元取得部17、距離取得部18、閾値取得部19をそれぞれ動作させても構わない。
【0123】
これにより、ユーザからの指示を様々なタイミングで受理できるようになり、次元数や距離の種類、閾値を様々なタイミングで変更できるようになる。
【0124】
(変形例3)
上記第1及び第2実施形態の説明に用いた図3,4,5,6,8では、探索空間に設定するr次元アフィン部分空間は、xexpを通る1次元アフィン部分空間のうち、第2条件及び/又は第3条件に関するループの反復回数に応じてD次元空間の異なる各座標軸に平行するように制御する例を示した。この例では、rを1に限定し、r次元アフィン部分空間に付随するr次元線型部分空間がいずれかの座標軸を含むように制御した。しかし、探索空間に設定するr次元アフィン部分空間の制御方法は、これに限られない。
【0125】
探索空間であるr次元アフィン部分空間は、次元数rと、r次元アフィン部分空間に付随するr次元線型部分空間で決まる。したがって、探索空間に設定するr次元アフィン部分空間は、rと、r次元線型部分空間を制御することで制御できる。本変形例では、rを1に限定せず、第2条件や第3条件に関するループにおいて、1以上の整数の範囲でrを変更しても構わない。rは、第2条件や第3条件に関するループにおいて、所定の順序や反復回数に応じたルールで変更しても構わないし、ランダムに変更しても構わない。また、r次元アフィン部分空間に付随するr次元線型部分空間がいずれかの座標軸を含むとは限定せず、第2条件や第3条件に関するループにおいて、変更しても構わない。このr次元線型部分空間は、第2条件や第3条件に関するループにおいて、所定の順序や反復回数に応じたルールで変更しても構わないし、ランダムに変更しても構わない。
【0126】
例えば、ある時点でrを1に設定すると、r(=1)次元アフィン部分空間を直線に制御でき、別のある時点でrを2に設定すると、r(=2)次元アフィン部分空間を平面に制御できる。rが1の場合に、r(=1)次元アフィン部分空間に付随するr(=1)次元線型部分空間がどの座標軸も含まないように設定すれば、r(=1)次元アフィン部分空間はxexpを通り、どの座標軸とも平行でない直線に制御できる。rが1の場合に、r(=1)次元アフィン部分空間に付随するr(=1)次元線型部分空間がある座標軸を含むように設定すれば、r(=1)次元アフィン部分空間はxexpを通り、その座標軸に平行な直線に制御できる。rが2の場合に、r(=2)次元アフィン部分空間に付随するr(=2)次元線型部分空間がどの座標軸も含まないように設定すれば、r(=2)次元アフィン部分空間はxexpを通り、どの座標軸とも平行でない平面に制御できる。rが2の場合に、r(=2)次元アフィン部分空間に付随するr(=2)次元線型部分空間が座標軸を1つだけ含むように設定すれば、r(=2)次元アフィン部分空間はxexpを通り、その座標軸に平行な平面に制御できる。rが2の場合に、r(=2)次元アフィン部分空間に付随するr(=2)次元線型部分空間が2つの座標軸を含むように設定すれば、r(=2)次元アフィン部分空間はxexpを通り、それら2つの座標軸に平行な平面に制御できる。
【0127】
なお、r次元アフィン部分空間に付随するr次元線型部分空間がr個の座標軸を含まない場合、ステップSA3又はステップSB4において探索空間決定部12は、D次元未満のr次元パラメータを選択することでr次元アフィン部分空間を決定するのではなく、前述の通りに決定する。探索空間とするr次元アフィン部分空間が決定されれば、続くステップSA4又はステップSB5においてデータ取得部13によって、D次元パラメータ値のr次元アフィン部分空間への射影長が、D次元パラメータ値とr次元アフィン部分空間との距離として算出される。
【0128】
(変形例4)
D次元パラメータ値は、パラメータ最適化装置2A,2Bにより正規化されたり、逆正規化されたりしてもよい。
【0129】
調整するD種類のパラメータは、それぞれ、単位やスケール、定義域が異なる場合が多い。そこで、パラメータ最適化装置2A,2Bにより、定義域が例えば0から1になるようにパラメータ値を正規化、又は、元の定義域に戻すために正規化されたパラメータが逆正規化されてもよい。正規化は正規化部により、逆正規化は逆正規化部により行われるとよい。正規化を行う場合には正規化部が、逆正規化を行う場合には逆正規化部がパラメータ最適化装置2A,2Bに設けられればよい。これにより、単位やスケール、定義域が異なるD種類のパラメータを同時に扱いやすくなる。
【0130】
なお、正規化及び/又は逆正規化は、観測値出力装置3又はその他の装置等のパラメータ最適化装置2A,2Bの外部で行われてもよい。
【0131】
(変形例5)
第1実施形態に係る第2条件及び第2実施形態に係る第3条件は、最適パラメータ値取得部16が現在の反復処理で取得した最適パラメータ値に対応する目的関数の観測値の、直前の反復処理で取得した最適パラメータ値に対応する目的関数の観測値からの差分の絶対値(改善量)が所定の閾値以下か否かという条件に変更しても構わない。最適パラメータ値に対応する目的関数の観測値は、データ記憶部11に記憶されているものを取得すればよい。
【0132】
これにより、反復処理による最適パラメータ値の改善量が小さくなったタイミングで処理を終了できる。そのため、効率的に最適パラメータ値を探索できる。
【0133】
(変形例6)
本実施形態においては、D次元パラメータ値を最適化するために、探索空間をr次元アフィン部分空間に設定した。r次元アフィン部分空間に属する任意のD次元パラメータ値はr次元ベクトルで表現でき、そのr次元ベクトルは元のD次元ベクトルに劣化なしで逆変換できる。距離の閾値が0の場合、データ取得部13によって取得されるD次元パラメータ値は、r次元アフィン部分空間に属する。そこで、閾値が0の場合、変形例6に係るパラメータ探索部15は、ステップSA6及びSA7とステップSB6及びSB7として、以下の処理を実行する。
【0134】
変形例6に係るパラメータ探索部15は、r次元アフィン部分空間に属するD次元パラメータ値x(n=0,1,…,N-1)をr次元パラメータ値x (n=0,1,…,N-1)に変換する。N個のデータセット{(x ,y)|n=0,1,…,N-1}に基づいてガウス過程回帰モデルを生成する。次に、ガウス過程回帰モデルにより、任意のr次元パラメータ値xに関する目的関数の値h(x)の平均m(x)と標準偏差σ(x)を計算する。ここで、目的関数h(・)は、r次元アフィン部分空間に属する全てのD次元パラメータ値xをr次元ベクトルに変換したr次元パラメータ値xに関して、h(x)=f(x)を満たす関数である。m(x)とσ(x)とを用いて、r次元パラメータ値xに関する獲得関数a(x)が最大のxを求める。獲得関数や獲得関数の最大化方式としては、任意のものを採用して構わない。求めたxをD次元パラメータ値に変換したものをxnextとする。このxnextは、r次元アフィン部分空間、すなわち、探索空間に属する。このxnextをデータ生成部15に供給する。
【0135】
これにより、ガウス過程回帰で扱うパラメータの次元がDからrに減少する。また、ガウス過程回帰で利用するカーネル関数のパラメータの次元も、獲得関数で扱うパラメータの次元も、Dからrに減少する。これにより計算量を削減することが可能になる。なお、距離の閾値が正の値の場合、データ取得部13によって取得されるD次元パラメータ値は、r次元アフィン部分空間には属しないものの、距離が閾値以下であり、遠くない。そこで、データ取得部13によって取得されるD次元パラメータ値をr次元アフィン部分空間に射影し、閾値が0の場合と同様に処理しても構わない。逆変換時の劣化はあるものの、その劣化誤差は大きくないため、閾値が0の場合と同様の効果が得られる。
【0136】
(変形例7)
第1実施形態及び第2実施形態においては、パラメータ最適化装置2A,2Bと観測値出力装置3とが別々のコンピュータであるとした。変形例7に係る観測値出力装置3は、パラメータ最適化装置2A,2Bに組み込まれている。これにより、単一装置によりパラメータを自動的に最適化することが可能になる。
【0137】
(変形例8)
第1実施形態、第2実施形態、変形例1、変形例2、変形例3、変形例4、変形例5、変形例6及び変形例7までの各実施例は任意に組み合わせ可能である。
【0138】
(ハードウェア構成)
図14は、パラメータ最適化装置2A,2Bのハードウェア構成例を示す図である。図14に示すように、パラメータ最適化装置2A,2Bは、処理回路91、主記憶装置92、補助記憶装置93、表示機器94、入力機器95及び通信機器96を備える。処理回路91、主記憶装置92、補助記憶装置93、表示機器94、入力機器95及び通信機器96は、バスを介して接続されている。
【0139】
処理回路91は、補助記憶装置93から主記憶装置92に読み出されたパラメータ最適化プログラムを実行し、探索空間決定部12、データ取得部13、パラメータ探索部14、データ生成部15、最適パラメータ値取得部16、次元取得部17、距離取得部18、閾値取得部19及び外部データ取得部21として機能する。主記憶装置92は、RAM(Random Access Memory)等のメモリである。補助記憶装置13は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及び、メモリカード等である。主記憶装置92及び補助記憶装置93は、データ記憶部11として機能する。
【0140】
表示機器94は、種々の表示情報を表示する。表示機器14は、例えばディスプレイやプロジェクタ等である。表示機器94は、表示部20として機能する。
【0141】
入力機器95は、コンピュータを操作するためのインタフェースである。入力機器95は、例えばキーボードやマウス等である。表示機器94及び入力機器95は、タッチパネルにより構成されてもよい。通信機器96は、観測値出力装置3等の他の装置と通信するためのインタフェースである。
【0142】
コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、メモリカード、CD-R及びDVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【0143】
コンピュータで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。またコンピュータで実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
【0144】
コンピュータで実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。コンピュータで実行されるプログラムは、パラメータ最適化装置2A,2Bの機能構成(機能ブロック)のうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。当該各機能ブロックは、実際のハードウェアとしては、処理回路91が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置92上にロードされる。すなわち上記各機能ブロックは主記憶装置92上に生成される。
【0145】
上述した各機能ブロックの一部又は全部をソフトウェアにより実現せずに、IC(Integrated Circuit)等のハードウェアにより実現してもよい。複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2つ以上を実現してもよい。
【0146】
パラメータ最適化装置2A,2Bを実現するコンピュータの動作形態は任意でよい。例えば、パラメータ最適化装置2A,2Bを1台のコンピュータにより実現してもよい。また例えば、パラメータ最適化装置2A,2Bを、ネットワーク上のクラウドシステムとして動作させてもよい。
【0147】
(付言)
上記の通り、パラメータ最適化装置2A,2Bは、データ記憶部11、探索空間決定部12、データ取得部13及びパラメータ探索部14を有する。データ記憶部11は、第1次元数DのD次元パラメータ値とD次元パラメータ値に対応する目的関数の観測値yとを含む複数のデータセットを記憶する。探索空間決定部12は、所定のD次元パラメータ値を含むD次元よりも小さいr次元の探索空間を決定する。データ取得部13は、r次元探索空間から所定の距離dに含まれるD次元パラメータ値を有する1以上のデータセット又は当該データセットに対応するr次元パラメータ値を有するデータセットを複数のデータセットに基づいて取得する。パラメータ探索部14は、取得された1以上のデータセットに基づく目的関数の代理モデルを用いてr次元探索空間内で目的関数を最適化し得るD次元パラメータ値又はr次元パラメータ値を探索する。
【0148】
所定のD次元パラメータ値は、第1実施形態の場合、1周目では、ステップSA1において設定されるデフォルト値又はランダム値であり、2周目以降では、ステップSA2において取得される、データ記憶部11に記憶されている複数のデータセットのうちの最小の観測値に対応するD次元パラメータ値である。第2実施形態の場合、ステップSB3において設定される、データ記憶部11に記憶されている複数のデータセットのうちの最小の観測値に対応するD次元パラメータ値である。
【0149】
上記の構成によれば、目的関数を最適化し得るD次元パラメータ値の探索において、データ記憶部11のすべてのデータセットを使用せず、r次元探索空間から距離dに含まれるD次元パラメータ値を有するデータセット又は当該データセットに対応するr次元パラメータ値を有するデータセットを使用することで、探索に係る計算量を、データ取得部13を有しない場合に比して削減することが可能になる。また、上記のようにr次元探索空間に近いデータセットを使用することで、データセット数の削減に伴う探索効率の劣化を抑制することが可能になる。すなわち、本実施形態によれば、計算量の削減と探索効率の劣化抑制とを両立することができる。
【0150】
かくして、本実施形態によれば、効率的に最適なパラメータを探索することが可能になる。
【0151】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0152】
1…パラメータ最適化システム、2A,2B…パラメータ最適化装置、3…観測値出力装置、11…データ記憶部、12…探索空間決定部、13…データ取得部13…パラメータ探索部、15…データ生成部、16…最適パラメータ値取得部、17…次元取得部、18…距離取得部、19…閾値取得部、20…表示部、21…外部データ取得部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14