Gs_Reg

高斯过程(Gaussian Process, GP)概述:

​ 高斯过程是一种非参数贝叶斯方法,适用于回归和分类问题。它定义了一种概率分布,该分布直接作用于函数空间。给定输入值的集合 X1:k=[x1,x2,,xk]T\boldsymbol{X}_{1:k}=[\boldsymbol{x}_1, \boldsymbol{x}_2, \dots, \boldsymbol{x}_k]^T ,每个 xiRd\boldsymbol{x}_i \in \mathbb{R}^d 是一个输入值(dd 维向量),我们考虑其对应的输出值集合:

f(X1:k)=[f(x1),f(x2),,f(xk)]TRkf(\boldsymbol{X}_{1:k}) = [f(\boldsymbol{x}_1), f(\boldsymbol{x}_2), \dots, f(\boldsymbol{x}_k)]^T \in \mathbb{R}^k

每一个 f(xi)f(\boldsymbol{x}_i) 都是一个高斯分布,称 ff 为一个高斯过程

f(x)GP(μ(x),Σf(x,x))f(\boldsymbol{x}) \sim \mathcal{GP}(\mu(x), \Sigma_f(x, x^\prime))

其中 μ,Σf\mu, \Sigma_f 分别为均值函数和协方差函数(kernel)高斯过程通过均值和协方差函数(核函数)来描述这些输出值的分布特性:

  • μ(x):RnRn\mu(x): \mathbb{R}^n \mapsto \mathbb{R}^n 为均值函数,返回各个维度的均值
  • Σ(x,x):Rn×RnRn\Sigma(x, x^\prime): \mathbb{R}^n \times \mathbb{R}^n \mapsto \mathbb{R}^n 为协方差矩阵函数(核函数),返回各个维度之间的协方差矩阵

μ(X1:k)=[μ(x1),μ(x2),,μ(xk)]TRkΣ0(X1:k,X1:k)i,j=[Σ(xi,xj)]Σ0(X1:k,X1:k)Rk×k\mu(\boldsymbol{X}_{1:k}) =[\mu(\boldsymbol{x}_1), \mu(\boldsymbol{x}_2), \dots, \mu(\boldsymbol{x}_k)]^T \in \mathbb{R}^k \\ \Sigma_0(\boldsymbol{X}_{1:k}, \boldsymbol{X}_{1:k})_{i, j} = [\Sigma(\boldsymbol{x}_i, \boldsymbol{x}_j)] \Rightarrow \Sigma_0(\boldsymbol{X}_{1:k}, \boldsymbol{X}_{1:k}) \in \mathbb{R}^{k \times k}

给定 X1:k\boldsymbol{X}_{1:k},我们将 ff 的值建模为:

f(X1:k)=N(μ(X1:k),Σ(X1:k,X1:k))f(\boldsymbol{X}_{1:k}) =\mathcal{N}(\mu(\boldsymbol{X}_{1:k}), \Sigma(\boldsymbol{X}_{1:k}, \boldsymbol{X}_{1:k}))

其中 μ0,Σ0\mu_0, \Sigma_0 分别为均值函数和协方差函数(kernel):

  • 常数核:Kc(x,x)=CK_c ( x,x^\prime) = C
  • 线性核:$K_L( x,x^\prime ) = xTx\prime $
  • 高斯噪声核:KGN(x,x)=σ2δx,xK_{GN}(x, x^\prime) = \sigma^2 \delta_{x,x^\prime}
  • 指数平方核:KSE(x,x)=exp(d222)K_{SE}(x,x^{\prime}) = \exp (-\frac{\left| d\right|^2}{2 \ell^2})
  • Ornstein-Uhlenbeck 核:KOU(x,x)=exp(d)K_{OU} (x,x^\prime) = \exp ( -\frac{\left| d\right| }{\ell })
  • Matérn 核:KMatern (x,x)=21νΓ(ν)(2νd)νKν(2νd){K}_{\text{Matern }}\left( {x,{x}^{\prime }}\right) = \frac{2^{1 - \nu }}{\Gamma \left( \nu \right) }{\left( \frac{\sqrt{2\nu }\left| d\right| }{\ell }\right) }^{\nu }{K}_{\nu }\left( \frac{\sqrt{2\nu }\left| d\right| }{\ell }\right)
  • 周期核:KP(x,x)=exp(2sin2(d2)2)K_P ( x,x^\prime) = \exp( -\frac{2 \sin^2( \frac{d}2)}{\ell^2})

高斯过程回归预测:

​ 高斯过程回归预测的模型假设包括噪声和高斯过程先验两部分,其求解按贝叶斯推断进行。若不限制核函数的形式,高斯过程回归预测在理论上是紧致空间内任意连续函数的通用近似(有一个通用逼近定理)

​ 设我们有观测值 y=[y1,y2,,yk]T\boldsymbol{y} = {\left\lbrack {y}_1,{y}_2,\ldots ,{y}_{k}\right\rbrack }^{T} 对应于输入位置 X1:k{\boldsymbol{X}}_{1 : k} ,并且我们想要预测一个新的输入位置 x{x}^* 的输出值,观测值 y(x)y(x) 满足真值和噪声叠加的表达式:

y(x)=f(x)+ϵ(x)y(\boldsymbol{x}) = f(\boldsymbol{x}) + \epsilon(\boldsymbol{x})

其中 ff 是之前约定符号的高斯过程,ϵ(x)N(0,σ2)\epsilon(\boldsymbol{x}) \sim \mathcal{N}(0, \boldsymbol{\sigma}^2) 是与时间无关的随机噪声:

f(x)GP(μx,Σf)f(\boldsymbol{x}) \sim \mathcal{GP}(\mu_x, \Sigma_f)

考虑时间序列 {y(x)R}\{ y(x) \in \mathbb{R} \},其中 xx 表示空间或者时间上的一个点,y(x)y(x) 就是在 xx 处的取值,则 yy 也是一个随机过程:

yGP(μy,Σy)y \sim \mathcal{GP}(\mu_y, \Sigma_y)

均值与协方差满足的关系式为:

μx=μyΣy=Σf+σ2I\mu_x = \mu_y \\ \Sigma_y = \boldsymbol{\Sigma}_f + \boldsymbol{\sigma}^2 \boldsymbol{I}

预测过程

​ 对于新值 x\boldsymbol{x}^*,预测其对应的 y\boldsymbol{y}^*,我们可以把观测值和预测值看作一个联合高斯分布的一部分,容易发现:

[yy]N([μμ],[K0+σ2Ik1Tk1k2])\left[ \begin{matrix} \boldsymbol{y} \\ y^* \end{matrix} \right] \sim \mathcal{N} \left( {\left[ \begin{matrix} \boldsymbol{\mu} \\ \mu^* \end{matrix}\right] , \left[ \begin{matrix} \boldsymbol{K}_0 + \sigma^2 \boldsymbol{I} & \boldsymbol{k}_1^T \\ \boldsymbol{k}_1 & k_2 \end{matrix}\right] }\right)

其中:

  • μ=[μ(x1),μ(x2),,μ(xk)]T\boldsymbol{\mu } = \left[ \mu ( \boldsymbol{x}_1) ,\mu ( \boldsymbol{x}_2) ,\dots ,\mu ( \boldsymbol{x}_k) \right]^{T} 是观测值的均值向量
  • μ=μ(x)\mu^* = \mu (x^*) 是新位置的均值
  • K0\boldsymbol{K}_0 是由核函数 Σf\Sigma_f 计算得到的协方差矩阵
  • σ2I\sigma^2\boldsymbol{I} 表示观测噪声。
  • k1\boldsymbol{k}_1 是由核函数计算的新位置 x{x}^* 和所有观测位置之间的协方差向量
  • k2=Σf(x,x)+σ2k_2 = \Sigma_f(x^*,x^*) + \sigma^2 是新位置处的总方差(包括噪声)

​ 对于预测,我们感兴趣的是条件分布 p(yy)p( y^*|\boldsymbol{y}) 。因为联合分布是高斯的,所以条件分布也是高斯的,并且可以通过计下面公式算出其均值和方差:

  • 预测均值:

μyy=μ+k1T(K0+σ2I)1(yμ)\mu_{\boldsymbol{y}^* \mid \boldsymbol{y}} = {\mu }^* + {\boldsymbol{k}}_1^{T}{\left( {\boldsymbol{K}}_0 + {\sigma }^2\boldsymbol{I}\right) }^{-1}( {\boldsymbol{y} - \boldsymbol{\mu }})

  • 预测方差:

σyy2=k2k1T(K0+σ2I)1k1\sigma_{y^* \mid \boldsymbol{y}}^2 = \boldsymbol{k}_2 - \boldsymbol{k}_1^T{\left( \boldsymbol{K}_0 + \sigma^2\boldsymbol{I}\right) }^{-1}\boldsymbol{k}_1

因此我们可以得到 yy^*y\boldsymbol{y} 上的条件分布,

yyN(μyy,σyy2)y^* \mid \boldsymbol{y} \sim \mathcal{N}\left( \mu_{\boldsymbol{y}^* \mid \boldsymbol{y}}, \sigma_{y^* \mid \boldsymbol{y}}^2 \right)

因此我们预测的 yy^* 满足

y(x)N(μ,σ2)y(\boldsymbol{x})^* \sim \mathcal{N} \left( \boldsymbol{\mu}^*,{\boldsymbol{\sigma }^*}^2\right)

关于高斯过程回归优化:

​ 高斯过程回归(Gaussian Process Regression, GPR)模型是一种非参数模型,依赖于输入空间上的无限多维分布,其灵活性由均值函数和协方差函数(核函数)决定。尽管如此,核函数中仍包含控制其行为的超参数,如长度尺度、信号方差和噪声水平等。这些超参数通过最大化边缘似然来估计,以优化模型对数据点间相似度及复杂度的捕捉。

​ 高斯过程回归中的参数优化过程通常涉及最大化边缘似然(marginal likelihood),即在给定观测数据的情况下,模型的概率,因此优化目标为:

θ=argmaxθlog(yX;θ)\boldsymbol{\theta}^* = \arg\max_{\boldsymbol{\theta}} \log (\boldsymbol{y} | \boldsymbol{X}; \boldsymbol{\theta})

其中 θ\boldsymbol{\theta} 表示核函数的超参数集合,优化方式可以采用各种的优化方式,例如梯度下降,贝叶斯优化等