主要内容

贝叶斯优化工作流程

什么是贝叶斯优化?

优化,在其最一般的形式,定位一个点最小化的过程是一个实值函数目标函数。贝叶斯优化是一个这样的过程的名称。贝叶斯优化内部维护一个高斯过程模型的目标函数,并使用目标函数评价训练模型。一个贝叶斯优化创新的使用获取函数,该算法用于确定下一个点评估。收购函数可以平衡采样点较低目标函数建模,建模和探索领域尚未。有关详细信息,请参见贝叶斯优化算法

贝叶斯统计和机器学习工具箱优化是™,因为它是适合优化hyperparameters分类和回归算法。hyperparameter是一个内部参数分类或回归函数,如支持向量机框约束,或一个健壮的分类的学习速率。金宝app这些参数能很强烈地影响分类器的性能或回归量,然而或耗时的优化通常是困难的。看到贝叶斯优化特性

通常,优化hyperparameters意味着你尽量减少交叉验证分类器或回归。

执行贝叶斯优化的方法

你可以通过多种方式进行贝叶斯优化:

  • fitcautofitrauto——通过预测和响应数据fitcautofitrauto函数优化的选择模型类型和hyperparameter值。与其他方法不同的是,使用fitcautofitrauto不要求您指定单个模型在优化前;模型选择是优化过程的一部分。优化损失最小化交叉验证,使用多模仿TreeBagger模型fitcauto和一个多RegressionGP模型fitrauto,而不是单个高斯过程回归模型中使用的其他方法。看到贝叶斯优化fitcauto贝叶斯优化fitrauto

  • 分类学习者和回归学习者应用程序——选择Optimizable机器学习模型的应用和自动调整其hyperparameter值通过使用贝叶斯优化。优化损失最小化模型基于所选择的验证选项。这种方法有更少的调优选项比使用一个合适的函数,但可以直接执行贝叶斯优化应用程序。看到Hyperparameter优化分类学习者应用Hyperparameter优化回归学习者应用

  • 适应函数,包括OptimizeHyperparameters名称-值参数在许多自动拟合函数应用贝叶斯优化。优化减少交叉验证的损失。这种方法使你比使用更少的调优选项bayesopt,但使您更容易地执行贝叶斯优化。看到贝叶斯优化使用合适的函数

  • bayesopt——发挥最控制优化通过调用bayesopt直接。这种方法需要你写一个目标函数,并不一定代表交叉验证的损失。看到贝叶斯优化使用bayesopt

贝叶斯优化使用合适的函数

最小化误差在一个旨在通过贝叶斯优化反应,遵循这些步骤。

  1. 选择你的分类或回归解决之间的适应函数,接受OptimizeHyperparameters名称-值参数。

  2. 决定hyperparameters优化,并通过他们的OptimizeHyperparameters名称-值参数。对于每一个合适的函数,你可以选择从一组hyperparameters。看到合格Hyperparameters配合功能,或使用hyperparameters函数,或查阅适应函数引用页面。

    你可以通过单元阵列的参数名称。你也可以设置“汽车”随着OptimizeHyperparameters值,选择一套典型的hyperparameters优化,或“所有”优化所有可用参数。

  3. 对于整体适应函数fitcecoc,fitcensemble,fitrensemble,还包括参数的弱的学习者OptimizeHyperparameters单元阵列。

  4. 可选地,结构创建一个选项HyperparameterOptimizationOptions名称-值参数。看到Hyperparameter优化选择合适的函数

  5. 调用合适的函数与相应的名称参数。

有关示例,请参见优化分类器配合使用贝叶斯优化优化了回归。同时,每个符合函数参考页面包含一个贝叶斯优化的例子。

贝叶斯优化使用bayesopt

执行贝叶斯优化使用bayesopt,遵循这些步骤。

  1. 准备你的变量。看到变量的贝叶斯优化

  2. 创建您的目标函数。看到贝叶斯优化目标函数。如果有必要,创建约束。看到约束在贝叶斯优化。包括额外的参数的目标函数,看看参数化功能

  3. 决定选择,这意味着bayseopt名称,值对。你不需要通过任何选项bayesopt但是你通常做的事情,特别是当努力改善一个解决方案。

  4. 调用bayesopt

  5. 检查解决方案。你可以决定恢复优化利用的简历,或重新启动优化,通常与修改选项。

例如,看到的优化旨在使用bayesopt分类器

贝叶斯优化特性

贝叶斯优化算法最适合这些问题类型。

特征 细节
低维

贝叶斯优化最适合的尺寸,通常10或更少。而贝叶斯优化几十个变量,可以解决一些问题是不推荐的维度高于50。

昂贵的目标

贝叶斯优化设计目标函数,评价得很慢。它有相当大的开销,通常为每个迭代几秒钟。

低精度

贝叶斯优化不一定非常准确的结果。如果你有一个确定的目标函数,你有时可以提高精度标准的优化算法bayesopt解决方案。

全球解决方案

贝叶斯优化是一个全球性的技术。与其他算法,寻找全球性的解决方案你不需要启动算法从不同的初始点。

Hyperparameters

贝叶斯优化适合优化hyperparameters另一个函数。hyperparameter是一个参数,控制函数的行为。例如,fitcsvm函数符合一个SVM模型数据。它有hyperparametersBoxConstraintKernelScale为其“rbf”KernelFunction。例如贝叶斯优化应用于hyperparameters,明白了优化旨在使用bayesopt分类器

参数可用于配合功能

合格Hyperparameters配合功能

函数名 合格的参数
fitcdiscr δ
γ
DiscrimType
fitcecoc 编码
符合条件的fitcdiscr参数“学习者”,“判别”
符合条件的fitckernel参数“学习者”,“内核”
符合条件的fitcknn参数“学习者”,“资讯”
符合条件的fitclinear参数“学习者”,“线性”
符合条件的fitcsvm参数“学习者”,“支持向量机”
符合条件的fitctree参数“学习者”,“树”
fitcensemble 方法
NumLearningCycles
LearnRate
符合条件的fitcdiscr参数“学习者”,“判别”
符合条件的fitcknn参数“学习者”,“资讯”
符合条件的fitctree参数“学习者”,“树”
fitcgam InitialLearnRateForInteractions
InitialLearnRateForPredictors
的相互作用
MaxNumSplitsPerInteraction
MaxNumSplitsPerPredictor
NumTreesPerInteraction
NumTreesPerPredictor
fitckernel 学习者
KernelScale
λ
NumExpansionDimensions
fitcknn NumNeighbors
距离
DistanceWeight
指数
标准化
fitclinear λ
学习者
正则化
fitcnb DistributionNames
宽度
内核
fitcnet 激活
λ
LayerBiasesInitializer
LayerWeightsInitializer
LayerSizes
标准化
fitcsvm BoxConstraint
KernelScale
KernelFunction
PolynomialOrder
标准化
fitctree MinLeafSize
MaxNumSplits
SplitCriterion
NumVariablesToSample
fitrensemble 方法
NumLearningCycles
LearnRate
符合条件的fitrtree参数“学习者”,“树”:
MinLeafSize
MaxNumSplits
NumVariablesToSample
fitrgam InitialLearnRateForInteractions
InitialLearnRateForPredictors
的相互作用
MaxNumSplitsPerInteraction
MaxNumSplitsPerPredictor
NumTreesPerInteraction
NumTreesPerPredictor
fitrgp σ
BasisFunction
KernelFunction
KernelScale
标准化
fitrkernel 学习者
KernelScale
λ
NumExpansionDimensions
ε
fitrlinear λ
学习者
正则化
fitrnet 激活
λ
LayerBiasesInitializer
LayerWeightsInitializer
LayerSizes
标准化
fitrsvm BoxConstraint
KernelScale
ε
KernelFunction
PolynomialOrder
标准化
fitrtree MinLeafSize
MaxNumSplits
NumVariablesToSample

Hyperparameter优化选择合适的函数

优化使用合适的函数时,您可以使用这些选项HyperparameterOptimizationOptions名称-值参数。作为结构的价值。所有字段的结构是可选的。

字段名 默认的
优化器
  • “bayesopt”——使用贝叶斯优化。在内部,该设置调用bayesopt

  • “gridsearch”——使用网格搜索NumGridDivisions每个维度值。

  • “randomsearch”——随机搜索中MaxObjectiveEvaluations点。

“gridsearch”在随机顺序搜索,使用统一的网格不重复抽样。优化后,可以得到一个网格顺序表使用的命令sortrows (Mdl.HyperparameterOptimizationResults)

“bayesopt”
AcquisitionFunctionName

  • “expected-improvement-per-second-plus”

  • “expected-improvement”

  • “expected-improvement-plus”

  • “expected-improvement-per-second”

  • “lower-confidence-bound”

  • “probability-of-improvement”

他们的名字包括采集功能每秒不产生可重复的结果,因为优化取决于目标函数的运行时。他们的名字包括采集功能+修改他们的行为当他们overexploiting面积。更多细节,请参阅获取函数类型

“expected-improvement-per-second-plus”
MaxObjectiveEvaluations 最大数量的目标函数的评价。 30.“bayesopt”“randomsearch”,整个电网“gridsearch”
MaxTime

时间限制,指定为一个积极的真正的标量。时间限制在几秒钟内,作为衡量抽搐toc。运行时可以超过MaxTime因为MaxTime不中断功能评估。

NumGridDivisions “gridsearch”在每个维度的数量值。正整数的值可以是一个向量给每个尺寸的数量值,或一个标量,适用于所有尺寸。这个领域被忽略为分类变量。 10
ShowPlots 逻辑值指示是否显示情节。如果真正的,这个领域最好的观察目标函数值与迭代数。如果你使用贝叶斯优化(优化器“bayesopt”),那么这个领域还阴谋的最好估计目标函数值。最好的观察目标函数值和最佳估计目标函数值对应的值BestSoFar(观察)BestSoFar (estim)。分别列的迭代显示。你可以找到这些值的属性ObjectiveMinimumTraceEstimatedObjectiveMinimumTraceMdl.HyperparameterOptimizationResults。如果问题包括一个或两个贝叶斯优化,优化参数ShowPlots还阴谋的模型目标函数的参数。 真正的
SaveIntermediateResults 逻辑值指示是否保存结果优化器“bayesopt”。如果真正的,这个领域覆盖一个工作区变量命名“BayesoptResults”在每一个迭代。变量是一个BayesianOptimization对象。
详细的

显示在命令行:

  • 0——没有迭代显示

  • 1——迭代显示

  • 2——迭代显示额外信息

详情,请参阅bayesopt详细的名称-值参数和例子优化分类器配合使用贝叶斯优化

1
UseParallel 逻辑值,指出是否贝叶斯优化并行运行,这就需要并行计算工具箱™。由于nonreproducibility平行的时机,平行贝叶斯优化不一定产生可重复的结果。有关详细信息,请参见平行的贝叶斯优化
重新分区

逻辑值指示是否重新分配在每个迭代交叉验证。如果这个字段优化器使用单个分区,优化。

设置真正的通常给最健壮的结果,因为它考虑了分区噪音。然而,对于好的结果,真正的至少需要两倍的功能评估。

使用不超过以下三个选项之一。
CVPartition 一个cvpartition创建的对象cvpartition “Kfold”, 5如果你不指定一个交叉验证字段
坚持 一个标量范围(0,1)代表抵抗分数
Kfold 一个大于1的整数

另请参阅

|

相关的话题