在概率论和统计学中,高斯过程是指观测发生在连续域(例如:时域、空间域)中的一种特殊的概率模型

1 基本概念

在高斯过程,连续的输入空间的任何点与正态分布的随机变量相关,而且任何随机变量的有限集合满足多重正态分布,例如变量间的任意线性组合是正态分布,高斯过程分布是所有随机变量在连续域中的联合分布
在机器学习理论中,针对于推广训练数据(generalize train data)的算法,如果学习方法在对系统发出请求之前进行,称为急切学习(eager learning),如果学习方法滞后于对系统的请求,称为懒惰学习(lazing learning),K近邻算法就是典型的懒惰学习方法
懒惰学习方法一般模型可移植性强,适用于不同的问题域,但要求较大空间来实时保存训练数据集,因为缺少对数据集合的抽象而使得预测过程计算量大。懒惰分类器适用于数据集的特征较少的情况
因此,从机器学习算法的观点看,高斯过程采用懒惰学习的方式来度量样本间的相似度(核函数),从而基于训练数据预测位置观测输入的结果。预测结果往往是边缘分布(多个概率分布函数的累加)
函数空间视角(function-space view):高斯过程可以看作是基于多个函数定义分布,并在函数空间做推断分析

2 问题描述

对于给定数据集DN={xn,yn}n=1ND_N=\{\mathbf{x}_n,y_n\}_{n=1}^NDN​={xn​,yn​}n=1N​,其中xn∈ℜm\mathbf{x}_n\in \Re^mxn​∈ℜm,令X=[x1,...,xN]TX=[\mathbf{x}_1,...,\mathbf{x}_N]^TX=[x1​,...,xN​]T作为观测输入数据矩阵,即输入空间;Y=[y1,…,yN]TY=[y_1,\dots,y_N]^TY=[y1​,…,yN​]T作为观测输出向量,即输出空间。考虑非线性映射ϕ(x):x∈ℜm→F\phi(\mathbf{x}):\mathbf{x}\in \Re^m \rightarrow Fϕ(x):x∈ℜm→F,这个映射可能是未知的也可能是无限维的。核函数k(xi,xj)k(\mathbf{x}_i,\mathbf{x}_j)k(xi​,xj​)可以满足这个特性,核函数用内积形式来构建特征空间F为:k(xi,xj)=<ϕ(xi),ϕ(xj)>k(\mathbf{x}_i,\mathbf{x}_j)=<\phi(\mathbf{x}_i),\phi(\mathbf{x}_j)>k(xi​,xj​)=<ϕ(xi​),ϕ(xj​)>典型的核函数包括径向基函数k(xi,xj)=exp⁡(−∥xi−xj∥2/2ρ2)k(\mathbf{x}_i,\mathbf{x}_j)=\exp(-\Vert\mathbf{x}_i-\mathbf{x}_j\Vert^2/2\rho^2)k(xi​,xj​)=exp(−∥xi​−xj​∥2/2ρ2),其中ρ>0\rho>0ρ>0是宽度参数
定义高斯分布N(μ,Σ)N(\mu,\Sigma)N(μ,Σ),其中μ\muμ是均值,Σ\SigmaΣ是协方差
在高斯回归过程模型(Gaussian process regression,GPR)中,每个样本yny_nyn​可以表示为:y=f(x)+εy=f(\mathbf{x})+\varepsilony=f(x)+ε其中fff是零均值高斯过程f∼N(0,KXX)\mathbf{f}\sim N(\mathbf{0},K_{XX})f∼N(0,KXX​),KXX={k(xi,xj)}∈ℜN×NK_{XX}=\{k(\mathbf{x}_i,\mathbf{x}_j)\}\in \Re^{N \times N}KXX​={k(xi​,xj​)}∈ℜN×N是核函数定义的特定协方差矩阵,ε∼N(0,σ2)\varepsilon \sim N(0,\sigma^2)ε∼N(0,σ2)
定义KXx=[k(x1,x),…,k(xN,x)]T∈ℜN\mathbf{K}_{X\mathbf{x}}=[k(\mathbf{x}_1,\mathbf{x}),\dots,k(\mathbf{x}_N,\mathbf{x})]^T\in \Re^NKXx​=[k(x1​,x),…,k(xN​,x)]T∈ℜN
典型的高斯过程回归方法是为了对于任意测试数据x∗∈X\mathbf{x}^*\in Xx∗∈X估计预测分布p(y∣x∗)p(y|\mathbf{x}^*)p(y∣x∗),基于高斯概率假设,可以得到条件分布:p^(y∣x∗,X,Y)∼N(f(x∗),g(x∗))\hat{p}(y|\mathbf{x}^*,X,Y)\sim N(f(\mathbf{x}^*),g(\mathbf{x}^*))p^​(y∣x∗,X,Y)∼N(f(x∗),g(x∗))这里,f(x∗)=KXx∗T(KXX+σ2I)−1Yf(\mathbf{x}^*)=\mathbf{K}_{X\mathbf{x}^*}^T(K_{XX}+\sigma^2\mathbf{I})^{-1} Yf(x∗)=KXx∗T​(KXX​+σ2I)−1Yg(x∗)=σ2+k(x∗,x∗)−kXx∗T(KXX+σ2I)−1kXx∗g(\mathbf{x}^*)=\sigma^2+k(\mathbf{x}^*,\mathbf{x}^*)-\mathbf{k}_{X\mathbf{x}^*}^T(K_{XX}+\sigma^2\mathbf{I})^{-1}\mathbf{k}_{X\mathbf{x}^*}g(x∗)=σ2+k(x∗,x∗)−kXx∗T​(KXX​+σ2I)−1kXx∗​其中I\mathbf{I}I是相应规模的单位矩阵
特别地,令a=[a1,…,aN]T=(KXX+σ2I)−1Y\mathbf{a}=[a_1,\dots,a_N]^T=(K_{XX}+\sigma^2\mathbf{I})^{-1} Ya=[a1​,…,aN​]T=(KXX​+σ2I)−1Y。因此f(x∗)=aTkXx∗=∑i=1Naik(xi,x∗)f(\mathbf{x}^*)=\mathbf{a}^T\mathbf{k}_{X\mathbf{x}^*}=\sum_{i=1}^N a_ik(\mathbf{x}_i,\mathbf{x}^*)f(x∗)=aTkXx∗​=∑i=1N​ai​k(xi​,x∗)
由此可见,高斯过程可以用一系列的基函数组合来表示

3 高斯过程模型估计

在高斯模型估计中,噪声方差往往视为一个参数,并于核函数在在一起,即σ\sigmaσ
常用的模型参数估计方法是边际概率p(Y∣X)p(Y|X)p(Y∣X),可以通过条件概率和先验的乘积积分来表示,即为p(Y∣X)=∫p(Y∣f,X)p(f∣X)dfp(Y|X)=\int p(Y|\mathbf{f},X)p(\mathbf{f}|X)d\mathbf{f}p(Y∣X)=∫p(Y∣f,X)p(f∣X)df边际概率取对数有:JML=log⁡p(Y∣X)=−12YT(KXX+σ2I)−1Y−12log⁡det⁡(KXX+σ2I)−N2log⁡(2π)J^{ML}=\log p(Y|X)=-\frac{1}{2}Y^T(\mathbf{K}_{XX}+\sigma^2\mathbf{I})^{-1}Y-\frac{1}{2}\log \det(\mathbf{K}_{XX}+\sigma^2\mathbf{I})-\frac{N}{2}\log(2\pi)JML=logp(Y∣X)=−21​YT(KXX​+σ2I)−1Y−21​logdet(KXX​+σ2I)−2N​log(2π)
或者,考虑输出概率密度函数和高斯过程回归估计之间的Kullbak-Leibler(K-L)散度作为代价函数,即有KL=∫p(y)log⁡p(y)p^(y∣X,Y)dy=∫p(y)log⁡p(y)dy−∫log⁡p^(y∣X,Y)p(y)dyKL=\int p(y)\log\frac{p(y)}{\hat{p}(y|X,Y)}dy=\int p(y)\log p(y)dy-\int\log\hat{p}(y|X,Y)p(y)dyKL=∫p(y)logp^​(y∣X,Y)p(y)​dy=∫p(y)logp(y)dy−∫logp^​(y∣X,Y)p(y)dy其中上式第二项R=∫log⁡p^(y∣X,Y)p(y)dy≈E(log⁡p^(y∣X,Y))求最大值R=\int\log\hat{p}(y|X,Y)p(y)dy\approx E(\log\hat{p}(y|X,Y))求最大值R=∫logp^​(y∣X,Y)p(y)dy≈E(logp^​(y∣X,Y))求最大值.
由于p^(y∣X,Y)=∫p^(y∣x,X,Y)p(x)d(x)=E(p^(y∣x,X,Y))≈1N∑j=1N12πg(xj)exp⁡(−(y−f(xj))22g(xj))\hat{p}(y|X,Y)=\int \hat{p}(y|\mathbf{x},X,Y)p(\mathbf{x})d(\mathbf{x})=E(\hat{p}(y|\mathbf{x},X,Y))\approx \frac{1}{N}\sum_{j=1}^N \frac{1}{\sqrt{2\pi g(\mathbf{x}_j)}}\exp \left(-\frac{(y-f(\mathbf{x}_j))^2}{2g(\mathbf{x}_j)}\right)p^​(y∣X,Y)=∫p^​(y∣x,X,Y)p(x)d(x)=E(p^​(y∣x,X,Y))≈N1​j=1∑N​2πg(xj​)​1​exp(−2g(xj​)(y−f(xj​))2​)因此,将上式带入RRR,并引入p(x)p(\mathbf{x})p(x)的真实密度,可以得到R≈JKL=1N∑i=1Nlog⁡(1N∑j=1N12πg(xj)exp⁡(−(y−f(xj))22g(xj)))=1N∑i=1Nlog⁡(1N∑j=1Npi,j)R\approx J^{KL}=\frac{1}{N}\sum_{i=1}^N\log\left(\frac{1}{N}\sum_{j=1}^N \frac{1}{\sqrt{2\pi g(\mathbf{x}_j)}}\exp \left(-\frac{(y-f(\mathbf{x}_j))^2}{2g(\mathbf{x}_j)}\right)\right)=\frac{1}{N}\sum_{i=1}^N\log\left(\frac{1}{N}\sum_{j=1}^Np_{i,j}\right)R≈JKL=N1​i=1∑N​log(N1​j=1∑N​2πg(xj​)​1​exp(−2g(xj​)(y−f(xj​))2​))=N1​i=1∑N​log(N1​j=1∑N​pi,j​)其中pi,j=12πgjexp⁡(−ei,j22gj)p_{i,j}=\frac{1}{\sqrt{2\pi g_j}}\exp\left(-\frac{e_{i,j}^2}{2g_j}\right)pi,j​=2πgj​​1​exp(−2gj​ei,j2​​),这里ei,j=yi−fje_{i,j}=y_i-f_jei,j​=yi​−fj​,fif_ifi​和gjg_jgj​分别定义f(xi)f(\mathbf{x}_i)f(xi​)和g(xj)g(\mathbf{x}_j)g(xj​)
由于真实密度p(y)p(y)p(y)和p(x)p(\mathbf{x})p(x)并不知道,但不同级别的概率函数可以调整至结晶误差的N−1/2N^{-1/2}N−1/2阶,所以可以用估计器插值法近似KL散度
高斯过程参数估计不管是通过JKLJ^{KL}JKL还是JMLJ^{ML}JML,都是非线性优化任务,需要对(KXX+σ2I)−1(K_{XX}+\sigma^2\mathbf{I})^{-1}(KXX​+σ2I)−1进行迭代,每步计算复杂度是O(N3)O(N^3)O(N3)

4 带噪声的离散观测值估计实例

根据上面内容,已知有先验分布y∼N(0,KXX+σ2I)y\sim N(0,K_{XX}+\sigma^2\mathbf{I})y∼N(0,KXX​+σ2I),对于任意测试数据y∗y^*y∗有:
[yy∗]∼[KXX+σ2IKXxKXxTKxx]\left[ \begin{array}{l} y\\ y^* \end{array} \right] \sim \left[ \begin{array}{l} \mathbf{K}_{XX}+\sigma^2\mathbf{I}&\mathbf{K}_{X\mathbf{x}}\\ \mathbf{K}_{X\mathbf{x}}^T&\mathbf{K}_{\mathbf{x}\mathbf{x}} \end{array} \right][yy∗​]∼[KXX​+σ2IKXxT​​KXx​Kxx​​]
其中,Kxx\mathbf{K}_{\mathbf{x}\mathbf{x}}Kxx​恒等于1

附 matlab写的高斯滤波器

real1 = TestingData_output;
out1 = testingoutput';
N = length(out);
in = zeros(N,1);
in(:,1) = 1:N;
out = (out1 - mean(out1))/std(out1);
real = (real1 - mean(real1))/std(real1);
sigma_square = 0.5;
rho_opt = 100;N = length(in);
K =zeros(N,N);
for i = 1:Nfor j =1:NK(i,j)=exp(-((in(i,1)-in(j,1))^2)/(2*rho_opt^2));end
end
Num = N;
cnt = 0;
K_new = zeros(N,1);
ret = zeros(Num,1);
temp = inv(K+sigma_square*eye(N,N))*out;
for i = 1:Numx =in(i,1);   for k = 1:NK_new(k,1)=exp(-((x-in(k,1))^2)/(2*rho_opt^2));endcnt =cnt + 1;ret(cnt,1) = K_new' * temp;
end
ret =  ret * std(out1) + mean(out1);
plot(ret);hold on
plot(real1); hold on
plot(out1);
%%%%
legend('ret','TestingData_output','testingoutput');

高斯过程回归(Gaussian Process Regression)相关推荐

  1. 高斯过程回归(Gaussian Process Regression) 粗理解

    转自:高斯过程回归 (Gaussian Process Regression) 学习路线 - 知乎 一个写高斯过程不错的帖子: 贝叶斯优化 (上) 高斯过程 - 知乎 贝叶斯优化 (下) 高斯过程 - ...

  2. 高斯过程回归 | Matlab实现高斯过程回归多输入单输出预测(Gaussian Process Regression)

    文章目录 效果一览 文章概述 研究内容 程序设计 参考资料 效果一览 文章概述 高斯过程回归 | Matlab实现高斯过程回归多输入单输出预测(Gaussian Process Regression) ...

  3. 高斯过程分类 matlab,matlab 高斯过程回归模型 matlab Gaussian process regression model

    [实例简介] 高斯过程回归及分类的代码,内容全,有实例,注释清晰.包括分类系列和预测回归系列,值得感兴趣的同学学习借鉴.里面有对应的数据和demo程序,程序可运行,MATLAB2014a下测试通过,其 ...

  4. 高斯过程回归(Gaussian Process Regression, GPR)的理解1——权重空间角度

    核心预备知识 能够区分频率学派和贝叶斯学派求解模型时的思想区别. 熟悉最基础的概率运算公式(本科内容). 熟悉线性代数以及微积分的运算(本科内容). 熟悉贝叶斯公式,并能理解后验以及先验所代表的物理含 ...

  5. 维纳过程(Wiener Process)与高斯过程(Gaussian Process)

    维纳过程又叫布朗运动过程(Brownian motion): 1. 维纳过程 维纳过程 WtW_t 由如下性质所描述: W0=1W_0 = 1, a.s.(a.s.,almost surely)

  6. 高斯过程 (Gaussian Process)

    本博客转载自https://blog.csdn.net/u010016927/article/details/76856036 **针对机器学习的高斯过程(Gaussian Process for M ...

  7. 20 高斯过程 Gaussian Process

    本小节我们将进入Gaussian Process 的学习.Gaussian 自然指的就是Gaussian Distribution,而Process 指的就是随机过程.在一维的 Gaussian Di ...

  8. 转载:说说高斯过程回归

    原文链接: 说说高斯过程回归 – 我爱计算机 http://www.52cs.org/?p=509&_360safeparam=1929050203 高斯过程回归 来自于 我爱计算机 WWW. ...

  9. GPR(高斯过程回归)

    写在前面:   本文为科研理论笔记的第三篇,其余笔记目录传送门: 理论笔记专栏目录   介绍结束下面开始进入正题: 1 高斯分布 ​   一元高斯分布的概率密度函数为: p(x)=1σ2πexp⁡(− ...

  10. 学习笔记之高斯过程回归(含代码):连续无限空间上建模的超级武器

    在这个万物皆可"Machine Learning"的时代,各个研究领域都想和"ML"沾点边,好像论文里有了"-with machine learnin ...

最新文章

  1. Wireshark运算符!=无法正常工作
  2. make的使用和Makefile规则和编程及其基本命令(简单)
  3. jvm性能调优实战 - 45无限制的调用方法导致栈溢出OOM
  4. 成功解决采用ax.bar进行三维绘图绘制柱状图的时候,横坐标只显示三列而不是数据中的四列
  5. [BOI2019][第K大问题][暴力剪枝]D2T1 Olympiads
  6. boost::exception_test::throw_test_exception<T>的测试程序
  7. 设计数据库表时,你真的会选数据类型吗
  8. mysql根据时间统计数据语句
  9. 分享正在构想的开源门户/B2B框架理念 与现有流行的门户系统/B2B系统有很大不同...
  10. canoe和python_CANoe开发从入门到精通
  11. [行业报告] 芒果发布8月份国内移动广告平台数据报告
  12. temp的作用c语言,temp的使用
  13. 不同品牌路由器无线桥接的设置方法
  14. 医疗时钟系统的设计方案
  15. 2020年系统架构师案例分析
  16. 如何用CSS实现div元素高度相对于整个屏幕100%
  17. python归一化nan加扰动_标准化和归一化对机器学习经典模型的影响
  18. 北京小学 计算机派位,北京小升初东西海朝4区电脑派位规则汇总 2021家长必看...
  19. ffmpeg的api里av_free和av_freep的区别
  20. 小米摄像机升级失败,小米摄像机黄灯常亮修复,全网最硬核修复

热门文章

  1. 当贝投影F5发布:3000ANSI流明亮度,6S疾速开机,16ms超低延迟
  2. 【云计算】阿里云-pyodps处理指南
  3. 斐讯路由器K2弹广告-刷机过程
  4. 雷云驱动2从云服务器,雷蛇云驱动 2 for mac(Mac雷蛇鼠标驱动设置工具)V1.88 官方版...
  5. 用计算机算华为平板密码,华为平板电脑密码忘记怎么办
  6. css全局加粗,CSS 实现矩形四个边角加粗的方法
  7. H5自适应简约浪漫婚礼邀请函HTML源码
  8. matlab simulink节点,ROS与Matlab语言入门教程-从Simulink中创建单独的ROS节点
  9. WSO2 ESB 5.0.0 集群配置
  10. ios gif的分解和展示