このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
ベイズ最適化のアルゴリズムでは,有界領域でスカラー目的関数f (x)をxについて最小化しようとします。関数は確定的でも確率的 (同じ点 x で評価したときに異なる結果を返す可能性がある) でもかまいません。x の成分は、連続的な実数、整数、カテゴリカル (離散的な名前の集合) のいずれにすることもできます。
メモ
この説明全体でDはxの成分の個数を表します。
最小化の主な要素は以下になります。
アルゴリズムの概要:
変数の範囲内で無作為に選択したNumSeedPoints
個の点x我についてy我= f (x我)を評価します。NumSeedPoints
はbayesopt
の設定です。評価の失敗がある場合は,評価がNumSeedPoints
回成功するまで無作為な点を選択します。各成分の確率分布は,optimizableVariable
の变换
の値に応じて均等スケールまたは対数スケールのいずれかになります。
次に,以下の手順を繰り返します。
f (x)のガウス過程モデルを更新して,问(f | x我y我For I = 1,…,t)の各関数に対する事後分布を取得します(内部的に,bayesopt
はfitrgp
を使用してガウス過程モデルをデータにあてはめます)。
獲得関数(x)を最大化する新しい点xを求めます。
このアルゴリズムは次のいずれかに達すると停止します。
一定の反復回数(既定は30)
一定の時間(既定は無制限)
ベイズ最適化の出力関数またはベイズ最適化のプロット関数で指定した停止基準
並列におけるアルゴリズムの違いについては,並列ベイズアルゴリズムを参照してください。
目的関数fの基となる確率モデルは,観測値にガウスノイズが追加されたガウス過程の事前分布です。つまり,f (x)の事前分布は,平均がμ(x;θ),共分散カーネル関数がk (x, x ';θ)のガウス過程です。ここで,θ はカーネル パラメーターのベクトルです。bayesopt
が使用する特定のカーネル関数については,カーネル関数を参照してください。
少し詳しく説明すると,一連の点X = X我は関連する目的関数の値F = F我で表されます。関数値 F の事前分布の同時分布は、平均が μ(X)、共分散行列が K(X,X) の多変量正規分布になります。ここで、Kij= k (x我, xj)です。
一般性を失うことなく,事前平均は0
になります。
さらに,分散がσ2のガウスノイズが観測値に追加されていると考えられます。したがって,事前分布の共分散はK (X, X;θ)+σ2我になります。
ガウス過程回帰モデルを観測値にあてはめるには,ノイズ分散σ2とカーネルパラメーターθを求めることになります。このあてはめは,fitrgp
によって実行される計算負荷の高いプロセスです。
観測値へのガウス過程のあてはめの詳細については,ガウス過程回帰を参照してください。
カーネル関数k (x, x ';θ)はガウス過程回帰の品質に大きく影響を与える可能性があります。bayesopt
は,カーネル(共分散)関数のオプションで定義されているARD Matern 5/2カーネルを使用します。
杖鱼,Larochelleおよび亚当斯[3]を参照してください。
bayesopt
では6種類の獲得関数を使用できます。3つの基本タイプがありますが,expected-improvement
には每秒
または+
による修正もあります。
“expected-improvement-per-second-plus”
(既定の設定)
“expected-improvement”
“expected-improvement-plus”
“expected-improvement-per-second”
“lower-confidence-bound”
“probability-of-improvement”
獲得関数は,事後分布関数问に基づいて点xの適合度を評価します。エラー制約(目的関数のエラーを参照)など連結制約がある場合,すべての獲得関数は基尔巴特,杖鱼および亚当斯[2]の提案に従って”適合度”の推定を変更します。制約が満たされる確率の推定値を適合度に乗算することにより獲得関数が得られます。
“expected-improvement”
群の獲得関数は,目的関数の増大要因となる値を無視して,目的関数の期待改善量を評価します。つまり,以下を定義します。
最小の事後平均の位置としてx最好的
事後平均の最小値としてμ问(x最好的)
その場合,期待改善量は
“probability-of-improvement”
の獲得関数は,“expected-improvement”
と同様の計算をよりシンプルな方法で行います。どちらの場合も,bayesopt
はじめにx最好的とμ问(x最好的)を計算します。そして,“probability-of-improvement”
の場合,bayesopt
はマージンパラメーターmで修正することにより新しい点xで目的関数の値が向上する確率πを計算します。
bayesopt
は推定ノイズ標準偏差としてmを使用します。bayesopt
はこの確率を次のように計算します。
ここで
ここで,Φ(·)は単位正規CDF,σ问はxにおけるガウス過程の事後標準偏差です。
“lower-confidence-bound”
の獲得関数は,各点で事後平均から標準偏差の2倍を減算した曲線Gを調べます。
G (x)は目的関数モデルの信頼包絡線より2σ问小さくなります。そして,bayesopt
はGの負数を最大化します。
目的関数を評価する時間は,領域によって異なる場合があります。たとえば,多くのサポートベクターマシンは特定の点の範囲で大幅に計算時間が変化します。このような場合,bayesopt
は獲得関数で時間の重みを使用することにより,秒単位で向上させることができます。コストに重みを付けた獲得関数には,名前に每秒
という語句が含まれています。
これらの獲得関数は以下のように機能します。目的関数の評価時に,bayesopt
は目的関数の評価時間を点xの関数として別のベイズモデルに保持します。獲得関数が使用する毎秒の期待改善量は次のようになります。
ここで,μ年代(x)は時間のガウス過程モデルの事後平均です。
目的関数の局所的な最小値を回避するため,名前に+
がある獲得関数は,領域を"過剰利用"していると推定した場合に動作を変更します。過剰利用について理解するため,σF(x)がxにおける事後目的関数の標準偏差であるとします。σを加法性ノイズの事後標準偏差であるとします。したがって
σ问2(x) =σF2(x) +σ2.
正の数値であるExplorationRatio
オプションの値になるようにtσを定義します。bayesopt
の+
の獲得関数は,各反復後に次の点xが以下を満たすかどうかを評価します。
σF(x) < tσσ。
条件が満たされる場合,xは過剰利用であると判断されます。そして,公牛[1]が提案しているように,θに反復回数を乗算することにより獲得関数のカーネル関数が修正されます。この変更により,観測値の間にある点の分散σ问が大きくなります。次に,新しくあてはめたカーネル関数に基づいて新しい点が生成されます。新しいが点x再び過剰利用になる場合,θに10という追加係数を乗算して再度試します。これを最大5回繰り返して,過剰利用にならない点xを生成しようとします。このアルゴリズムでは,次の点として新しxいが受け入れられます。
したがって,ExplorationRatio
は大域解を向上させる新しい点を探索するか,あるいは既に調べた点の近傍に集中するかのトレードオフを制御します。
内部的に,bayesopt
は以下の一般的な手順を使用して獲得関数を最大化します。
“expected-improvement”
で始まるアルゴリズムの場合と“probability-of-improvement”
の場合,bayesopt
は変数の範囲内で数千個の点を抽出し,最良(平均値が小さい)実行可能点をいくつか選択し,局所探索を使用して改善を行い,表面上の最良実行可能点を見つけることにより,事後分布について最小実行可能平均μ问(x最好的)を推定します。実行可能とは,点が制約(ベイズ最適化の制約を参照)を満たすことを意味します。
すべてのアルゴリズムの場合,bayesopt
は変数の範囲内で数千個の点を抽出し,最良(獲得関数の値が大きい)実行可能点を選択し,局所探索を使用して改善を行い,表面上の最良実行可能点を見つけます。獲得関数の値は目的関数のサンプルではなくモデル化された事後分布に基づくので,高速に計算することができます。
高效全局优化算法的收敛速度。https://arxiv.org/abs/1101.3501v3, 2011年。
格巴特,J.斯努克,R. P.亚当斯。含未知约束的贝叶斯优化。https://arxiv.org/abs/1403.5607, 2014年。
斯努克,J. H.拉罗谢尔,R. P.亚当斯。机器学习算法的实用贝叶斯优化。https://arxiv.org/abs/1206.2944, 2012年。