贝叶斯优化小结
背景
针对通用的函数求最小化的问题 $x∗=argmin{x∈X}f(x)$ ,如果定义域X是凸集和函数f是凸函数,可以采用凸优化的思路得到最优值,而针对非凸函数,f的一次运算需要大量的资源。通常此时可以采用贝叶斯优化的思路
基本思想
首先对f(x)有一个猜想的先验分布模型PF,然后利用后续新获取到的信息,来不断优化那个猜想模型,使模型越来越接近真实的分布
主要方法
SMBO
Sequential model-based optimization (SMBO) 是贝叶斯优化的最简形式
主要过程
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