高斯过程(Gaussian Process)
字数 3870 2025-10-27 23:31:03
好的,我们开始学习新的词条:高斯过程(Gaussian Process)。
高斯过程是概率论和统计学中一个非常重要的概念,它扩展了多元高斯分布(即正态分布)到无限维的情况,为处理函数空间上的不确定性提供了一套强大的框架。它在机器学习(特别是贝叶斯优化和回归)、空间统计学等领域有广泛应用。
让我们循序渐进地理解它。
步骤一:从一元高斯分布到多元高斯分布
- 一元高斯分布(复习):
- 这是最基础的分布,描述一个单一随机变量 \(X\) 的分布。
- 它完全由两个参数决定:均值(μ) 和 方差(σ²)。
- 概率密度函数(PDF)为: \(f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)\)。
- 它告诉我们随机变量 \(X\) 取某个值的可能性有多大。
- 多元高斯分布:
- 当我们有多个(比如 \(n\) 个)随机变量 \(\mathbf{X} = (X_1, X_2, ..., X_n)\) 时,我们就需要考虑它们之间的相关性。
- 多元高斯分布是描述这组随机变量的联合分布。它由两个参数完全确定:
- 均值向量(μ): 一个 \(n\) 维向量,表示每个随机变量各自的均值。
- 协方差矩阵(Σ): 一个 \(n \times n\) 的矩阵。对角线上的元素 \(\Sigma_{ii}\) 是每个变量 \(X_i\) 的方差,而非对角线上的元素 \(\Sigma_{ij}\) 则描述了变量 \(X_i\) 和 \(X_j\) 之间的协方差(即相关性)。
- 关键思想: 多元高斯分布不仅描述了每个点的分布,还描述了这些点之间如何共同变化。如果你从多元高斯分布中抽取一个样本,你得到的不再是一个单一的数字,而是一个向量(即一组相关的数字)。
步骤二:从有限维到无限维——函数的视角
现在,我们进行一个思想上的飞跃。假设我们关心的不是一个有限的点集,而是一个函数 \(f(x)\)。例如,\(f(x)\) 可能是在位置 \(x\) 测得的温度。
-
问题: 我们如何对一个函数的概率分布进行建模?函数有无限多个点(每个 \(x\) 对应一个 \(f(x)\)),我们无法用一个无限维的向量来定义传统的多元高斯分布。
-
高斯过程的定义:
- 一个高斯过程(GP)被定义为:一个随机过程的集合,其中任意有限个点上的函数值的联合分布都是高斯分布。
- 让我们来拆解这个定义:
- 随机过程: 可以理解为一个随机函数。每次你“运行”这个过程,你就会得到一条不同的函数曲线。
- 任意有限个点: 虽然函数是无限的,但我们总是可以从中选取有限个点,例如 \(\mathbf{x} = (x_1, x_2, ..., x_n)\)。
- 函数值的联合分布是高斯分布: 对于你选取的这 \(n\) 个点,对应的函数值 \(\mathbf{f} = (f(x_1), f(x_2), ..., f(x_n))\) 的联合分布是一个 \(n\) 维的多元高斯分布。
步骤三:高斯过程的参数化——均值函数和协方差函数
既然任意有限个点的集合都服从多元高斯分布,那么我们如何描述整个高斯过程呢?回想一下,一个多元高斯分布由均值向量和协方差矩阵决定。对于高斯过程,这两个概念被推广为函数:
- 均值函数(Mean Function), \(m(x)\):
- 它定义了在任意点 \(x\) 上,函数 \(f(x)\) 的平均值。即 \(m(x) = \mathbb{E}[f(x)]\)。
- 通常,为了简化,我们假设均值函数为零(\(m(x) = 0\)),或者先对数据进行去均值处理。因为所有的“动作”基本上都发生在协方差中。
- 协方差函数(Covariance Function)或核函数(Kernel Function), \(k(x, x’)\):
- 这是高斯过程的灵魂。它定义了函数在不同点 \(x\) 和 \(x'\) 处的值之间的相关性。
- \(k(x, x') = \mathbb{E}[(f(x) - m(x))(f(x') - m(x'))]\)。
- 核函数的作用:
- 平滑度: 它控制了你从过程中抽取的样本函数有多平滑。例如,常用的平方指数核(也称径向基函数核,RBF Kernel) 为:
\(k(x, x') = \sigma_f^2 \exp\left(-\frac{\|x - x'\|^2}{2l^2}\right)\)
- 平滑度: 它控制了你从过程中抽取的样本函数有多平滑。例如,常用的平方指数核(也称径向基函数核,RBF Kernel) 为:
- 核函数的作用:
- \(l\) 是长度尺度(length-scale),决定了函数变化的“速度”。\(l\) 越大,函数越平滑缓慢;\(l\) 越小,函数越崎岖快速。
- \(\sigma_f^2\) 是信号方差(signal variance),决定了函数整体的波动范围。
* 结构: 不同的核函数可以捕捉函数的不同结构,如周期性、线性趋势等。
因此,一个高斯过程被正式写为:
\(f(x) \sim \mathcal{GP}(m(x),\, k(x, x'))\)
步骤四:高斯过程回归(预测)
高斯过程最强大的应用之一是作为贝叶斯非参数回归工具。其核心思想是:从带有噪声的数据中学习一个函数。
- 设定:
- 我们有一些观测数据,称为训练点:输入 \(\mathbf{X} = (x_1, ..., x_n)\),输出 \(\mathbf{y} = (y_1, ..., y_n)\)。
- 我们假设观测值带有噪声: \(y = f(x) + \epsilon\),其中 \(\epsilon\) 是高斯噪声 \(\mathcal{N}(0, \sigma_n^2)\)。
- 我们想要在新的测试点 \(\mathbf{X}_*\) 上预测函数值 \(\mathbf{f}_*\)。
- 贝叶斯推断:
- 我们为未知函数 \(f\) 设定一个先验: \(f(x) \sim \mathcal{GP}(0, k(x, x'))\)。这表达了我们在看到数据之前对函数的信念(例如,它有多平滑)。
- 由于训练点和测试点上的函数值联合服从一个多元高斯分布,我们可以写出:
\(\begin{bmatrix} \mathbf{y} \\ \mathbf{f}_* \end{bmatrix} \sim \mathcal{N} \left( \mathbf{0}, \begin{bmatrix} K(\mathbf{X}, \mathbf{X}) + \sigma_n^2 I & K(\mathbf{X}, \mathbf{X}_*) \\ K(\mathbf{X}_*, \mathbf{X}) & K(\mathbf{X}_*, \mathbf{X}_*) \end{bmatrix} \right)\)
这里,\(K(\mathbf{A}, \mathbf{B})\) 表示通过核函数 \(k\) 计算矩阵 \(A\) 和 \(B\) 中所有点对之间的协方差所得到的矩阵。 - 利用多元高斯分布的条件分布性质,我们可以得到后验预测分布:
\(\mathbf{f}_* | \mathbf{X}, \mathbf{y}, \mathbf{X}_* \sim \mathcal{N}(\bar{\mathbf{f}}_*, \text{cov}(\mathbf{f}_*))\)
其中:
- 由于训练点和测试点上的函数值联合服从一个多元高斯分布,我们可以写出:
- 后验均值: \(\bar{\mathbf{f}}_* = K(\mathbf{X}_*, \mathbf{X}) [K(\mathbf{X}, \mathbf{X}) + \sigma_n^2 I]^{-1} \mathbf{y}\)
- 后验协方差: \(\text{cov}(\mathbf{f}_*) = K(\mathbf{X}_*, \mathbf{X}_*) - K(\mathbf{X}_*, \mathbf{X}) [K(\mathbf{X}, \mathbf{X}) + \sigma_n^2 I]^{-1} K(\mathbf{X}, \mathbf{X}_*)\)
- 直观理解:
- 后验均值 \(\bar{\mathbf{f}}_*\) 就是我们的预测函数。它完美地穿过了数据的“趋势”,同时保持了平滑性。
- 后验协方差 \(\text{cov}(\mathbf{f}_*)\) 给出了预测的不确定性。在数据点附近,不确定性小(置信区间窄);在远离数据点的地方,不确定性大(置信区间宽)。这完美体现了贝叶斯思想:预测不仅是一个值,而是一个完整的概率分布。
总结
- 高斯过程是将多元高斯分布推广到函数空间的一种方法。
- 它由均值函数和协方差函数(核函数) 完全定义。
- 核函数决定了函数的结构特性,如平滑度、周期性等。
- 在高斯过程回归中,它提供了一种优雅的贝叶斯方法来从数据中学习函数,并同时提供预测的不确定性估计。
这个框架非常灵活,是理解许多现代机器学习算法和空间统计模型的基础。