基于高斯过程的贝叶斯优化(一)引言

阅读本文默认具有一定的概率数理统计与随机过程基础。

假设我们有一个机器学习模型M(如XGBoost,SVM,神经网络等),其超参数为记为$x_i$,则每对M进行评估的结果可记为$y_i=f(x_i)$,在这里$y_i$可以是LOSS等评价指标。问题在于如何选择超参数找到我们的最优超参数$x^*$,使得:

[x^* = arg max _ { mathbf { x } in mathcal { X } } f(x)]

常用的超参数搜索方法有网格搜索、随机搜索等,但是由于设置超参数后每次都需要对模型重新评价,这样的开销很大,因此可以考虑贝叶斯优化方法,贝叶斯优化方法可以充分利用之前的评价信息,从而减少对于超参数的尝试次数。

 贝叶斯优化方法是建立在高斯过程之上的。

首先给出高斯过程定义:

一个连续时间的随机过程${X_t;tin T}$被称为高斯分布,当且仅当对每一个有限指标集合T,对任意$t_1 cdots t_k$属于T满足$X_{t_1cdots t_k} = (X_{t_1},cdots,X_{t_k})$是一个多元正态随机变量,这等价于$X_{t_1}$到$X_{t_k}$中的任意线性组合符合正态分布。高斯分布具有严平稳性质。

记GP为一个高斯分布,其均值函数为m,协方差函数为k,高斯分布可表示成如下形式:

[f ( x ) sim G P left( m ( x ) , k left( x , x ^ { prime } ight) ight)]

常见的协方差函数有平方指数函数等,平方指数函数具体公式如下:

[k left( mathbf { x } _ { i } , mathbf { x } _ { j } ight) = exp left( - frac { 1 } { 2 } left| mathbf { x } _ { i } - mathbf { x } _ { j } ight| ^ { 2 } ight)]

贝叶斯方法是如何与高斯过程相结合的呢?它假设f(x)得到的结果具有随机性,服从一个高斯过程,也就是说,如果我们选取$x_1,x_2cdots x_k$,那么$(x_1,x_2cdots x_k)$服从一个多元正态分布。那么,假设我们已经从模型中获取了信息$mathcal { D } _ { 1 : t } = left{ mathbf { x } _ { 1 : t } , y _ { 1 : t } ight}$(这里下标“:”表示一个序列,如$y _ { 1 : t } = left{ y _ { 1 } , cdots , y _ { t } ight}$),那么,贝叶斯优化的目标就是利用现有信息寻找出$x_{t+1}$,它具有最大的可能性改善当前获得的最佳模型。

一个最通用的贝叶斯算法框架如下所示:

其中acquisition function(又被称之为AC函数)用于通过以前的信息寻找新的$x_{t+1}$,在寻找到新的$x_{t+1}$后,重新训练模型,并将训练的结果$(x_t,y_t)$作为经验记录下来。

原文地址:https://www.cnblogs.com/statruidong/p/10557409.html