高斯过程是什么?

高斯过程是一种机器学习方法,它允许我们基于有限的输入和输出数据来定义函数分布。通过mean函数和kernel函数指定,可以采样出多种可能的函数。在实际操作中,选择合适的kernel至关重要。本文通过体重变化的例子展示了如何构建和利用高斯过程进行预测,揭示出周期性和长期趋势,显示了其灵活性和适用性。
摘要由CSDN通过智能技术生成

本文译自: Duane Rich 的文章Which is your favorite Machine Learning algorithm?

几乎所有的有监督机器学习算法都专注于找到一个函数 f ( ) f() f(),这个函数是从特征 x i x_i xi到标签 y i y_i yi的映射的一个近似。通常情况下一个函数的参数决定了一个函数。根据数据,我们通过确定这些参数的(后验)分布来确定可能的函数。

高斯过程允许我们根据一组任意有限的输入和输出来引用函数。我们通过一个分布来指定函数:
f ( x ) = G P ( m ( x ) , k ( x , x ′ ) ) f(x)=GP(m(x),k(x,x')) f(x)=GP(m(x),k(x,x))
其中 m ( x ) m(x) m(x) k ( x , x ′ ) k(x,x') k(x,x)是给定的函数,分别叫做mean函数和kernel函数。为了理解这一点,你可以想象你能从这个GP中采样出大量的函数,不妨称它们为 f 1 ( ) , f 2 ( ) , . . . , f N ( ) f_1(),f_2(),...,f_N() f1(),f2(),...,fN()。如果你能在一个特定的 x ∗ x^* x中评估这N个函数,你会发现者N个函数的输出的平均值是 m ( x ∗ ) m(x^*) m(x)。同样的,如果你在两个输入 x 1 , x 2 x_1,x_2 x1,x2中评估这些函数,这些输出的协方差是 k ( x 1 , x 2 ) k(x_1,x_2) k(x1,x2)

正如你可以从一个随机变量的分布中采样出一些值一样,你也可以从高斯过程中采样出函数。举个例子,如果你指定 m ( x ) = 0 , 以 及 k ( x , x ′ ) 为 M a t e r n K e r n e l m(x)=0,以及k(x,x')为Matern Kernel m(x)=0,k(x,x)MaternKernel。你采样出来的函数可能长这样:

在这里插入图片描述

(source - scikit learn)

因此,一个高斯过程包括一个指定的先验分布, G P p r i o r GP_{prior} GPprior。然后以我们数据为条件,确定出一个函数的后验分布 G P p o s t GP_{post} GPpost

在实际应用中,我们会使用一个向量对kernel进行参数化,然后选择一个可以最大化我们的数据和 G P p o s t GP_{post} GPpost的特定向量。这个技术的真正艺术之处在于选择合适的Kernel function。

最后,我们将使用一个优化好的 G P p o s t GP_{post} GPpost,它可以由于评估任何给定的输入,我们不需要得到一个输出值,而是得到一个关于输出的分布。

好了,让我们现在来使用高斯过程吧!

下面是我6个月的体重:
在这里插入图片描述
你能看出什么规律么?其实我也看不出来。但是:

  1. 这些时刻很接近
  2. 这些时刻在一些周期的同一部分(一周或者一个月中的同一天等)

所以,让我们来构造出我们的kernel metric吧。

考虑到,这些时间特征并不是影响体重唯一的因素,应该还有其他特征来影响体重,所以我们应该在我们的kernel中加入一些噪音。

最后,我的体重应该有一些长期趋势,比如我可能在两周里吃了太多的披萨。或者我在某些日子生病了导致身体日渐消瘦。考虑到这些因素,我们将使用Matern Kernel。

好,现在让我们测试一下。我们将隐藏25%的数据用于预测。我将根据测试结果画出一个和两个标准偏差的置信区间。因此我们得到了:

在这里插入图片描述

从图中可以看出规律已经比较清晰了。我的体重大约有个时长一周的周期,并且会在几周内趋于正常。 样本不足,我们得到了不错的预测,因为它依赖于周期性并且不会从虚假的趋势中推断出来。分布的输出似乎对数据进行了很好的校准。

总之,高斯过程很灵活,你可以将你的一些直觉插入模型中,用于解决一些小问题。但是这不是一个通用的模型,他的拓展性不太好。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值