主要内容

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

ベイズ最适化制约

范囲

贝叶斯では,変数でが有限であるがますます(性质性质,,分类変数は値限定さますますます。値または値の変数の下限と上限はは优化视价で渡します。

贝叶斯は,范囲使用し均または対数スケール点を抽出しします。。抽出の优化视价で设定し。

たとえば,変数x1を対数スケールで1E-61E3の间に制约には,のににますます。

xvar = emptimizableVariable('x1',[1E-6,1E3],'转换',,,,'日志'

贝叶斯は端点にます。したがっ,変换されるのの下限としてててててててをををを使用使用するするはは

ヒント

対数変换変数下限としてゼロするには,をを1に设定,目的关数ででX-1を使用し。

确定的制约 -Xconstraintfcn

问题がまたは明确定义されいるががが“実行可能”と呼ばの内点のみ场合がます。确定的制约制约は,点点が実行可能可能真的を,不可能なはは错误的を返す关数。したがって,は确率的ではありません。。また,点点のグループではなくではなく个个个々

ヒント

最适をに制限するに,确定的制约ではなく优化视价の范囲使用方が效率的。。

确定的をするには,シグネチャを使用し。。

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

  • TFは,x(i,:)が実行な场合にのみtf(i)= trueになる论理列です。

确定的制约は,贝叶斯の名前とのペアXconstraintfcnで渡しますたとえば以下のにします。

结果= bayesopt(有趣,vars,'xconstraintfcn',@xconstraint)

贝叶斯は数のに対して的をするので制约关数をベクトル化化すると実行実行が高速ににベクトル化を参照しください。

たとえば,'x1'および'x2'という名前変数は,ベクトル[x1 x2]のノルムが6未満でx1 <= x2のに可能とし。次制约关数これらの制约を评価评価。。。

功能tf = xconstraint(x)tf1 = sqrt(x.x1。^2 + x.x2。^2)<6;tf2 = x.x1 <= x.x2;tf = tf1&tf2;

条件付き制约 -有条件的alablefcn

2つ次のののつの条件いずれを适用する关数です。

  • 一部の特定のの场合,のが特定の値になる。

  • 一部のがのの场合に他の変数が(カテゴリカル変数のは<未定义>)値になる。

条件付きを指定する,,贝叶斯の名前とのペア有条件的alablefcn@condvariablefcnなどのハンドルに设定。。@condvariablefcnの关数はのようになっなければなりませ。。

Xnew = condvariablefcn(x)
  • Xは,幅がdで高が任意の。。

  • XNewは,Xと同じおよびサイズの。。

condvariablefcnでは,Xに等しくなるにXNewを设定ますが,さらにXNewの各行する変数制约にかなっ値设定设定ますます。

メモ

条件付きと的制约両方がある场合,贝叶斯は条件をに适用し。したがっ,付き制约关数关数変数をまたは<未定义>に设定性ある,のを确定制约关数で正しく处理处理できるようににする必要がが

条件付き,変数を确実に的します。したがって,まず贝叶斯は条件をし,れるすべてのを的なものとし。。

変数値设定する条件制约制约

fitcdiscrを使用分类最适化して名前と値のペア引数“歧视”および'伽玛'の両方最适してとします。“歧视”が二タイプのかである场合,'伽玛'0でないとエラー発生し。ようなでは,次の条件付き付き制约关数关数ししし

功能Xtable = fitcdiscrcvf(Xtable)%gamma必须为0,如果歧视类型是二次Xtable.gamma(ismember(Xtable.discrimtype,{“二次”,,,,...diagquadratic',,,,“伪Quadratic”}))= 0;结尾

変数をに设定する付き制约

FITCSVMを使用分类最适化して名前と値のペア引数'kernelfunction'および“多项式订单”の両方最适してとします。'kernelfunction'“多项式”ではない场合,“多项式订单”の设定さません。の关数はこの付き制约を强制し。。

功能Xnew = condvariablefcn(x)xnew = x;Xnew.polynomialorder(Xnew.KernElfunction〜 = =“多项式”)= nan;

次のに,コードの行数少なくすることができます。

功能x = condvariablefcn(x)x.polynomialorder(xnew.kernelfunction〜 = =“多项式”)= nan;

さらに,“多项式订单”の値がである场合名前とのペアの引数“多项式订单”FITCSVMに渡さない关数を定义。。

fun = @(x)mysvmfun(x,预测变量,响应,c)功能objective = mysvmfun(x,预测变量,响应,c)...'cvpartition',C,...'kernelfunction',X.KernElfunction};如果〜isnan(x.polynomialorder)args = [args,{“多项式订单”,x.polynomialorder}];结尾objective = kfoldloss(fitCSVM(args {:}));结尾

连结制约

“连结”は目的呼び出すことのみ评価评価できるですこのこの确率确率确率的ににににも确定的的的ににもももするすることができことができことができますこれらこれら2ベイズ最化の目的关数を参照しください。

1つずつ制约制约についてについてについて制约つずつつずつがある连结连结制约ベクトルベクトルををを返し返し返しますますます。各各エントリエントリで,,,,负负负のの値はは制约制约制约が満たさ(値は満たされこと(実行不)を示します。

贝叶斯は,とれる连结制约を実行的ににしします。。この制约により,,目的关数关数关数のの贝叶斯でモデルできます详细については,目的关数のエラー前环を参照しください。

エラー制约加え连结制约がある,,

  • 贝叶斯の呼び出し,名前とペアペアnumCoupledconstraintsを(必须)。。数エラーは含めないで。。

  • いずれか连结确率的である场合名前と値のペアArecoupledconstraintsdeterministicを使用,确率的についてについて错误的を渡します。

各反复连结の値确认するには,贝叶斯の名前とのペア冗长1または2に设定し。

メモ

连结制约场合反复表示プロットは次ような直観的ではない结果をを与える可能可能ありありあり

  • “最小”のプロットがする。

  • 最适以前に可能点れたでも,问题问题が実行不可能可能であると宣言宣言さささ。

このようは,点実行実行か判断判断が最适化の进行にに応じて変化変化する可能可能可能性性贝叶斯は制约关し実行可能性をますが,このはは贝叶斯点をとします。したがって,最小点后からからから実行実行不不不可能可能とと判断されれたははははは最最最最最小目的目的目的目的目的目的目的目的プロットプロットプロットがが増加しし可能点表示れる可能があります。

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

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

连结制约目的评価评価することのみのみ评価できる制约ですこのケースケースケースケースでではははははは,关数はははははははははははははははモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルモデルの交差交差検证検证の详细について,贝叶斯を使用た交差検证済み済み済み分类分类の化化化を参照しください。

分类用データを作成。。

RNG默认grnpop = mvnrnd([1,0],眼睛(2),10);redpop = mvnrnd([0,1],眼睛(2),10);redpts =零(100,2);grnpts = redpts;为了i = 1:100个grnpts(i,:) = mvnrnd(grnpop(randi(10),:),eye(2)*0.02);redpts(i,:) = mvnrnd(redpop(randi(10),:),eye(2)*0.02);结尾cdata = [grnpts; redpts];grp =一个(200,1);GRP(101:200)= -1;c = cvPartition(200,'kfold',10);sigma = emptimizableVariable('Sigma',[1E-5,1E5],'转换',,,,'日志');box = emptimizableVariable('盒子',[1E-5,1E5],'转换',,,,'日志');

目的关数は分割Csvm svmモデル交差损失损失です。连结制约は,,サポートベクターからからからからからからからからからからからからからからからからからからをををををを减算减算减算値値値ですですです。。。このこのこのこのようようににするするするとととととと,,,,,,,,,,,のの个个个サポートサポートサポートでででででででででで200个200个200个个个データががあるあるのでので连结连结制约制约ののの値値値値范囲范囲范囲范囲范囲-99.5(1少なくとも少なくとも少なくとものの値値値値の制约制约なりなりににににににに连结连结连结のでのでのでのでのでのでのでのでのでのでのでのでされことを意味。。

功能[objective,约束] = mysvmfun(x,cdata,grp,c)svmmodel = fitcsvm(cdata,grp,'kernelfunction',,,,'rbf',,,,...'boxconstraint',x.box,...“内核”,X.Sigma);cvmodel = crossVal(svmmodel,'cvpartition',C);Objective = Kfoldloss(CVModel);约束= sum(svmmodel.issupportVe金宝appctor)-100.5;

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

fun = @(x)mysvmfun(x,cdata,grp,c);

连结制约あるオプティマイザーが认识ようにするため,numCoupledconstraints1に设定。モデルをプロットするオプションを设定し。。

结果= bayesopt(娱乐,[Sigma,box],'iSobjectiveDeterministic',真的,...'numCoupledConstraints',1,'plotfcn',,,,...{@plotminobjective,@plotconstraintmodels},...“ AccelitionFunctionName”,,,,“预期改造加”,,,,“冗长”,0);

ほとんどのでが実行不可能数になります。

参考

|

关连するトピック