机器学习基础夯实系列-贝叶斯优化

贝叶斯优化小结

背景

针对通用的函数求最小化的问题 $x∗=argmin{x∈X}f(x)$ ,如果定义域X是凸集和函数f是凸函数,可以采用凸优化的思路得到最优值,而针对非凸函数,f的一次运算需要大量的资源。通常此时可以采用贝叶斯优化的思路

基本思想

首先对f(x)有一个猜想的先验分布模型PF,然后利用后续新获取到的信息,来不断优化那个猜想模型,使模型越来越接近真实的分布

主要方法

SMBO

Sequential model-based optimization (SMBO) 是贝叶斯优化的最简形式

img

主要过程

1.输入步:Input: f黑盒子函数,X训练数据,S为Acquisition Function,M为是基于输入数据假设的模型,即已知的输入数据x都是在这个模型上的,可以用来假设的模型有很多种,例如随机森林,Tree Parzen Estimators,常见的比如GP高斯分布过程。

2.初始化步(构建示例):初始化获取数据InitSamples(f,X), $D={(x_i,yi)}{i=1}^{n}$,其中每一个$y_i$为已知的, 即$y_i=f(x_i)$

3.迭代步:
3.1 $p(y|x,D) <- FitModel(M, D)$ 使用猜想的分布模型M(比如高斯分布) 在特定的数据下进行训练。由于输入服从高斯分布,那么可以知道其预测也是服从高斯分布的。这里实质计算计算高斯分布的主要参数估计的均值和方差。

3.2.基于估计的假定模型M(高斯分布)去选择当前轮的输入$x_i$,基本思想就是选择收益最高的点。主要是利用Acquisition Function函数。acquisition function是一个权衡exploritation和exploration的函数。

1) Optimistic policies , 主要采用上限置信区间(upper confidence bound)。常用的如GP-UCB等方法

2) Information-based policies,主要思想是利用后验信息来进行选点。常用有Thompson sampling 和 entropy search。基于熵的方法感觉发展空间还比较大,有一些相关工作都有用到这个。

3) Portfolios of acquisition functions

这类方法就是将多种AC方法进行集成,最近的工作比如有ESP

4)Expected improvement(EI)

可以在explore和explot之间平衡,explore时选择均值大的点,exploit选择方差大的点

5) Probability of improvement(POI)

新的采样能提升最大值的概率最大, MPI(maximum probability of improvement),或P算法

3.3 使用新样本进行模型训练,此步骤比较耗时

3.4 训练实例的更新

应用

LDA、组合优化、自动机器学习、增强学习、气象、机器人等等

参考资料

1.https://blog.csdn.net/Snail_Ren/article/details/79005069

2.https://github.com/tobegit3hub/advisor Google内部的Vizier调参服务以及其开源实现Advisor项目

3.https://zhuanlan.zhihu.com/p/29779000 贝叶斯优化: 一种更好的超参数调优方式

4.贝叶斯参数调优实战:https://www.jianshu.com/p/4c0cef6176fa