高斯过程 Gaussian Process

What does GP do?

  • GP是一种回归方法,但也能够用来分类和聚类
  • 均值表示数据最有可能出现的位置

多变量高斯分布

  • X ∼ N ( μ , Σ ) X\sim N(\mu,\Sigma) XN(μ,Σ): 包含的信息有每个变量的均值和协方差矩阵
  • 均值决定分布中心
  • 协方差矩阵确定形状

Marginalization & Conditioning

  • 高斯过程的基础:边缘分布和条件分布依然是高斯
    • 边缘分布:从联合概率分布分离出一个随机变量的概率分布
    • 条件分布:从两个变量的概率分布得到条件随机变量的概率分布

高斯过程

  • 函数的离散化表示:
    • test point: 我们感兴趣预测的一系列离散的、具体的点
  • 高斯过程是一个随机过程,是一个随机变量序列。假设这个序列的长度为 n n n,则这些序列就构成一个 n n n维高斯分布
  • 高斯过程将训练点 Y Y Y和测试点 X X X放在一起建模为一个 n = ∣ X ∣ + ∣ Y ∣ n=|X|+|Y| n=X+Y维的高斯分布
  • 把这个过程看做一个贝叶斯推断问题:随着新信息的获取而更新假设

获取 n n n维高斯分布的均值和协方差

  • kernel: 一个用于决定协方差的函数,又称作covariance function k ( ⋅ ) k(\cdot) k()

  • kernel输入为两个样本点,输出一个表示两个点的相似程度的标量值

    • 对每个两两组合获取这个similarity metrix,作为样本点间的协方差
    • 核函数的选择需要保证生成的矩阵满足协方差矩阵的性质
  • n n n维高斯分布进行的每一次采样就是取到了一系列函数值

  • 先验分布

    • 在没有拿到任何数据时的分布称为先验分布 P X P_X PX
    • 不同的核函数对应出不同的采样函数!
      在这里插入图片描述
  • 后验分布

    • 后验分布是拿到训练数据 Y Y Y后的分布 P X ∣ Y P_{X|Y} PXY
    • 首先构造一个 ∣ X ∣ + ∣ Y ∣ |X|+|Y| X+Y维的联合概率分布,用核函数计算出协方差矩阵
    • 根据联合概率分布得到条件概率分布 P X ∣ Y P_{X|Y} PXY
    • 通过取条件分布,被预测函数被强行限制穿过样本

代码实现

步骤

  1. 核函数选择:表述数据点之间的相似度
  2. 核参数优化:(可省略)自动进行参数调优
  3. 预测:利用训练数据和核参数,通过GP的闭合形式解或者通过采样方法来预测新的数据点

参数含义

在高斯过程回归中,三个主要的参数具有以下含义:

  1. 长度尺度( l l l:长度尺度决定了不同输入点之间的相似度衰减的速度。较大的长度尺度意味着输入点的相似度衰减得较慢,产生更平滑的函数;而较小的长度尺度会产生更为波动的函数。

  2. 输出尺度( s f sf sf:输出尺度控制了函数值的变化范围。较大的输出尺度将导致函数值变化的范围更大。

  3. 噪声标准差( s n sn sn:噪声标准差参数表示观测噪声的大小。它帮助模型了解观测数据中的噪声程度,从而在预测时考虑到这种不确定性。

Matlab实现

% 生成示例数据
x = linspace(-5, 5, 20)'; % 输入数据
y = sin(x) + 0.1*randn(size(x)); % 输出数据

% 高斯过程参数
ell = 1; % 长度尺度:越大函数越平滑
sf = 1; % 输出尺度:越大函数值变化越大
sn = 0.1; % 噪声标准差:增加泛化性

% 计算核矩阵

K = sf^2 * exp(-0.5/ell^2 * (x - x').^2);
Ks = sf^2 * exp(-0.5/ell^2 * (x - x(end)).^2);
Kss = sf^2;

% 预测新数据点

xs = linspace(-6, 6, 100)';
K_star = sf^2 * exp(-0.5/ell^2 * (xs - x').^2);
K_star_star = sf^2 * exp(-0.5/ell^2 * (xs - xs').^2);
mu = K_star / (K + sn^2*eye(size(x,1))) * y;
cov = K_star_star - K_star / (K + sn^2*eye(size(x,1))) * K_star';

% 绘制结果

figure;
scatter(x, y); % 绘制原始数据
hold on;
plot(xs, mu, 'r'); % 绘制高斯过程拟合
legend('Original Data', 'Gaussian Process Fit');

Result:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,您说得没错。高斯过程回归(Gaussian Process Regression,GPR)是一种非参数模型,它使用高斯过程Gaussian Process,GP)作为先验对数据进行回归分析。GPR模型不需要假设数据的分布形式,而是通过对数据进行高斯过程拟合来进行回归预测。具体来说,GPR模型将数据看作是从一个高斯分布中随机采样得到的无限维向量,可以通过对这个向量的均值函数和协方差函数进行建模来对数据进行预测。 GPR模型具有以下特点: 1. 非参数模型:不需要假设数据的分布形式,可以适应各种数据类型和分布形式。 2. 预测精度高:GPR模型可以对数据进行精确的预测,同时可以对预测结果提供可信度估计。 3. 易于解释:GPR模型可以输出均值函数和协方差函数,可以用于解释预测结果和分析数据特征。 在Python中,可以使用Scikit-learn等机器学习库中的GPR模型进行建模,例如: ```python from sklearn.gaussian_process import GaussianProcessRegressor from sklearn.gaussian_process.kernels import RBF # 定义高斯过程内核函数 kernel = RBF(length_scale=1.0) # 定义高斯过程回归模型 model = GaussianProcessRegressor(kernel=kernel, alpha=0.1) # 模型训练和预测 model.fit(X_train, y_train) y_pred, y_std = model.predict(X_test, return_std=True) ``` 需要注意的是,在使用GPR模型进行建模时,需要选择合适的高斯过程内核函数和正则化参数,以获得更好的预测效果。同时,GPR模型也需要进行交叉验证等模型选择和优化操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值