WARNING
🧪 Beta公测版本提示:教程主体已完成,正在优化细节,欢迎大家提Issue反馈问题或建议。
ml14 核方法与高斯过程 — exercise.py 练习指南
练习目标
通过实现 RBF 核函数、GP 回归的预测均值和方差、以及 GP 先验采样,从代码层面深入理解核方法和 GP 的数学原理。
预备知识
- RBF 核:
- Cholesky 分解:
,用于数值稳定解线性方程组 - GP 预测均值:
- GP 预测方差:
- GP 先验采样:
,
任务清单
任务1:RBF 核函数 rbf_kernel_manual(X1, X2, lengthscale, variance)
- 平方欧氏距离:
- 向量化实现:利用广播展开三个矩阵(
、 、 ) - 验证:
(距离 0,核值 = 方差);
任务2:GP 预测均值 gp_predict_mean(X_train, y_train, X_test, kernel_fn, noise_var)
- 关键步骤:
- 计算
( 矩阵) - Cholesky 分解
- 解
(两次三角求解) - 计算
( 矩阵) - 预测
- 计算
- 为什么用 Cholesky 而非直接求逆?
- 更稳定:Cholesky 是专门针对对称正定矩阵设计的高效分解
- 更快:
vs
任务3:GP 预测方差 gp_predict_variance(X_train, X_test, kernel_fn, L, noise_var)
- 方差公式:对每个测试点
, (解三角方程)
- 不确定性行为:训练数据附近 →
大 → 方差小;远离数据 → 小 → 方差大
任务4:GP 先验采样 sample_gp_prior(X, kernel_fn, n_samples)
- 采样方法:
, - 直观理解:
本质上是对核矩阵进行"平方根"分解,然后通过 将独立高斯噪声 转换为具有 协方差结构的函数值
源码位置
clone 后打开(相对仓库根目录):
docs/ml/advanced/kernel-gp/code/exercise.py