22.一文讲懂高斯过程回归

703 阅读5分钟

一、概述

将⼀维高斯分布推广到多变量中就得到了高斯网络,将多变量推广到无限维,就得到了高斯过程。高斯过程是定义在连续域(时间/空间)上的无限多个高斯随机变量所组成的随机过程。具体的形式化的定义如下:

对于时间轴上的随机变量序列{ξt}tT\left \{\xi _{t}\right \}_{t\in T}TT是一个连续域,如果nN+\forall n\in N^{+}t1,t2,,tnTt_{1},t_{2},\cdots ,t_{n}\in T,满足{ξt1,ξt2,,ξtn}ξt1tnN(μt1tn,Σt1tn)\left \{\xi _{t_{1}},\xi _{t_{2}},\cdots ,\xi _{t_{n}}\right \}\triangleq\xi _{t_{1}-t_{n}}\sim N(\mu _{t_{1}-t_{n}},\Sigma _{t_{1}-t_{n}}),那么{ξt}tT\left \{\xi _{t}\right \}_{t\in T}就是一个高斯过程(Gaussian Process)。

上面的定义中tt称为index,ξt\xi _{t}是随机变量。

一个高斯过程可以有两个函数,即均值函数m(t)m(t)和协方差函数k(s,t)k(s,t)来确定:

GP(m(t),k(s,t)){m(t)=E[ξt]k(s,t)=E[(ξsE[ξs])(ξtE[ξt)]GP\left (m\left (t\right ),k\left (s,t\right )\right )\\ \left\{\begin{matrix} m(t)=E[\xi _{t}]\\ k\left (s,t\right )=E[(\xi _{s}-E[\xi _{s}])(\xi _{t}-E[\xi _{t})] \end{matrix}\right.

举个例子来说,下图的时间轴(也就是定义中的连续域)代表了人的一生,这里假设人能活100岁,从这个连续域里任意取多个时刻都会对应了一个高斯随机变量:

image.png

这里的每个随机变量可以认为是一个人在一生中这个阶段的表现值,服从一个高斯分布:

webp-1674537219642-4.webp

在这个人人生的每一个阶段,如果他比较努力,他的表现可能就比均值高,如果不努力可能表现就比均值低,将每个高斯分布采样的样本点连起来就是高斯过程的一个样本:

webp-1674537241682-7.webp

二、核贝叶斯线性回归-权重空间角度

之前的贝叶斯线性回归博客:贝叶斯线性回归

在处理线性数据时,我们可以直接采取贝叶斯线性回归的策略。对于非线性数据,一种有效的方法是利用核技术将其从低维空间映射到高维空间,然后再执行贝叶斯线性回归。这与支持向量机中的核技术有一定的相似性。如果最终的结果只与一个核函数(即关于xx的内积)有关,那么就适合采用核技术。同样地,在执行非线性贝叶斯线性回归时,如果数据在被映射到高维空间后,其后验的均值和方差仅与一个核函数相关,那么这就证明了在贝叶斯线性回归中使用核技术是有效的。

对于线性数据的预测来说,有:

f(x)X,Y,xN((x)Tσ2Λw1XTY,(x)TΛw1x),  其中Λw=σ2XTX+Σp1f(x^{*})|X,Y,x^{*}\sim N\left (\left (x^{*}\right )^{T}\sigma ^{-2}\Lambda _{w}^{-1}X^{T}Y,\left (x^{*}\right )^{T}\Lambda _{w}^{-1}x^{*}\right ),\; 其中\Lambda _{w}=\sigma ^{-2}X^{T}X+\Sigma _{p}^{-1}

对于非线性数据,要使用核方法,首先要对其进行低维到高维的非线性转换:

If:ϕ:xz,  xRp,  z=ϕ(x)Rq,  q>pDefine:Φ=ϕ(X)=(ϕ(x1)ϕ(x2)ϕ(xN))N×qTThen:f(x)=ϕ(x)Twf(x)X,Y,xN(σ2ϕ(x)TΛw1ΦTY,ϕ(x)TΛw1ϕ(x)),  Λw=σ2ΦTΦ+Σp1If:\phi :x \mapsto z,\; x\in \mathbb{R}^{p},\; z=\phi (x)\in \mathbb{R}^{q},\; q> p\\ Define:\Phi =\phi (X)=\begin{pmatrix} \phi (x_{1}) & \phi (x_{2}) & \cdots & \phi (x_{N}) \end{pmatrix}_{N\times q}^{T}\\ Then:f(x)=\phi (x)^{T}w\\ f(x^{*})|X,Y,x^{*}\sim N\left (\sigma ^{-2}\phi \left (x^{*}\right )^{T}\Lambda _{w}^{-1}\Phi ^{T}Y,\phi \left (x^{*}\right )^{T}\Lambda _{w}^{-1}\phi \left (x^{*}\right )\right ),\; \Lambda _{w}=\sigma ^{-2}\Phi ^{T}\Phi +\Sigma _{p}^{-1}

上面的式子中,均值和方差都存在Λw1\Lambda _{w}^{-1},这一项可以通过伍德伯里矩阵恒等式(Woodbury Matrix Identity)求出来,该恒等式如下:

(A+UCV)1=A1A1U(C1+VA1U)1VA1其中A:n×n,U:n×k,C:k×k,V:k×n(A+UCV)^{-1}=A^{-1}-A^{-1}U(C^{-1}+VA^{-1}U)^{-1}VA^{-1}\\ 其中A:n\times n,U:n\times k,C:k\times k,V:k\times n

按照伍德伯里矩阵恒等式的形式,我们可以将Λw\Lambda _{w}对应为A+UCVA+UCV

Λw=Σp1A+ΦTUσ2ICΦV\Lambda _{w}=\underset{A}{\underbrace{\Sigma _{p}^{-1}}}+\underset{U}{\underbrace{\Phi ^{T}}}\underset{C}{\underbrace{\sigma ^{-2}I}}\underset{V}{\underbrace{\Phi}}

代入恒等式求解得到Λw1\Lambda _{w}^{-1}

Λw1=(Σp1+ΦTσ2IΦ)1=ΣpΣpΦT(σ2I+ΦΣpΦT)1ΦΣp\Lambda _{w}^{-1}=(\Sigma _{p}^{-1}+\Phi ^{T}\sigma ^{-2}I\Phi)^{-1}\\ =\Sigma _{p}-\Sigma _{p}\Phi ^{T}(\sigma ^{2}I+\Phi\Sigma _{p}\Phi ^{T})^{-1}\Phi\Sigma _{p}

Λw1\Lambda _{w}^{-1}代入就能f(x)X,Y,xf(x^{*})|X,Y,x^{*},就能得到均值和方差,不过这里的均值直接代入比较复杂,可以通过对Λw\Lambda _{w}做一些变换来得到均值:

Λw=σ2ΦTΦ+Σp1ΛwΣp=σ2ΦTΦΣp+IΛwΣpΦT=σ2ΦTΦΣpΦT+ΦTΛwΣpΦT=σ2ΦT(ΦΣpΦT+σ2I)ΣpΦT=σ2Λw1ΦT(ΦΣpΦT+σ2I)σ2Λw1ΦT=ΣpΦT(ΦΣpΦT+σ2I)1σ2ϕ(x)TΛw1ΦTY=ϕ(x)TΣpΦT(ΦΣpΦT+σ2I)1Y\Lambda _{w}=\sigma ^{-2}\Phi ^{T}\Phi +\Sigma _{p}^{-1}\\ \Leftrightarrow \Lambda _{w}\Sigma _{p}=\sigma ^{-2}\Phi ^{T}\Phi \Sigma _{p}+I\\ \Leftrightarrow \Lambda _{w}\Sigma _{p}\Phi ^{T}=\sigma ^{-2}\Phi ^{T}\Phi \Sigma _{p}\Phi ^{T}+\Phi ^{T}\\ \Leftrightarrow \Lambda _{w}\Sigma _{p}\Phi ^{T}=\sigma ^{-2}\Phi ^{T}(\Phi \Sigma _{p}\Phi ^{T}+\sigma ^{2}I)\\ \Leftrightarrow \Sigma _{p}\Phi ^{T}=\sigma ^{-2}\Lambda _{w}^{-1}\Phi ^{T}(\Phi \Sigma _{p}\Phi ^{T}+\sigma ^{2}I)\\ \Leftrightarrow \sigma ^{-2}\Lambda _{w}^{-1}\Phi ^{T}=\Sigma _{p}\Phi ^{T}(\Phi \Sigma _{p}\Phi ^{T}+\sigma ^{2}I)^{-1}\\ \Leftrightarrow \sigma ^{-2}\phi (x^{*})^{T}\Lambda _{w}^{-1}\Phi ^{T}Y=\phi (x^{*})^{T}\Sigma _{p}\Phi ^{T}(\Phi \Sigma _{p}\Phi ^{T}+\sigma ^{2}I)^{-1}Y

由此求得了f(x)X,Y,xf(x^{*})|X,Y,x^{*}的均值,将Λw1\Lambda _{w}^{-1}带入方差可以计算得到方差:

ϕ(x)TΣpϕ(x)ϕ(x)TΣpΦT(σ2I+ΦΣpΦT)1ΦΣpϕ(x)\phi(x^{*})^{T}\Sigma _{p}\phi(x^{*})-\phi(x^{*})^{T}\Sigma _{p}\Phi ^{T}(\sigma ^{2}I+\Phi\Sigma _{p}\Phi ^{T})^{-1}\Phi\Sigma _{p}\phi(x^{*})

因此最终得到f(x)X,Y,xf(x^{*})|X,Y,x^{*}的概率分布如下:

f(x)X,Y,xN(ϕ(x)TΣpΦT(ΦΣpΦT+σ2I)1Y,ϕ(x)TΣpϕ(x)ϕ(x)TΣpΦT(σ2I+ΦΣpΦT)1ΦΣpϕ(x))f(x^{*})|X,Y,x^{*}\sim N({\color{Red}{\phi (x^{*})^{T}\Sigma _{p}\Phi ^{T}}}({\color{Red}{\Phi \Sigma _{p}\Phi ^{T}}}+\sigma ^{2}I)^{-1}Y,\\{\color{Red}{\phi(x^{*})^{T}\Sigma _{p}\phi(x^{*})}}-{\color{Red}{\phi(x^{*})^{T}\Sigma _{p}\Phi ^{T}}}(\sigma ^{2}I+{\color{Red}{\Phi\Sigma _{p}\Phi ^{T}}})^{-1}{\color{Red}{\Phi\Sigma _{p}\phi(x^{*})}})

通过上面式子的红色部分可以看出f(x)X,Y,xf(x^{*})|X,Y,x^{*}的分布只与K(x,x)=ϕ(x)TΣpϕ(x)K(x,x^{'})=\phi(x)^{T}\Sigma _{p}\phi(x^{'})这样的项有关,如果我们能够证明这是一个核函数(即能够表达为一个内积的形式),那么就意味着对于非线性数据,我们可以采用核技巧将数据映射到高维空间,然后再执行贝叶斯线性回归。接下来,我们将进行以下定义:

Σp:正定且对称,Σp=(Σp1/2)2K(x,x)=ϕ(x)TΣp1/2Σp1/2ϕ(x)=(Σp1/2ϕ(x))TΣp1/2ϕ(x)=<ψ(x),ψ(x)>,    ψ(x)=Σp1/2ϕ(x)\because \Sigma _{p}:正定且对称,\Sigma _{p}=(\Sigma _{p}^{1/2})^{2}\\ \therefore K(x,x^{'})=\phi(x)^{T}\Sigma _{p}^{1/2}\Sigma _{p}^{1/2}\phi(x^{'})=\left (\Sigma _{p}^{1/2}\phi(x)\right )^{T}\Sigma _{p}^{1/2}\phi(x^{'})=<\psi (x), \\ \psi (x^{'})>,\; \; \psi (x)=\Sigma _{p}^{1/2}\phi(x)

因此这是一个核函数。

核贝叶斯线性回归也就是高斯过程回归,这个从参数ww的角度进行推导的过程是高斯过程回归的权重空间角度。

三、从权重空间角度到函数空间角度

对于应用了核方法的贝叶斯线性回归,满足:

f(x)=ϕ(x)Twy=f(x)+εεN(0,σ2)f(x)=\phi (x)^{T}w\\ y=f(x)+\varepsilon \\ \varepsilon \sim N(0,\sigma ^{2})

这里给定先验ww满足一个高斯分布:

wN(0,Σp)w\sim N(0,\Sigma _{p})

ww是一个随机变量,那么f(x)f(x)也是一个随机变量,对于不同xxf(x)f(x)就是不同的随机变量,{f(x)}\left \{f(x)\right \}就是一些随机变量的组合。接下来,对于f(x)f(x),我们看一下它的均值和协方差:

E[f(x)]=E[ϕ(x)Tw]=ϕ(x)TE[w]=0cov(f(x),f(x))=E[(f(x)E[f(x)]=0)(f(x)E[f(x)]=0)]=E[f(x)f(x)]=E[ϕ(x)Twϕ(x)Tw]=E[ϕ(x)TwwTϕ(x)]=ϕ(x)TE[wwT]ϕ(x)=ϕ(x)TE[(w0)(wT0)]ϕ(x)=ϕ(x)TΣpϕ(x)=K(x,x)E[f(x)]=E[\phi (x)^{T}w]=\phi (x)^{T}E[w]=0\\ cov\left (f(x),f(x^{'})\right )=E[(f(x)-\underset{=0}{\underbrace{E[f(x)]}})(f(x^{'})-\underset{=0}{\underbrace{E[f(x^{'})]}})]\\ =E[f(x)\cdot f(x^{'})]\\ =E[\phi (x)^{T}w\cdot \phi (x^{'})^{T}w]\\ =E[\phi (x)^{T}ww^{T}\phi (x^{'})]\\ =\phi (x)^{T}E[ww^{T}]\phi (x^{'})\\ =\phi (x)^{T}E[(w-0)(w^{T}-0)]\phi (x^{'})\\ =\phi (x)^{T}\Sigma _{p}\phi (x^{'})\\ =K(x,x^{'})

很明显,f(x)f(x)的协方差是一个核函数。如果我们将其与高斯过程的定义进行比较,我们可以看到xx相当于索引tt,每个xx对应一个随机变量f(x)f(x)。在这里,f(x)f(x)就像是ξt\xi _{t},只是f(x)f(x)xx之间有明确的函数关系,而ξt\xi _{t}tt则没有。另外,f(x)f(x)的协方差也满足一个核函数的特性,这表明f(x)f(x)就是一个高斯过程。这也解释了为什么核贝叶斯线性回归就是高斯线性回归。

高斯过程回归的求解方法可以从权重空间和函数空间两个角度进行。在上一节中,我们从权重空间的角度出发,关注的是权重ww。而从函数空间的角度,我们关注的是f(x)f(x)。在下一小节中,我们将介绍函数空间角度的求解方法。

四、函数空间角度

已有数据如下:

X=(x1x2xN)N×pTY=(y1y2yN)N×1TX=\begin{pmatrix} x_{1} & x_{2} & \cdots & x_{N} \end{pmatrix}_{N\times p}^{T}\\ Y=\begin{pmatrix} y_{1} & y_{2} & \cdots & y_{N} \end{pmatrix}_{N\times 1}^{T}

对于f(X)f(X),满足:

f(X)N(μ(X),K(X,X))f(X)\sim N(\mu (X),K(X,X))

对于YY,满足:

YN(μ(X),K(X,X)+σ2I)Y\sim N(\mu (X),K(X,X)+\sigma ^{2}I)

解释一下方差矩阵K(X,X)+σ2IK(X,X)+\sigma ^{2}I的由来,对于方差矩阵对角线上的元素:

E[yy]=E[(f(x)+ε)(f(x)+ε)]=E[f(x)f(x)+2f(x)ε+εε]=E[f(x)f(x)]f(x)的方差+2E[f(x)ε]相互独立变量的协方差+E[εε]ε的方差=K(x,x)+σ2E[y\cdot y]=E[(f(x)+\varepsilon )(f(x)+\varepsilon )]\\ =E[f(x)\cdot f(x)+2f(x)\cdot \varepsilon +\varepsilon \cdot \varepsilon ]\\ =\underset{f(x)的方差}{\underbrace{E[f(x)\cdot f(x)]}}+2\underset{相互独立变\\量的协方差}{\underbrace{E[f(x)\cdot \varepsilon ]}}+\underset{\varepsilon 的方差}{\underbrace{E[\varepsilon \cdot \varepsilon ]}}\\ =K(x,x)+\sigma ^{2}

对于方差矩阵非对角线上的元素:

E[yy]=E[(f(x)+ε)(f(x)+ε)]=E[f(x)f(x)+εf(x)+f(x)ε+εε]=E[f(x)f(x)]+E[εf(x)]相互独立变量的协方差+E[f(x)ε]相互独立变量的协方差+E[εε]相互独立变量的协方差=K(x,x)E[y\cdot y^{'}]=E[(f(x)+\varepsilon )(f(x^{'})+\varepsilon ^{'})]\\ =E[f(x)\cdot f(x^{'})+\varepsilon \cdot f(x^{'})+f(x)\cdot \varepsilon ^{'}+\varepsilon \cdot \varepsilon ^{'}]\\ =E[f(x)\cdot f(x^{'})]+\underset{相互独立变\\量的协方差}{\underbrace{E[\varepsilon \cdot f(x^{'})]}}+\underset{相互独立变\\量的协方差}{\underbrace{E[f(x)\cdot \varepsilon ^{'}]}}+\underset{相互独立变\\量的协方差}{\underbrace{E[\varepsilon \cdot \varepsilon ^{'}]}}\\ =K(x,x^{'})

预测问题也就是对于给定的新的数据X=(x1x2xM)X^{*}=\begin{pmatrix} x_{1}^{*} & x_{2}^{*} & \cdots & x_{M}^{*} \end{pmatrix},需要求解对应的Y=f(X)+εY^{*}=f(X^{*})+\varepsilon

我们把YYf(X)f(X^{*})拼接成一个向量,并且按照上面得到方差矩阵的方法简单推一下就可以得到这个拼接起来的向量的分布:

(Yf(X))N((μ(X)μ(X)),(K(X,X)+σ2IK(X,X)K(X,X)K(X,X)))\begin{pmatrix} Y\\ f(X^{*}) \end{pmatrix}\sim N\left (\begin{pmatrix} \mu (X)\\ \mu (X^{*}) \end{pmatrix},\begin{pmatrix} K(X,X)+\sigma ^{2}I & K(X,X^{*})\\ K(X^{*},X) & K(X^{*},X^{*}) \end{pmatrix}\right )

而对于预测问题,我们要求的是P(f(X)X,Y,X)P(f(X^{*})|X,Y,X^{*})这个概率,其实也就是P(f(X)Y)P(f(X^{*})|Y),也就是上面拼接起来的向量的一个条件概率分布,而求解高维高斯分布的条件概率分布的方法在高斯分布这一篇中已经推导过了,有现成的公式可以套用:

x=(xaxb)=((μaμb),(ΣaaΣabΣbaΣbb))xbaN(uba,Σba)uba=ΣbaΣaa1(xaμa)+μbΣba=ΣbbΣbaΣaa1Σabx=\begin{pmatrix} x_{a}\\ x_{b} \end{pmatrix}=\left (\begin{pmatrix} \mu_{a}\\ \mu_{b} \end{pmatrix},\begin{pmatrix} \Sigma _{aa}&\Sigma _{ab}\\ \Sigma _{ba}&\Sigma _{bb} \end{pmatrix}\right )\\ x_{b|a}\sim N(u_{b|a},\Sigma _{b|a})\\ u_{b|a}=\Sigma _{ba}\Sigma _{aa}^{-1}(x_{a}-\mu _{a})+\mu _{b}\\ \Sigma _{b|a}=\Sigma _{bb}-\Sigma _{ba}\Sigma _{aa}^{-1}\Sigma _{ab}

对应到上面的拼接向量也就是:

(Yxaf(Xxb))N((μ(X)μaμ(X)μb),(K(X,X)+σ2IΣaaK(X,X)ΣabK(X,X)ΣbaK(X,X)Σbb))\begin{pmatrix} \underset{x_{a}}{\underbrace{Y}}\\ \underset{x_{b}}{\underbrace{f(X^{*}}}) \end{pmatrix}\sim N\left (\begin{pmatrix} \underset{\mu _{a}}{\underbrace{\mu (X)}}\\ \underset{\mu _{b}}{\underbrace{\mu (X^{*})}} \end{pmatrix},\begin{pmatrix} \underset{\Sigma _{aa}}{\underbrace{K(X,X)+\sigma ^{2}I}} & \underset{\Sigma _{ab}}{\underbrace{K(X,X^{*})}}\\ \underset{\Sigma _{ba}}{\underbrace{K(X^{*},X)}} & \underset{\Sigma _{bb}}{\underbrace{K(X^{*},X^{*})}} \end{pmatrix}\right )

套用公式得到概率P(f(X)Y)P(f(X^{*})|Y)

P(f(X)Y)=N(K(X,X)(K(X,X)+σ2I)1(Yμ(X))+μ(X),K(X,X)K(X,X)(K(X,X)+σ2I)1K(X,X))P(f(X^{*})|Y)=N({\color{Red}{K(X^{*},X)(K(X,X)+\sigma ^{2}I)^{-1}(Y-\mu (X))+\mu (X^{*})}},\\ {\color{Blue}{K(X^{*},X^{*})-K(X^{*},X)(K(X,X)+\sigma ^{2}I)^{-1}K(X,X^{*})}})

再加上噪声就得到YY^{*}的分布:

P(f(X)Y)=N(K(X,X)(K(X,X)+σ2I)1(Yμ(X))+μ(X),K(X,X)K(X,X)(K(X,X)+σ2I)1K(X,X)+σ2I)P(f(X^{*})|Y)=N({\color{Red}{K(X^{*},X)(K(X,X)+\sigma ^{2}I)^{-1}(Y-\mu (X))+\mu (X^{*})}},\\ {\color{Blue}{K(X^{*},X^{*})-K(X^{*},X)(K(X,X)+\sigma ^{2}I)^{-1}K(X,X^{*})+\sigma ^{2}I}})

显然比起权重空间角度的方法,从函数空间角度出发更容易求解这个问题。

“本文正在参加 人工智能创作者扶持计划”