主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

ベイズ最適化の目的関数

目的関数の構文

bayesoptは目的関数を最小化しようとします。代わりに関数を最大化するには,最大化する関数の負数を目的関数として設定します。関数を最大化を参照してください。目的関数に追加のパラメーターを含めるには,関数のパラメーター化を参照してください。

bayesoptは変数のテーブルを目的関数に渡します。変数は宣言された名前と型をもちます。ベイズ最適化用の変数を参照してください。

目的関数のシグネチャは次のとおりです。

(目标,coupledconstraints,用户数据)=乐趣(x)
  1. 客观的- - - - - -xにおける目的関数の値,実数スカラー。

  2. coupledconstraints——存在する場合は連結制約の値(オプションの出力),実数値のベクトル。負の値は制約が満たされることを,正の値は満たされないことを示します。詳細は,連結制約を参照してください。

  3. 用户数据——プロットや対数化などでさらに使用するために関数で返すことができるオプションデータ(オプションの出力)。たとえば,ベイズ最適化のプロット関数を参照してください。

目的関数の例

この目的関数は,盒子およびσというパラメーターがあるSVMモデルの交差検証近似における損失を返します。また,サポートベクターの個数が100を超える場合に正(実行不可能)になる連結制約関数も返します(100は実行可能,101は実行不可能)。

函数[objective,constraint] = mysvmfun(x,cdata,grp)“KernelFunction”“rbf”...“BoxConstraint”x.box,...“KernelScale”, x.sigma);目标= kfoldLoss (crossval (SVMModel));约束= sum(SVMModel.SupportVe金宝appctors) - 100.5;

目的関数を使用するには,ワークスペースにcdatagrpが存在すると仮定して,データを組み込む無名関数を作成します(関数のパラメーター化を参照)。

有趣= @ (x) mysvmfun (x, cdata, grp);结果= bayesopt(有趣,var)%假设var存在

目的関数のエラー

目的関数が有限の実数スカラー以外を返した場合,bayesoptは目的関数がエラーを返したと見なします。たとえば,複素数値,,または複数のエントリが含まれている行列を目的関数が返した場合,bayesoptは目的関数でエラーが発生したと見なします。エラーに遭遇した場合,bayesoptは最適化を続行し,エラー発生点のベイズモデルを自動的に更新します。このベイズモデルは“エラーモデル”です。bayesoptはエラーモデルを連結制約として組み込みます。連結制約を参照してください。

エラーが存在する場合,bayesoptの名前と値のペアPlotFcn@plotConstraintModelsに設定するとエラーモデルをプロットできます。または,ベイズ最適化の結果に対して遡及的に情节を呼び出して@plotConstraintModelsを含めることができます。

関連するトピック