主要内容

贝叶斯优化目标函数

目标函数语法

bayesopt试图最小化一个目标函数。相反,如果你想最大化一个函数,将目标函数设置为你想最大化的函数的负数。看到最大化的功能.若要在目标函数中包含额外参数,请参见参数化功能

bayesopt将变量表传递给目标函数。变量有你声明的名称和类型;看到贝叶斯优化的变量

目标函数具有以下签名:

[objective,coupledconstraints,userdata] = fun(x)
  1. 客观的-目标函数值为x,一个数值标量。bayesopt如果目标函数返回非数字值或有多个条目的矩阵,则返回错误。

  2. coupledconstraints-耦合约束的值,如果有(可选输出),一个实值的向量。负值表示满足约束,正值表示不满足约束。详细信息请参见耦合约束

  3. 用户数据-函数可以返回供进一步使用的可选数据,例如绘图或日志记录(可选输出)。有关示例,请参见贝叶斯优化图函数

目标函数示例

该目标函数返回支持向量机模型与参数的交叉验证拟合中的损失盒子而且σ.该目标还返回一个耦合约束函数,当支持向量的数量超过100(100是可行的,101不是)时,该约束函数为正(不可行)。金宝app

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

使用目标函数,假设cdata而且grp,如中所述,创建合并数据的匿名函数参数化功能

@(x)mysvmfun(x,cdata,grp);结果= bayesopt(fun,vars)%假设vars存在

目标函数误差

bayesopt当目标函数返回的不是有限实标量时,认为目标函数返回错误。例如,如果你的目标函数返回一个复值,,或,然后bayesopt认为你的目标函数错误。如果bayesopt遇到错误,它会继续优化,并自动更新导致错误的点的贝叶斯模型。这个贝叶斯模型是误差模型bayesopt将Error模型作为耦合约束。看到耦合约束

存在错误时,可以通过设置bayesoptPlotFcn名称-值参数@plotConstraintModels.或者你可以追溯情节贝叶斯优化的结果,并包括@plotConstraintModels

相关的话题