このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
最も一般的な形式の最適化とは,"目的関数"と呼ばれる実数値関数を最小化する点を見つけるプロセスです。ベイズ最適化は,このようなプロセスの1つの名前です。ベイズ最適化では、目的関数のガウス過程モデルを内部に保持し、目的関数の評価を使用してモデルに学習をさせます。ベイズ最適化の新機軸の 1 つは"獲得関数"の使用で,これによりアルゴリズムは次の評価点を決定します。獲得関数により,モデル化が十分ではない目的関数がある点における抽出と,まだ十分にはモデル化されていない領域の探索のバランスをとることができます。詳細は,ベイズ最適化のアルゴリズムを参照してください。
ベイズ最適化は,分類および回帰アルゴリズムの“ハイパーパラメーター”の最適化に非常に適していることから,统计和机器学习工具箱™の一部となっています。ハイパーパラメーターは、サポート ベクター マシンのボックス制約やロバスト アンサンブル分類の学習率などと同じく、分類器または回帰関数の内部パラメーターです。これらのパラメーターは分類器または回帰変数の性能に大きく影響を与えますが、概して最適化には困難または多大な時間が伴います。ベイズ最適化の特徴を参照してください。
通常,ハイパーパラメーターの最適化とは,分類器または回帰の交差検証損失を最小化しようとすることを意味します。
ベイズ最適化はいくつかの方法で実行可能です。
fitcauto
およびfitrauto
——予測子および応答データを関数fitcauto
またはfitrauto
に渡して,モデルタイプの選択とハイパーパラメーターの値を最適化します。他の方法とは異なり,fitcauto
またはfitrauto
を使用する場合は最適化の前に単一のモデルを指定する必要はありません。モデルの選択は最適化プロセスの一部として行われます。最適化により,交差検証損失が最小限に抑えられます。他の方法では単一のガウス過程回帰モデルが使用されますが,fitcauto
では複数のTreeBagger
モデル,fitrauto
では複数のRegressionGP
モデルを使用してモデル化されます。fitcauto
についてはベイズ最適化、fitrauto
についてはベイズ最適化を参照してください。
分類学習器アプリおよび回帰学習器アプリ——機械学習アプリ内で最適化可能モデルを選択し,ベイズ最適化を使用してハイパーパラメーターの値を自動的に調整します。最適化では,選択した検証オプションに基づいてモデルの損失が最小化されます。この方法は,近似関数を使用する場合よりも調整オプションが少ないですが,ベイズ最適化をアプリ内で直接実行できます。分類学習器アプリのハイパーパラメーターの最適化と回帰学習器アプリのハイパーパラメーターの最適化を参照してください。
近似関数——近似関数の多くでは,名前と値のペアOptimizeHyperparameters
を含めることによりベイズ最適化が自動的に適用されます。最適化では交差検証損失は最小になります。このアプローチでは,bayesopt
を使用する場合より調整オプションは少なくなりますが,より簡単にベイズ最適化を実行できます。近似関数を使用したベイズ最適化を参照してください。
bayesopt
- - - - - -bayesopt
を直接呼び出すことにより最適化を最大限制御できます。このアプローチでは,目的関数を記述する必要があります。目的関数が必ずしも交差検証損失を表す必要はありません。bayesoptを使用したベイズ最適化を参照してください。
以下の手順に従い,ベイズ最適化による交差検証応答の誤差を最小化します。
分類ソルバーまたは回帰ソルバーをfitcdiscr
、fitcecoc
、fitcensemble
、fitckernel
、fitcknn
、fitclinear
、fitcnb
、fitcsvm
、fitctree
、fitrensemble
、fitrgp
、fitrkernel
、fitrlinear
、fitrsvm
またはfitrtree
から選択します。
最適化するハイパーパラメーターを決定し,名前と値のペアOptimizeHyperparameters
で渡します。各近似関数について,一連のハイパーパラメーターから選択できます。各種近似関数で適格とされるハイパーパラメーターを参照するか,関数hyperparameters
を使用するか,近似関数のリファレンスページを参照してください。
パラメーター名の细胞配列を渡すことができます。また,OptimizeHyperparameters
の値として“汽车”
を設定して一般的な最適化対象ハイパーパラメーターを一揃い選択することも,“所有”
を設定して使用可能なパラメーターをすべて最適化することもできます。
アンサンブル近似関数fitcecoc
、fitcensemble
およびfitrensemble
の場合は,弱学習器のパラメーターも细胞配列OptimizeHyperparameters
に含めます。
オプションとして,名前と値のペアHyperparameterOptimizationOptions
のオプション構造体を作成します。近似関数のハイパーパラメーター最適化オプションを参照してください。
適切な名前と値のペアを使用して近似関数を呼び出します。
例については,ベイズ最適化の使用によるSVM分類器のあてはめの最適化とブースティング回帰アンサンブル回帰の最適化を参照してください。また,すべての近似関数のリファレンス ページにはベイズ最適化の例が含まれています。
bayesopt
を使用したベイズ最適化以下の手順に従い,bayesopt
を用したベイズ最適化を実行します。
変数を準備します。ベイズ最適化用の変数を参照してください。
目的関数を作成します。ベイズ最適化の目的関数を参照してください。必要に応じて制約も作成します。ベイズ最適化の制約を参照してください。目的関数に追加のパラメーターを含めるには,関数のパラメーター化を参照してください。
オプション,つまりbayseopt
の名称,值
ペアを決定します。bayesopt
にオプションを渡すことは必須ではありませんが,(解を改善しようとする場合は特に)渡すことが一般的です。
bayesopt
を呼び出します。
解を調べます。的简历
を使用して最適化を再開するか,(通常はオプションを修正して)最適化をやり直すことができます。
たとえば,bayesoptを使用した交差検証済みSVM分類器の最適化を参照してください。
ベイズ最適化アルゴリズムは,次のようなタイプの問題に最適です。
特徴 | 詳細 |
---|---|
低次元 | ベイズ最適化は次元数が少ない場合(通常は10以下)に最適に機能します。変数が数十個ある問題をベイズ最適化で解くことができる場合もありますが,約50以上の次元には推奨されません。 |
計算負荷が高い目的関数 | ベイズ最適化は,評価に時間がかかる目的関数用に設計されています。相当な量のオーバーヘッド(通常は各反復について数秒)があります。 |
低精度 | ベイズ最適化では,結果が必ずしも非常に正確であるとは限りません。目的関数が確定的である場合,標準的な最適化アルゴリズムを |
大域解 | ベイズ最適化は大域的な手法です。他の多くのアルゴリズムとは異なり,さまざまな初期点からアルゴリズムを開始しなくても大域解を求めることができます。 |
ハイパーパラメーター | ベイズ最適化は,別の関数の“ハイパーパラメーター”の最適化に非常に適しています。ハイパーパラメーターは関数の動作を制御するパラメーターです。たとえば、関数 |
各種近似関数で適格とされるハイパーパラメーター
関数名 | 適格なハイパーパラメーター |
---|---|
fitcdiscr |
δ γ DiscrimType |
fitcecoc |
编码 “学习者”,“判别” で使用可能なfitcdiscr パラメーター“学习者”,“内核” で使用可能なfitckernel パラメーター“学习者”,“资讯” で使用可能なfitcknn パラメーター“学习者”,“线性” で使用可能なfitclinear パラメーター“学习者”,“支持向量机” で使用可能なfitcsvm パラメーター“学习者”,“树” で使用可能なfitctree パラメーター |
fitcensemble |
方法 NumLearningCycles LearnRate “学习者”,“判别” で使用可能なfitcdiscr パラメーター“学习者”,“资讯” で使用可能なfitcknn パラメーター“学习者”,“树” で使用可能なfitctree パラメーター |
fitckernel |
“学习者” “KernelScale” “λ” “NumExpansionDimensions” |
fitcknn |
NumNeighbors 距离 DistanceWeight 指数 标准化 |
fitclinear |
λ 学习者 正则化 |
fitcnb |
DistributionNames 宽度 内核 |
fitcsvm |
BoxConstraint KernelScale KernelFunction PolynomialOrder 标准化 |
fitctree |
MinLeafSize MaxNumSplits SplitCriterion NumVariablesToSample |
fitrensemble |
方法 NumLearningCycles LearnRate “学习者”,“树” に適格なfitrtree のパラメーターMinLeafSize MaxNumSplits NumVariablesToSample |
fitrgp |
σ BasisFunction KernelFunction KernelScale 标准化 |
fitrkernel |
学习者 KernelScale λ NumExpansionDimensions ε |
fitrlinear |
λ 学习者 正则化 |
fitrsvm |
BoxConstraint KernelScale ε KernelFunction PolynomialOrder 标准化 |
fitrtree |
MinLeafSize MaxNumSplits NumVariablesToSample |
近似関数を使用して最適化を行う場合,以下のオプションを名前と値のペアHyperparameterOptimizationOptions
で使用できます。値は構造体として与えます。この構造体のフィールドは、すべてオプションです。
フィールド名 | 値 | 既定の設定 |
---|---|---|
优化器 |
|
“bayesopt” |
AcquisitionFunctionName |
オブジェクト関数のランタイムによって最適化が異なるので,名前に |
“expected-improvement-per-second-plus” |
MaxObjectiveEvaluations |
目的関数評価の最大的数。 | “bayesopt” または“randomsearch” の場合は30. 、“gridsearch” の場合はグリッド全体 |
MaxTime |
制限時間。正の実数を指定します。制限時間の単位は, |
正 |
NumGridDivisions |
“gridsearch” における各次元の値の個数。値は、各次元の値の個数を表す正の整数のベクトル、またはすべての次元に適用されるスカラーが可能です。カテゴリカル変数の場合、このフィールドは無視されます。 |
10 |
ShowPlots |
プロットを表示するかどうかを示す論理値。真正的 の場合,最良の目的関数の値が反復回数に対してプロットされます。1つまたは2つの最適化パラメーターがあり,优化器 が“bayesopt” である場合,ShowPlots はパラメーターに対する目的関数のモデルのプロットも行います。 |
真正的 |
SaveIntermediateResults |
优化器 が“bayesopt” である場合に結果を保存するかどうかを示す論理値。真正的 の場合,“BayesoptResults” という名前のワークスペース変数が反復ごとに上書きされます。この変数はBayesianOptimization オブジェクトです。 |
假 |
详细的 |
コマンドラインへの表示。
詳細については, |
1 |
UseParallel |
ベイズ最適化を並列実行するかどうかを示す論理値。並列実行には并行计算工具箱™が必要です。並列でのタイミングに再現性がないため,並列ベイズ最適化で再現性のある結果が生成されるとは限りません。詳細については,並列ベイズ最適化を参照してください。 | 假 |
重新分区 |
反復ごとに交差検証を再分割するかどうかを示す論理値。 分割ノイズが考慮されるので,通常は |
假 |
以下の3つのフィールド名は1つだけ使用できます。 | ||
CVPartition |
cvpartition によって作成されるcvpartition オブジェクト。 |
交差検証フィールドが指定されていない場合“Kfold”,5 |
坚持 |
ホールドアウトの比率を表す範囲(0,1) のスカラー。 |
|
Kfold |
1より大きい整数。 |