bayesopt
R2026bベイズ最適化を使用した最適な機械学習のハイパーパラメーターの選択
説明
は、results = bayesopt(fun,vars)fun(vars) を最小化する vars の値を求めようとします。
メモ
目的関数に追加のパラメーターを含めるには、関数のパラメーター化を参照してください。
は、引数 results = bayesopt(fun,vars,Name,Value)Name,Value に従って最適化プロセスを修正します。
例
この例では、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: 13.9809
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]
連結制約は、目的関数を評価することによってのみ評価できる制約です。このケースでは、目的関数は SVM モデルの交差検証損失です。連結制約は、「サポート ベクターの個数が 100 を超えない」です。モデルの詳細については、bayesopt を使用した交差検証分類器の最適化を参照してください。
分類用のデータを作成します。
rng default grnpop = mvnrnd([1,0],eye(2),10); redpop = mvnrnd([0,1],eye(2),10); redpts = zeros(100,2); grnpts = redpts; for i = 1:100 grnpts(i,:) = mvnrnd(grnpop(randi(10),:),eye(2)*0.02); redpts(i,:) = mvnrnd(redpop(randi(10),:),eye(2)*0.02); end cdata = [grnpts;redpts]; grp = ones(200,1); grp(101:200) = -1; c = cvpartition(200,'KFold',10); sigma = optimizableVariable('sigma',[1e-5,1e5],'Transform','log'); box = optimizableVariable('box',[1e-5,1e5],'Transform','log');
目的関数は、分割 c における SVM モデルの交差検証損失です。連結制約は、サポート ベクターの個数から 100.5 を減算した値です。このようにすると、100 個のサポート ベクターでは負の制約値、101 個のサポート ベクターでは正の制約値になります。モデルには 200 個のデータ点があるので、連結制約の値の範囲は -99.5 (少なくとも 1 つのサポート ベクターが常にあります) から 99.5 になります。正の値は、制約が満たされないことを意味します。
function [objective,constraint] = mysvmfun(x,cdata,grp,c) SVMModel = fitcsvm(cdata,grp,'KernelFunction','rbf',... 'BoxConstraint',x.box,... 'KernelScale',x.sigma); cvModel = crossval(SVMModel,'CVPartition',c); objective = kfoldLoss(cvModel); constraint = sum(SVMModel.IsSupportVector)-100.5;
このデータを組み込む無名関数として fun を作成して、区分 c と近似データ cdata および grp を目的関数 fun に渡します。関数のパラメーター化 を参照してください。
fun = @(x)mysvmfun(x,cdata,grp,c);
連結制約があることをオプティマイザーが認識できるようにするため、NumCoupledConstraints を 1 に設定します。制約モデルをプロットするようにオプションを設定します。
results = bayesopt(fun,[sigma,box],'IsObjectiveDeterministic',true,... 'NumCoupledConstraints',1,'PlotFcn',... {@plotMinObjective,@plotConstraintModels},... 'AcquisitionFunctionName','expected-improvement-plus','Verbose',0);



ほとんどの点でサポート ベクターが実行不可能な数になります。
目的関数を並列評価することにより、ベイズ最適化を高速化します。
ベイズ最適化の目的関数と変数を準備します。
目的関数は電離層データの交差検証誤差率であり、バイナリ分類問題です。分類器として fitcsvm を使用し、最適化するパラメーターとして BoxConstraint と KernelScale を使用します。
load ionosphere box = optimizableVariable('box',[1e-4,1e3],'Transform','log'); kern = optimizableVariable('kern',[1e-4,1e3],'Transform','log'); vars = [box,kern]; fun = @(vars)kfoldLoss(fitcsvm(X,Y,'BoxConstraint',vars.box,'KernelScale',vars.kern,... 'Kfold',5));
並列ベイズ最適化を使用して、交差検証誤差が最小になるパラメーターを求めます。
results = bayesopt(fun,vars,'UseParallel',"auto");
Copying objective function to workers... Done copying objective function to workers. |===============================================================================================================| | Iter | Active | Eval | Objective | Objective | BestSoFar | BestSoFar | box | kern | | | workers | result | | runtime | (observed) | (estim.) | | | |===============================================================================================================| | 1 | 8 | Best | 0.35897 | 0.43113 | 0.35897 | 0.35897 | 0.40251 | 972.28 | | 2 | 5 | Accept | 0.2735 | 0.35759 | 0.13105 | 0.13108 | 0.0073203 | 1.1872 | | 3 | 5 | Accept | 0.35897 | 0.43324 | 0.13105 | 0.13108 | 0.63346 | 220.31 | | 4 | 5 | Accept | 0.35897 | 0.35374 | 0.13105 | 0.13108 | 0.24185 | 444.02 | | 5 | 5 | Best | 0.13105 | 0.44184 | 0.13105 | 0.13108 | 5.0836 | 0.72159 | | 6 | 8 | Accept | 0.35897 | 0.3364 | 0.13105 | 0.13108 | 0.001523 | 6.6025 | | 7 | 7 | Best | 0.12251 | 0.96223 | 0.12251 | 0.12248 | 163.62 | 1.0859 | | 8 | 7 | Accept | 0.13675 | 0.15345 | 0.12251 | 0.12248 | 0.00057863 | 0.03485 | | 9 | 8 | Best | 0.12251 | 5.0941 | 0.12251 | 0.12247 | 79.314 | 0.23745 | | 10 | 8 | Best | 0.11681 | 3.6766 | 0.11681 | 0.11681 | 0.00010105 | 0.0021766 | | 11 | 8 | Accept | 0.12536 | 0.76818 | 0.11681 | 0.11684 | 0.00067795 | 0.008468 | | 12 | 8 | Accept | 0.1396 | 0.13774 | 0.11681 | 0.11686 | 0.00010151 | 0.018378 | | 13 | 8 | Best | 0.11681 | 6.7533 | 0.11681 | 0.11682 | 1.1073 | 0.029597 | | 14 | 8 | Accept | 0.35897 | 10.343 | 0.11681 | 0.11683 | 0.0043988 | 0.00016235 | | 15 | 8 | Accept | 0.42735 | 10.85 | 0.11681 | 0.11683 | 0.00019424 | 0.00011564 | | 16 | 8 | Accept | 0.13105 | 0.68293 | 0.11681 | 0.11686 | 0.020153 | 0.026947 | | 17 | 8 | Accept | 0.11966 | 0.74639 | 0.11681 | 0.11686 | 0.051164 | 0.085724 | | 18 | 7 | Accept | 0.37037 | 10.87 | 0.11681 | 0.11813 | 12.768 | 0.0001878 | | 19 | 7 | Accept | 0.1396 | 4.3291 | 0.11681 | 0.11813 | 0.0007238 | 0.0017604 | | 20 | 7 | Accept | 0.12536 | 0.37312 | 0.11681 | 0.11841 | 937.11 | 5.8447 | |===============================================================================================================| | Iter | Active | Eval | Objective | Objective | BestSoFar | BestSoFar | box | kern | | | workers | result | | runtime | (observed) | (estim.) | | | |===============================================================================================================| | 21 | 6 | Accept | 0.11681 | 1.7566 | 0.10826 | 0.11376 | 85.271 | 0.58561 | | 22 | 6 | Best | 0.10826 | 1.2581 | 0.10826 | 0.11376 | 0.0022409 | 0.0036947 | | 23 | 8 | Accept | 0.11681 | 1.0645 | 0.10826 | 0.11329 | 947.4 | 2.298 | | 24 | 8 | Accept | 0.11681 | 1.9604 | 0.10826 | 0.114 | 0.00012601 | 0.0043727 | | 25 | 7 | Accept | 0.61823 | 11.414 | 0.10826 | 0.11418 | 992.51 | 0.00010403 | | 26 | 7 | Accept | 0.1396 | 0.27149 | 0.10826 | 0.11418 | 0.00010192 | 0.0045053 | | 27 | 7 | Accept | 0.12821 | 0.87518 | 0.10826 | 0.11361 | 0.92891 | 0.12556 | | 28 | 7 | Accept | 0.11111 | 2.5016 | 0.10826 | 0.11974 | 0.0001471 | 0.0046021 | | 29 | 5 | Accept | 0.14245 | 2.3354 | 0.10826 | 0.11986 | 896.07 | 1.8353 | | 30 | 5 | Accept | 0.12536 | 1.181 | 0.10826 | 0.11986 | 0.0044875 | 0.0051414 | | 31 | 5 | Accept | 0.35897 | 0.075428 | 0.10826 | 0.11986 | 994.36 | 996.96 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 31 Total elapsed time: 32.4625 seconds


Total objective function evaluation time: 82.7875
Best observed feasible point:
box kern
_________ _________
0.0022409 0.0036947
Observed objective function value = 0.10826
Estimated objective function value = 0.11772
Function evaluation time = 1.2581
Best estimated feasible point (according to models):
box kern
_________ _________
0.0001471 0.0046021
Estimated objective function value = 0.11986
Estimated function evaluation time = 1.0232
関数 bestPoint を使用して、ベイズ モデル results 内の最適な実行可能点を取得します。既定の基準 min-visited-upper-confidence-interval を使用します。この基準では、目的関数の値に対して信頼区間の上限を最小化する探索済みの点が最適な実行可能点になります。
zbest = bestPoint(results)
zbest = 1×2 table
box kern
_________ _________
0.0001471 0.0046021
Get insights using Copilot
table zbest には、名前と値のペアの引数 'BoxConstraint' および 'KernelScale' に最適な推定値が格納されます。これらの値を使用して、最適化された新しい分類器に学習をさせます。
Mdl = fitcsvm(X,Y,'BoxConstraint',zbest.box,'KernelScale',zbest.kern);
最適なパラメーターが Mdl に含まれていることを確認します。
Mdl.BoxConstraints(1)
ans = 1.4710e-04
Mdl.KernelParameters.Scale
ans = 0.0046
入力引数
目的関数。関数ハンドル、または Value が関数ハンドルである parallel.pool.Constant (Parallel Computing Toolbox) として指定します。通常 fun は、学習を制御するための調整可能なハイパーパラメーターがある、機械学習モデルの損失の尺度 (誤分類誤差など) を返します。fun のシグネチャは次のとおりです。
objective = fun(x) % or [objective,constraints] = fun(x) % or [objective,constraints,UserData] = fun(x)
fun は、1 行 D 列の変数値 table x を受け入れ、目的関数値 fun(x) を表す実数スカラー objective を返します。
オプションとして、fun は以下も返します。
constraints。連結制約違反が格納されている実数ベクトル。定義については、連結制約を参照してください。constraint(j) > 0の場合、制約jに違反しています。constraint(j) < 0の場合、制約jは満たされています。UserData。任意のタイプ (スカラー、行列、構造体、オブジェクトなど) のエンティティ。UserDataを使用するカスタム プロット関数の例については、カスタム プロット関数の作成を参照してください。
bayesopt における parallel.pool.Constant の使用の詳細については、ワーカーへの目的関数の配置を参照してください。
例: @objfun
データ型: function_handle
変数の説明。調整対象のハイパーパラメーターを定義する optimizableVariable オブジェクトのベクトルを指定します。
例: [X1,X2]。ここで X1 と X2 は optimizableVariable オブジェクト
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、、Name を引用符で囲みます。
例: results = bayesopt(fun,vars,'AcquisitionFunctionName','expected-improvement-plus')
アルゴリズムの制御
次の評価点を選択するための関数。リストされている選択肢のいずれかを指定します。
オブジェクト関数のランタイムによって最適化が異なるので、名前に per-second が含まれている獲得関数は、再現性がある結果を生成しません。名前に plus が含まれている獲得関数は、領域を過剰利用している場合に動作を変更します。詳細は、獲得関数のタイプを参照してください。
例: 'AcquisitionFunctionName','expected-improvement-per-second'
確定的目的関数の指定。false または true を指定します。fun が確率的である (つまり同じ x に対して異なる値を fun(x) が返す可能性がある) 場合は、IsObjectiveDeterministic を false に設定します。この場合、bayesopt は最適化時にノイズ レベルを推定します。
例: 'IsObjectiveDeterministic',true
データ型: logical
調査の傾向。正の実数を指定します。'expected-improvement-plus' および 'expected-improvement-per-second-plus' の獲得関数に適用されます。プラスを参照してください。
例: 'ExplorationRatio',0.2
データ型: double
GPActiveSetSize 個以下の点へのガウス過程モデルの当てはめ。正の整数を指定します。bayesopt が GPActiveSetSize 個を超える点に到達した場合、GP モデルを使用する以後の反復では GPActiveSetSize 個の点にモデルが当てはめられます。bayesopt は、到達した点の中から無作為な点を一様に非復元抽出で選択します。使用する点の数が少なくなると GP モデルの当てはめが高速になりますが、代償として精度が低下する可能性があります。
例: 'GPActiveSetSize',80
データ型: double
ワーカーの並列プールを使用して計算を並列実行するためのオプション。次のいずれかの値を指定します。
"off"— MATLAB® クライアントで逐次実行します。"auto"— 並列プールが開いている場合、または MATLAB が並列プールを自動的に作成できる場合は、その並列プールを使用します。並列プールが利用できない場合は、MATLAB クライアントでシリアル実行します。"on"— 並列プールが開いている場合、または MATLAB が並列プールを自動的に作成できる場合は、その並列プールを使用します。並列プールが利用できない場合は、エラーをスローします。
並列プールが開いておらず、自動プール作成が有効になっている場合、MATLAB は既定のクラスター プロファイルを使用して並列プールを開きます。MATLAB で並列プールを使用して計算を実行するには、Parallel Computing Toolbox™ が必要です。詳細については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
bayesopt は並列ワーカー上で、目的関数の並列評価を同時実行します。アルゴリズムの詳細については、並列ベイズ最適化を参照してください。
R2026b より前: 並列実行するには、UseParallel を true に設定します。
例: 'UseParallel',"auto"
データ型: char | string
並列ワーカーの目的関数値への補定法。'clipped-model-prediction'、'model-prediction'、'max-observed' または 'min-observed' を指定します。新しい評価対象点を生成するため、bayesopt はワーカーで評価されている点を含むすべての点にガウス過程を当てはめます。ガウス過程を当てはめるため、bayesopt は現在ワーカー上にある点に目的関数の値を補完します。ParallelMethod は、補定に使用する方法を指定します。
'clipped-model-prediction'— 次の数量の最大値を補定します。点
xにおけるガウス過程予測の平均到達した実行可能点で観測された最小の目的関数
すべての実行可能点における最小のモデル予測
'model-prediction'— 点xにおけるガウス過程予測の平均を補定します。'max-observed'— 実行可能点で観測された目的関数の最大値を補定します。'min-observed'— 実行可能点で観測された目的関数の最小値を補定します。
例: 'ParallelMethod','max-observed'
アクティブな並列ワーカーの個数の許容誤差。正の整数を指定します。bayesopt は、評価対象の点を割り当てた後で、新しい割り当て対象の点を計算する前に、アクティブなワーカーの個数が MinWorkerUtilization 未満であるかどうかをチェックします。そうである場合、bayesopt は範囲内の無作為な点をすべての使用可能なワーカーに割り当てます。それ以外の場合、bayesopt は 1 つのワーカーについて最適な点を計算します。bayesopt が無作為な点を作成する速度は点を当てはめる場合よりはるかに高速なので、この動作によりワーカーの使用率が向上しますが、点が適切ではなくなる可能性があるという代償があります。詳細については、並列ベイズ最適化を参照してください。
例: 'MinWorkerUtilization',3
データ型: double
開始と停止
目的関数の評価制限。正の整数を指定します。
例: 'MaxObjectiveEvaluations',60
データ型: double
初期評価点の個数。正の整数を指定します。bayesopt は、各変数の Transform の設定に従って ('none' の場合は均等に、'log' の場合は対数間隔で)、変数の範囲内で評価点を無作為に選択します。
例: 'NumSeedPoints',10
データ型: double
制約
変数の確定的制約。関数ハンドルを指定します。
詳細は、確定的制約 — XConstraintFcnを参照してください。
例: 'XConstraintFcn',@xconstraint
データ型: function_handle
変数の条件付き制約。関数ハンドルを指定します。
詳細は、条件付き制約 — ConditionalVariableFcnを参照してください。
例: 'ConditionalVariableFcn',@condfun
データ型: function_handle
連結制約の個数。正の整数を指定します。詳細は、連結制約を参照してください。
メモ
連結制約がある場合、NumCoupledConstraints は必須です。
例: 'NumCoupledConstraints',3
データ型: double
連結制約が確定的かどうかの指標。長さ NumCoupledConstraints の logical ベクトルを指定します。詳細は、連結制約を参照してください。
例: 'AreCoupledConstraintsDeterministic',[true,false,true]
データ型: logical
レポート、プロットおよび中断
コマンド ラインの表示レベル。0、1 または 2 を指定します。
0— コマンド ラインの表示を行いません。1— 各反復について、反復回数、結果レポート (次の段落を参照)、目的関数のモデル、目的関数の評価時間、観測された目的関数の最適な (最小) 値、目的関数の最適な (最小) 推定値、および観測された制約値 (存在する場合) を表示します。並列で最適化を行う場合、ジョブを次のワーカーに割り当てた後でカウントしたアクティブなワーカーの個数を示す列も表示に含まれます。各反復の結果レポートは以下のいずれかになります。
Accept— 目的関数が有限値を返し、すべての制約が満たされています。Best— 制約が満たされており、目的関数は実行可能点の最小値を返します。Error— 有限の実数スカラーではない値を目的関数が返しました。Infeas— 少なくとも 1 つの制約に違反しています。
2—1と同じ情報に加えて、次の点を選択するための時間、モデルを当てはめた時間、"plus" の獲得関数で過剰利用が判断されたかどうか、並列利用率が低いため無作為な点に並列ワーカーが割り当てられているかどうかなどの診断情報も表示します。
例: 'Verbose',2
データ型: double
各反復後に呼び出される関数。関数ハンドルまたは関数ハンドルの cell 配列を指定します。出力関数では、ソルバーを停止させることができ、変数の作成やプロットなど任意の計算を実行できます。複数の出力関数を指定するには、関数ハンドルの cell 配列を使用します。
2 つの組み込み出力関数があります。
@assignInBase— 各反復でBayesianOptimizationのインスタンスを構築し、ベース ワークスペース内の変数に割り当てます。名前と値のペアSaveVariableNameを使用して変数名を選択します。@saveToFile— 各反復でBayesianOptimizationのインスタンスを構築し、現在のフォルダー内のファイルに保存します。名前と値のペアSaveFileNameを使用してファイル名を選択します。
独自の出力関数を作成できます。詳細は、ベイズ最適化の出力関数を参照してください。
例: 'OutputFcn',{@saveToFile @myOutputFunction}
データ型: cell | function_handle
出力関数 @saveToFile のファイル名。文字ベクトルまたは string スカラーを指定します。ファイル名には '../optimizations/September2.mat' などのパスを含めることができます。
例: 'SaveFileName','September2.mat'
データ型: char | string
出力関数 @assignInBase の変数名。文字ベクトルまたは string スカラーを指定します。
例: 'SaveVariableName','September2Results'
データ型: char | string
各反復後に呼び出されるプロット関数。'all'、関数ハンドル、または関数ハンドルの cell 配列を指定します。プロット関数では、ソルバーを停止させることができ、変数の作成など任意の計算をプロットに加えて実行できます。
プロット関数を使用しない場合は [] を指定します。
'all' の場合、すべての組み込みプロット関数が呼び出されます。複数のプロット関数を指定するには、関数ハンドルの cell 配列を使用します。
組み込みプロット関数を次の表に示します。
| モデル プロット — D ≤ 2 の場合に適用 | 説明 |
|---|---|
@plotAcquisitionFunction | 獲得関数の表面をプロットします。 |
@plotConstraintModels | 各制約モデルの表面をプロットします。負の値は実行可能点を示します。 P (実行可能) 表面もプロットします。 存在する場合は Plotted error = 2*Probability(error) – 1. |
@plotObjectiveEvaluationTimeModel | 目的関数の評価時間モデルの表面をプロットします。 |
@plotObjectiveModel |
|
| トレース プロット — すべての D に適用 | 説明 |
|---|---|
@plotObjective | 観測された各関数値と関数評価の個数の関係をプロットします。 |
@plotObjectiveEvaluationTime | 観測された各関数評価の実行時間と関数評価の個数の関係をプロットします。 |
@plotMinObjective | 観測および推定された最小の関数値と関数評価の個数の関係をプロットします。 |
@plotElapsedTime | 最適化の合計経過時間、関数評価の合計時間、モデル化および点選択の合計時間という 3 つの曲線を関数評価の個数に対する関係としてプロットします。 |
独自のプロット関数を作成できます。詳細は、ベイズ最適化のプロット関数を参照してください。
メモ
連結制約がある場合、反復表示とプロット関数は次のような直観的ではない結果を与える可能性があります。
"最小目的" のプロットが増加します。
最適化において、以前に実行可能点が示された場合でも、問題が実行不可能であると宣言される場合があります。
このようになるのは、点が実行可能かどうかの判断が最適化の進行に応じて変化する可能性があるためです。bayesopt は制約モデルに関して実行可能性を判断しますが、このモデルは bayesopt が点を評価すると変化します。したがって、最小の点が後から実行不可能と判断された場合は "最小目的" プロットが増加し、反復表示には、後から実行不可能と判断される実行可能点が表示される可能性があります。
例: 'PlotFcn','all'
データ型: char | string | cell | function_handle
初期化
初期評価点。N 行 D 列の table を指定します。N は評価点の個数、D は変数の個数です。
メモ
InitialX のみを指定した場合、評価対象の初期点として解釈されます。目的関数は InitialX で評価されます。
他の初期化パラメーターも指定した場合、InitialX は事前関数評価データとして解釈されます。目的関数は評価されません。欠損値は NaN に設定されます。
データ型: table
InitialX に対応する目的関数の値。長さ N のベクトルを指定します。N は評価点の個数です。
例: 'InitialObjective',[17;-3;-12.5]
データ型: double
連結制約の制約違反。N 行 K 列の行列を指定します。N は評価点の個数、K は連結制約の個数です。詳細は、連結制約を参照してください。
データ型: double
InitialX のエラー。入力が -1 または 1 である長さ N のベクトルを指定します。N は評価点の個数です。エラーなしの場合は -1、エラーの場合は 1 を指定します。
例: 'InitialErrorValues',[-1,-1,-1,-1,1]
データ型: double
InitialX に対応する初期データ。長さ N の cell ベクトルを指定します。N は評価点の個数です。
例: 'InitialUserData',{2,3,-1}
データ型: cell
InitialX における目的関数の評価時間。長さ N のベクトルを指定します。N は評価点の個数です。時間の単位は秒です。
データ型: double
最初の N 回の反復の時間。長さ N のベクトルを指定します。N は評価点の個数です。時間の単位は秒です。
データ型: double
出力引数
ベイズ最適化の結果。BayesianOptimization オブジェクトとして返されます。
ヒント
拡張機能
bayesopt 関数は自動並列サポートに対応しています。計算を並列実行するには、UseParallel 引数を "on" または "auto" に設定します。
詳細については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2016b で導入UseParallel の名前と値の引数では、従来の true または false の代わりに、"off"、"auto"、または "on" を指定できるようになりました。この変更により、並列実行で並列プールを使用するタイミングをより細かく制御できます。UseParallel の名前と値の引数を true または false として指定することは非推奨です。
目的に応じてコードを更新する方法を次の表に示します。
| 目的 | 非推奨 | 推奨 |
|---|---|---|
MATLAB クライアントで実行されるコードを作成する。 | UseParallel=false | UseParallel="off" |
| 並列プール上で実行され、並列プールが利用できない場合は MATLAB クライアントで実行される、移植可能なコードを作成する。 | UseParallel=true | UseParallel="auto" |
| 並列プール上で実行され、並列プールが利用できない場合はエラーを返すコードを作成する。 | 該当なし | UseParallel="on" |
true 値、および false 値のサポートを削除する予定はありません。
UseParallel=true の場合にソフトウェアで並列プールを開けないと、bayesopt は既定で逐次計算を実行します。
以前のリリースでは、このような状況でソフトウェアからエラーが発行されます。
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)