理解贝叶斯优化

1 总述

对于贝叶斯优化,总体可以分为两个部分,概率代理模型和采集函数。

2 概率代理模型和采集函数

概率代理模型:根据模型的参数个数是否固定可分为:参数模型和非参数模型。常见的参数模型有:贝塔-伯努利(Beta-Bernoulli)模型和线性(linear)模型。常见的非参数模型有高斯过程、随机森林等。本文介绍应用范围最广的高斯过程。
采集函数:主要根据后验概率代理模型,选择下一个具有潜力的评估点。

2.1 高斯过程

由于高斯过程的参数维度随着观测点的增加而增加,非固定,因此被归类为非参数模型(并非没有参数)。
高斯过程可以看成是一个函数,这个函数的输入是 x t + 1 x_{t+1} xt+1,函数的输出是在当前输入 x t + 1 x_{t+1} xt+1下的预测值在高斯分布下的均值和方差。

在训练中,主要涉及协方差矩阵的计算和超参数的优化。

2.2 采集函数

采集函数:对于采集函数需要一方面尽可能的探测未知的空间(未评估过的参数组合),这样概率代理模型才能更加接近真实的未知函数。另一方面,根据已经找到的最优值,加大在其周围搜索参数的力度,以期更加迅速的找到全局最优值。这两方面往往是矛盾的,需要在两者之间找到一个平衡点。常见的采集函数有三种:probability of improvenment(PI)、Expected improvement(EI)、Upper confidence bound(UCB)。

3 贝叶斯调参过程

问题简单描述:假设参数有n个,性能为y。贝叶斯初始需要输入一组观测点 { y 1 , X 1 } , { y 2 , X 2 } , { y 3 , X 3 } \mathop \{y_{1},X_{1}\},\{y_{2},X_{2}\},\{y_{3},X_{3}\} {y1,X1},{y2,X2},{y3,X3}。其中 X = { x 1 , x 2 , . . . , x n } \mathop X = \{x_{1},x_{2},...,x_{n}\} X={x1,x2,...,xn}

  1. 更新概率代理模型,首先计算协方差矩阵
    K = [ k ( X 1 , X 1 ) k ( X 1 , X 2 ) k ( X 1 , X 3 ) k ( X 2 , X 1 ) k ( X 2 , X 2 ) k ( X 2 , X 3 ) k ( X 3 , X 1 ) k ( X 3 , X 2 ) k ( X 3 , X 3 ) ] (1) K = \begin{bmatrix} k(X_{1},X_{1}) & k(X_{1},X_{2}) & k(X_{1},X_{3}) \\ k(X_{2},X_{1}) & k(X_{2},X_{2}) & k(X_{2},X_{3}) \\ k(X_{3},X_{1}) & k(X_{3},X_{2}) & k(X_{3},X_{3}) \end{bmatrix} \tag{1} K=k(X1,X1)k(X2,X1)k(X3,X1)k(X1,X2)k(X2,X2)k(X3,X2)k(X1,X3)k(X2,X3)k(X3,X3)(1)
    那么对于一个 X ∗ X_{*} X,我们想要得到其性能 y ∗ y_{*} y,需要更新协方差矩阵
    K ′ = [ K K ∗ T K ∗ K ∗ ∗ ] K^{'} = \begin{bmatrix} K & K_{*}^{T}\\ K_{*} & K_{**} \end{bmatrix} K=[KKKTK]
    其中 K ∗ = [ k ( X ∗ , X 1 ) k ( X ∗ , X 2 ) k ( X ∗ , X 3 ) ] \mathop K_{*} = \begin{bmatrix} k(X_{*},X_{1}) & k(X_{*},X_{2}) & k(X_{*},X_{3}) \end{bmatrix} K=[k(X,X1)k(X,X2)k(X,X3)], K ∗ ∗ = [ k ( X ∗ , X ∗ ) ] \mathop K_{**} = \begin{bmatrix} k(X_{*},X_{*}) \end{bmatrix} K=[k(X,X)],根据更新后的协方差矩阵,预测可能的 y ∗ y_{*} y值。根据极大似然估计,预测出 y ∗ y_{*} y最有可能的 μ ∗ \mathop \mu^{*} μ σ ∗ 2 \mathop \sigma^{*2} σ2:
    μ ∗ = K ∗ K − 1 y \mathop \mu^{*}=K_{*}K^{-1}y μ=KK1y
    σ ∗ 2 = K ∗ ∗ − K ∗ K − 1 K ∗ T \mathop \sigma^{*2}=K_{**}-K_{*}K^{-1}K_{*}^{T} σ2=KKK1KT
    进而绘制出相应的置信区间,也即是 y ∗ \mathop y^{*} y的后验概率为:
    P ( y ∗ ∣ D , x ∗ ) = N ( μ ∗ , σ ∗ 2 ) \mathop P(y^{*}|D,x^{*})=N(\mu^{*}, \sigma^{*2}) PyD,x=N(μ,σ2),D是已经发生的数据。至此得到概率代理模型。

  2. 依据概率代理模型,使用采集函数选取下一次的评估点,选取的原则主要有:
    Explore: 对于采集函数需要一方面尽可能的探测未知的空间(未评估过的参数组合),这样概率代理模型才能更加接近真实的未知函数。
    Exploit:在已有结果附近(一般是已有最大值附近)进行采样。

  3. 根据选取的评估点,量化其性能,得到一组新的训练数据。

  4. 根据新的训练数据,更新概率代理模型。进行新一轮的迭代。

4 遗留点

贝叶斯优化涉及到大量的统计概率方便的数学知识,需要进一步详细看,如在训练过程中,针对超参的优化策略和方法,这些都还没有一个具体的认知,以及采集函数随机采样后的具体的量化策略,也没有很好的认知。
岱宗夫如何,齐鲁青未了。
造化钟神秀,阴阳割昏晓。
荡胸生曾云,决眦入归鸟。
会当凌绝顶,一览众山小。

5 参考文章

https://www.cnblogs.com/mmqm18/p/10863088.html
https://blog.csdn.net/a769096214/article/details/80920304
https://www.jiqizhixin.com/articles/2019-02-12-3
https://www.jianshu.com/p/d6c8ca915f69
https://www.jgoertler.com/visual-exploration-gaussian-processes/
唐诗三百首

你可能感兴趣的:(人工智能算法,机器学习)