主要内容

贝叶斯优化工作流程

贝叶斯优化是什么?

优化在其最常规形式中,是定位一个最小化称为众值函数的点的过程目标函数。贝叶斯优化是一个这样的过程的名称。贝叶斯优化在内部维护了目标函数的高斯过程模型,并使用客观函数评估来培训模型。贝叶斯优化的一种创新是使用收购功能,该算法用于确定下一个评估点。采集功能可以在具有低建模客观函数的点上进行抽样,并探索尚未进行建模的区域。有关详细信息,请参阅贝叶斯优化算法

贝叶斯优化是统计和机器学习工具箱™的一部分,因为它非常适合优化普遍存在分类与回归算法。HyperParameter是分类器或回归函数的内部参数,例如支持向量机的框约束,或强大的分类集合的学习率。金宝app这些参数可以强烈影响分类器或回归的性能,但通常困难或耗时地优化它们。看贝叶斯优化特征

通常,优化HyperParameters意味着您尝试最小化分类器或回归的交叉验证丢失。

执行贝叶斯优化的方法

您可以通过多种方式执行贝叶斯优化:

  • fitcauto.Fitrauto.- 将预测器和响应数据传递给fitcauto.或者Fitrauto.函数以优化各种型号类型和超级参数值。与其他方法不同,使用fitcauto.或者Fitrauto.在优化之前,不要求您在优化之前指定单个模型;模型选择是优化过程的一部分。优化最小化交叉验证损耗,该损耗是使用多重建模的treebagger模型fitcauto.和一个多数 -regressiongp.模型Fitrauto.,而不是其他方法中使用的单个高斯过程回归模型。看贝叶斯优化为了fitcauto.贝叶斯优化为了Fitrauto.

  • 分类学习者和回归学习者应用 - 选择优化机器中的模型学习应用程序并通过使用贝叶斯优化来自动调整其超级计数器值。优化基于所选验证选项最小化模型丢失。此方法的调谐选项较少,而不是使用拟合功能,但允许您直接在应用中执行贝叶斯优化。看分类学习者应用中的HyperParameter优化回归学习者应用中的HyperParameter优化

  • 拟合功能 - 包括优化hyperParameters.名称 - 值对在许多拟合功能中自动应用贝叶斯优化。优化最小化交叉验证损耗。此方法为您提供比使用更少的调谐选项Bayesopt.,但使您能够更容易地执行贝叶斯优化。看使用拟合功能的贝叶斯优化

  • Bayesopt.- 通过呼叫来发挥最优化的控制Bayesopt.直接地。此方法要求您编写一个客观函数,不必表示交叉验证损失。看使用Bayesopt的贝叶斯优化

使用拟合功能的贝叶斯优化

为了通过贝叶斯优化最小化交叉验证响应中的错误,请按照下列步骤操作。

  1. 选择您的分类或回归求解器fitcdiscr.Fitcecoc.fitcensemble.Fitconnelel.Fitcknn.FitClinear.Fitcnb.fitcsvm.fitctreefitrensemble.fitrgp.Fitrkernel.Fitrinear.Fitrsvm., 或者fitrtree.

  2. 决定过度参数以优化,并将其传递给优化hyperParameters.名称值对。对于每个拟合功能,您可以选择一组HyperParameters。看符合适用功能的资格Quand参数,或使用普遍存在功能,或咨询拟合功能参考页面。

    您可以通过单元格数组参数名称。你也可以设置'汽车'作为优化hyperParameters.值,选择典型的Quand参数集以优化,或'全部'优化所有可用参数。

  3. 用于合适功能Fitcecoc.fitcensemble., 和fitrensemble.,还包括弱学习者的参数优化hyperParameters.单元格阵列。

  4. (可选)为该选项结构创建一个选项结构HyperParameterOptimizationOptions.名称值对。看拟合功能的超参数优化选项

  5. 使用相应的名称值对呼叫拟合函数。

对于例子,见优化SVM分类器使用Bayesian Optimization优化一个提升的回归集合。此外,每个拟合功能参考页面包含贝叶斯优化示例。

贝叶斯优化使用Bayesopt.

使用贝叶斯优化使用Bayesopt., 按着这些次序。

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

  2. 创建您的客观函数。看贝叶斯优化目标功能。如有必要,也会创建约束。看贝叶斯优化的约束。在目标函数中包含额外的参数,请参阅参数化功能

  3. 决定选项,意思是Bayseopt.名称,价值对。您不需要通过任何选项Bayesopt.但你通常这样做,特别是在试图改进解决方案时。

  4. 称呼Bayesopt.

  5. 检查解决方案。您可以决定使用的恢复优化恢复或者重新启动优化,通常使用已修改的选项。

例如,看到使用Budesopt优化交叉验证的SVM分类器

贝叶斯优化特征

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

特征 细节
低维度

贝叶斯优化在尺寸较少的尺寸下最佳,通常为10或更少。虽然贝叶斯优化可以解决几十个变量的一些问题,但不建议高于约50的尺寸。

昂贵的目标

贝叶斯优化专为评估速度慢的客观函数而设计。它具有相当大的开销,通常为每次迭代几秒钟。

低精度

贝叶斯优化不一定提供非常准确的结果。如果您有确定的目标函数,则有时可以通过从中启动标准优化算法来提高准确性Bayesopt.解决方案。

全球解决方案

贝叶斯优化是一种全球技术。与许多其他算法不同,搜索您不必从各种初始点开始算法的全局解决方案。

普遍存在

贝叶斯优化非常适合优化普遍存在另一个功能。HyperParameter是控制函数行为的参数。例如,fitcsvm.功能适合数据模型到数据。它有Quand参数boxconstraint.内塞尔因为它'rbf'凯恩机组。有关贝叶斯优化应用于HyperParameter的示例,请参阅使用Budesopt优化交叉验证的SVM分类器

参数可用于适合功能

拟合功能的超参数优化选项

使用拟合功能优化时,您可以使用这些选项HyperParameterOptimizationOptions.名称值对。将值作为结构。结构中的所有字段都是可选的。

字段名称 价值 默认
优化器
  • 'Bayesopt'- 使用贝叶斯优化。内部,此设置呼叫Bayesopt.

  • 'gridsearch'- 使用网格搜索numgriddivisiving.每个维度的值。

  • 'randomsearch'- 随机搜索maxobjectiveevaluations要点。

'gridsearch'以随机顺序搜索,使用均匀采样而无需替换电网。优化后,您可以使用命令在网格秩序中获取表sortrows(mdl.hyperParameterOptimationResults)

'Bayesopt'
收集功能名称

  • '预期 - 每秒改善'

  • '预期改善'

  • '预期改善加'

  • '预期 - 每秒改善'

  • “较低的信任”

  • '改善概率'

收购函数,其名称包括每秒不要产生可重复的结果,因为优化取决于目标函数的运行时间。收购函数,其名称包括当它们过度开放区域时修改其行为。有关更多详细信息,请参阅采集函数类型

'预期 - 每秒改善'
maxobjectiveevaluations 最大客观函数评估数。 30.为了'Bayesopt'或者'randomsearch',以及整个网格'gridsearch'
MaxTime.

时间限制,指定为正面真实。时间限制是以秒为单位的Tic.TOC.。运行时间可能超过MaxTime.因为MaxTime.不中断功能评估。

INF.
numgriddivisiving. 为了'gridsearch',每个维度中的值数。该值可以是正整数的向量,其提供每个维度的值数,或者适用于所有维度的标量。对于分类变量,忽略此字段。 10.
Showplots. 逻辑值,指示是否显示图表。如果真的,此字段绘制迭代号的最佳目标函数值。如果有一个或两个优化参数,并且如果优化器'Bayesopt', 然后Showplots.还绘制了对参数的目标函数的模型。 真的
Saptintermediateresults. 指示是否保存结果的逻辑值优化器'Bayesopt'。如果真的,此字段覆盖名为的工作空间变量'贝叶特遗露'在每次迭代。变量是一个贝叶斯偏见目的。 错误的
verb

显示到命令行。

  • 0.- 没有迭代显示

  • 1- 迭代显示

  • 2- 迭代显示额外信息

有关详细信息,请参阅Bayesopt.verb名称值对参数。

1
使用指α. 逻辑值,指示是否并行运行Bayesian Optimization,这需要并行计算工具箱™。由于并行时序的不可递容性,并行贝叶斯优化不一定会产生可重复的结果。有关详细信息,请参阅并行贝叶斯优化 错误的
重新开始

逻辑值,指示是否在每次迭代时重新验证交叉验证。如果错误的,优化器使用单个分区进行优化。

真的通常给出最强大的结果,因为此设置考虑了划分的噪声。但是,为了好的结果,真的需要至少两倍的函数评估。

错误的
不超过以下三个字段名称中的一个。
CVPartition. 一种CVPartition.对象,由创建的CVPartition. 'kfold',5如果您未指定任何交叉验证字段
坚持 范围内的标量(0,1)代表熔断部分。
kfold. 整数大于1。

也可以看看

|

相关话题