贝叶斯优化算法(Bayesian optimiazation)

贝叶斯优化算法(Bayesian optimiazation):

应用:超参数调优、贝叶斯优化调参

主要思想:给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布(高斯过程,直到后验分布基本贴合于真实分布。简单的说,就是考虑了上一次参数的信息,从而更好的调整当前的参数。
核心过程:先验函数(Prior Function,PF)与采集函数(Acquisition Function,AC),采集函数也可以叫效能函数(Utility Funtcion),但一般还是称呼为采集函数。PF主要利用高斯过程回归(也可以是其它PF函数,但高斯过程回归用的多);AC主要包括EI,PI,UCB这几种方法,同时exploration与exploitation的平衡,也是通过AC来完成的。

探索(exploration):简单来说就是尽量选择远离已知点的点为下一次用于迭代的参考点,即尽量探索未知的区域,点的分布会尽可能的平均。

利用(exploitation):简单来说就是尽量选择靠近已知点的点为下一次用于迭代的参考点,即尽量挖掘已知点周围的点,点的分布会出现一个密集区域,容易进入局部最大。

    常用的超参数调参的方法有:网格搜索,随机搜索

网格搜索是应用最广泛的超参数搜索算法,网格搜索通过查找搜索范围内的所有的点,来确定最优值。一般通过给出较大的搜索范围以及较小的步长,网格搜索是一定可以找到全局最大值或最小值的。但是,网格搜索一个比较大的问题是,它十分消耗计算资源,特别是需要调优的超参数比较多的时候。(网格搜索就相当于穷举法)
与网格搜索相比,随机搜索并未尝试所有参数值,而是从指定的分布中采样固定数量的参数设置。它的理论依据是,如果随即样本点集足够大,那么也可以找到全局的最大或最小值,或它们的近似值。通过对搜索范围的随机取样,随机搜索一般会比网格搜索要快一些。但是和网格搜索的快速版(非自动版)相似,结果也是没法保证的。

优缺点对比:

  1. 贝叶斯调参采用高斯过程,考虑之前的参数信息,不断地更新先验;网格搜索未考虑之前的参数信息。
  2. 贝叶斯调参迭代次数少,速度快;网格搜索速度慢,参数多时易导致维度爆炸。
  3. 贝叶斯调参针对非凸问题依然稳健;网格搜索针对非凸问题易得到局部最优。
  4. 和网格搜索相比,优点是迭代次数少(节省时间),粒度可以到很小,缺点是不容易找到全局最优解。

应用举例:例如我们想调logistic回归的正则化超参数,就把黑箱函数设置成logistic回归,自变量为超参数,因变量为logistic回归在训练集准确度,设置一个可以接受的黑箱函数因变量取值,例如0.95,得到的超参数结果就是可以让logistic回归分类准确度超过0.95的一个超参数。也就是说你设置以下你想得到的精确度 他会给你推荐超参数取值。

猜你喜欢

转载自blog.csdn.net/qq_41968196/article/details/127458235