<转>浅谈:高斯过程与贝叶斯优化

高斯过程(Gaussian process)算法

高斯过程常在论文里面简写为GP。定义:若是随机过程的有限维分布均为正态分布,则称此随机过程为高斯过程或正态过程。机器学习

首先咱们来解读一下定义:ide

第一个问题:什么是随机过程?函数

 

你们都学过几率论,必定知道什么叫样本空间和随机变量(此处假设读者知道)。在几率论中,讲过样本空间,随机变量至关因而在样本空间中的一次采样,采样的结果是一个事件,在每次采样的时候都知足必定的分布。随机过程和随机变量的区别在于,样本空间里装的不是事件,装的是过程(一串事件)。每次的采样的结果是一个过程,好比一个序列,一个时间的函数等等。学习

 

样本空间就是图中蓝紫色的部分,在蓝紫色空间中随便画一条函数,都是一个可能的随机过程。(这张图是盗用的“阿米斯丹猫的博客”)优化

第二个问题:什么是“随机过程的有限维分布均为正态分布”?ui

咱们先来看一个随机序列:这是一个有限维n的序列,咱们能够理解为一个无穷维序列进行的n次采样。在这里能够理解为时间,可是更准确的应该理解为一个连续的指标集。由于其通常性,就能够当作的有限维分布。3d

因此“随机过程的有限维分布均为正态分布”就好理解了,即服从一个n元正太分布。

在机器学习任务中,咱们每每是假设咱们的问题知足一个高斯过程的,或者经过核函数来“拓展”高斯过程对其余过程的表示能力。blog

 

贝叶斯优化(Bayesian Optimization)

贝叶斯优化的主要目的是与大部分机器学习算法相似,学习模型的表达形式 ,在必定范围内求一个函数的最大(小)值。事件

这类每每很特殊:

1. 没有解析表达或者形式未知,故而没办法用跟梯度有关的优化方法;

2. 值的肯定会受到一些外界干预(如人的干预)。

贝叶斯优化算法核心步骤以下:

(1).经过样本点对高斯过程 进行估计和更新。(后简称高斯过程)

(2).经过提取函数acquisition function)来指导新的采样。(后简称提取函数)

 

高斯过程:假设咱们须要估计的模型服从高斯过程,即:

这里的协方差矩阵要用到内积的核化,笔者理解为拓展了高斯过程表达其余过程的能力,毕竟在实际问题上直接假设一个过程服从高斯过程稍微有点牵强。

假设有一组样本点

为了简便推导,先假设数据提早被中心化,即,其中:

对于一个新样本 ,因为新样本的加入会更新高斯过程的协方差矩阵:

协方差矩阵更新过程以下:

有了更新后的协方差矩阵就能够经过前t个样本估计出的后验几率分布:

关于上述内容的推倒过程和核函数该如何选择的问题,请参考《Gaussian Processesfor Machine Learning》。

 

 

提取函数:从上述高斯过程能够看出,经过采样能够获得目标函数的几率描述。那么很天然地,咱们但愿经过采样来精确这种描述。咱们看论文的时候常常会在论述acquisition function 的地方看到两种采样思路,一种是explore和exploit:

Explore:探索新的空间,这种采样有助于估计更准确的

Exploit:在已有结果附近(通常是已有最大值附近)进行采样,从而但愿找到更大的

acquisition function的目的就旨在平衡这两种采样过程。

 

 

这里举一个不太恰当的栗子,对于一个吃货,到一个陌生的城市去寻找美食,其实就是一个采样再评价的过程。(显然吃货能够吃遍全城,可是受限于囊中羞涩,不得不考虑如何优化采样)Exploit就是在曾经已经吃过的餐厅里,再细细品味寻找一个最优的;Explore就好像是寻找新的餐厅。acquisition function在这里的意义就在于寻找一个更加合理的策略去平衡这两者,给出一个下一次采样的目标饭点。这个问题就是一个典型的没有模型,并且采样结果受外界干预(人的主观评价)的例子。

回归正题,在数据问题里,Explore是但愿选择有更大方差的数据,Exploit是但愿选择更接近均值的数据。
常见的方法有:
1. Expected Improvement

2. Upper Confidence Bound

下面一一介绍:

方法1:Expected Improvement(EI)

acquisition function:

这里的定义为数据集D上的最大值。上面的定义式子并不直观,咱们将其展开:

 

咱们为了推导方便定义一个扰动参数:

 

其中是高斯分布的累计几率函数,是高斯分布的几率密度函数

因此:

方法2:Upper Confidence Bound(UCB)

相比于上面的EI而言,UCB则更加简单粗暴,效果也十分不错。

从式子能够看出来,UCB就是一个将Explore和Exploit进行了线性加权。

 

 

到此为止,咱们解决了模型的估计,更新(高斯过程)和再采样(提取函数)的过程。贝叶斯优化就是不断地进行采样,计算更新模型的过程。

相关文章
相关标签/搜索