高斯过程简析
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
X∈RN×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(x−x′)2)−α
其中
h
,
α
,
l
h,\\alpha, l
h,α,l 为正实数,我们称之为超参数,需要通过数据来训练得到。
**所以,给定一堆已有数据,怎么预测其他数据呢?**对于给定的输入
X
∈
R
N
×
D
\\boldsymbolX \\in \\mathbbR^N \\times D
X∈RN×D 以及对应的输出
f
∈
R
n
\\boldsymbolf \\in \\mathbbR^n
f∈Rn, 当给定新的数据
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以上是关于高斯过程简析的主要内容,如果未能解决你的问题,请参考以下文章