高斯过程简析

Posted 白巧克力亦唯心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高斯过程简析相关的知识,希望对你有一定的参考价值。

前言

SLAM 方向对 Gaussian Process (GP)的需求不大,但这两年有好几篇 IROS,ICRA 的论文用高斯过程来拟合轨迹,拟合误差模型等,因此这篇笔记对高斯过程概念和原理进行简单梳理,理清楚 GP 是怎么来的,以及怎么用它。如果想更进一步系统学习下,推荐 MIT 出版的 Gaussian Processes for Machine Learning.

高斯过程是什么

高斯过程可以通俗的认为是函数拟合或回归近似,即给出变量 x \\boldsymbolx x, 能预测出 f ( x ) f(\\boldsymbolx) f(x)。高斯分布是针对向量 x \\boldsymbolx x ,高斯过程则是对函数 f ( x ) f(\\boldsymbolx) f(x)。更学术一点的描述,高斯过程认为是一个服从均值是函数 m ( x ) m(\\boldsymbolx) m(x),方差也是函数 k ( x , x ′ ) k\\left(\\boldsymbolx, \\boldsymbolx^\\prime\\right) k(x,x) 的高斯分布 ,其中对任意变量 x , x ′ \\boldsymbolx, \\boldsymbolx^\\prime x,x m ( x ) = E [ f ( x ) ]  ,  k ( x , x ′ ) = Cov ⁡ ( f ( x ) , f ( x ′ ) ) m(\\boldsymbolx)=\\mathbbE[f(\\boldsymbolx)] \\text , k\\left(\\boldsymbolx, \\boldsymbolx^\\prime\\right)=\\operatornameCov\\left(f(\\boldsymbolx), f\\left(x^\\prime\\right)\\right) m(x)=E[f(x)] , k(x,x)=Cov(f(x),f(x))

举个简单的例子,一个函数 f ( ⋅ ) f(\\cdot) f() 的任意有限子集 f ( x 1 ) , … , f ( x n ) f\\left(\\boldsymbolx_1\\right), \\ldots, f\\left(\\boldsymbolx_n\\right) f(x1),,f(xn) 服从多元高斯分布,则称 f ( ⋅ ) f(\\cdot) f() 是一个高斯过程,其中输入 x n n = 1 N \\left\\\\boldsymbolx_n\\right\\_n=1^N xnn=1N 是任意维的向量。比如, x n n = 1 365 \\left\\\\boldsymbolx_n\\right\\_n=1^365 xnn=1365 表示 365 天, f ( x n ) f\\left(\\boldsymbolx_n\\right) f(xn) 表示某天的温度。

对于 N 组 D 维的输入数据 X ∈ R N × D \\boldsymbolX \\in \\mathbbR^N \\times D XRN×D,每一行表示一个输入(如24个小时时间点),协方差矩阵写为:
K X X = ( k ( x 1 , x 1 ) ⋯ k ( x 1 , x N ) ⋮ ⋱ ⋮ k ( x N , x 1 ) ⋯ k ( x N , x N ) ) \\boldsymbolK_\\boldsymbolX X=\\left( \\beginarrayccck\\left(\\boldsymbolx_1, \\boldsymbolx_1\\right) & \\cdots & k\\left(\\boldsymbolx_1, \\boldsymbolx_N\\right) \\\\ \\vdots & \\ddots & \\vdots \\\\ k\\left(\\boldsymbolx_N, \\boldsymbolx_1\\right) & \\cdots & k\\left(\\boldsymbolx_N, \\boldsymbolx_N\\right)\\endarray\\right) KXX=k(x1,x1)k(xN,x1)k(x1,xN)k(xN,xN)
k ( x , x ′ ) k\\left(\\boldsymbolx, \\boldsymbolx^\\prime\\right) k(x,x) 为核函数,通常只要求这个核函数是正定函数,好让 K X X \\boldsymbolK_\\boldsymbolX X KXX 符合协方差矩阵的性质。比如对于服从零均值的 1 维变量 x n \\left\\x_n\\right\\ xn ,通常会用如下的核函数 (rational quadratic covariance function, RQ):
k ( x , x ′ ) = h 2 ( 1 + ( x − x ′ ) 2 2 α l 2 ) − α k\\left(x, x^\\prime\\right)=h^2\\left(1+\\frac\\left(x-x^\\prime\\right)^22 \\alpha l^2\\right)^-\\alpha k(x,x)=h2(1+2αl2(xx)2)α
其中 h , α , l h,\\alpha, l h,α,l 为正实数,我们称之为超参数,需要通过数据来训练得到。

**所以,给定一堆已有数据,怎么预测其他数据呢?**对于给定的输入 X ∈ R N × D \\boldsymbolX \\in \\mathbbR^N \\times D XRN×D 以及对应的输出 f ∈ R n \\boldsymbolf \\in \\mathbbR^n fRn, 当给定新的数据 X ∗ \\boldsymbolX_* X 时,我们要能预测出对应的 f ∗ \\boldsymbolf_* f. 将训练集和测试集联合起来,得到多元高斯分布:
( f f ∗ ) ∼ N ( ( m X m X ∗ ) , ( K X X K X X ∗ K X ∗ X K X ∗ X ∗ ) ) \\left( \\beginarrayc\\boldsymbolf \\\\ \\boldsymbolf_*\\endarray\\right) \\sim \\mathcalN\\left(\\left( \\beginarrayc\\boldsymbolm_\\boldsymbolX \\\\ \\boldsymbolm_\\boldsymbolX_*\\endarray\\right), \\left( \\beginarrayc\\boldsymbolK_\\boldsymbolX X \\quad \\boldsymbolK_\\boldsymbolX\\boldsymbolX_* \\\\ \\boldsymbolK_\\boldsymbolX_*\\boldsymbolX \\quad \\boldsymbolK_\\boldsymbolX_*\\boldsymbolX_*\\endarray\\right)\\right) (ff)N((mXmX以上是关于高斯过程简析的主要内容,如果未能解决你的问题,请参考以下文章

高斯消元简析

将随机矩阵变为半正定

EM算法(转)

多元高斯分布

固定维数(N=9)、对称、半正定的密集线性系统的快速求解

伽马函数常用性质总结以及高斯函数的矩母函数公式推导(随机过程)