贝叶斯优化调参

贝叶斯优化 (BayesianOptimization)

       机器学习模型和神经网络模型都有很多参数需要调整,有很多超参数需要手动设定,很多时候往往是这些参数决定了一个问题能不能很好的解决,如网络有几层、学习率多大、dropout设置为多少、学习率等等。
     穷举搜索 Grid Search 效率太低;随机搜索比穷举搜索好一点;目前比较好的解决方案是贝叶斯优化。

贝叶斯算法的优点:

  • 贝叶斯调参采用高斯过程,考虑之前的参数信息,不断地更新先验;网格搜索未考虑之前的参数信息;
  • 贝叶斯调参迭代次数少,速度快;网格搜索速度慢,参数多时易导致维度爆炸 贝叶斯调参针对非凸问题依然稳健;
  • 网格搜索针对非凸问题易得到局部最优
    在这里插入图片描述
    Step(1)
    第一步首先是有一个先验的猜想。既然我们是需要求出满足条件的,将这两组数据输入GP模型中,两个真实值加入猜想模型,能够对模型进行修正,使其更接近目标函数真实的分布**。

Step(2)
第一步有了修正后的GP。我们根据某些方法,来从修正后的GP中,选择一个感兴趣的点更优。

Step(3)
选出了一个新的。

Step(4)
反之,假如上一步找出的点还达不到我们的需求,那这个点也不能浪费,将其输入返回到GP模型,再次对其修正,重新开始Step(2)

经过上面的初步分析后,我们大概了解了贝叶斯优化的整个流程。从上面描述的流程可以看出,贝叶斯优化最核心的步骤是Step(1),Step(2)。在Step(1)中我们猜想的分布模型,以及Step(2)中支持我们做出选择新的点的方法,这里我们定义一下一般这个方法叫Acquisition function(后面简称AC函数)。这个收益(损失)函数指导我们选择下一个点。只要把这两个东西确定了,那么整个算法就确定了。从这里也可以看出BOA是一个迭代运行的算法框架,由两个组件组成,一个是先验模型,一个是AC函数。这两者的作用分别如下:

  •     先验模型(prior
    function)基于概率分布,用于描述目标函数的分布(可以理解为用于拟合目标函数曲线)
  •  
      AC函数用于从候选集中选择一个新的点。BOA的运行效果,和AC函数的设计有很大关系。由于此类函数可能陷入局部最优解,因此在选点的时候,需要考虑到很多方面因素,不能过早进入局部。因此需要进行多方面权衡,然后综合之后选点。选出的点的质量直接影响算法的收敛速度以及最终解的质量。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38389509/article/details/115098403