主要内容

贝叶斯优化目标函数

目标函数的语法

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

bayesopt向目标函数传递一个变量表。变量具有您声明的名称和类型;看到变量的贝叶斯优化

目标函数具有以下特征:

(目标,coupledconstraints,用户数据)=乐趣(x)
  1. 客观的-目标函数值在x,一个数值标量。bayesopt如果目标函数返回非数值值或具有多个条目的矩阵,则返回错误。

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

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

目标函数的例子

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

函数[objective,constraint] = mysvmfun(x,cdata,grp) SVMModel = fitcsvm(cdata,grp,“KernelFunction”“rbf”...“BoxConstraint”x.box,...“KernelScale”, x.sigma);目标= kfoldLoss (crossval (SVMModel));constraint = sum(svmmodel . supportvector) - 100.5;

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

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

目标函数的错误

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

当存在错误时,您可以通过设置Error模型来绘制bayesoptPlotFcn名称-值参数@plotConstraintModels.或者你可以回溯呼叫情节贝叶斯优化的结果,并包括@plotConstraintModels

相关的话题

Baidu
map