(57)【要約】【課題】複数の最適化問題を効率的に解くこと。【解決手段】推定装置は、複数の最適化問題に関するデータを入力する入力手段と、前記複数の最適化問題のそれぞれで最適化対象となる関数をモデル化した関数モデルのパラメータを推定する推定手段と、を有することを特徴とする。また、最適化装置は、複数の最適化問題のそれぞれで最適化対象となる関数をモデル化した関数モデルを入力する入力手段と、前記関数モデルを用いて、前記複数の最適化問題のそれぞれとは異なる最適化問題で最適化対象となる目標関数を繰り返し評価することで、前記目標関数を最適化する最適化手段と、を有することを特徴とする。【選択図】図１
2020091791.tif 000002
【特許請求の範囲】
【請求項１】
複数の最適化問題に関するデータを入力する入力手段と、
前記複数の最適化問題のそれぞれで最適化対象となる関数をモデル化した関数モデルのパラメータを推定する推定手段と、
を有することを特徴とする推定装置。
【請求項２】
前記推定手段は、
前記関数モデルと前記データとに応じた目的関数の勾配を計算し、該勾配を用いて、前記目的関数の値が最大又は最小となるように、前記関数モデルのパラメータを推定する、ことを特徴とする請求項１に記載の推定装置。
【請求項３】
複数の最適化問題のそれぞれで最適化対象となる関数をモデル化した関数モデルを入力する入力手段と、
前記関数モデルを用いて、前記複数の最適化問題のそれぞれとは異なる最適化問題で最適化対象となる目標関数を繰り返し評価することで、前記目標関数を最適化する最適化手段と、
を有することを特徴とする最適化装置。
【請求項４】
前記最適化手段は、
前記関数モデルのパラメータを用いて、前記目標関数の分布を計算し、
前記分布を用いて、所定の獲得関数により決定される値で前記目標関数を評価する、ことを特徴とする請求項３に記載の最適化装置。
【請求項５】
複数の最適化問題に関するデータを入力する入力手段と、
前記複数の最適化問題のそれぞれで最適化対象となる関数をモデル化した関数モデルのパラメータを推定する推定手段と、
前記推定したパラメータが設定された関数モデルを用いて、前記複数の最適化問題のそれぞれとは異なる最適化問題で最適化対象となる目標関数を繰り返し評価することで、前記目標関数を最適化する最適化手段と、
を有することを特徴とする最適化装置。
【請求項６】
複数の最適化問題に関するデータを入力する入力手順と、
前記複数の最適化問題のそれぞれで最適化対象となる関数をモデル化した関数モデルのパラメータを推定する推定手順と、
をコンピュータが実行することを特徴とする推定方法。
【請求項７】
複数の最適化問題のそれぞれで最適化対象となる関数をモデル化した関数モデルを入力する入力手順と、
前記関数モデルを用いて、前記複数の最適化問題のそれぞれとは異なる最適化問題で最適化対象となる目標関数を繰り返し評価することで、前記目標関数を最適化する最適化手順と、
をコンピュータが実行することを特徴とする最適化方法。
【請求項８】
コンピュータを、請求項１又は２に記載の推定装置、又は、請求項３乃至５の何れか一項に記載の最適化装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定装置、最適化装置、推定方法、最適化方法、及びプログラムに関する。
【背景技術】
【０００２】
最適化問題とは、或る関数の最大値をとる点又は最小値をとる点を見つける問題である。ここで、複数の関連する最適化問題が与えられる場合がある。例えば、複数のデータセットのそれぞれで最適な機械学習器を見つける問題や、異なる状況のそれぞれで最適な人流の誘導を見つける問題、異なる状況のそれぞれでシミュレータの最適なパラメータを見つける問題等である。
【０００３】
また、最適化問題を解くための最適化手法の１つとしてベイズ最適化が知られている（例えば非特許文献１参照）。ベイズ最適化とは、形状がわからない関数（ブラックボックス関数）の最大値をとる点又は最小値を取る点を見つけるための最適化手法である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Jasper Snoek, Hugo Larochelle, and Ryan P. Adams. "Practical Bayesian optimization of machine learning algorithms." Advances in Neural Information Processing Systems. 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、複数の関連する最適化問題が与えられている場合に、ベイズ最適化では、他の関連する最適化問題の知見を活用することができなかった。言い換えると、或る最適化問題をベイズ最適化により解く場合に、他の最適化問題に関する情報を活用することができなかった。このため、これらの最適化問題を効率的に解くことができない場合があった。
【０００６】
本発明は、上記の点に鑑みてなされたもので、複数の最適化問題を効率的に解くことを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の実施の形態における推定装置は、複数の最適化問題に関するデータを入力する入力手段と、前記複数の最適化問題のそれぞれで最適化対象となる関数をモデル化した関数モデルのパラメータを推定する推定手段と、を有することを特徴とする。
【０００８】
また、本発明の実施の形態における最適化装置は、複数の最適化問題のそれぞれで最適化対象となる関数をモデル化した関数モデルを入力する入力手段と、前記関数モデルを用いて、前記複数の最適化問題のそれぞれとは異なる最適化問題で最適化対象となる目標関数を繰り返し評価することで、前記目標関数を最適化する最適化手段と、を有することを特徴とする。
【発明の効果】
【０００９】
複数の最適化問題を効率的に解くことができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態における推定装置及び最適化装置の機能構成の一例を示す図である。
【図２】本発明の実施の形態における推定装置及び最適化装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施の形態におけるパラメータ推定処理の一例を示すフローチャートである。
【図４】本発明の実施の形態における最適化処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について説明する。本発明の実施の形態では、複数の最適化問題が与えられた場合に、これらの最適化問題を効率的に解くための推定装置１０及び最適化装置２０について説明する。
【００１２】
本発明の実施の形態では、D個の最適化問題に関するデータ
【００１３】
【数１】
2020091791.tif 000003
が与えられたとする。以降では、これらD個の最適化問題を「元問題」とも表す。また、元問題の各々を「問題d」（d=1,・・・,D）、元問題に関するデータを「元問題データ」とも表す。ここで、
【００１４】
【数２】
2020091791.tif 000004
は問題dのn番目の入力ベクトル、
【００１５】
【数３】
2020091791.tif 000005
はその出力値、fd(・)は問題dで最適化したい関数、εは観測ノイズ、Ndは問題dの観測データ数、
【００１６】
【数４】
2020091791.tif 000006
は問題dの特徴量を表す。なお、以降では、便宜上、明細書のテキストでは、ベクトルを太字ではなく、通常の書体で表す。例えば、上記の数４に示す特徴量は、明細書のテキストでは「rd」と表す。
【００１７】
このとき、元問題の各々とは異なる最適化問題（この最適化問題を「目標問題d*」とも表す。）の特徴量rd*が与えられた場合に、ベイズ最適化の枠組みに基づいて、より少ない評価回数で、目標問題d*の関数fd*(x)の最大値を求めること、すなわち、この最大値を取る点（ベクトル）
【００１８】
【数５】
2020091791.tif 000007
を求めることである。なお、以降では、ベイズ最適化の枠組みにおいて評価対象となる関数（つまり、上記の関数fd*）を「目標関数」と表す。
【００１９】
本発明の実施の形態では、元問題データを用いて、最適化したい関数fdのモデル（以降、「関数モデル」とも表す。）のパラメータを推定装置１０により推定する。そして、このパラメータを設定した関数モデルを用いて、ベイズ推定の枠組みに基づき、目標問題を最適化装置２０により最適化する。これにより、より少ない評価回数で目標問題を最適化することができ、元問題及び目標問題、すなわち複数の最適化問題を効率的に解くことができる。
【００２０】
なお、本発明の実施の形態では、主に、最適化問題の特徴量（上記のrdやrd*）が与えられる場合について説明するが、特徴量は与えられないこともある。また、本発明の実施の形態では、元問題が与えられている状況で目標問題を最適化する場合について説明するが、例えば、与えられた複数の最適化問題を同時に最適化する場合についても同様に適用することができる。
【００２１】
また、本発明の実施の形態では、目標関数fd*の最大値を求める場合（つまり、目標問題が最大化問題である場合）について説明するが、目標関数fd*の最小値を求める場合（つまり、目標問題が最小化問題である場合）についても同様に適用することができる。
【００２２】
＜推定装置１０及び最適化装置２０の機能構成＞
まず、本発明の実施の形態における推定装置１０及び最適化装置２０の機能構成について、図１を参照しながら説明する。図１は、本発明の実施の形態における推定装置１０及び最適化装置２０の機能構成の一例を示す図である。
【００２３】
《推定装置１０》
図１に示すように、本発明の実施の形態における推定装置１０は、パラメータ推定処理部１０１と、記憶部１０２とを有する。
【００２４】
パラメータ推定処理部１０１は、関数モデルのパラメータを推定するための処理（以降、「パラメータ推定処理」とも表す。）を実行する。記憶部１０２は、パラメータ推定処理に用いられる各種データ（例えば、元問題データ等）やパラメータ推定処理の処理結果（例えば、関数モデルのパラメータ等）を記憶する。
【００２５】
ここで、パラメータ推定処理部１０１は、各問題dの関数fd(・)をそれぞれ以下の式（１）に示すニューラルガウス過程でモデル化する（つまり、以下の式（１）に示すニューラルガウス過程を関数モデルとする。）。
【００２６】
【数６】
2020091791.tif 000008
ここで、
【００２７】
【数７】
2020091791.tif 000009
は平均関数m、カーネル関数kのガウス過程、m(・;ξ)はパラメータξを持つニューラルネットワークで定義される平均関数、k(・,・;θ)はパラメータθを持つカーネル関数、g(・;ψ)はパラメータψを持つニューラルネットワークを表す。パラメータξ，θ，ψはそれぞれベクトルで表現され、全ての問題dの間で共有される。なお、ガウス過程の代わりに、例えば、スチューデントt過程等、関数を生成する任意のモデルを利用してもよい。
【００２８】
ニューラルネットワークとしては、例えば、フィードフォワード型、畳み込み型、再帰型等、任意のニューラルネットワークを利用することができる。また、ニューラルネットワークの代わりに、他のモデルが用いられてもよい。
【００２９】
このとき、パラメータ推定処理部１０１は、上記の式（１）に示す関数モデルによって元問題データが説明できるようにパラメータξ，θ，ψを推定する。パラメータ推定処理部１０１は、例えば、以下の式（２）に示す尤度を目的関数として、この目的関数を最大することによってパラメータξ，θ，ψを推定する。
【００３０】
【数８】
2020091791.tif 000010
ここで、
【００３１】
【数９】
2020091791.tif 000011
は問題dのNd次元の出力値のベクトル、
【００３２】
【数１０】
2020091791.tif 000012
は問題dのNd次元の平均関数値のベクトル、KdはNd×Ndの問題dのカーネル行列であり、その(n,n')要素が
【００３３】
【数１１】
2020091791.tif 000013
で与えられる行列である。
【００３４】
なお、各問題dに特徴量rdが与えられない場合は、ニューラルネットワークの入力として特徴量rdをとらないものを用いればよい。すなわち、m(x, rd;ξ)の代わりにm(x;ξ)、g(x, rd;ψ)の代わりにg(x,;ψ)を用いればよい。
【００３５】
ここで、図１に示すように、パラメータ推定処理部１０１には、入力部１１１と、初期化部１１２と、勾配計算部１１３と、パラメータ更新部１１４と、終了条件判定部１１５と、出力部１１６とが含まれる。
【００３６】
入力部１１１は、元問題データを入力する。なお、入力部１１１は、記憶部１０２に記憶されている元問題データを入力してもよいし、通信ネットワークを介して接続される他の装置から元問題データを受信及び入力してもよい。
【００３７】
初期化部１１２は、関数モデルのパラメータ（例えば、上記のパラメータξ，θ，ψ）を初期化する。勾配計算部１１３は、目的関数（例えば、上記の式（２）に示す尤度）の勾配を計算する。パラメータ更新部１１４は、勾配計算部１１３により計算された勾配を用いて、目的関数の値が高くなるように、関数モデルのパラメータを更新する。
【００３８】
勾配計算部１１３による勾配の計算と、パラメータ更新部１１４によるパラメータの更新とは、所定の終了条件を満たすまで繰り返し実行される。なお、以降では、この所定の終了条件を「第１の終了条件」と表す。
【００３９】
終了条件判定部１１５は、第１の終了条件を満たすか否かを判定する。第１の終了条件としては、例えば、上記の繰り返し回数が所定の回数に達したこと、目的関数値の変化量が所定の閾値以下になったこと、更新の前後でパラメータの変化量が所定の閾値以下になったこと等が挙げられる。
【００４０】
出力部１１６は、終了条件判定部１１５により第１の終了条件を満たすと判定された場合、関数モデルのパラメータを出力する。なお、出力部１１６は、関数モデルのパラメータを記憶部１０２に出力（保存）してもよいし、通信ネットワークを介して接続される他の装置（例えば、最適化装置２０等）に出力してもよい。以降では、出力部１１６により出力されるパラメータを「推定済パラメータ」とも表す。
【００４１】
《最適化装置２０》
図１に示すように、本発明の実施の形態における最適化装置２０は、最適化処理部２０１と、記憶部２０２とを有する。
【００４２】
最適化処理部２０１は、ベイズ最適化の枠組みに基づいて、目標問題を最適化するための処理（以降、「最適化処理」とも表す。）を実行する。記憶部２０２は、目標問題の最適化処理に用いられる各種データ（例えば、推定済パラメータが設定された関数モデル等）や目標問題の最適化処理の処理結果（例えば、目標関数の最大値やこの最大値を与える点等）を記憶する。
【００４３】
ここで、ベイズ最適化では、次の評価に用いられる入力を獲得関数によって選択する。そこで、最適化処理部２０１は、例えば、以下の式（３）に示す期待改善量を獲得関数として用いる。
【００４４】
【数１２】
2020091791.tif 000014
ここで、φ(・)及びΦ(・)はそれぞれ標準正規分布の密度関数及び累積密度関数、y★はこれまでに得られている最大値（つまり、これまで評価した目標関数値のうちの最大の目標関数値）、μ(x)は平均、σ(x)は標準偏差を表す。なお、最適化処理部２０１は、期待改善量以外の任意の獲得関数を用いてもよい。
【００４５】
これまでにNd*回の目標関数fd*の評価を行っているとした場合に、これまでの入力を
【００４６】
【数１３】
2020091791.tif 000015
、これまでの評価値（つまり、目標関数値）を
【００４７】
【数１４】
2020091791.tif 000016
とする。このとき、上記の式（１）に示すニューラルガウス過程を関数モデルとして用いた場合、最適化処理部２０１は、目標関数の分布を以下の式（４）〜（５）により計算することができる。
【００４８】
【数１５】
2020091791.tif 000017
ここで、
【００４９】
【数１６】
2020091791.tif 000018
はxでのカーネル関数値、
【００５０】
【数１７】
2020091791.tif 000019
はxとX*との間のカーネル関数値のNd*次元ベクトル、
【００５１】
【数１８】
2020091791.tif 000020
はX*のカーネル行列、
【００５２】
【数１９】
2020091791.tif 000021
はパラメータ推定処理部１０１によって推定された関数モデルのパラメータ（つまり、推定済パラメータ）である。
【００５３】
ここで、図１に示すように、最適化処理部２０１には、入力部２１１と、分布推定部２１２と、獲得関数計算部２１３と、関数評価部２１４と、終了条件判定部２１５と、出力部２１６とが含まれる。
【００５４】
入力部２１１は、推定済パラメータが設定された関数モデルを入力する。なお、入力部２１１は、記憶部２０２に記憶されている関数モデルを入力してもよいし、通信ネットワークを介して接続される他の装置から関数モデルを受信及び入力してもよい。
【００５５】
分布推定部２１２は、例えば上記の式（４）により、目標関数の分布を推定する。獲得関数計算部２１３は、分布推定部２１２により推定された分布を用いて、獲得関数（例えば、上記の式（３）に示す期待改善量）を計算する。関数評価部２１４は、獲得関数計算部２１３により計算された獲得関数の値が最大となる点で目標関数を評価する（つまり、当該点における目標関数値を得る。）。
【００５６】
分布推定部２１２による分布の推定と、獲得関数計算部２１３による獲得関数の計算と、関数評価部２１４による関数の評価とは、所定の終了条件を満たすまで繰り返し実行される。なお、以降では、この所定の終了条件を「第２の終了条件」と表す。
【００５７】
終了条件判定部２１５は、第２の終了条件を満たすか否かを判定する。第２の終了条件としては、例えば、上記の繰り返し回数が所定の回数に達したこと、目標関数の最大値が所定の閾値以上になったこと、目標関数の最大値の変化量が所定の閾値以下になったこと等が挙げられる。
【００５８】
出力部２１６は、終了条件判定部２１５により第２の終了条件を満たすと判定された場合、最適化処理の処理結果（例えば、評価値（目標関数値）の最大値やこの最大値を与える点）を出力する。なお、出力部２１６は、最適化処理の処理結果を記憶部２０２に出力（保存）してもよいし、通信ネットワークを介して接続される他の装置に出力してもよい。
【００５９】
ここで、本発明の実施の形態では、推定装置１０と最適化装置２０とが異なる装置である場合について説明するが、推定装置１０と最適化装置２０とが１台の装置で実現されていてもよい。この場合、当該装置は、パラメータ推定処理部１０１と、最適化処理部２０１と、記憶部とを有するように構成されていればよい。
【００６０】
＜推定装置１０及び最適化装置２０のハードウェア構成＞
次に、本発明の実施の形態における推定装置１０及び最適化装置２０のハードウェア構成について、図２を参照しながら説明する。図２は、本発明の実施の形態における推定装置１０及び最適化装置２０のハードウェア構成の一例を示す図である。なお、推定装置１０及び最適化装置２０は同様のハードウェア構成で実現可能であるため、以降では、主に、推定装置１０のハードウェア構成について説明する。
【００６１】
図２に示すように、本発明の実施の形態における推定装置１０は、入力装置３０１と、表示装置３０２と、外部Ｉ／Ｆ３０３と、ＲＡＭ（Random Access Memory）３０４と、ＲＯＭ（Read Only Memory）３０５と、プロセッサ３０６と、通信Ｉ／Ｆ３０７と、補助記憶装置３０８とを有する。これら各ハードウェアは、それぞれがバスＢを介して通信可能に接続されている。
【００６２】
入力装置３０１は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置３０２は、例えばディスプレイ等であり、推定装置１０の処理結果等を表示する。なお、推定装置１０及び最適化装置２０は、入力装置３０１及び表示装置３０２の少なくとも一方を有していなくてもよい。
【００６３】
外部Ｉ／Ｆ３０３は、外部装置とのインタフェースである。外部装置には、記録媒体３０３ａ等がある。推定装置１０は、外部Ｉ／Ｆ３０３を介して、記録媒体３０３ａの読み取りや書き込み等を行うことができる。記録媒体３０３ａには、例えば、パラメータ推定処理部１０１を実現する１以上のプログラムや最適化処理部２０１を実現する１以上のプログラム等が記録されていてもよい。
【００６４】
記録媒体３０３ａとしては、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００６５】
ＲＡＭ３０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ３０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ３０５には、例えば、ＯＳ（Operating System）に関する設定情報や通信ネットワークに関する設定情報等が格納されている。
【００６６】
プロセッサ３０６は、例えばＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等であり、ＲＯＭ３０５や補助記憶装置３０８等からプログラムやデータをＲＡＭ３０４上に読み出して処理を実行する演算装置である。パラメータ推定処理部１０１は、ＲＯＭ３０５や補助記憶装置３０８等に格納されている１以上のプログラムをＲＡＭ３０４上に読み出してプロセッサ３０６が処理を実行することで実現される。同様に、最適化処理部２０１は、ＲＯＭ３０５や補助記憶装置３０８等に格納されている１以上のプログラムをＲＡＭ３０４上に読み出してプロセッサ３０６が処理を実行することで実現される。
【００６７】
通信Ｉ／Ｆ３０７は、推定装置１０を通信ネットワークに接続するためのインタフェースである。パラメータ推定処理部１０１を実現する１以上のプログラムや最適化処理部２０１を実現する１以上のプログラムは、通信Ｉ／Ｆ３０７を介して、所定のサーバ装置等から取得（ダウンロード）されてもよい。
【００６８】
補助記憶装置３０８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置３０８に格納されているプログラムやデータには、例えば、ＯＳ、当該ＯＳ上で各種機能を実現するアプリケーションプログラム等がある。また、推定装置１０の補助記憶装置３０８にはパラメータ推定処理部１０１を実現する１以上のプログラムが格納されている。同様に、最適化装置２０の補助記憶装置３０８には最適化処理部２０１を実現する１以上のプログラムが格納されている。
【００６９】
また、推定装置１０が有する記憶部１０２は、例えば補助記憶装置３０８を用いて実現可能である。同様に、最適化装置２０が有する記憶部２０２は、例えば補助記憶装置３０８を用いて実現可能である。
【００７０】
本発明の実施の形態における推定装置１０は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。同様に、本発明の実施の形態における最適化装置２０は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００７１】
なお、図２に示す例では、本発明の実施の形態における推定装置１０及び最適化装置２０がそれぞれ１台の装置（コンピュータ）で実現されている場合を示したが、これに限られない。本発明の実施の形態における推定装置１０及び最適化装置２０の少なくとも一方が、複数台の装置（コンピュータ）で実現されていてもよい。また、１台の装置（コンピュータ）には、複数のプロセッサ３０６や複数のメモリ（ＲＡＭ３０４やＲＯＭ３０５、補助記憶装置３０８等）が含まれていてもよい。
【００７２】
＜パラメータ推定処理＞
次に、本発明の実施の形態におけるパラメータ推定処理について、図３を参照しながら説明する。図３は、本発明の実施の形態におけるパラメータ推定処理の一例を示すフローチャートである。
【００７３】
まず、入力部１１１は、元問題データを入力する（ステップＳ１０１）。
【００７４】
次に、初期化部１１２は、関数モデルのパラメータ（例えば、上記のパラメータξ，θ，ψ）を初期化する（ステップＳ１０２）。なお、初期化部１１２は、最適化の対象となる問題dに応じて、上記のパラメータを適切な値に初期化する。
【００７５】
次に、勾配計算部１１３は、目的関数（例えば、上記の式（２）に示す尤度）の勾配を計算する（ステップＳ１０３）。
【００７６】
次に、パラメータ更新部１１４は、勾配計算部１１３により計算された勾配を用いて、目的関数の値が高くなるように、関数モデルのパラメータを更新する（ステップＳ１０４）。
【００７７】
次に、終了条件判定部１１５は、第１の終了条件を満たすか否かを判定する（ステップＳ１０５）。
【００７８】
ステップＳ１０５で第１の終了条件を満たさないと判定された場合、パラメータ推定処理部１０１は、ステップＳ１０３に戻る。これにより、第１の終了条件を満たすまで、ステップＳ１０３〜ステップＳ１０４が繰り返し実行される。
【００７９】
一方で、ステップＳ１０５で第１の終了条件を満たすと判定された場合、出力部１１６は、関数モデルのパラメータ（つまり、推定済パラメータ）を出力する（ステップＳ１０６）。
【００８０】
＜最適化処理＞
次に、本発明の実施の形態における最適化処理（目標問題の最適化処理）について、図４を参照しながら説明する。図４は、本発明の実施の形態における最適化処理の一例を示すフローチャートである。
【００８１】
まず、入力部２１１は、推定済パラメータが設定された関数モデルを入力する（ステップＳ２０１）。
【００８２】
次に、分布推定部２１２は、目標関数の分布を推定する（ステップＳ２０２）。なお、例えば、上記の式（１）に示すニューラルガウス過程を関数モデルとして用いた場合、分布推定部２１２は、上記の式（４）〜（５）により目標関数の分布を推定する。
【００８３】
次に、獲得関数計算部２１３は、分布推定部２１２により推定された分布を用いて、獲得関数（例えば、上記の式（３）に示す期待改善量）を計算する（ステップＳ２０３）。
【００８４】
次に、関数評価部２１４は、獲得関数計算部２１３により計算された獲得関数の値が最大となる点で目標関数を評価する（ステップＳ２０４）。
【００８５】
次に、終了条件判定部２１５は、第２の終了条件を満たすか否かを判定する（ステップＳ２０５）。
【００８６】
ステップＳ２０５で第２の終了条件を満たさないと判定された場合、最適化処理部２０１は、ステップＳ２０２に戻る。これにより、第２の終了条件を満たすまで、ステップＳ２０２〜ステップＳ２０４が繰り返し実行される。
【００８７】
一方で、ステップＳ２０５で第２の終了条件を満たすと判定された場合、出力部２１６は、最適化処理の処理結果（例えば、目標関数の最大値やこの最大値を与える点）を出力する（ステップＳ２０６）。なお、出力部２１６は、評価値の最大値のみを出力してもよいし、この最大値を与える点のみを出力してもよいし、これらの両方を出力してもよい。
【００８８】
＜従来技術との比較結果＞
次に、本発明と従来技術との比較結果について説明する。ここで、比較に用いる最適化問題としては、「人工最適化問題」、「最適人流誘導探索」、「最適機械学習器探索」の３種類を用いた。この３種類の最適化問題を解いた場合に、最適値（最大値又は最小値）を見つけるまでの平均評価回数と標準誤差とを以下の表１に示す。
【００８９】
【表１】
2020091791.tif 000022
ここで、本発明としては、RMK、RM、RK、MKの４種類のバージョンを用いた。Rは特徴量を利用したもの（つまり、各最適化問題に特徴量が与えられており、その特徴量を利用したもの）、Mは平均関数でニューラルネットワークを用いたもの、Kはカーネル関数でニューラルネットワークを用いたものを表す。
【００９０】
例えば、「本発明-RMK」は、特徴量を利用し、かつ、平均関数mとしてニューラルネットワーク、カーネル関数kの入力としてニューラルネットワークを用いて、本発明の手法により最適化問題を解いた場合を示す。同様に、例えば、「本発明-RM」は、特徴量を利用し、かつ、平均関数mとしてニューラルネットワーク、カーネル関数kとしてニューラルネットワーク以外の関数を用いて、本発明の手法により最適化問題を解いた場合を示す。「本発明-RK」や「本発明-MK」についても同様である。
【００９１】
また、従来技術としては、ガウス過程（GP）、元問題でカーネルパラメータを学習するガウス過程（TGP）、ニューラル過程（NP）、ニューラルネットワーク（NN）、特徴量を利用するニューラルネットワーク（NN-R）、次の評価に用いる点をランダムに選ぶ手法（Random）を用いた。
【００９２】
上記の表１に示すように、本発明の手法が他の従来技術よりも少ない評価回数で（すなわち、従来技術よりも効率的に）最適値を見つけることができていることがわかる。なお、上記の表１では、平均評価回数が最も良い手法（つまり、本発明-RMK）を太字としている。また、最も良い手法と統計的有意差がなかったものにはアスタリスク「＊」を付与している。
【００９３】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００９４】
１０        推定装置
２０        最適化装置
１０１      パラメータ推定処理部
１１１      入力部
１１２      初期化部
１１３      勾配計算部
１１４      パラメータ更新部
１１５      終了条件判定部
１１６      出力部
１０２      記憶部
２０１      最適化処理部
２０２      記憶部
２１１      入力部
２１２      分布推定部
２１３      獲得関数計算部
２１４      関数評価部
２１５      終了条件判定部
２１６      出力部
【図１】
2020091791.tif 000023
【図２】
2020091791.tif 000024
【図３】
2020091791.tif 000025
【図４】
2020091791.tif 000026