主要内容

贝叶斯优化目标函数

目标函数的语法

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

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

目标函数具有如下特征:

(目标,coupledconstraints,用户数据)=乐趣(x)
  1. 客观的- 目标函数值x,实标量。

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

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

目标函数的例子

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

函数[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将Error模型合并为耦合约束。看到耦合约束

当存在错误时,您可以通过设置bayesoptPlotFcn名称-值对@plotConstraintModels.或者你可以事后打电话情节基于贝叶斯优化的结果,包括@plotConstraintModels

相关话题