BayesianOptimization
ベイズ最適化の結果
説明
BayesianOptimization オブジェクトは bayesopt 関数の出力であり、ベイズ最適化の結果が格納されます。さらに、このオブジェクトには、プロット関数または出力関数でアクセスできる bayesopt の各反復のデータも格納されます。
作成
BayesianOptimization オブジェクトの作成には bayesopt 関数を使用します。詳細については、ベイズ最適化を実行する方法を参照してください。
プロパティ
問題定義のプロパティ
この プロパティ は読み取り専用です。
bayesopt で使用した引数 ObjectiveFcn。関数ハンドルとして返されます。bayesopt を直接呼び出す場合、ObjectiveFcn は bayesopt の目的関数引数になります。
データ型: function_handle
この プロパティ は読み取り専用です。
bayesopt で使用した引数 VariableDescriptions。optimizableVariable オブジェクトのベクトルとして返されます。bayesopt を直接呼び出す場合、VariableDescriptions は bayesopt の変数説明引数になります。
この プロパティ は読み取り専用です。
bayesopt で使用したオプション。構造体として返されます。bayesopt を直接呼び出す場合、Options は bayesopt で使用したオプションのセット (名前と値の引数に対応) になります。bayesopt の入力引数を参照してください。
Options には次のフィールドが含まれます。
| オプション名 | 意味 |
|---|---|
AcquisitionFunctionName | 獲得関数名 (ダッシュを削除)。獲得関数のタイプを参照してください。 |
IsObjectiveDeterministic | 目的関数が確定的な場合は true、それ以外の場合は false。 |
ExplorationRatio | AcquisitionFunctionName が 'expectedimprovementplus' または 'expectedimprovement-persecondplus' の場合のみ使用。プラスを参照してください。 |
MaxObjectiveEvaluations | 目的関数の評価制限。 |
MaxTime | 制限時間。 |
XConstraintFcn | 変数の確定的制約。確定的制約 — XConstraintFcnを参照してください。 |
ConditionalVariableFcn | 変数の条件付き制約。条件付き制約 — ConditionalVariableFcnを参照してください。 |
NumCoupledConstraints | 連結制約の個数。連結制約を参照してください。 |
CoupledConstraintTolerances | 連結制約の許容誤差。連結制約を参照してください。 |
AreCoupledConstraintsDeterministic | 各連結制約が確定的であるかどうかを指定する logical ベクトル。 |
Verbose | コマンド ラインの表示レベル。 |
OutputFcn | 各反復後に呼び出される関数。ベイズ最適化の出力関数を参照してください。 |
SaveVariableName | 出力関数 @assignInBase の変数名。 |
SaveFileName | 出力関数 @saveToFile のファイル名。 |
PlotFcn | 各反復後に呼び出されるプロット関数。ベイズ最適化のプロット関数を参照してください。 |
InitialX | bayesopt で目的関数を評価した点。 |
InitialObjective | InitialX における目的関数の値。 |
InitialConstraintViolations | InitialX における連結制約関数の値。 |
InitialErrorValues | InitialX における誤差値。 |
InitialObjectiveEvaluationTimes | InitialX における目的関数の評価時間。 |
InitialIterationTimes | 目的関数の評価および他の計算を含む、各反復の時間。 |
データ型: struct
解のプロパティ
この プロパティ は読み取り専用です。
観測された目的関数の最小値。実数スカラーとして返されます。最適化に連結制約または評価誤差が含まれる場合、この値は、最終的な制約および誤差モデルに準じて実行可能であるすべての観測点における最小値になります。
データ型: double
この プロパティ は読み取り専用です。
目的関数最小値の観測点。1 行 D 列の table として返されます。D は変数の個数です。
データ型: table
この プロパティ は読み取り専用です。
XAtMinEstimatedObjective における目的関数の推定値。実数スカラーとして返されます。
MinEstimatedObjective は、最終的な目的モデルの事後分布の平均値です。MinEstimatedObjective の値は、XAtMinEstimatedObjective をオブジェクト関数 predictObjective に渡して推定されます。
データ型: double
この プロパティ は読み取り専用です。
探索点内において目的関数値の信頼限界の上限が最小になる点。1 行 D 列の table として返されます。D は変数の個数です。探索点の信頼限界の上限は、最終的な目的モデルを使用して求められます。
XAtMinEstimatedObjective は、関数 bestPoint によって既定の基準 ('min-visited-upper-confidence-interval') で返される最適な点と同じです。
データ型: table
この プロパティ は読み取り専用です。
目的関数の評価回数。正の整数として返されます。この回数には、事後モデルを形成するために使用した初期評価と最適化反復時の評価が含まれます。
データ型: double
この プロパティ は読み取り専用です。
秒単位の最適化の合計経過時間。正のスカラーとして返されます。
データ型: double
この プロパティ は読み取り専用です。
最適化継続時の次の評価点。1 行 D 列の table として返されます。D は変数の個数です。
データ型: table
トレースのプロパティ
この プロパティ は読み取り専用です。
目的関数の評価点。T 行 D 列の table として返されます。T は評価点の個数、D は変数の個数です。
データ型: table
この プロパティ は読み取り専用です。
目的関数の値。長さ T の列ベクトルとして返されます。T は評価点の個数です。ObjectiveTrace には目的関数評価の履歴が格納されます。
データ型: double
この プロパティ は読み取り専用です。
目的関数の評価時間。長さ T の列ベクトルとして返されます。T は評価点の個数です。目的関数は連結制約を計算するので、ObjectiveEvaluationTimeTrace には連結制約を評価するために必要な時間が含まれます。
データ型: double
この プロパティ は読み取り専用です。
反復時間。長さ T の列ベクトルとして返されます。T は評価点の個数です。IterationTimeTrace には目的関数の評価時間とその他のオーバーヘッドが含まれます。
データ型: double
この プロパティ は読み取り専用です。
連結制約の値。T 行 K 列の配列として返されます。T は評価点の個数、K は連結制約の個数です。
データ型: double
この プロパティ は読み取り専用です。
誤差指標。-1 または 1 の入力が格納された長さ T の列ベクトルとして返されます。T は評価点の個数です。1 の入力はそれぞれ、XTrace 内の対応する点で目的関数がエラーを発行するか NaN を返すことを示します。-1 の入力はそれぞれ、目的関数の値が計算されることを示します。
データ型: double
この プロパティ は読み取り専用です。
実行可能性の指標。長さ T の logical 列ベクトルとして返されます。T は評価点の個数です。1 の入力はそれぞれ、XTrace 内の対応する点において最終的な制約モデルが実行可能性を予測することを示します。
データ型: logical
この プロパティ は読み取り専用です。
評価点が実行可能である確率。長さ T の列ベクトルとして返されます。T は評価点の個数です。この確率は、XTrace 内の対応する点における、誤差制約モデルを含む最終的な制約モデルに由来します。
データ型: double
この プロパティ は読み取り専用です。
最小実行可能目的関数を与える評価。整数インデックスが格納されている長さ T の列ベクトルとして返されます。T は評価点の個数です。実行可能性は、誤差制約モデルを含む、各反復での制約モデルに関して決定されます。
データ型: double
この プロパティ は読み取り専用です。
観測された目的関数の最小値。長さ T の列ベクトルとして返されます。T は評価点の個数です。
データ型: double
この プロパティ は読み取り専用です。
推定された目的関数の値。長さ T の列ベクトルとして返されます。T は評価点の個数です。各反復で推定される目的関数の値は、その反復における目的モデルを基準に決定されます。各反復で、オブジェクト関数 predictObjective を使用して、探索点内において目的関数値の信頼限界の上限が最小になる点における目的関数の値が推定されます。
データ型: double
この プロパティ は読み取り専用です。
目的関数の補助データ。長さ T の cell 配列として返されます。T は評価点の個数です。cell 配列の各エントリは、目的関数の 3 番目の出力で返される UserData の値です。
データ型: cell
オブジェクト関数
bestPoint | 基準に従った、ベイズ最適化における最適点 |
plot | ベイズ最適化の結果のプロット |
predictConstraints | 一連の点における連結制約違反の予測 |
predictError | 一連の点における誤差値の予測 |
predictObjective | 一連の点における目的関数の予測 |
predictObjectiveEvaluationTime | 一連の点における目的関数の実行回数の予測 |
resume | ベイズ最適化の再開 |
例
この例では、bayesopt を使用して交差検証損失を最小化することにより BayesianOptimization オブジェクトを作成する方法を示します。
ionosphere データに対し、KNN 分類器のハイパーパラメーターを最適化、つまり、交差検証損失が最小になる KNN のハイパーパラメーターを求めます。bayesopt で次のハイパーパラメーターに対する最小化を行います。
1 ~ 30 の最近傍サイズ。
距離関数
'chebychev'、'euclidean'および'minkowski'
再現性を得るため、乱数シードと分割を設定し、AcquisitionFunctionName オプションを 'expected-improvement-plus' に設定します。反復表示を非表示にするには 'Verbose' を 0 に設定します。このデータを組み込む無名関数として fun を作成して、区分 c と近似データ X および Y を目的関数 fun に渡します。関数のパラメーター化 を参照してください。
load ionosphere rng default num = optimizableVariable('n',[1,30],'Type','integer'); dst = optimizableVariable('dst',{'chebychev','euclidean','minkowski'},'Type','categorical'); c = cvpartition(351,'Kfold',5); fun = @(x)kfoldLoss(fitcknn(X,Y,'CVPartition',c,'NumNeighbors',x.n,... 'Distance',char(x.dst),'NSMethod','exhaustive')); results = bayesopt(fun,[num,dst],'Verbose',0,... 'AcquisitionFunctionName','expected-improvement-plus')


results =
BayesianOptimization with properties:
ObjectiveFcn: @(x)kfoldLoss(fitcknn(X,Y,'CVPartition',c,'NumNeighbors',x.n,'Distance',char(x.dst),'NSMethod','exhaustive'))
VariableDescriptions: [1×2 optimizableVariable]
Options: [1×1 struct]
MinObjective: 0.1197
XAtMinObjective: [1×2 table]
MinEstimatedObjective: 0.1213
XAtMinEstimatedObjective: [1×2 table]
NumObjectiveEvaluations: 30
TotalElapsedTime: 30.3867
NextPoint: [1×2 table]
XTrace: [30×2 table]
ObjectiveTrace: [30×1 double]
ConstraintsTrace: []
UserDataTrace: {30×1 cell}
ObjectiveEvaluationTimeTrace: [30×1 double]
IterationTimeTrace: [30×1 double]
ErrorTrace: [30×1 double]
FeasibilityTrace: [30×1 logical]
FeasibilityProbabilityTrace: [30×1 double]
IndexOfMinimumTrace: [30×1 double]
ObjectiveMinimumTrace: [30×1 double]
EstimatedObjectiveMinimumTrace: [30×1 double]
バージョン履歴
R2016b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)