关于参数搜索

参数搜索是一个开放的问题,假设我们拥有一个函数随机森林贝叶斯优化 贝叶斯参数优化_机器学习,该函数的性质完全由参数随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_02决定,那么,我们就可以通过对参数进行搜索,得到一个满足我们要求的函数。

这里我所说的满足要求,可以是拟合的误差小于某个阈值,亦可以是其他

当选取一个参数随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_03之后(这里下标c表示候选,candidate),我们会对这个函数进行一个评价,这里的评价是指,评价这个函数是不是符合我们的要求。

一般来说,这个评价,或者说成评估的过程,往往是代价比较大的,即,计算耗费的时间比较多,不能立即得到结果。所以,在进行参数搜索的时候,我们更希望用一个高效的方法来进行尝试。

在这里,你可能会想到随机梯度下降(Stochastic Gradient Descent),直接求出参数的偏导数即可。但是,我这里所说的参数,有时候不是十分直接地参与函数的计算,计算偏导数可能十分困难,比如神经网络的学习率,每一层神经元的个数等。

对于参数搜索,比较朴素的有,随机搜索以及网格搜索。随机搜索主要是基于一个概率,随机地进行参数的变动。而网格搜索是给定一系列需要尝试的离散值的组合,挨个尝试。

本文介绍的贝叶斯优化,属于一种参数搜索方案,利用先验的知识,帮助我们去对参数进行搜索。

本文的细节比较多,会将其中的推导的详细步骤都展示出来

贝叶斯优化

参数搜索问题的核心在于,如何基于已有的观察,决定下一个需要尝试的参数?

假设我们现在有一个评价函数随机森林贝叶斯优化 贝叶斯参数优化_搜索_04,通过前随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_05次的尝试,我们获得了一系列点随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_06,其中随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_07

我们的目标是得到一个参数随机森林贝叶斯优化 贝叶斯参数优化_机器学习_08,这里不局限于最大,也可以是最小值,取决于你的评价的设计。

在贝叶斯优化之中,有一个重要的假设:
随机森林贝叶斯优化 贝叶斯参数优化_机器学习_09

基于这个假设,在已有的随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_05个观察点上,我们可以构造出一个针对随机森林贝叶斯优化 贝叶斯参数优化_搜索_04的高斯分布,参数为
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_12

我们用下标随机森林贝叶斯优化 贝叶斯参数优化_贝叶斯_13表示在从随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_14随机森林贝叶斯优化 贝叶斯参数优化_机器学习_15的观察点上的

其中随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_16表示随机森林贝叶斯优化 贝叶斯参数优化_搜索_17随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_18通过核函数(kernel function)的内积,用来描述二者相似程度。这样的一个核函数矩阵可以作为协方差矩阵。

范数p可以取1,2等等

于是,关于随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_19的概率密度函数为随机森林贝叶斯优化 贝叶斯参数优化_搜索_20

不妨假设,下一个尝试的点为随机森林贝叶斯优化 贝叶斯参数优化_机器学习_21, 随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_22亦是服从正态分布随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_23,于是,随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_24随机森林贝叶斯优化 贝叶斯参数优化_机器学习_21的联合分布的参数应该为:
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_26

其中随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_27以及随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_28

我们的目的其实是去在随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_24的条件下估计随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_30

随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_30的概率密度函数为
随机森林贝叶斯优化 贝叶斯参数优化_贝叶斯_32

随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_19随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_30的联合概率密度函数为
随机森林贝叶斯优化 贝叶斯参数优化_搜索_35

进一步地,我们可以得到一个条件概率密度函数
随机森林贝叶斯优化 贝叶斯参数优化_贝叶斯_36

我们将结果分成两个部分:系数部分和指数部分

系数部分有:
随机森林贝叶斯优化 贝叶斯参数优化_机器学习_37

注意到分块矩阵的一个性质:随机森林贝叶斯优化 贝叶斯参数优化_贝叶斯_38

随机森林贝叶斯优化 贝叶斯参数优化_贝叶斯_39 两边取行列式得到随机森林贝叶斯优化 贝叶斯参数优化_机器学习_40

从而系数部分结果为:
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_41

从这个结果可以看出来方差为随机森林贝叶斯优化 贝叶斯参数优化_搜索_42

对于指数部分
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_43

为了记录方便,我们这里使用一些记号:随机森林贝叶斯优化 贝叶斯参数优化_机器学习_44

从而
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_45

这里需要用到分块矩阵的逆
随机森林贝叶斯优化 贝叶斯参数优化_搜索_46 其中随机森林贝叶斯优化 贝叶斯参数优化_机器学习_47

分块矩阵的逆怎么来的?
若存在一个逆矩阵,不妨记作随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_48
由于随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_49
便有方程组随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_50
随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_51
进而随机森林贝叶斯优化 贝叶斯参数优化_贝叶斯_52,类似地可以得到其他值

基于分块矩阵的逆,对于随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_53,我们可以得到
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_54
其中随机森林贝叶斯优化 贝叶斯参数优化_贝叶斯_55

对称地,可以得到
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_56
其中随机森林贝叶斯优化 贝叶斯参数优化_机器学习_57

将指数部分拆解合并得到
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_58

利用之前我们得到的方差随机森林贝叶斯优化 贝叶斯参数优化_机器学习_59

猜测均值为随机森林贝叶斯优化 贝叶斯参数优化_机器学习_60,有随机森林贝叶斯优化 贝叶斯参数优化_机器学习_61

展开之后对齐系数项可以得到
随机森林贝叶斯优化 贝叶斯参数优化_贝叶斯_62

可以得到最终的均值估计为
随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_63

我们便得到了两个重要的参数估计
随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_64

其中方差随机森林贝叶斯优化 贝叶斯参数优化_搜索_65可以通过随机森林贝叶斯优化 贝叶斯参数优化_机器学习_21随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_24通过核函数计算得到
均值随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_68的估计中的随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_69可以使用随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_70近似计算

然后我们可以计算出每个未知点的概率为0.95的置信区间

通常为随机森林贝叶斯优化 贝叶斯参数优化_机器学习_71

到了这里,我们基本上获得了每一个未知点的贝叶斯后验估计,在这之上需要评估到底该选择哪些未知点进行尝试

这里介绍两种,分别是Probability of Improvement以及Expected Improvement
简记为PI方法以及EI方法

对于PI方法来说,我们的目标为
随机森林贝叶斯优化 贝叶斯参数优化_机器学习_72
其中随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_73表示着在已有观测值里面,对应评价最高的参数。

随机森林贝叶斯优化 贝叶斯参数优化_机器学习_74, 其中随机森林贝叶斯优化 贝叶斯参数优化_贝叶斯_75是概率密度函数

我们之前对随机森林贝叶斯优化 贝叶斯参数优化_搜索_04进行高斯分布的建模,于是,上述的概率可以写成分布函数的形式
随机森林贝叶斯优化 贝叶斯参数优化_机器学习_77

随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_78

在上述式子中,变换到标准的正态累积分布函数的过程并不是很直接,这里给出中间的变换步骤
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_79
随机森林贝叶斯优化 贝叶斯参数优化_搜索_80, 便有
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_81
再令随机森林贝叶斯优化 贝叶斯参数优化_搜索_82,便有
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_83

我们会去计算所有未知的待搜索点的这个概率,进而选择一个最高概率的值进行探索。

PI方法被认为搜索的范围较为小,只去搜索局部的区域,因此有了搜索区域更广的EI方法

首先定义一个获益函数
随机森林贝叶斯优化 贝叶斯参数优化_机器学习_84
代表着新尝试的值对于已有的最佳值的提升,注意到该函数的值服从正态分布,其概率密度函数为
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_85

我们去计算这个函数的期望

随机森林贝叶斯优化 贝叶斯参数优化_搜索_86

我们分为两个部分进行解析,首先是第一个部分
随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_87

其中随机森林贝叶斯优化 贝叶斯参数优化_参数搜索_88是标准正态分布的概率密度函数

第二个部分为
随机森林贝叶斯优化 贝叶斯参数优化_搜索_89
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_90, 则有
随机森林贝叶斯优化 贝叶斯参数优化_随机森林贝叶斯优化_91

所以期望的结果为
随机森林贝叶斯优化 贝叶斯参数优化_机器学习_92

同样的,我们会对所有未知点计算出期望,然后选择期望最高的未知点进行探索。