高斯过程(Gaussian Process)的取样是如何实现的呢?

论坛 期权论坛 期权     
孙之清   2018-9-28 00:21   1483   4
例如Wikipedia的Gaussian Process词条中的这个图片,假设我们知道了一个GP的mean和covariance,我们如何要如何抽样出这个GP中的某个函数样本,以及如何保证这个函数是连续?
分享到 :
0 人收藏

4 个回复

倒序浏览
2#
lixin liu  2级吧友 | 2018-9-28 00:22:00 发帖IP地址来自
高斯过程的样本是函数,函数是无穷维的,因此我们不可能拿到一个完整的样本,只能得到某个样本在某几个位置的值。高斯过程的有限维分布是高斯分布,因此只要给定几个坐标值,计算出高斯过程在这几个位置的有限维分布,再对这个有限维分布进行采样,就可以得到某个样本在这几处的值。如果按给定间隔取点,再画出来,就是你给的图的样子了。
具体来说,给定高斯过程
,和一列希望进行采样的位置
,通过下面的迭代算法就可以得到该高斯过程的一个样本
在这一系列位置的取值

1、设

。根据
采样出第一个值。
2、假设已经得到了
个取值,第
个取值可以通过对条件分布

进行采样得到,高斯分布的条件分布也是高斯分布,具体形式可参见Multivariate normal distribution
具体计算如下,设








计算




再根据
采样得到第
个值,就可以以增量的方式得到

这个算法的复杂度应该不算高,因为每一步需要的
可以通过Schur complement利用上一步得到的

计算得到。

连续和可微我不是太了解。不过我(瞎)猜是不是可以通过对

进行限制,使得对于任意

,有

,则连续,有

,则可微?这里

3#
陈默  2级吧友 | 2018-9-28 00:22:01 发帖IP地址来自
你采样不出function,你能采样出在这个function的点。点足够密画出来的看起来是平滑的曲线。而实际上这个函数是处处连续处处不可微。
4#
蓦风星吟  3级会员 | 2018-9-28 00:22:02 发帖IP地址来自
并不是其实我不太明白问题,如何取样一个GP,意思是如何实际操作得到一个GP样本么?那么下面是一种方法的步骤:
1.给定mean和covariance(kernel) function,比如最简单的mean默认为0,,kernel = Standard Exponential(SE)。
2.给定mean以及kernel中的hyperparameter的初始值,比如,mean=0,就不用给,kernel =SE, 需要给出其中的
(这个表述跟gpml一致,Documentation for GPML Matlab CodeDocumentation for GPML Matlab Code)。
3. 给定想要产生的样本函数定义域,比如问题图中的范围[-5,5],如果是计算程序的,自然还涉及到取多少个点,比如在给定的[-5,5]中取均匀的100个点。
4.有了kernel,有了hyperparameter的初始值,有个具体的样本函数的范围和点,那么我们就可以计算出对应的kernel的covariance matrix,记为C。
5.对C进行SVD分解,

6. 从标准正态分布中产生n个点的样本,记为

7.一个给定kernel类型,给定hyperparameter的初始值以及具体的样本函数的input点,的GP,
  .这个就是一个GP的样本。

如果要问为什么这个是个GP,那么根据这个只要计算mean和covariance就好,原因在于下面这个定理(详见https://arxiv.org/pdf/1605.07906.pdf

所以,
,
,因为可以说明这就是以上GP的一个样本。

简单的给个基于gpml工具包的函数代码(代码需要先加载gpml的startup):
  1. function z_gp = gp_gpml_sample(cov, x, hyp)n = size(x,1);C = feval(cov{:},hyp,x);[u,s,~] = svd(C);  %SVD decomposition, C=usv'gn = randn(n,1);  % Genearate a sample from standard normal distributionz_gp = u*sqrt(s)*gn;
复制代码
当然这只是一种生成GP样本的方法,并不是唯一的,只要最后可以验证定理中的指出的mean和covariance就好!

至于后面的连续不连续的问题,我更是不明白。这些函数理论上都是连续,而通过描点画的图自然不是连续的啦。
5#
Dai Zhongxiang  1级新秀 | 2018-9-28 00:22:03 发帖IP地址来自
可以把Gaussian Process 想象成一个infinite-dimensional Gaussian distribution, 横坐标上面的每一个点对应一个dimension (variable);这样的话每一次从这个infinite-dimensional Gaussian distribution采样的话得到的是一个infinite-dimensional的vector,然后画出来就是一条平滑的曲线啦。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP