高斯过程(Gaussian Process, GP)概述:
高斯过程是一种非参数贝叶斯方法,适用于回归和分类问题。它定义了一种概率分布,该分布直接作用于函数空间。给定输入值的集合 X 1 : k = [ x 1 , x 2 , … , x k ] T \boldsymbol{X}_{1:k}=[\boldsymbol{x}_1, \boldsymbol{x}_2, \dots, \boldsymbol{x}_k]^T X 1 : k = [ x 1 , x 2 , … , x k ] T ,每个 x i ∈ R d \boldsymbol{x}_i \in \mathbb{R}^d x i ∈ R d 是一个输入值(d d d 维向量),我们考虑其对应的输出值集合:
f ( X 1 : k ) = [ f ( x 1 ) , f ( x 2 ) , … , f ( x k ) ] T ∈ R k f(\boldsymbol{X}_{1:k}) = [f(\boldsymbol{x}_1), f(\boldsymbol{x}_2), \dots, f(\boldsymbol{x}_k)]^T \in \mathbb{R}^k
f ( X 1 : k ) = [ f ( x 1 ) , f ( x 2 ) , … , f ( x k ) ] T ∈ R k
每一个 f ( x i ) f(\boldsymbol{x}_i) f ( x i ) 都是一个高斯分布,称 f f f 为一个高斯过程 :
f ( x ) ∼ G P ( μ ( x ) , Σ f ( x , x ′ ) ) f(\boldsymbol{x}) \sim \mathcal{GP}(\mu(x), \Sigma_f(x, x^\prime))
f ( x ) ∼ G P ( μ ( x ) , Σ f ( x , x ′ ) )
其中 μ , Σ f \mu, \Sigma_f μ , Σ f 分别为均值函数和协方差函数(kernel)高斯过程通过均值和协方差函数(核函数)来描述这些输出值的分布特性:
μ ( x ) : R n ↦ R n \mu(x): \mathbb{R}^n \mapsto \mathbb{R}^n μ ( x ) : R n ↦ R n 为均值函数,返回各个维度的均值
Σ ( x , x ′ ) : R n × R n ↦ R n \Sigma(x, x^\prime): \mathbb{R}^n \times \mathbb{R}^n \mapsto \mathbb{R}^n Σ ( x , x ′ ) : R n × R n ↦ R n 为协方差矩阵函数(核函数),返回各个维度之间的协方差矩阵
μ ( X 1 : k ) = [ μ ( x 1 ) , μ ( x 2 ) , … , μ ( x k ) ] T ∈ R k Σ 0 ( X 1 : k , X 1 : k ) i , j = [ Σ ( x i , x j ) ] ⇒ Σ 0 ( X 1 : k , X 1 : k ) ∈ R k × 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}
μ ( X 1 : k ) = [ μ ( x 1 ) , μ ( x 2 ) , … , μ ( x k ) ] T ∈ R k Σ 0 ( X 1 : k , X 1 : k ) i , j = [ Σ ( x i , x j ) ] ⇒ Σ 0 ( X 1 : k , X 1 : k ) ∈ R k × k
给定 X 1 : k \boldsymbol{X}_{1:k} X 1 : k ,我们将 f f f 的值建模为:
f ( X 1 : k ) = N ( μ ( X 1 : k ) , Σ ( X 1 : k , X 1 : k ) ) f(\boldsymbol{X}_{1:k}) =\mathcal{N}(\mu(\boldsymbol{X}_{1:k}), \Sigma(\boldsymbol{X}_{1:k}, \boldsymbol{X}_{1:k}))
f ( X 1 : k ) = N ( μ ( X 1 : k ) , Σ ( X 1 : k , X 1 : k ) )
其中 μ 0 , Σ 0 \mu_0, \Sigma_0 μ 0 , Σ 0 分别为均值函数和协方差函数(kernel):
常数核:K c ( x , x ′ ) = C K_c ( x,x^\prime) = C K c ( x , x ′ ) = C
线性核:$K_L( x,x^\prime ) = xTx \prime $
高斯噪声核:K G N ( x , x ′ ) = σ 2 δ x , x ′ K_{GN}(x, x^\prime) = \sigma^2 \delta_{x,x^\prime} K G N ( x , x ′ ) = σ 2 δ x , x ′
指数平方核:K S E ( x , x ′ ) = exp ( − ∣ d ∣ 2 2 ℓ 2 ) K_{SE}(x,x^{\prime}) = \exp (-\frac{\left| d\right|^2}{2 \ell^2}) K S E ( x , x ′ ) = exp ( − 2 ℓ 2 ∣ d ∣ 2 )
Ornstein-Uhlenbeck 核:K O U ( x , x ′ ) = exp ( − ∣ d ∣ ℓ ) K_{OU} (x,x^\prime) = \exp ( -\frac{\left| d\right| }{\ell }) K O U ( x , x ′ ) = exp ( − ℓ ∣ d ∣ )
Matérn 核:K Matern ( x , x ′ ) = 2 1 − ν Γ ( ν ) ( 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) K Matern ( x , x ′ ) = Γ ( ν ) 2 1 − ν ( ℓ 2 ν ∣ d ∣ ) ν K ν ( ℓ 2 ν ∣ d ∣ )
周期核:K P ( x , x ′ ) = exp ( − 2 sin 2 ( d 2 ) ℓ 2 ) K_P ( x,x^\prime) = \exp( -\frac{2 \sin^2( \frac{d}2)}{\ell^2}) K P ( x , x ′ ) = exp ( − ℓ 2 2 s i n 2 ( 2 d ) )
高斯过程回归预测:
高斯过程回归预测的模型假设包括噪声和高斯过程先验两部分,其求解按贝叶斯推断进行。若不限制核函数的形式,高斯过程回归预测在理论上是紧致空间内任意连续函数的通用近似(有一个通用逼近定理)
设我们有观测值 y = [ y 1 , y 2 , … , y k ] T \boldsymbol{y} = {\left\lbrack {y}_1,{y}_2,\ldots ,{y}_{k}\right\rbrack }^{T} y = [ y 1 , y 2 , … , y k ] T 对应于输入位置 X 1 : k {\boldsymbol{X}}_{1 : k} X 1 : k ,并且我们想要预测一个新的输入位置 x ∗ {x}^* x ∗ 的输出值,观测值 y ( x ) y(x) y ( x ) 满足真值和噪声叠加的表达式:
y ( x ) = f ( x ) + ϵ ( x ) y(\boldsymbol{x}) = f(\boldsymbol{x}) + \epsilon(\boldsymbol{x})
y ( x ) = f ( x ) + ϵ ( x )
其中 f f f 是之前约定符号的高斯过程,ϵ ( x ) ∼ N ( 0 , σ 2 ) \epsilon(\boldsymbol{x}) \sim \mathcal{N}(0, \boldsymbol{\sigma}^2) ϵ ( x ) ∼ N ( 0 , σ 2 ) 是与时间无关的随机噪声:
f ( x ) ∼ G P ( μ x , Σ f ) f(\boldsymbol{x}) \sim \mathcal{GP}(\mu_x, \Sigma_f)
f ( x ) ∼ G P ( μ x , Σ f )
考虑时间序列 { y ( x ) ∈ R } \{ y(x) \in \mathbb{R} \} { y ( x ) ∈ R } ,其中 x x x 表示空间或者时间上的一个点,y ( x ) y(x) y ( x ) 就是在 x x x 处的取值,则 y y y 也是一个随机过程:
y ∼ G P ( μ y , Σ y ) y \sim \mathcal{GP}(\mu_y, \Sigma_y)
y ∼ G P ( μ y , Σ y )
均值与协方差满足的关系式为:
μ x = μ y Σ y = Σ f + σ 2 I \mu_x = \mu_y \\
\Sigma_y = \boldsymbol{\Sigma}_f + \boldsymbol{\sigma}^2 \boldsymbol{I}
μ x = μ y Σ y = Σ f + σ 2 I
预测过程
对于新值 x ∗ \boldsymbol{x}^* x ∗ ,预测其对应的 y ∗ \boldsymbol{y}^* y ∗ ,我们可以把观测值和预测值看作一个联合高斯分布的一部分,容易发现:
[ y y ∗ ] ∼ N ( [ μ μ ∗ ] , [ K 0 + σ 2 I k 1 T k 1 k 2 ] ) \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)
[ y y ∗ ] ∼ N ( [ μ μ ∗ ] , [ K 0 + σ 2 I k 1 k 1 T k 2 ] )
其中:
μ = [ μ ( x 1 ) , μ ( x 2 ) , … , μ ( x k ) ] T \boldsymbol{\mu } = \left[ \mu ( \boldsymbol{x}_1) ,\mu ( \boldsymbol{x}_2) ,\dots ,\mu ( \boldsymbol{x}_k) \right]^{T} μ = [ μ ( x 1 ) , μ ( x 2 ) , … , μ ( x k ) ] T 是观测值的均值向量
μ ∗ = μ ( x ∗ ) \mu^* = \mu (x^*) μ ∗ = μ ( x ∗ ) 是新位置的均值
K 0 \boldsymbol{K}_0 K 0 是由核函数 Σ f \Sigma_f Σ f 计算得到的协方差矩阵
σ 2 I \sigma^2\boldsymbol{I} σ 2 I 表示观测噪声。
k 1 \boldsymbol{k}_1 k 1 是由核函数计算的新位置 x ∗ {x}^* x ∗ 和所有观测位置之间的协方差向量
k 2 = Σ f ( x ∗ , x ∗ ) + σ 2 k_2 = \Sigma_f(x^*,x^*) + \sigma^2 k 2 = Σ f ( x ∗ , x ∗ ) + σ 2 是新位置处的总方差(包括噪声)
对于预测,我们感兴趣的是条件分布 p ( y ∗ ∣ y ) p( y^*|\boldsymbol{y}) p ( y ∗ ∣ y ) 。因为联合分布是高斯的,所以条件分布也是高斯的,并且可以通过计下面公式算出其均值和方差:
μ y ∗ ∣ y = μ ∗ + k 1 T ( K 0 + σ 2 I ) − 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 }})
μ y ∗ ∣ y = μ ∗ + k 1 T ( K 0 + σ 2 I ) − 1 ( y − μ )
σ y ∗ ∣ y 2 = k 2 − k 1 T ( K 0 + σ 2 I ) − 1 k 1 \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
σ y ∗ ∣ y 2 = k 2 − k 1 T ( K 0 + σ 2 I ) − 1 k 1
因此我们可以得到 y ∗ y^* y ∗ 在 y \boldsymbol{y} y 上的条件分布,
y ∗ ∣ y ∼ N ( μ y ∗ ∣ y , σ y ∗ ∣ y 2 ) y^* \mid \boldsymbol{y} \sim \mathcal{N}\left(
\mu_{\boldsymbol{y}^* \mid \boldsymbol{y}}, \sigma_{y^* \mid \boldsymbol{y}}^2
\right)
y ∗ ∣ y ∼ N ( μ y ∗ ∣ y , σ y ∗ ∣ y 2 )
因此我们预测的 y ∗ y^* y ∗ 满足
y ( x ) ∗ ∼ N ( μ ∗ , σ ∗ 2 ) y(\boldsymbol{x})^* \sim \mathcal{N} \left( \boldsymbol{\mu}^*,{\boldsymbol{\sigma }^*}^2\right)
y ( x ) ∗ ∼ N ( μ ∗ , σ ∗ 2 )
关于高斯过程回归优化:
高斯过程回归(Gaussian Process Regression, GPR)模型是一种非参数模型,依赖于输入空间上的无限多维分布,其灵活性由均值函数和协方差函数(核函数)决定。尽管如此,核函数中仍包含控制其行为的超参数,如长度尺度、信号方差和噪声水平等。这些超参数通过最大化边缘似然来估计,以优化模型对数据点间相似度及复杂度的捕捉。
高斯过程回归中的参数优化过程通常涉及最大化边缘似然(marginal likelihood),即在给定观测数据的情况下,模型的概率,因此优化目标为:
θ ∗ = arg max θ log ( y ∣ X ; θ ) \boldsymbol{\theta}^* = \arg\max_{\boldsymbol{\theta}} \log (\boldsymbol{y} | \boldsymbol{X}; \boldsymbol{\theta})
θ ∗ = arg θ max log ( y ∣ X ; θ )
其中 θ \boldsymbol{\theta} θ 表示核函数的超参数集合,优化方式可以采用各种的优化方式,例如梯度下降,贝叶斯优化等