美文网首页
AutoML特辑之贝叶斯优化

AutoML特辑之贝叶斯优化

作者: 加油11dd23 | 来源:发表于2021-04-07 01:41 被阅读0次

一、简介

https://zhuanlan.zhihu.com/p/53826787
贝叶斯优化用于机器学习调参由J. Snoek(2012)提出,主要思想是,给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布(高斯过程,直到后验分布基本贴合于真实分布。简单的说,就是考虑了上一次参数的信息**,从而更好的调整当前的参数。

他与常规的网格搜索或者随机搜索的区别是:

  • 贝叶斯调参采用高斯过程,考虑之前的参数信息,不断地更新先验;网格搜索未考虑之前的参数信息
  • 贝叶斯调参迭代次数少,速度快;网格搜索速度慢,参数多时易导致维度爆炸
  • 贝叶斯调参针对非凸问题依然稳健;网格搜索针对非凸问题易得到局部最优

(一)、当前主流的超参数优化算法

1、暴力型

  • 网格搜索
    顾名思义,每个超参数用规则得到几个枚举点,然后交叉组合得到一堆解,挨个枚举选出结果最好的超参数。
  • 随机搜索
    顾名思义,就是随机生成一堆解,然后挨个尝试,选出结果最好的作为最优解。

2、拟合型

a中方法很暴力,在大多数情况下也是比较实用的,但该类方法多次尝试之间是独立的,因而往往需要大量尝试才能获得非常优的解。

有研究者针对此进行优化,使用模型来拟合这个问题,把超参数作为输入,训练模型的能力作为输出,其他作为黑盒,即"模型能力=f(超参数)",通过合适的模型来拟合这个f。这类方法通常如下图的步骤所示:


image.png

这类算法最典型的就是贝叶斯优化。
贝叶斯优化算法是通过高斯过程回归来拟合f,.
算法流程主要分为4步和第二节提到的流程几乎一致:

  1. 随机一些超参数x并训练得到模型,然后刻画这些模型的能力y,得到先验数据集合D = (x1, y1)、(x2, y2)、...、(xk,yk)

  2. 通过先验数据D来拟合出高斯模型GM

  3. 通过采集函数找到在GM下的极大值 超参数x',并通过x'训练得到模型和刻画模型能力y',将(x',y')加入数据集D

  4. 重复2-3步,直至终止条件

这里值得注意的是,第2步拟合的模型GM,对于任何一组超参数x输入,输出的是一个分布即均值和标准差,而不是一个准确的值(因而需要效用函数来量化),具体如下图所示,通过蓝色先验点拟合出的GM,绿色区域即为对应输入x,输出y的可能范围


image.png

ps. 拟合方法需要面对的几个难题:(1) 训练的不稳定性,同一组超参数多次训练无法完全一致 (2) 模型能力的刻画,衡量方法很难准确的刻画出模型能力 (3) 受资源和时间的原因,无法进行大量的尝试 (4) 随机因素太多,很难用简单固定的模型来拟合

3、其他型

比如pbt算法,pbt是基于遗传算法的灵感改进出来的算法,从结果上讲他是找到了一个训练过程(一个阶段一组超参数),而不是一组最优超参数

二、理论

介绍贝叶斯优化调参,必须要从两个部分讲起:

  • 高斯过程,用以拟合优化目标函数
  • 贝叶斯优化,包括了“开采”和“勘探”,用以花最少的代价找到最优值

(一)、高斯过程

1、高斯过程简介

高斯过程可以用于非线性回归、非线性分类、参数寻优等等。以往的建模需要对 𝑝(𝑦|𝑋) 建模,当用于预测时,则是


image.png

而高斯过程则还考虑了y(N)和y(N+1)之间的关系,即:


image.png

高斯过程通过假设 𝑌 值服从联合正态分布,来考虑 𝑦𝑁 和 𝑦𝑁+1 之间的关系,因此需要给定参数包括:均值向量和协方差矩阵,即


image.png

其中协方差矩阵又叫做 核矩阵, 记为 𝐊 ,仅和特征 𝑥 有关,和 𝑦 无关。

高斯过程的思想是: 假设 𝑌 服从高维正态分布(先验),而根据训练集可以得到最优的核矩阵 ,从而得到后验以估计测试集 𝑌∗

我们有后验:


image.png

其中,𝐾∗为训练集的核向量,有如下关系:


image.png

可以发现,在后验公式中,只有均值和训练集 𝑌 有关,方差则仅仅和核矩阵,也就是训练集和测试集的 𝑋 有关,与训练集 𝑌 无关

2、高斯过程的估计(训练)方法

假设使用平方指数核(Squared Exponential Kernel),那么有:


image.png

那么所需要的确定的超参数 𝜃=[𝜎^2_𝑓,𝑙] ,由于 𝑌 服从多维正态分布,因此似然函数为:


image.png
由于 𝐾 是由 𝜃 决定的,所以通过梯度下降即可求出超参数 𝜃,而根据核矩阵的计算方式也可以进行预测。
image.png

上图是一张高斯分布拟合函数的示意图,可以看到,它只需要九个点,就可以大致拟合出整个函数形状

(二)、贝叶斯优化理论

贝叶斯优化是一种逼近思想,当计算非常复杂、迭代次数较高时能起到很好的效果,多用于超参数确定

1、基本思想

贝叶斯优化理论是基于数据使用贝叶斯定理估计目标函数的后验分布,然后再根据分布选择下一个采样的超参数组合。它充分利用了前一个采样点的信息,其优化的工作方式是通过对目标函数形状的学习,并找到使结果向全局最大提升的参数。

高斯过程 用于在贝叶斯优化中对目标函数建模,得到其后验分布。

通过高斯过程建模之后,我们尝试抽样进行样本计算,而贝叶斯优化很容易在局部最优解上不断采样,这就涉及到了开发和探索之间的权衡。

  • 开发 (exploitation): 根据后验分布,在最可能出现全局最优解的区域进行采样, 开发高意味着均值高
  • 探索 (exploration): 在还未取样的区域获取采样点, 探索高意味着方差高。
    而如何高效的采样,即开发和探索,我们需要用到 Acquisition Function, 它是用来寻找下一个 x 的函数。

2、Acquistion Function

一般形式的Acquisition Funtion是关于x的函数,映射到实数空间R,表示改点的目标函数值能够比当前最优值大多少的概率,目前主要有以下几种主流的Acquisition Function

(1)、POI(probability of improvement)
image.png

其中, 𝑓(𝑋) 为X的目标函数值, 𝑓(𝑋+) 为 到目前为止 最优的X的目标函数值, 𝜇(𝑥),𝜎(𝑥) 分别是高斯过程所得到的目标函数的均值和方差,即 𝑓(𝑋) 的后验分布。 𝜉 为trade-off系数,如果没有该系数,POI函数会倾向于取在 𝑋+ 周围的点,即倾向于exploit而不是explore,因此加入该项进行权衡。

而我们要做的,就是尝试新的X,使得 𝑃𝑂𝐼(𝑋) 最大,则采取该𝑋 (因为𝑓(𝑋)的计算代价非常大),通常我们使用 蒙特卡洛模拟 的方法进行。详细情况见下图(图片来自 Ref[5])


image.png
(2)、Expected Improvement
POI是一个概率函数,因此只考虑了f(x) 比 𝑓(𝑥+) 大的概率,而EI则是一个期望函数,因此考虑了 f(x) 比 𝑓(𝑥+) 大多少。我们通过下式获取x image.png

其中 𝐷𝑡 为前t个样本,在正态分布的假定下,最终得到:


image.png
其中 image.png
(3)、Confidence bound criteria
image.png

(三)、缺点和不足

高斯过程核矩阵不好选

相关文章

网友评论

      本文标题:AutoML特辑之贝叶斯优化

      本文链接:https://www.haomeiwen.com/subject/bhrykltx.html