(57)【要約】【課題】パラメータの最適化を高速に行う。【解決手段】評価部１２０が、機械学習又はシミュレーションの評価値を、パラメータの値を変えながら繰り返し計算し、最適化部１００が、過去に評価値が計算されたパラメータの値と評価値との組を学習することにより構築されたモデルを用いて、前回評価値が計算されたパラメータの値に基づいて特定されるパラメータ空間に含まれる少なくとも１つのパラメータの値に対する評価値を予測し、今回予測された評価値の予測データ、及び過去に予測された評価値の予測データに基づいて、評価部１２０で次に評価値を計算するパラメータの値を選択し、出力部１８０が、評価部１２０により計算された評価値に基づいて、パラメータの最適値を出力する。【選択図】図１
2020126511.tif 000002
【特許請求の範囲】
【請求項１】
機械学習又はシミュレーションのパラメータの評価値を、前記パラメータの値を変えながら繰り返し計算する評価部と、
過去に評価値が計算されたパラメータの値と前記評価値との組を学習することにより構築されたモデルを用いて、前回評価値が計算されたパラメータの値に基づいて特定されるパラメータ空間に含まれる少なくとも１つのパラメータの値に対する評価値を予測し、今回予測された評価値の予測データ、及び過去に予測された評価値の予測データに基づいて、前記評価部で次に評価値を計算するパラメータの値を選択する最適化部と、
前記評価部により計算された評価値に基づいて、パラメータの最適値を出力する出力部と、
を含む最適化装置。
【請求項２】
前記最適化部は、前記パラメータ空間を、前記前回評価値が計算されたパラメータと相関関係を持ち易いことを示す条件を満たすパラメータを含むパラメータ空間とする請求項１に記載の最適化装置。
【請求項３】
前記最適化部は、前記前回評価値が計算されたパラメータと相関関係を持ち易いことを示す条件を、前記前回評価値が計算されたパラメータとの距離が所定距離以内であること、又は、過去に評価値が計算されたいずれのパラメータとの距離又は前記距離の定数倍よりも、前記前回評価値が計算されたパラメータとの距離が小さいこととする請求項２に記載の最適化装置。
【請求項４】
前記最適化部は、過去に評価値が計算されたパラメータの値と前記評価値との組のうち、前回評価値が予測されたパラメータとの距離が所定距離以内のパラメータ、又は、前回評価値が予測されたパラメータとの距離が近い順に所定数のパラメータと、前記パラメータの評価値との組を、前記モデルの学習に用いる請求項１〜請求項３のいずれか１項に記載の最適化装置。
【請求項５】
前記最適化部は、前記モデルとしてガウス過程を用いる請求項１〜請求項４のいずれか１項に記載の最適化装置。
【請求項６】
前記最適化部は、
過去に評価値が計算されたパラメータの値と前記評価値との組が蓄積されるパラメータ・評価値蓄積部と、
前記パラメータ・評価値蓄積部に蓄積された前記パラメータの値と前記評価値との組を学習することにより前記モデルを構築するモデル当てはめ部と、
過去に評価値が予測されたパラメータについての評価値の予測データが蓄積される予測データ蓄積部と、
前記モデルを用いて、前回評価値が計算されたパラメータの値に基づいて特定されるパラメータ空間に含まれる少なくとも１つのパラメータの値に対する評価値を予測し、前記予測データ蓄積部に蓄積された予測データを更新する予測データ更新部と、
前記予測データ更新部に蓄積された予測データに基づいて、各パラメータの値について、次に評価すべき度合いを計算し、前記度合いに基づいて、次に評価値を計算するパラメータの値を選択する評価パラメータ選択部と、
を含む、請求項１〜請求項５のいずれか１項に記載の最適化装置。
【請求項７】
評価部と、最適化部と、出力部とを含む最適化装置における最適化方法であって、
前記評価部が、機械学習又はシミュレーションのパラメータの値を最適化するための評価値を、前記パラメータの値を変えながら繰り返し計算し、
前記最適化部が、過去に評価値が計算されたパラメータの値と前記評価値との組を学習することにより構築されたモデルを用いて、前回評価値が計算されたパラメータの値に基づいて特定されるパラメータ空間に含まれる少なくとも１つのパラメータの値に対する評価値を予測し、今回予測された評価値の予測データ、及び過去に予測された評価値の予測データに基づいて、前記評価部で次に評価値を計算するパラメータの値を選択し、
前記出力部が、前記評価部により計算された評価値に基づいて、パラメータの最適値を出力する
最適化方法。
【請求項８】
コンピュータを、請求項１〜請求項５のいずれか１項に記載の最適化装置を構成する各部として機能させるための最適化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最適化装置、方法、及びプログラムに係り、特に、機械学習やシミュレーションのパラメータの最適化を行う最適化装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
機械学習では、人手による調整が必要なパラメータが存在する。パラメータは機械学習の性能を左右するものであり、調整は必須である。また現象をシミュレーションするためのモデル、例えば人の行動モデルや車の追従モデルも、人手での調整が必要なパラメータが存在し、それらはモデルの再現性に影響する。これらの調整は利用者の負担となっており、自動化することが求められている。そこで、試行錯誤を自動的に行うことで、効率的にパラメータを最適に調整する技術が提案されている（非特許文献１参照）。最適化では、何かしらの評価値を用意し、その評価値が最大又は最小になるようにパラメータを調整する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Shahriari, B., Swersky, K.,Wang, Z., Adams, R. P. and Freitas, de N., "Taking the human out of the loop: A review of bayesian optimization", Proceedings of the IEEE, Vol. 104, No. 1, pp. 148-175 (2016).
【発明の概要】
【発明が解決しようとする課題】
【０００４】
試行錯誤による最適化は、次に評価するパラメータの選択と、選択されたパラメータの評価という２つのプロセスに分かれる。試行錯誤においては、この２つのプロセスを交互に繰り返しながら最適化を行う。
【０００５】
従来技術では、試行錯誤の繰り返し毎に、次に評価すべきパラメータを選択するために、全パラメータを探索し直すため、次に評価するパラメータを選択するプロセスに時間を要してしまい、パラメータの最適化を高速に行うことの妨げとなっている。
【０００６】
本発明は、上記の事情に鑑みてなされたもので、パラメータの最適化を高速に行うことができる最適化装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明に係る最適化装置は、機械学習又はシミュレーションの評価値を、前記パラメータの値を変えながら繰り返し計算する評価部と、過去に評価値が計算されたパラメータの値と前記評価値との組を学習することにより構築されたモデルを用いて、前回評価値が計算されたパラメータの値に基づいて特定されるパラメータ空間に含まれる少なくとも１つのパラメータの値に対する評価値を予測し、今回予測された評価値の予測データ、及び過去に予測された評価値の予測データに基づいて、前記評価部で次に評価値を計算するパラメータの値を選択する最適化部と、前記評価部により計算された評価値に基づいて、パラメータの最適値を出力する出力部と、を含んで構成することができる。
【０００８】
本発明に係る最適化装置によれば、評価部が、機械学習又はシミュレーションの評価値を、パラメータの値を変えながら繰り返し計算する。また、最適化部が、過去に評価値が計算されたパラメータの値と評価値との組を学習することにより構築されたモデルを用いて、前回評価値が計算されたパラメータの値に基づいて特定されるパラメータ空間に含まれる少なくとも１つのパラメータの値に対する評価値を予測し、今回予測された評価値の予測データ、及び過去に予測された評価値の予測データに基づいて、評価部で次に評価値を計算するパラメータの値を選択する。そして、出力部が、評価部により計算された評価値に基づいて、パラメータの最適値を出力する。
【０００９】
このように、次に評価値が計算されるパラメータを選択する際に、一部のパラメータの値に対する評価値のみを予測し、他のパラメータについては過去の予測データを用いることで、次に評価するパラメータの選択を高速化することができ、パラメータの最適化を高速に行うことができる。
【００１０】
また、前記最適化部は、前記パラメータ空間を、前記前回評価値が計算されたパラメータと相関関係を持ち易いことを示す条件を満たすパラメータを含むパラメータ空間とすることができる。また、前記最適化部は、前記前回評価値が計算されたパラメータと相関関係を持ち易いことを示す条件を、前記前回評価値が計算されたパラメータとの距離が所定距離以内であること、又は、過去に評価値が計算されたいずれのパラメータとの距離又は前記距離の定数倍よりも、前記前回評価値が計算されたパラメータとの距離が小さいこととすることができる。
【００１１】
前回評価値が計算されたパラメータと相関関係を持つパラメータは、評価値が計算されたパラメータの影響を受け、評価値の予測値が大きく変化することが予想される。このように、評価値の予測値が大きく変化すると予想されるパラメータを含むパラメータ空間を特定することで、繰り返し処理において、過去に予測された評価値の予測データを利用することができ、次に評価するパラメータの選択を高速化することができる。
【００１２】
また、前記最適化部は、過去に評価値が計算されたパラメータの値と前記評価値との組のうち、前回評価値が予測されたパラメータとの距離が所定距離以内のパラメータ、又は、前回評価値が予測されたパラメータとの距離が近い順に所定数のパラメータと、前記パラメータの評価値との組を、前記モデルの学習に用いることができる。このように、過去に評価された全てのパラメータとその評価値との組をモデルの学習に用いるのではなく、予測データの更新が必要なパラメータの集合を考慮した一部のパラメータと評価値との組を用いることで、モデルの学習を高速化することができる。
【００１３】
また、前記最適化部は、前記モデルとしてガウス過程を用いることができる。
【００１４】
また、前記最適化部は、過去に評価値が計算されたパラメータの値と前記評価値との組が蓄積されるパラメータ・評価値蓄積部と、前記パラメータ・評価値蓄積部に蓄積された前記パラメータの値と前記評価値との組を学習することにより前記モデルを構築するモデル当てはめ部と、過去に評価値が予測されたパラメータについての評価値の予測データが蓄積される予測データ蓄積部と、前記モデルを用いて、前回評価値が計算されたパラメータの値に基づいて特定されるパラメータ空間に含まれる少なくとも１つのパラメータの値に対する評価値を予測し、前記予測データ蓄積部に蓄積された予測データを更新する予測データ更新部と、前記予測データ更新部に蓄積された予測データに基づいて、各パラメータの値について、次に評価すべき度合いを計算し、前記度合いに基づいて、次に評価値を計算するパラメータの値を選択する評価パラメータ選択部と、を含んで構成することができる。
【００１５】
予測データ更新部は、一部のパラメータに関して、以前の繰り返し処理において予測した予測データを使うことで、新たに評価値の予測を行う処理を回避する。以前の試行錯誤での予測データと、現在の試行錯誤を用いてモデルを構築した場合に得られるであろう予測データとが、大きく変化しないことが想定される場合には、以前の試行錯誤での予測データを用いても、予測の精度はほとんど変化しない。一方、以前の試行錯誤での予測データと、現在得られているパラメータと評価値との組を基に構築したモデルで予測する予測データとが異なることが想定されるパラメータに関しては、以前の予測データを用いると予測の精度が低下する。よって、後者の場合に該当するパラメータの範囲に対しては、新たなモデルを基にもう一度予測を行い、予測データを更新する。なお、予測データ更新部により予測される予測データには、評価値の予測値のみならず、予測の確信度合いなど、予測に関係する複数の指標を含めることができる。
【００１６】
また、本発明に係る最適化方法は、評価部と、最適化部と、出力部とを含む最適化装置における最適化方法であって、前記評価部が、機械学習又はシミュレーションの評価値を、前記パラメータの値を変えながら繰り返し計算し、前記最適化部が、過去に評価値が計算されたパラメータの値と前記評価値との組を学習することにより構築されたモデルを用いて、前回評価値が計算されたパラメータの値に基づいて特定されるパラメータ空間に含まれる少なくとも１つのパラメータの値に対する評価値を予測し、今回予測された評価値の予測データ、及び過去に予測された評価値の予測データに基づいて、前記評価部で次に評価値を計算するパラメータの値を選択し、前記出力部が、前記評価部により計算された評価値に基づいて、パラメータの最適値を出力する方法である。
【００１７】
また、本発明に係る最適化プログラムは、コンピュータを、上記の最適化装置を構成する各部として機能させるためのプログラムである。
【発明の効果】
【００１８】
以上説明したように、本発明に係る最適化装置、方法、及びプログラムによれば、次に評価値が計算されるパラメータを選択する際に、一部のパラメータの値に対する評価値のみを予測し、他のパラメータについては過去の予測データを用いることで、次に評価するパラメータの選択を高速化することができ、パラメータの最適化を高速に行うことができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態に係る最適化装置のブロック図である。
【図２】パラメータ・評価値蓄積部に蓄積されるパラメータ及び評価値の一例を示す図である。
【図３】予測データ蓄積部に蓄積される予測データの一例を示す図である。
【図４】最適化処理の流れの一例を示すフローチャートである。
【図５】評価値を予測するパラメータ空間を説明するための図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明を実施するための形態の一例について詳細に説明する。
【００２１】
＜パラメータ選択の高速化＞
【００２２】
上述したように、試行錯誤による最適化は、次に評価するパラメータの選択と、選択されたパラメータの評価という２つのプロセスに分かれる。本実施形態では、パラメータの最適化を高速に行うために、パラメータの選択を高速化する。
【００２３】
パラメータの選択の高速化が必要とされる状況は少なくとも２つ考えられる。１つ目のパラメータの選択の高速化が必要な状況は、パラメータの評価にかかる時間が短いときである。パラメータの選択よりパラメータの評価の方が、必要とする時間が圧倒的に小さい場合、全体の最適化に要する時間は、パラメータ選択に要する時間に等しいとみなすことができる。よって、パラメータの最適化を高速にするためには、パラメータの選択の高速化が必要である。このような状況になる例として、シミュレーションモデルのパラメータ最適化において、軽量なシミュレーションをパラメータの評価に用いる例や、機械学習のパラメータ最適化において、並列処理にて学習を高速化する例などがある。
【００２４】
２つ目のパラメータの選択の高速化が必要な状況は、試行錯誤回数が大きいときである。一般に、試行錯誤の回数が増えれば増えるほど、一回のパラメータの選択にかかる時間が増加する。それは、パラメータの選択時に、過去に評価した結果を基に判断を行うため、過去の繰り返しにて評価した考慮すべき結果が、試行錯誤の回数が増えるほど蓄積していくためである。よって、試行錯誤回数が多いときに、パラメータ選択に必要な時間が、最適化を行う際の時間的なボトルネックになってしまう場合がある。このような状況になる例として、調整するパラメータの数が多い例がある。調整するパラメータが多い場合、最適化を進めるために必要な試行錯誤の回数が増加することが知られている。よって、上記の例となる。
【００２５】
＜最適化装置の構成＞
【００２６】
本実施形態に係る最適化装置は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、及びＨＤＤ（Hard Disk Drive）等を備えたコンピュータとして構成される。ＲＯＭには、本実施形態に係る最適化プログラムが記憶される。なお、最適化プログラムは、ＨＤＤに記憶されてもよい。
【００２７】
また、最適化プログラムは、例えば、最適化装置に予めインストールされていてもよい。この最適化プログラムは、不揮発性の記憶媒体に記憶して、又は、ネットワークを介して配布して、最適化装置に適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、ＣＤ-ＲＯＭ（Compact Disc Read Only Memory）、光磁気ディスク、ＤＶＤ-ＲＯＭ（Digital Versatile Disc Read Only Memory）、フラッシュメモリ、メモリカード等が挙げられる。
【００２８】
ＣＰＵは、ＲＯＭに記憶された最適化プログラムを読み込んで実行することにより、後述する最適化装置の各機能部として機能する。
【００２９】
図１に、本実施形態に係る最適化装置１０のブロック図を示す。図１に示すように、最適化装置１０は、機能的には、最適化部１００と、評価用データ蓄積部１１０と、評価部１２０と、出力部１８０とを含んで構成されている。また、最適化部１００は、さらに、パラメータ・評価値蓄積部１３０と、モデル当てはめ部１４０と、予測データ更新部１５０と、予測データ蓄積部１６０と、評価パラメータ選択部１７０とを含んで構成されている。
【００３０】
パラメータの最適化は、最適化部１００でのパラメータの選択と、評価部１２０によるパラメータの評価とを繰り返すことによって行う。これを試行錯誤と呼び、最適化部１００でのパラメータの選択と、評価部１２０でのパラメータの評価の１セットを、１回の試行錯誤と呼ぶ。何回目の試行錯誤かは、上記のセットの何回目であるかを意味している。
【００３１】
以下、実施の一例として、誘導方法に応じた歩行者の移動状況のシミュレーション（以下、「歩行者シミュレーション」という）におけるパラメータの最適化に、本実施形態に係る最適化装置１０を適用した場合について説明する。この例において、評価は歩行者シミュレーションを行うことに相当し、パラメータは誘導方法を決定するパラメータｘｔに相当する。ここで、ｔは評価を行った順番、つまりシミュレーションが何回目であるかを示す。
【００３２】
評価用データ蓄積部１１０には、歩行者シミュレーションを行うために必要なデータ（以下、「評価用データ」という）が蓄積される。評価用データの一例として、道路形状、歩行者の進行速度、歩行者の人数、各歩行者のシミュレーション区間への進入時間、それらの歩行者のルート、シミュレーションの開始時間や終了時間がある。
【００３３】
評価部１２０は、評価用データ蓄積部１１０に蓄積された評価用データを取得すると共に、評価パラメータ選択部１７０から、パラメータｔ＋１（詳細は後述）を受け取る。評価部１２０は、評価用データ及びパラメータｘｔ＋１を用いて、歩行者シミュレーションを行い、評価値ｙｔ＋１を計算する。そして、評価部１２０は、パラメータｘｔ＋１及び評価値ｙｔ＋１を出力する。評価値の一例として、歩行者が目的地に到達するまでに要した時間があげられる。
【００３４】
パラメータ・評価値蓄積部１３０には、評価部１２０で過去に歩行者シミュレーションが行われた際に出力されたパラメータ及び評価値が蓄積される。具体的には、パラメータ・評価値蓄積部１３０には、ｔ回目（ｔ＝１，２，・・・）に選択されたパラメータｘｔ、とｔ回目の評価値のｙｔとが、繰り返し回数ｔに対応付けて蓄積される。ｔ＝１，２，・・・におけるｘｔの集合をＸ、ｙｔの集合をＹと表す。図２に、パラメータ・評価値蓄積部１３０に蓄積されるパラメータ及び評価値の一部の例を示す。パラメータ・評価値蓄積部１３０は、要求にしたがって、蓄積されたパラメータ及び評価値を読み出し、要求先の機能部へ該当のパラメータ及び評価値を送信する。
【００３５】
モデル当てはめ部１４０は、パラメータ・評価値蓄積部１３０から取得したＸ及びＹ、又はＸ及びＹの一部から、パラメータに対する評価値を予測するためのモデルを構築し、予測データ更新部１５０に送信する。
【００３６】
予測データ更新部１５０は、モデル当てはめ部１４０から送信されたモデルを用いて、いくらかのパラメータに対して評価値の予測を行い、評価値の予測値、及び予測値に付随する値を得て、これらを予測データとし、繰り返し回数ｔと共に予測データ蓄積部１６０に送信する。
【００３７】
予測データ蓄積部１６０は、予測データ更新部１５０から受け取った予測データを蓄積する。図３に、予測データ蓄積部１６０に蓄積される予測データの一部の例を示す。図３の例では、詳細は後述するが、ガウス過程によるモデルを構築した場合における評価値の予測値の平均μ（ｘ）及び予測値の標準偏差σ（ｘ）が、繰り返し回数ｔ及びパラメータｘと対応付けて蓄積されている。
【００３８】
予測データ蓄積部１６０は、蓄積されている予測データに、予測データ更新部１５０から受け取った予測データのパラメータｘと同じ又は近いパラメータｘの予測データが蓄積されている場合、繰り返し回数ｔが大きいときに得た予測データで、ｔが小さいときに得た予測データを更新してもよい。予測データ蓄積部１６０は、蓄積した予測データを評価パラメータ選択部１７０に送信する。
【００３９】
評価パラメータ選択部１７０は、予測データ蓄積部１６０から受け取った予測データを基に、次に評価をすべきパラメータを１つ以上選択し、選択したパラメータを評価部１２０に送信する。
【００４０】
出力部１８０は、最適なパラメータを出力する。最適なパラメータは、例えば、パラメータ・評価値蓄積部１３０に蓄積されたパラメータのうち、評価値が最良のパラメータとすることができる。パラメータの出力先の例は、歩行者の誘導装置等である。
【００４１】
＜最適化装置の作用＞
【００４２】
次に、図４を参照して、本実施形態に係る最適化装置１０の作用を説明する。評価用データ蓄積部１１０に、予め外部から取り込んだ評価用データが蓄積されている状態で、パラメータの最適化を実行する指示がなされると、図４に示す最適化処理が実行される。なお、図４は、本実施形態に係る最適化プログラムにより実行される最適化処理の流れの一例を示すフローチャートである。
【００４３】
ステップＳ１００で、評価部１２０が、評価用データ蓄積部１１０から評価用データを取得する。また、評価部１２０は、後述のモデルの学習を行うデータを生成するための予備評価をｎ回行う。ｎの値は任意である。また、予備評価を行うパラメータの設定の仕方は任意である。例えば、ランダムなサンプリングによってパラメータを選択したり、人手により選択したりする方法がある。
【００４４】
次に、ステップＳ１１０で、評価部１２０が、繰り返し回数ｔをｎに設定する。
【００４５】
次に、ステップＳ１２０で、モデル当てはめ部１４０が、パラメータ・評価値蓄積部１３０から、過去の繰り返しの評価におけるパラメータ及び評価値の集合Ｘ及びＹを取得する。
【００４６】
次に、ステップＳ１３０で、モデル当てはめ部１４０が、パラメータ・評価値蓄積部１３０から取得したＸ及びＹ、又はＸ及びＹの一部から、パラメータに対する評価値を予測するためのモデルを構築する。モデルの一例としてガウス過程がある。ガウス過程による回帰を用いると、任意の入力ｘに対して、未知の指標ｙを正規分布の形で確率分布として推論することができる。つまり、評価値の予測値の平均μ（ｘ）と予測値の標準偏差σ（ｘ）とを得ることができる。予測値の標準偏差σ（ｘ）は、予測値に対する確信度を表す。ガウス過程は、複数の点の関係性を表すカーネルという関数を用いる。本実施形態で用いるカーネルはどのようなものであってもよいが、一例として、下記（１）式に示すガウスカーネルを用いることができる。
【００４７】
【数１】
2020126511.tif 000003
【００４８】
ここで、θは０より大きい実数をとるハイパーパラメータである。θの一例として、ガウス過程の周辺尤度が最大になる値に点推定した値を用いる。
【００４９】
なお、モデルの当てはめでは、必ずしも全てのデータＸ及びＹを用いてモデルを学習しなくてもよい。どのデータを用いてモデルを学習するかは任意である。例えば、ｔ＝ｎの時に評価を行ったパラメータｘｔに対してユークリッド距離がある値以下となるパラメータのみをモデルの学習に用いることができる。また、パラメータｘｔからユークリッド距離が近い順に１点以上のパラメータのみをモデルの学習に用いてもよい。モデル当てはめ部１４０は、学習されたガウス過程のモデルを予測データ更新部１５０に送信する。
【００５０】
ステップＳ１４０では、予測データ更新部１５０が、モデル当てはめ部１４０から受け取ったモデルを用いて、いくつかのパラメータｘに対して評価値の予測を行う。評価値の予測を行うパラメータは、パラメータ空間の中から複数個選ぶ。ここでのパラメータ空間とは、モデルによる評価値の予測を行うパラメータを選ぶ範囲である。
【００５１】
パラメータ空間の設定方法は任意である。ここで、パラメータ空間の一例としては、前回の繰り返しの時にパラメータｘｔの評価を行ったことによって、モデルによる評価値の予測値が大きく変化したことが想定される点を含む空間を選択する。パラメータｘｔについての予測データは、パラメータｘｔと相関関係を持ち易いパラメータに対する評価値の予測値に影響を与える。
【００５２】
例えばガウス過程を用いる場合、前述のガウスカーネルなど代表的なカーネルを使う場合は、ｘｎとユークリッド距離が近いパラメータは、ｘｔとの相関関係を持ち易く、ｘｔについての予測データ（ｘｔに対する評価値）が存在することで、モデルによる評価値の予測値が大きく影響を受ける。よって、ｘｔに近いパラメータを含む空間を選ぶことが望ましいと言える。
【００５３】
このような性質を持つパラメータ空間の例として、ｘｔからのユークリッド距離が一定以下となる、という条件を満たしたパラメータ空間や、ｘｔからのユークリッド距離がｘ１，・・・，ｘｔ−１のいずれとのユークリッド距離や、その定数倍よりも小さい、という条件を満たしたパラメータ空間などがある。
【００５４】
ある関数の一例に対するパラメータ空間の一例を図５に示す。図５において、実線は評価値の予測値を示す曲線、点線は目的の関数、網掛け部分は評価値の確信度、丸印は選択されたパラメータを表す。図５に示すように、ｔ＝５の時と比べ、モデルによる予測値の変動が大きいであろう範囲（図５中のＡ）は、前回の繰り返しで選択したパラメータｘ６が予測値に与える影響が大きい範囲といえる。
【００５５】
パラメータ空間内における、評価値の予測を行うパラメータの選択方法も任意である。例えばランダムにパラメータを選択する、パラメータ空間をグリッド（マス目）に分割し、それらを順番に選択するなどの方法がある。
【００５６】
そして、予測データ更新部１５０は、現在の繰り返し回数ｔ、評価の予測を行ったパラメータｘ、及び、評価値の予測値の平均μ（ｘ）とその予測値の標準偏差σ（ｘ）の組合せからなる予測データを、予測データ蓄積部１６０に送信する。
【００５７】
次に、ステップＳ１５０で、予測データ蓄積部１６０が、蓄積されている予測データに、上記ステップＳ１４０で予測データ更新部１５０から受け取った予測データのパラメータｘと同じ又は近いパラメータｘの予測データが蓄積されている場合、繰り返し回数ｔが大きいときに得た予測データで、ｔが小さいときに得た予測データを更新してもよい。パラメータの値が近いか否かを判断する条件は任意である。また、更新そのものを行わないことも可能である。そして、更新を行った場合、予測データ蓄積部１６０は、更新後の予測データを評価パラメータ選択部１７０に送信する。
【００５８】
ステップＳ１６０では、評価パラメータ選択部１７０が、予測データ蓄積部１６０から送信された予測データ（パラメータとそのパラメータに対する評価値の予測値）に対して、このパラメータを実際に評価するべき度合いを表す関数を計算する。これを、獲得関数α（ｘ）と呼ぶ。獲得関数の一例として、下記（２）式に示すｕｐｐｅｒ  ｃｏｎｆｉｄｅｎｃｅ  ｂｏｕｎｄを用いることができる。ここで、μ（ｘ）及びσ（ｘ）はそれぞれガウス過程で予測した平均及び標準偏差である。また、β（ｔ）はパラメータであり、一例としてβ（ｔ）＝ｌｏｇ（ｔ）とする。
【００５９】
【数２】
2020126511.tif 000004
【００６０】
そして、評価パラメータ選択部１７０は、獲得関数が条件を満たすパラメータを１つ以上選択し、次に評価するパラメータとして評価部１２０に送信する。条件の一例として、獲得関数が最大となるパラメータがある。つまり、下記（３）式で表されるパラメータが次に評価されるパラメータとして選択される。
【００６１】
【数３】
2020126511.tif 000005
【００６２】
ここで、Ｄｐｒｅｄｉｃｔ，ｔは、予測データ蓄積部１６０に蓄積されている全てのパラメータｘのデータ集合を表す。
【００６３】
次に、ステップＳ１７０で、評価部１２０が、評価用データ蓄積部１１０から取得した評価データと、評価パラメータ選択部１７０から送信されたパラメータｘｔ＋１を用いて評価を行い、１つ以上の評価値ｙｔ＋１を得る。そして、評価部１２０は、パラメータ・評価値蓄積部１３０に、パラメータｘｔ＋１及び評価値ｙｔ＋１を送信する。
【００６４】
次に、ステップＳ１８０で、評価部１２０が、繰り返し回数が規定の最大回数を超えているか否かを判定する。繰り返し回数の一例は１０００回である。繰り返し回数が規定の最大回数を超えていない場合は、ステップＳ１９０へ移行し、ｔを１インクリメントして、ステップＳ１２０に戻り、超えている場合は、最適化処理を終了する。終了時は、出力部１８０にて評価値が最良のパラメータを出力し、処理を終了する。
【００６５】
以上説明したように、本実施形態に係る最適化装置によれば、次に評価値が計算されるパラメータを選択する際に、一部のパラメータの値に対する評価値のみを予測し、他のパラメータについては過去の予測データを用いることで、次に評価するパラメータの選択を高速化することができる。
【００６６】
また、過去に評価値が計算されたパラメータとその評価値との組のうち、予測データの更新を考慮した一部の組のみを用いて、評価値を予測するためのモデルを学習することにより、モデルの学習が高速になり、次に評価するパラメータの選択が高速になる。
【００６７】
上記のように、次に評価するパラメータの選択を高速化することで、パラメータの最適化を高速に行うことができるため、パラメータの評価にかかる時間に比べてパラメータの選択が時間的なボトルネックになるケースや、試行錯誤の回数を増やす必要があるケースにおいて、従来は時間の制約から不可能であった高度な最適化が可能になる。
【００６８】
なお、上記実施形態で説明した最適化装置の各々の構成及び処理は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【００６９】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【００７０】
また、上記実施形態では、プログラムを実行することにより、実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。
【符号の説明】
【００７１】
１０   最適化装置
１００ 最適化部
１１０ 評価用データ蓄積部
１２０ 評価部
１３０ パラメータ・評価値蓄積部
１４０ モデル当てはめ部
１５０ 予測データ更新部
１６０ 予測データ蓄積部
１７０ 評価パラメータ選択部
１８０ 出力部
【図１】
2020126511.tif 000006
【図２】
2020126511.tif 000007
【図３】
2020126511.tif 000008
【図４】
2020126511.tif 000009
【図５】
2020126511.tif 000010