一个例子贯穿Gaussian Process高斯过程入门和应用(附例程)

本文通过线性回归引出非线性回归的问题,进而介绍高斯过程作为非线性回归的一种方法。高斯过程通过假设每个离散点服从高斯分布,从而进行曲线拟合。文章通过实例详细阐述了高斯过程的直观解释、计算μ和σ的方法,并给出了部分Matlab代码实现。
摘要由CSDN通过智能技术生成


说明:本文中加粗的字母代表向量,未加粗的字母代表标量

1.引子:线性回归

下图是一个简单的线性回归问题:
我们给定9个点,图中蓝色的 t r a i n i n g   p o i n t s training\ points training points,我们知道他们的输入和输出,例如下图因为是一维单输入单输出,所以我们用一个二维坐标系就可以呈现。
图1中我们的实际函数是 y = f ( x ) = x y=f(x)=x y=f(x)=x,由于这是一个线性函数,所以我们如果想得到这9个点拟合的回归可以采用最简单的最小二乘法拟合,如果把这九个点当做一个回归子( R e g r e s s o r Regressor Regressor),通过公式 w ^ = ( Z T Z ) − 1 Z T y \hat{\textbf{w}}=(\mathbf{Z}^{\mathbf{T}}\mathbf{Z})^{-1}\mathbf{Z}^{\mathbf{T}}\textbf{y} w^=(ZTZ)1ZTy,这里 Z N × d = [ z 1 , z 2 , . . . , z N ] T \mathbf{Z}_{N \times d}=[\textbf{z}_{1},\textbf{z}_{2},...,\textbf{z}_{N}]^{\mathbf{T}} ZN×d=[z1,z2,...,zN]T, y N × 1 = [ y 1 , y 2 , . . . , y N ] T \textbf{y}_{N \times 1}=[y_{1},y_{2},...,y_{N}]^{\mathbf{T}} yN×1=[y1,y2,...,yN]T,可以算出 w \textbf{w} w,也就是回归中最重要的也是唯一的参数,具体的推导在这里不演示了,但是必须注意的是,这里国内几乎所有的文献资料都是把算出 w \textbf{w} w就大功告成了,(我猜想可能是由于回归过程最终有机器编程自动实现,所以大家都没重视)但理解的层面,实际上如果我们真正手动计算验证的时候 w \textbf{w} w其实是一个包含斜率和截距,也就是说我们回归问题里如果模型是 y = w T z y=\textbf{w}^{\mathbf{T}}\textbf{z} y=wTz,实际上 w = [ w 0 , w 1 , . . . . . . w d ] T , z = [ 1 , z 1 , . . . . . . z d ] T \textbf{w}=[w_0,w_1,......w_d]^{\mathbf{T}},\textbf{z}=[1,z_1,......z_d]^{\mathbf{T}} w=[w0,w1,......wd]T,z=[1,z1,......zd]T,对于一个d维的回归子。
例如在这里,我们的回归子就是简单的一维,所以实际上模型是 y = w 1 T z + w 0 , y=w_1^\mathbf{T}\textbf{z}+w_0, y=w1Tz+w0,,然后我们通过算出的 w \textbf{w} w就可以做出这9个点的回归直线,如下图所示,和实际的直线差异不大。
图1:

2.引子:非线性回归

上图中我们的实际曲线是一条线性的直线, y = f ( x ) = x y=f(x)=x y=f(x)=x,那么如果我们把他换成一条非线性的曲线 y = f ( x ) = x 3 y=f(x)=x^3 y=f(x)=x3,我们依旧按照上面线性回归计算就会得到如下的结果;
在这里插入图片描述
如果说第一个图的结果还算过关,那么上图的结果显然不能满足我们的预期,那么这时我们就引入了正题:高斯过程。其实高斯过程主要有两个应用的领域:高斯过程回归和高斯过程分类,而我们着重介绍的并且实际最多运用的其实是高斯过程回归。
而高斯过程回归本质上是一种非线性回归,而他实际上是由贝叶斯线性回归引出的,所以他的本质是一种贝叶斯非线性回归。但是由于贝叶斯回归也相当复杂,要想理解通透必须对概率论知识理解很深,所以我们其实可以跨越贝叶斯理论去理解高斯过程回归。

3.一种直观的解释

我们依旧采用引子中的例子,第一步先用自带白噪声(服从高斯分布)的曲线 y = f ( x ) = x 3 y=f(x)=x^3 y=f(x)=x3生成9个随机的点,作为我们的 t r a i n i n g   p o i n t s training\ points training points。如下图示:
222
那么问题来了,到底什么是高斯过程呢?
通俗的来说,借用上图这个例子,我们想用这九个蓝色的点去拟合一条在(-1.5,2)这个区间内的曲线,那么首先我们可以把这个连续的区间看成无数离散的点组成,当然实际编程中我们肯定是当做尽量多的有限N个点,对于每个离散的点,我们假定他是服从高斯分布的。那么每次拟合如果采用每个点的随机的服从高斯分布的点,那就会有无穷多个拟合的可能性,我们最后可以选择这无穷多种拟合的曲线求一个平均值 μ \mu μ,并且由于在每个离散的点都是服从高斯分布的,所以我们还可以算出每个位置的 σ \sigma σ
所以一句话概况,高斯过程就是时间上或者空间上无穷多个曲线的拟合,其中这些曲线并不是服从高斯分布的,而是,每个离散的时间点或者空间点服从高斯分布
通过这个定义我们也能联想到,高斯过程是非常适合动态系统分析的,因为随着时间的变化,我们可以即时采样当做 R e g r e s s o r Regressor Regressor,并且对于时变系统,当 R e g r e s s o r Regressor Regressor随着时间变化而变化时,我们也可以依旧获取即时的回归曲线。

那我们继续开展我们的例子:
在这里插入图片描述
上图中蓝色的曲线就形象地展示了高斯过程在一个离散时间或者空间点的预测。图中蓝色的曲线就显然是一个高斯分布的,我们把他画成水平的是方便对比,因为这个高斯分布的随机取值就对应了我们图中y轴。图中的绿线实际上是我们后面会介绍到的整个高斯过程回归的 μ \mu

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值