贝叶斯优化简介

绪论

简要的说贝叶斯优化是一种基于贝叶斯方法的搜寻函数(特别是高维非线性非凸函数)全局极值的方法。一般来说作为被优化对象的函数的解析形式是未知的,但对于其定义域内的点我们有办法求其函数值。对于非线性非凸函数的优化问题,常规的方法包括:梯度下降(上升)法,通过计算或估计一阶的梯度决定搜索方向以迭代的方式寻找极值点;还有二阶的方法,比如牛顿法、BFGS算法,计算或估计二阶导数(如果是高维则计算或估计Hessian矩阵)和梯度结合决定搜索方向和步长以迭代方式寻找极值点。在常规方法中对象函数被认为是确定的,它可能是已知的也可能未知,但在迭代过程中它被认为是确定的对象,每一步迭代帮我们改进对此确定函数及其极值的估计。贝叶斯优化以另外一个角度看待作为优化对象的函数,函数不再被认为是确定的,而是被当成一个满足某种分布(prior,先验分布)的随机过程(下面将有详细介绍),通过在定义域内求其函数值我们以贝叶斯公式更新对分布的估计(posterior,后验分布),然后根据新的分布我们在定义域内找到最可能的极值点位置来求其函数值;通过重复上述过程我们对极值的估计会变得越来越精确。根据上述过程贝叶斯优化可以归纳为三步:1)更新:根据对函数值的观测历史更新随机过程的分布;2)测量点确定:根据新的分布找出最可能的极值点位置;3)测量:在上一步确定的位置计算待优化函数的值,形成新的观测历史,然后回到第一步。从上面的描述中我们可以看出贝叶斯优化和传统优化方法之间的关系类似于贝叶斯统计和频率统计的关系。

下面我对贝叶斯优化涉及的一些重要概念和实施步骤做进一步介绍。首先要对贝叶斯优化有更深的理解需要我们基本掌握概率和随机过程的概念;在这个基础上再来看我们如何将贝叶斯公式应用到随机过程概率分布的更新;有了新的概率分布我们会用优化的方法寻找新的最可能是极值点的测量点,注意这里有一个嵌套的优化问题,这个嵌套优化问题的目标函数被称为acquisition function,这里我把它翻译为收效函数(通过最大化收效函数找到最可能的目标函数极值点);最后介绍几个贝叶斯优化的应用实例。

概率空间与随机过程

随机过程的概念对我们准确理解贝叶斯优化致关重要,而概率空间对于我们理解随机过程又致关重要。在一般大学本科阶段非数学系概率统计课程中一般都不会有关于概率的正式的数学定义,而是依赖于我们对概率的直观理解。对于处理定义在数域上的随机变量,或是有限分离维度随机向量,直观的概率理解也就够用了。但对于随机过程,也就是将随机变量随机向量扩展到连续无限维度的函数空间,比较正式的概率定义有助于我们精确理解概念。

概率空间

正式的概率定义也一般称为概率空间,它要包含三个元素。首先是要有一个采样空间,也就是所有可能出现结果的集合( Ω \Omega Ω)。这个比较好理解,当我们提到概率那主语一定是某个可随机出现的结果,所有可能出现的结果构成的集合就是这个采样空间。第二个元素就比较抽象一些,是基于采样空间的一个特殊代数结构,被称为西格玛代数( σ \sigma σ-algebra)。这个西格玛代数是一个集合的集合( F \mathcal{F} F),它满足以下条件:

  1. F \mathcal{F} F的元素必须都是采样空间 Ω \Omega Ω的子集;
  2. 空集 ϕ \phi ϕ要属于这个集合( F \mathcal{F} F);
  3. 如果集合 A ⊆ Ω A\subseteq\Omega AΩ属于这个集合( F \mathcal{F} F),那么其补集 A ˉ = Ω \ A \bar{A}=\Omega\backslash A Aˉ=Ω\A也属于这个集合( F \mathcal{F} F);
  4. 如果任意个可数的采样空间子集都属于这个集合( F \mathcal{F} F),那么这些采样空间子集的并集也属于这个集合( F \mathcal{F} F)。

一个简单的西格玛代数就是采样空间所有子集的集合(英文叫power set)。在概率定义中引入西格玛代数的原因是在我们讨论概率时我们更关心各种集成事件(也就是某些结果集合)的发生概率。这些事件可能构成各种交集并集等关系,我们需要计算相应的概率,比如有时我们要计算条件概率。前两个元素给出了概率的定义域,最后一个元素就是概率函数 P P P,它定义在 F \mathcal{F} F上,将 F \mathcal{F} F中的每个元素映射到0到1之间的一个实数: P : F ↦ [ 0 , 1 ] P:\mathcal{F}\mapsto[0, 1] P:F[0,1]。概率函数 P P P是一种特殊函数,被称为测度(measure),简单讲就是衡量 F \mathcal{F} F中每个元素(是采样空间的一个子集)的大小。它需要满足一些条件比如: P ( ϕ ) = 0 P(\phi)=0 P(ϕ)=0 P ( Ω ) = 1 P(\Omega)=1 P(Ω)=1,对于 F \mathcal{F} F中的两个互不相交的元素 A 1 A_1 A1 A 2 A_2 A2 P ( A 1 ⋃ A 2 ) = P ( A 1 ) + P ( A 2 ) P(A_1\bigcup{A_2})=P(A_1)+P(A_2) P(A1A2)=P(A1)+P(A2)。所以概率正式定义是一个三元组 ( Ω , F , P ) (\Omega, \mathcal{F}, P) (Ω,F,P)

在概率空间的定义中,采样集合 Ω \Omega Ω是一个抽象集合,它可以是离散可数的,也可以是连续不可数的,可以是有限的也可以是无限的。其中的每个抽象元素可以映射到一个我们关心的具体元素。比如我们可以定义一个只有两个元素的采样空间 Ω = ω 1 , ω 2 \Omega={\omega_1, \omega_2} Ω=ω1,ω2, 两个元素分别对应0和1,那么加上概率函数我们就有了一个取值为0或1的离散随机变量。采样空间也可以是连续的集合,其每一个元素可以映射到实数轴上的一个实数,概率函数通过赋予采样空间的子集一个概率也就赋予实数轴上对应的一个集合(比如一个线段)相同的概率,于是我们得到一个定义于实数上的连续随机变量。

随机过程

如果我们关心的随机对象不再是一个数值而是某个函数集中的一个函数,那么采样空间中的元素对应的就是一个元素;而西格玛代数中的一个元素(采样空间的一个子集)对应将是一个函数集合(通常由满足某种条件的函数组成);定义在西格玛代数上的概率函数赋予了这些函数集相应的概率;总结起来就是我们定义了一个随机过程。

在随机过程中使用得最多的类型就是高斯过程,因为高斯分布有良好的数学特性,便于计算推理,另外由于大数定理,自然界很多随机过程也近似于高斯过程。高斯过程的采样空间对应的函数集包括定义于某个域上的所有函数。从函数定义域任意抽取一组点,得到的对应的函数值形成的向量都是满足高阶高斯分布的随机向量。对于仔细的读者,上面关于高斯过程的“定义”并不准确。不能说自然语言完全无法定义清楚高斯过程,只是如果用自然语言要把高斯过程每个细节说清楚说确切可能需要很长一段复杂句式,以致没人看得懂。这就是为什么开始要引入正式的概率空间的定义。下面用基于概率空间的数学语言来定义高斯过程。首先高斯过程是一种概率空间, G P ≡ ( Ω , F , P ) \mathcal{GP}\equiv(\Omega, \mathcal{F}, P) GP(Ω,F,P),其中采样空间 Ω \Omega Ω被映射到了定义域某个域的所有函数的集合, { f : X ↦ R } \{f:\mathcal{X}\mapsto\mathcal{R}\} { f:XR},一般来说定义域是某个维度的实数空间, X ⊆ R D \mathcal{X}\subseteq\mathcal{R}^D XRD。西格玛函数, F \mathcal{F} F,就是采样空间所有子集的集合,对应的也就是定义于 X \mathcal{X} X上所有函数集合子集的集合。高斯过程区别于其它随机过程主要是要满足如下条件: P ( { ω : f ω ( x 1 ) ∈ [ y 1 − d y 1 / 2 , y 1 + d y 1 / 2 ] , . . . , f ω ( x N ) ∈ [ y N − d y N / 2 , y N + d y N / 2 ] , ω ∈ Ω } ) = N μ ( x ) , K ( x , x ) ( y 1 , . . . , y N ) d y 1 . . . d y N , ∀ { x n ∈ X } n = 1 N P(\{\omega:f_\omega(x_1)\in[y_1-dy_1/2, y_1+dy_1/2],...,f_\omega(x_N)\in[y_N-dy_N/2,y_N+dy_N/2],\omega\in\Omega\})=\mathcal{N}_{\mu(\textbf{x}),K(\textbf{x},\textbf{x})}(y_1,...,y_N)dy_1...dy_N,\quad \forall \{x_n\in\mathcal{X}\}_{n=1}^N P({ ω:fω(x1)[y1dy1/2,y1+dy1/2],...,fω(xN)[yN

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值