高斯过程回归(Gaussian Process Regression)
在概率论和统计学中,高斯过程是指观测发生在连续域(例如:时域、空间域)中的一种特殊的概率模型
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=1Naik(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=logp(Y∣X)=−12YT(KXX+σ2I)−1Y−12logdet(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)=−21YT(KXX+σ2I)−1Y−21logdet(KXX+σ2I)−2Nlog(2π)
或者,考虑输出概率密度函数和高斯过程回归估计之间的Kullbak-Leibler(K-L)散度作为代价函数,即有KL=∫p(y)logp(y)p^(y∣X,Y)dy=∫p(y)logp(y)dy−∫logp^(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=∫logp^(y∣X,Y)p(y)dy≈E(logp^(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))≈N1j=1∑N2πg(xj)1exp(−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=N1i=1∑Nlog(N1j=1∑N2πg(xj)1exp(−2g(xj)(y−f(xj))2))=N1i=1∑Nlog(N1j=1∑Npi,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πgj1exp(−2gjei,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+σ2IKXxTKXxKxx]
其中,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)相关推荐
- 高斯过程回归(Gaussian Process Regression) 粗理解
转自:高斯过程回归 (Gaussian Process Regression) 学习路线 - 知乎 一个写高斯过程不错的帖子: 贝叶斯优化 (上) 高斯过程 - 知乎 贝叶斯优化 (下) 高斯过程 - ...
- 高斯过程回归 | Matlab实现高斯过程回归多输入单输出预测(Gaussian Process Regression)
文章目录 效果一览 文章概述 研究内容 程序设计 参考资料 效果一览 文章概述 高斯过程回归 | Matlab实现高斯过程回归多输入单输出预测(Gaussian Process Regression) ...
- 高斯过程分类 matlab,matlab 高斯过程回归模型 matlab Gaussian process regression model
[实例简介] 高斯过程回归及分类的代码,内容全,有实例,注释清晰.包括分类系列和预测回归系列,值得感兴趣的同学学习借鉴.里面有对应的数据和demo程序,程序可运行,MATLAB2014a下测试通过,其 ...
- 高斯过程回归(Gaussian Process Regression, GPR)的理解1——权重空间角度
核心预备知识 能够区分频率学派和贝叶斯学派求解模型时的思想区别. 熟悉最基础的概率运算公式(本科内容). 熟悉线性代数以及微积分的运算(本科内容). 熟悉贝叶斯公式,并能理解后验以及先验所代表的物理含 ...
- 维纳过程(Wiener Process)与高斯过程(Gaussian Process)
维纳过程又叫布朗运动过程(Brownian motion): 1. 维纳过程 维纳过程 WtW_t 由如下性质所描述: W0=1W_0 = 1, a.s.(a.s.,almost surely)
- 高斯过程 (Gaussian Process)
本博客转载自https://blog.csdn.net/u010016927/article/details/76856036 **针对机器学习的高斯过程(Gaussian Process for M ...
- 20 高斯过程 Gaussian Process
本小节我们将进入Gaussian Process 的学习.Gaussian 自然指的就是Gaussian Distribution,而Process 指的就是随机过程.在一维的 Gaussian Di ...
- 转载:说说高斯过程回归
原文链接: 说说高斯过程回归 – 我爱计算机 http://www.52cs.org/?p=509&_360safeparam=1929050203 高斯过程回归 来自于 我爱计算机 WWW. ...
- GPR(高斯过程回归)
写在前面: 本文为科研理论笔记的第三篇,其余笔记目录传送门: 理论笔记专栏目录 介绍结束下面开始进入正题: 1 高斯分布 一元高斯分布的概率密度函数为: p(x)=1σ2πexp(− ...
- 学习笔记之高斯过程回归(含代码):连续无限空间上建模的超级武器
在这个万物皆可"Machine Learning"的时代,各个研究领域都想和"ML"沾点边,好像论文里有了"-with machine learnin ...
最新文章
- Wireshark运算符!=无法正常工作
- make的使用和Makefile规则和编程及其基本命令(简单)
- jvm性能调优实战 - 45无限制的调用方法导致栈溢出OOM
- 成功解决采用ax.bar进行三维绘图绘制柱状图的时候,横坐标只显示三列而不是数据中的四列
- [BOI2019][第K大问题][暴力剪枝]D2T1 Olympiads
- boost::exception_test::throw_test_exception<T>的测试程序
- 设计数据库表时,你真的会选数据类型吗
- mysql根据时间统计数据语句
- 分享正在构想的开源门户/B2B框架理念 与现有流行的门户系统/B2B系统有很大不同...
- canoe和python_CANoe开发从入门到精通
- [行业报告] 芒果发布8月份国内移动广告平台数据报告
- temp的作用c语言,temp的使用
- 不同品牌路由器无线桥接的设置方法
- 医疗时钟系统的设计方案
- 2020年系统架构师案例分析
- 如何用CSS实现div元素高度相对于整个屏幕100%
- python归一化nan加扰动_标准化和归一化对机器学习经典模型的影响
- 北京小学 计算机派位,北京小升初东西海朝4区电脑派位规则汇总 2021家长必看...
- ffmpeg的api里av_free和av_freep的区别
- 小米摄像机升级失败,小米摄像机黄灯常亮修复,全网最硬核修复
热门文章
- 当贝投影F5发布:3000ANSI流明亮度,6S疾速开机,16ms超低延迟
- 【云计算】阿里云-pyodps处理指南
- 斐讯路由器K2弹广告-刷机过程
- 雷云驱动2从云服务器,雷蛇云驱动 2 for mac(Mac雷蛇鼠标驱动设置工具)V1.88 官方版...
- 用计算机算华为平板密码,华为平板电脑密码忘记怎么办
- css全局加粗,CSS 实现矩形四个边角加粗的方法
- H5自适应简约浪漫婚礼邀请函HTML源码
- matlab simulink节点,ROS与Matlab语言入门教程-从Simulink中创建单独的ROS节点
- WSO2 ESB 5.0.0 集群配置
- ios gif的分解和展示