高斯过程回归(GPR)原理的通俗解释
什么是高斯过程回归?
高斯过程回归(Gaussian Process Regression, GPR)是一种基于概率的回归方法,它不像传统回归模型(如线性回归)那样直接拟合一个固定函数,而是通过概率分布来描述所有可能的函数形式,并给出预测结果的不确定性。
本质上是通过数学公式,综合先验数据集,来对未知数据进行预测,并没有类似于深度学习的训练过程(正向反向传播),当然,我们也可以通过这种方式来优化核函数的超参数,但是一般意义下的高斯过程回归是没有训练环节的
如果把高斯过程回归当作一个黑箱,其效果就是:
输入已知的数据集(包含系统的输入X输出Y),再提供新的输入X*,黑箱输出对应Y*的高斯分布(概率密度函数)
RBF线性回归是高斯过程回归的一种特例
通俗类比:
假设你有一个黑盒子,输入是某个变量(比如温度),输出是另一个变量(比如湿度)。你想知道输入和输出之间的关系,但黑盒子内部的规律未知。
- 传统方法会直接拟合一条曲线(比如直线或多项式),作为最佳猜测。
- GPR则认为:所有可能的曲线都有可能存在,但某些曲线更合理(比如更平滑)。它会给出一个“概率分布”,告诉你哪些曲线更可能,哪些不太可能,并基于这些可能性给出预测结果。
举个栗子 🌰
假设你想预测某个城市的气温随时间的变化:
- 数据:过去一周每天中午的气温(7个点)。
- GPR的处理:
- 假设气温变化是平滑的(用RBF核)。
- 根据已知的7个点,计算所有可能曲线的概率分布。
- 对于明天的气温,GPR会给出一个预测值(比如25°C)和一个置信区间(比如23°C~27°C)。
核心思想
高斯过程(Gaussian Process, GP)是GPR的理论基础。它把函数看作一个无限维的正态分布,即:
- 任意有限个输入点对应的输出值服从多维正态分布。
- 这些点之间的相关性由 核函数(Kernel) 决定。
通俗理解:
- 假设你想预测某个地点的温度,已知附近几个点的温度。
- 核函数会告诉你:“离得越近的点,温度越相似”(比如用“高斯核”来量化这种相似性)。
- 有了核函数,GPR就能根据已知数据点,推断出所有可能的温度分布,并给出最可能的预测值和不确定性范围。
三个关键步骤
(1)先验分布:定义函数的“可能性”
在没有任何数据之前,GPR假设所有可能的函数都符合某种“先验”规律。
- 均值函数:通常设为0,表示在没有数据时,默认函数值围绕0波动。
- 核函数:决定函数的平滑性和形状。例如:
- RBF核(径向基函数):类似高斯函数,假设输出值随输入距离的增加而指数衰减相关性。
- 马特恩核:允许更灵活的平滑性调整。
先验就像你对黑盒子的“初始猜测”——比如你认为温度变化应该是平滑的,而不是突然跳跃的。
(2)后验分布:结合数据更新先验
当观测到一些数据点(输入-输出对)后,GPR会用贝叶斯定理更新先验分布,得到后验分布。
- 后验分布描述了:在已知数据的条件下,所有可能函数的概率分布。
- 对于新的输入点,GPR会给出一个预测值(均值)和不确定性(标准差)。
你测量了几个点的温度,发现某些位置的温度特别高。GPR会调整之前的猜测,认为这些高温点附近的区域也可能温度偏高,但不确定性会随着距离增加而增大。
(3)预测:给出结果和不确定性
对于一个新的输入点 x ∗ x_* x∗,GPR会计算:
- 预测均值:最可能的输出值。
- 预测方差:不确定性(方差越大,说明预测越不可靠)。
公式简化版:
预测值 = K ( x ∗ , X ) ⋅ [ K ( X , X ) + σ n 2 I ] − 1 ⋅ y \text{预测值} = K(x_*, X) \cdot [K(X,X) + \sigma_n^2 I]^{-1} \cdot y 预测值=K(x∗,X)⋅[K(X,X)+σn2I]−1⋅y
其中:
- K ( X , X ) K(X,X) K(X,X) 是训练数据点之间的相似性矩阵(核函数计算)。
- K ( x ∗ , X ) K(x_*, X) K(x∗,X) 是新点与训练数据点的相似性向量。
- σ n 2 \sigma_n^2 σn2 是噪声的方差(假设观测数据有噪声)。
预测值是已知数据点的加权平均,权重由新点与每个数据点的相似性决定。越相似的点,对预测的影响越大。
常规协方差矩阵求解方法
中心化后的矩阵 X ′ X' X′,其中 x i j ′ = x i j − μ j x'_{ij} = x_{ij} - \mu_j xij′=xij−μj, x i j x_{ij} xij为原矩阵元素, μ j \mu_j μj为特征 j j j的均值。确保协方差计算仅基于数据偏离均值的部分。
C ∈ R p × p C \in \mathbb{R}^{p \times p} C∈Rp×p 的元素 c k l c_{kl} ckl 表示第 k k k 个特征与第 l l l 个特征的协方差:
c k l = 1 n − 1 ∑ i = 1 n ( x i k ′ ⋅ x i l ′ ) c_{kl} = \frac{1}{n-1} \sum_{i=1}^n (x'_{ik} \cdot x'_{il}) ckl=n−11i=1∑n(xik′⋅xil′)
通常采用无偏估计(分母为 n − 1 n-1 n−1),总之,协方差矩阵是衡量两个向量的差异,其元素由任意两个特征偏差计算而来
但在GPR中,我们通常使用核函数求对应的协方差矩阵(Moore-Aronszajn定理证明了该方式的合理性),这让我们可以跳过繁琐的求解过程,将两个向量(样本)代入核函数,即可直接得到对应的协方差矩阵
但是理解常规的解法,有助于我们理解协方差的本质,且更具有泛用性
完整公式分析可以看这篇博客,讲的确实不错
通常我们只需要站在巨人的肩膀上,直接用就好了,证明公式对不对,不是我需要考虑的事,我们只需要筛选正确信息即可(做控制已经很累了,再学泛函分析真没时间)
优
- 无需假设函数形式:不像线性回归需要提前假设是直线还是曲线,GPR通过核函数自动适应数据的复杂性。
- 提供不确定性估计:不仅给出预测值,还能告诉你预测的可信度(比如误差范围)。
- 小样本友好:即使数据量少,也能通过核函数捕捉数据间的潜在关系。
- 灵活性强:通过选择不同的核函数,可以适应周期性、平滑性、非线性等不同类型的规律。
劣
- 计算复杂度高:当数据量很大时(比如上万点),矩阵求逆的计算量会非常大(时间复杂度 O ( n 3 ) O(n^3) O(n3))。
- 核函数选择依赖经验:核函数的选择和参数调优对结果影响很大,需要一定的领域知识。
- 不适合高维输入:输入特征维度很高时(比如图像),核函数的效果可能下降。
应用场景
- 时间序列预测:比如股票价格、天气预测,利用历史数据预测未来值及其波动范围。
- 机器人路径规划:在未知环境中,预测传感器数据并评估路径的安全性(不确定性)。
- 电池SOC估计:根据电压、电流等输入,预测电池的剩余电量(如知识库中的锂电池案例)。
- 超参数调优:在机器学习中,GPR常用于贝叶斯优化,寻找最优的模型超参数。
总结
高斯过程回归(GPR)是一种强大的概率模型,它的核心思想是:
“我不知道真实函数长什么样,但我知道它可能符合某种规律(核函数),并根据观测数据不断修正猜测。”
如果你需要模型不仅给出预测值,还能告诉你“有多确定这个预测”,那么GPR是一个不错的选择