主要内容

。

ベイズ最适化の制约

範囲

Bayesopt.では,すべての変数で範囲が有限である必要があります(性質上,分类変数は可能値に限制されますます値値または値値値数の优化的不变性で渡します。

Bayesopt.は,これらの范囲を使し均等またはスケール点を抽出ますます点スケールは。优化的不变性で设定します。

たとえば,参数X1を対数スケールで1E-61E3.の间の値に制约するに,次のようにます。

xvar = optimizableVariable ('x1',[1e-6,1e3],“转换”'日志'

Bayesopt.したがっ端点,対数変换されるのとしててとしてててて使ことはませ使ことてて使ことて使こと使使使使使使使使使使使使使使使使使使使使使使使て使使使使使使使使使。

ヒント

対数変換される変数の下限としてゼロを使用するには,下限を1に設定し,目的関数の内部でX-1を使用します。

确定的制约 -XConstraintFcn

问题が有条,または明确に定义されいる状态が"実行可能領域"と呼ばれる特价の内内点についてのみのがありますます场があります。确定的制约はははははははははははは実能能能が真正的を,実行不可なな合错误的〖,〗,确定的制约は确率ん。

ヒント

最最适をを矩形领域にに制制はは,确定的制约ではなく优化的不变性の范囲を使使用するがが的です。

确定的制约关关数を记述するにはは,次次シグネチャを使し。

tf = xconstraint(x)
  • Xは,幅がdで高さが任意のテーブル。

  • TF.は,x(我,:)がが行可能な场のみTF(i)=真实になる致理性列ベクトル。

确定的存在关节,Bayesopt.の名前と値のペアXConstraintFcnで渡します。たとえば,以下のようにし。

结果= Bayesopt(乐趣,vars,'xconstraintfcn',@ xconstraint)

Bayesopt.は数千個の点に対して確定的制約を評価するので,制約関数をベクトル化すると実行が高速になります。ベクトル化を参照してください。

たとえば,'x1'および'x2'という名前の変数は,ベクトル[x1 x2]のノルムが6.未満でx1 <= x2の结合に実であるとします。

函数tf1 =√(X. X. X.)^2 + x ^2) < 6;tf2 = X.x1 <= X.x2;Tf = tf1 & tf2;

条件付き制约 -ConnitionalvarifiedFcn.

条件付き制約は,次の2つの条件のいずれかを適用する関数です。

  • 单位ののがの値の场のににののにに値にににににに

  • 一流の数量が特征の値ののに,他他函数が(カテゴリカル分数のの合<定义>)値値なる。

条件付き制约を指定するにには,Bayesopt.の名前と値のペアConnitionalvarifiedFcn.@condvarifeierefcn.など关关数ハンドルに设定します。@condvarifeierefcn.の关关节は次ようようなってなけれなければませんいばなりませ。

xnew = condvarifeyfcn(x)
  • Xは,幅がD.で高さが任意のテーブルです。

  • Xnew.は,Xと同じ型およびサイズのテーブルです。

Condvarifeyfcn.では,Xに等しくなるようにXnew.を設定しますが,さらにXnew.の各行のするするをににかなっ値设定ししますしししますますしししししし设定しし

メモ

条件付き制約と確定的制約の両方がある場合,Bayesopt.は条件付き制約を先に適用します。したがって,条件付き制約関数で変数をまたは<定义>に設定する可能性がある場合,これらの値を確定的制約関数で正しく処理できるようにする必要があります。

条件条件付き制约,変値値に実します。したがっしたがっ,まずBayesopt.は条件付き制約を適用し,渡されるすべての値を実体的なものとします。

変数値を設定する条件付き制約

fitcdiscrを使用して分類を最適化しており,名前と値のペアの引数'isstrimtype'および“伽马”のの方についてについて最适しいるととます。'isstrimtype'が二次タイプのいずれかである場合,“伽马”0.でないでないとソルバーでエラーが発ししますこのようようなケースは,次の条件付きは,次の条件付き关键。

函数XTable = fitcdiscrCVF (XTable)如果判别类型是二次立法,则%伽玛必须为0xtable.gamma(ismember(xtable.discrimtype,{“二次”......'diagquadratic'“pseudoQuadratic”}))= 0;结尾

変数をに設定する条件付き制約

fitcsvmを使用して分類を最適化しており,名前と値のペアの引数“KernelFunction”および'polynomialOrder'のの方についてについて最适しいるととます。“KernelFunction”多项式的ではない場合,'polynomialOrder'の設定は適用されません。次の関数は,この条件付き制約を強制します。

函数xnew = condvariaizefcn(x)xnew = x;xnew.polynomialorder(xnew.kernelfunction〜=多项式的) =南;

次のようにと,コードコード行数をするするます。

函数x = condvariabiesefcn(x)x.polynomialorder(xnew.kernelfunction〜=多项式的) =南;

さらに,'polynomialOrder'の値がである结合は名称と値のペアのの'polynomialOrder'fitcsvmに渡さない目的关关を定义します。

Fun = @(x)mysvmfun(x,预测器,responce,c)函数目标= mysvmfun(x,predictors,响应,c)args = {预测器,响应,......“CVPartition”c......“KernelFunction”X.KernelFunction};如果~isnan(x .多项式)args = [args,{'polynomialOrder', X.PolynomialOrder}];结尾目标= kfoldLoss (fitcsvm (args {:}));结尾

连结制约

"連結制約"は,目的関数を呼び出すことによってのみ評価できる制約です。この制約は,確率的にも確定的にもすることができます。これらの制約値は2番目の引数で目的関数から返します。ベイズ最適化の目的関数を参照してください。

目连结制约ある,各连结のある,连结エントリ,负で,负のことますます(実行と呼びますをますますますますますますますますますますますますますますますますますますますますことことエントリエントリエントリエントリエントリエントリエントリ示しエントリエントリエントリ値は制约が満たされことことことことこと

Bayesopt.は,エラー制約と呼ばれる連結制約をすべての実行で自動的に作成します。この制約により,目的関数の評価でエラーが発生する点をBayesopt.ででモデルできでき。详细详细について,目的关键词redicterror.を参照してください。

エラー制约に加入て连结があるある综合,

  • Bayesopt.の呼び出しに,名称と値のペアnumcoupledconstraints.を含めます(必须)。この数にエラー制约は含めないでください。

  • いずれかの連結制約が確率的である場合,名前と値のペアarecoupledconstraintsdeterministic.を使用し,確率的制約について错误的を渡します。

各各反复における连结连结制约のを确认するするは,Bayesopt.の名前と値のペア详细的1または2に设定します。

メモ

連結制約がある場合,反復表示とプロット関数は次のような直観的ではない結果を与える可能性があります。

  • “最小嘴的”ののが増加する

  • 最最型において,以前に実行可点がれたたで,问题が実行不可能であるとされるれる场がある。

このようになるの,点が実行可かどう判断判断がの进応じBayesopt.は制约モデルに关键词実行可能性判断しが,このモデルはBayesopt.がが点を评価するととと変ししして,最小の点后から実行不可能判断されたたは“最小嘴”プロットが増加し,反复表示には,后から行行不到,不可能可能点がされる可能性があります。

たとえば,连结连结制约があるあるベイズ最最化を参照してください。

连结连结制约があるあるベイズ最最化

连结ケースははですによってではです。连结制约は,「は,」。モデルのは検证损失。モデルの详细については,Bayesoptをを用しし検证検证済みsvm分布器の最适化を参照してください。

分别用来のを作物成品。

rng默认GRNPOP = MVNRND([1,0],眼睛(2),10);Redpop = mvnrnd([0,1],眼睛(2),10);Redpts =零(100,2);grnpts = redpts;为了i = 1:100 gnpts(i,:) = mvnrnd(grnpop(randi(10),:),眼睛(2)* 0.02);redpts(i,:) = mvnrnd(Redpop(randi(10),:),眼睛(2)* 0.02);结尾cdata = [grnpts; redpts];GRP = ONE(200,1);GRP(101:200)= -1;c = cvpartition(200,'kfold',10);sigma =优化的不变性('sigma',[1e-5,1e5],“转换”'日志');盒子=优化不变('盒子',[1e-5,1e5],“转换”'日志');

附近,分享Cにおけるsvmモデルの交差交差损失ですです。连结制约は,サポートベクターの个からからこのにし値です。このようにする値ですこの个するとは负制约値,101个サポートベクターで正の制约値になります。モデルには200个のデータ点あるので,连结制约の値のは-99.5(少なくとも1つのサポートベクター常にありますますます。正のは,制约がはさされないことことを意味しし

函数[objective,constraint] = mysvmfun(x,cdata,grp,c)“KernelFunction”'rbf'......'boxconstraint'x.box,......'kernelscale', x.sigma);cvModel = crossval (SVMModel,“CVPartition”,C);目标= kfoldloss(cvmodel);约束= sum(svmmodel.issupportve万博1manbetxctor)-100.5;

关このを组み込む名词关键词有趣的を作成して,区分Cと近似データcdata.およびGRP.を目的有关有趣的に渡します。关关のパラメーター化を参照してください。

有趣= @ (x) mysvmfun (x, cdata, grp, c);

numcoupledconstraints.1に设定します。制约制约モデルをプロットするようにオプションを设定ししオプションを设定しし

结果= Bayesopt(乐趣,[Sigma,Box],'IsobjectiveDeterministic',真的,......'numcoupledconstraints',1,“PlotFcn”......{@ plotminobjective,@ plotconstraintmodels},......'获取功能名称'“expected-improvement-plus”'verbose', 0);

ほとんどの点でサポートベクターが実行不可能な数になります。

参考

|

関連するトピック