ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

plot

ベイズ最適化の結果のプロット

構文

plot(results,'all')
plot(results,plotFcn1,plotFcn2,...)

説明

plot(results,'all') は、すべての事前定義済みプロット関数を results に対して呼び出します。

plot(results,plotFcn1,plotFcn2,...) は、リストされているプロット関数を results に対して呼び出します。

すべて折りたたむ

この例では、最適化の完了後に誤差モデルと最良の目的関数のトレースをプロットする方法を示します。この例の目的関数はノルムが 2 より大きい点でエラーをスローします。

function f = makeanerror(x)
f = x.x1 - x.x2 - sqrt(4-x.x1^2-x.x2^2);

fun = @makeanerror;

最適化用の変数を作成します。

var1 = optimizableVariable('x1',[-5,5]);
var2 = optimizableVariable('x2',[-5,5]);
vars = [var1,var2];

プロットを行わずに最適化を実行します。再現性を得るために、乱数シードを設定し、'expected-improvement-plus' の獲得関数を使用します。誤差モデルに十分に学習をさせるため、60 回の反復で最適化します。

rng default
results = bayesopt(fun,vars,'MaxObjectiveEvaluations',60,...
    'AcquisitionFunctionName','expected-improvement-plus',...
    'PlotFcn',[],'Verbose',0);

誤差モデルと最良の目的関数のトレースをプロットします。

plot(results,@plotConstraintModels,@plotMinObjective)

入力引数

すべて折りたたむ

ベイズ最適化の結果。BayesianOptimization オブジェクトを指定します。

プロット関数。関数ハンドルを指定します。

いくつかの組み込みプロット関数があります。

モデル プロット — D ≤ 2 の場合に適用説明
@plotAcquisitionFunction

獲得関数の表面をプロットします。

@plotConstraintModels

各制約モデルの表面をプロットします。負の値は実行可能点を示します。

P (実行可能) 表面もプロットします。

存在する場合は –1 から 1 の範囲の誤差モデルもプロットします。負の値はモデルで誤差が生じないらしいことを、正の値は誤差が生じるらしいことを意味します。モデルは以下のようになります。

Plotted error = 2*Probability(error) – 1.

@plotObjectiveEvaluationTimeModel

目的関数の評価時間モデルの表面をプロットします。

@plotObjectiveModel

fun モデルの表面、最小値の推定位置、および次に評価する予定になっている点の位置をプロットします。1 次元問題の場合、平均関数から 1 信頼区間分上下と平均から 1 ノイズ標準偏差分上下に包絡線をプロットします。

トレース プロット — すべての D に適用説明
@plotObjective

観測された各関数値と関数評価の個数の関係をプロットします。

@plotObjectiveEvaluationTime

観測された各関数評価の実行時間と関数評価の個数の関係をプロットします。

@plotMinObjective

観測および推定された最小の関数値と関数評価の個数の関係をプロットします。

@plotElapsedTime

最適化の合計経過時間、関数評価の合計時間、モデリングおよび点選択の合計時間という 3 つの曲線を関数評価の個数に対する関係としてプロットします。

独自のプロット関数に対するハンドルを含めることができます。詳細は、ベイズ最適化のプロット関数を参照してください。

例: @plotObjective

データ型: 関数ハンドル

代替機能

bayesopt の名前と値のペア PlotFcn でプロット関数を指定できます。これにより、最適化の進行状況を監視できます。

R2016b で導入