高斯过程部分数学推导
已知
高斯过程:任意给定一批样本点 X = [ x 1 , x 2 , . . . , x n ] \mathbf{X=[x_1,x_2,...,x_n]} X=[x1,x2,...,xn] 为其随机分配 F = [ f ( x 1 ) , f ( x 2 ) , . . . , f ( x n ) ] \mathbf{F = [f(x_1),f(x_2),...,f(x_n)]} F=[f(x1),f(x2),...,f(xn)], F \bold F F 服从多维高斯分布。
假设 F \mathbf{F} F 的实际观测为 Y = [ y 1 , y 2 , . . . , y n ] \mathbf{Y=[y_1,y_2,...,y_n]} Y=[y1,y2,...,yn] ,且观测噪声服从均值 0 \bold 0 0,方差 σ 2 \mathbf{\sigma^2} σ2 的高斯分布。
问题
最终问题:给定一批新数据点 X ∗ \mathbf{X_*} X∗ ,预测新的观测 Y ∗ \mathbf{Y_*} Y∗
隐含问题:给出 P ( F ∗ ∣ X ∗ , X , Y ) \mathbf{P(F_*|X_*,X,Y)} P(F∗∣X∗,X,Y) 后验预测分布
根据后验分布我们就能在该分布上随机采样从而得到新的观测值,这是一个随机过程
解决
在新数据点 X ∗ \bold X{_*} X∗ 上分配的值为 F ∗ = [ f ( x ∗ 1 ) , f ( x ∗ 2 ) , . . . , f ( x ∗ m ) ] \bold F_*=[f(x_{*1}),f(x_{*2}),...,f(x_{*m})] F∗=[f(x∗1),f(x∗2),...,f(x∗m)],根据高斯过程的定义,有:
[ F F ∗ ] ∣ [ X X ∗ ] ∼ N ( [ u ( X ) u ( X ∗ ) ] , [ K K ∗ K ∗ T K ∗ ∗ ] ) \begin{bmatrix} \mathbf{F} \\ \mathbf{F_*} \end{bmatrix}|\begin{bmatrix} \mathbf{X} \\ \mathbf{X_*} \end{bmatrix} \sim N( \begin{bmatrix} \mathbf{u(X)} \\ \mathbf{u(X_*)} \end{bmatrix}, \begin{bmatrix} \mathbf{K} & \mathbf{K_*} \\ \mathbf{K_{*}^T} & \mathbf{K_{**}} \end{bmatrix} ) [FF∗]∣[XX∗]∼N([u(X)u(X∗)],[KK∗TK∗K∗∗])
其中
K = k e r n e l ( X , X ) K ∗ = k e r n e l ( X , X ∗ ) K ∗ ∗ = k e r n e l ( X ∗ , X ∗ ) \begin{aligned} &\mathbf{K = kernel(X,X)} \\ &\mathbf{K_{*} = kernel(X,X_{*})} \\ &\mathbf{K_{**} = kernel(X_{*},X_{*})} \\ \end{aligned} K=kernel(X,X)K∗=kernel(X,X∗)K∗∗=kernel(X∗,X∗)
又
y n = f ( x n ) + ϵ , ϵ ∼ N ( 0 , σ 2 ) \mathbf{y_n = f(x_n)+\epsilon ,\epsilon \sim N(0,\sigma ^2)} yn=f(xn)+ϵ,ϵ∼N(0,σ2)
因此有
[ Y F ∗ ] ∣ [ X X ∗ ] ∼ N ( [ u ( X ) u ( X ∗ ) ] , [ K + σ 2 I K ∗ K ∗ T K ∗ ∗ ] ) \begin{bmatrix} \mathbf{Y} \\ \mathbf{F_*} \end{bmatrix}|\begin{bmatrix} \mathbf{X} \\ \mathbf{X_*} \end{bmatrix}\sim N( \begin{bmatrix} \mathbf{u(X)} \\ \mathbf{u(X_*)} \end{bmatrix}, \begin{bmatrix} \mathbf{K+\sigma^2I} & \mathbf{K_*} \\ \mathbf{K_{*}^T} & \mathbf{K_{**}} \end{bmatrix} ) [YF∗]∣[XX∗]∼N([u(X)u(X∗)],[K+σ2IK∗TK∗K∗∗])
根据多维高斯分布的性质: F ∗ ∣ Y , X , X ∗ F_*|Y,X,X_* F∗∣Y,X,X∗服从高斯分布 N ( u ∗ , Σ ∗ ) N(u_*,\Sigma_*) N(u∗,Σ∗). 求 u ∗ u_* u∗和 Σ ∗ \Sigma_{*} Σ∗的方法如下.
我们先介绍一个普遍的结论,下面的推导引自白板推导笔记
记 x = ( x 1 , x 2 , ⋯ , x p ) T = ( x a , m × 1 , x b , n × 1 ) T , μ = ( μ a , m × 1 , μ b , n × 1 ) , Σ = ( Σ a a Σ a b Σ b a Σ b b ) x=(x_1, x_2,\cdots,x_p)^T=(x_{a,m\times 1}, x_{b,n\times1})^T,\mu=(\mu_{a,m\times1}, \mu_{b,n\times1}),\Sigma=\begin{pmatrix}\Sigma_{aa}&\Sigma_{ab}\\\Sigma_{ba}&\Sigma_{bb}\end{pmatrix} x=(x1,x2,⋯,xp)T=(xa,m×1,xb,n×1)T,μ=(μa,m×1,μb,n×1),Σ=(ΣaaΣbaΣabΣbb),已知 x ∼ N ( μ , Σ ) x\sim\mathcal{N}(\mu,\Sigma) x∼N(μ,Σ)。
求 p ( x b ∣ x a ) p(x_b|x_a) p(xb∣xa)
x b ⋅ a = x b − Σ b a Σ a a − 1 x a μ b ⋅ a = μ b − Σ b a Σ a a − 1 μ a Σ b b ⋅ a = Σ b b − Σ b a Σ a a − 1 Σ a b x_{b\cdot a}=x_b-\Sigma_{ba}\Sigma_{aa}^{-1}x_a\\ \mu_{b\cdot a}=\mu_b-\Sigma_{ba}\Sigma_{aa}^{-1}\mu_a\\ \Sigma_{bb\cdot a}=\Sigma_{bb}-\Sigma_{ba}\Sigma_{aa}^{-1}\Sigma_{ab} xb⋅a=xb−ΣbaΣaa−1xaμb⋅a=μb−ΣbaΣaa−1μaΣbb⋅a=Σbb−ΣbaΣaa−1Σab
于是有
x b ⋅ a = ( − Σ b a Σ a a − 1 I n × n ) ( x a x b ) x_{b\cdot a}=\begin{pmatrix}-\Sigma_{ba}\Sigma_{aa}^{-1}&\mathbb{I}_{n\times n}\end{pmatrix}\begin{pmatrix}x_a\\x_b\end{pmatrix} xb⋅a=(−ΣbaΣaa−1In×n)(xaxb)
从而
E [ x b ⋅ a ] = ( − Σ b a Σ a a − 1 I n × n ) ( μ a μ b ) = μ b ⋅ a V a r [ x b ⋅ a ] = ( − Σ b a Σ a a − 1 I n × n ) ( Σ a a Σ a b Σ b a Σ b b ) ( − Σ a a − 1 Σ b a T I n × n ) = Σ b b ⋅ a \begin{aligned} \mathbb{E}[x_{b\cdot a}] & = \begin{pmatrix}-\Sigma_{ba}\Sigma_{aa}^{-1}&\mathbb{I}_{n\times n}\end{pmatrix}\begin{pmatrix}\mu_a\\\mu_b\end{pmatrix} = \mu_{b\cdot a}\\ Var[x_{b\cdot a}] & = \begin{pmatrix}-\Sigma_{ba}\Sigma_{aa}^{-1}&\mathbb{I}_{n\times n}\end{pmatrix}\begin{pmatrix}\Sigma_{aa}&\Sigma_{ab}\\\Sigma_{ba}&\Sigma_{bb}\end{pmatrix}\begin{pmatrix}-\Sigma_{aa}^{-1}\Sigma_{ba}^T\\\mathbb{I}_{n\times n}\end{pmatrix} = \Sigma_{bb\cdot a} \end{aligned} E[xb⋅a]Var[xb⋅a]=(−ΣbaΣaa−1In×n)(μaμb)=μb⋅a=(−ΣbaΣaa−1In×n)(ΣaaΣbaΣabΣbb)(−Σaa−1ΣbaTIn×n)=Σbb⋅a
可得
x b ∣ x a = x b ⋅ a + Σ b a Σ a a − 1 x a E [ x b ∣ x a ] = μ b ⋅ a + Σ b a Σ a a − 1 x a V a r [ x b ∣ x a ] = Σ b b ⋅ a \begin{aligned} &x_b|x_a =x_{b\cdot a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_a \\\\ &\mathbb{E}[x_b|x_a]=\mu_{b\cdot a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_a \\\\ &Var[x_b|x_a]=\Sigma_{bb\cdot a}\\ \end{aligned} xb∣xa=xb⋅a+ΣbaΣaa−1xaE[xb∣xa]=μb⋅a+ΣbaΣaa−1xaVar[xb∣xa]=Σbb⋅a
其中, x b . a x_{b.a} xb.a与 x a x_a xa的独立性证明过程如图,该图来自B站大佬shuhuai008的白板推导视频勘误
根据上面得到的结论,我们把以下映射带入公式:
x a = Y x b = F ∗ u a = 0 u b = 0 Σ a a = K Σ a b = K ∗ Σ b a = K ∗ T Σ b b = K ∗ ∗ \begin{aligned} x_a & = \mathbf{Y} \\ x_b & = \mathbf{F_*} \\ u_a & = 0 \\ u_b & = 0 \\ \Sigma_{aa} & = \mathbf{K} \\ \Sigma_{ab} & = \mathbf{K_*} \\ \Sigma_{ba} & = \mathbf{K_*^T} \\ \Sigma_{bb} & = \mathbf{K_{**}} \\ \end{aligned} xaxbuaubΣaaΣabΣbaΣbb=Y=F∗=0=0=K=K∗=K∗T=K∗∗
代入的计算略,读者可自己完成。最终可得
μ ∗ = K ∗ T K − 1 Y Σ ∗ = K ∗ ∗ − K ∗ T K − 1 K ∗ \begin{aligned} \boldsymbol{\mu}_{*} &=\mathbf{K}_{*}^{T} \mathbf{K}^{-1} \mathbf{Y} \\ \mathbf{\Sigma}_{*} &=\mathbf{K}_{* *}-\mathbf{K}_{*}^{T} \mathbf{K}^{-1} \mathbf{K}_{*} \end{aligned} μ∗Σ∗=K∗TK−1Y=K∗∗−K∗TK−1K∗
所以
P ( F ∗ ∣ X ∗ , X , Y ) = N ( F ∗ ∣ u ∗ , Σ ∗ ) \mathbf{P(F_*|X_*,X,Y) = N(F_*|u_*,\Sigma_*)} P(F∗∣X∗,X,Y)=N(F∗∣u∗,Σ∗)
高斯过程部分数学推导相关推荐
- 数学推导+纯Python实现机器学习算法:GBDT
Datawhale推荐 作者:louwill,Machine Learning Lab 时隔大半年,机器学习算法推导系列终于有时间继续更新了.在之前的14讲中,笔者将监督模型中主要的单模型算法基本都过 ...
- 数学推导+纯Python实现机器学习算法:逻辑回归
2019独角兽企业重金招聘Python工程师标准>>> 自本系列第一讲推出以来,得到了不少同学的反响和赞成,也有同学留言说最好能把数学推导部分写的详细点,笔者只能说尽力,因为打公式实 ...
- 详解CAPM的数学推导
详解CAPM的数学推导 资本配置线 最优投资组合 市场投资者与资本资产定价公式 今年居然是咱本命年啊,难怪从二月开始就总是遇到各种奇奇怪怪的bug,不管怎么说还是祝我生日快乐吧.虽说已经不搞金融了,但 ...
- 机器学习——线性回归数学推导
文章目录 线性回归数学推导 基础知识 线性回归的计算 利用矩阵知识对线性公式进行整合 误差项的分析 似然函数的理解 矩阵求偏导 线性回归的最终求解 实验 1 二维直线实验 2 三维平面实验 3 利用最 ...
- Lucene学习总结之六:Lucene打分公式的数学推导
Lucene学习总结之六:Lucene打分公式的数学推导 在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下.因为Lucene的搜索 ...
- python 高斯烟羽模型_GPR(高斯过程回归)详细推导
GPR(高斯过程回归)详细推导 一.综述 GPR来源于线性模型,有两种方式可以推导出GPR,一种是weight space view,另外一种是function space view.两者考察方式假设 ...
- BZOJ 3119 Book (贪心+数学推导)
BZOJ 3119 Book (贪心+数学推导) 手动博客搬家: 本文发表于20191029 22:49:41, 原地址https://blog.csdn.net/suncongbo/article/ ...
- 【机器学习基础】数学推导+纯Python实现机器学习算法30:系列总结与感悟
Python机器学习算法实现 Author:louwill Machine Learning Lab 终于到了最后的总结.从第一篇线性回归的文章开始到现在,已经接近有两年的时间了.当然,也不是纯写这3 ...
- 【机器学习基础】数学推导+纯Python实现机器学习算法24:HMM隐马尔可夫模型
Python机器学习算法实现 Author:louwill Machine Learning Lab HMM(Hidden Markov Model)也就是隐马尔可夫模型,是一种由隐藏的马尔可夫链随机 ...
最新文章
- 无需服务器的个人博客 (2018.5.22更新)
- 伪共享(False Sharing)
- ASP.Net MVC 在ajax接收controller返回值为Json数据
- Angular Lazy Load 的一个局限性以及解决办法
- CDH Kerberos 认证下Kafka 消费方式
- 商务搜索引擎_网络营销外包——网络营销外包公司如何做好电子商务网站优化?...
- tomcat更改端口序
- 【Clickhouse】Clickhouse 多路径存储策略
- 密码生成器--python
- webshell查杀
- XPI 文件安装方法
- IP解析成地址 确定省市
- 诺禾-实验技巧之WB篇
- idea在自动注入DiscoveryClient的时候报错
- 新生研讨-校外人员进入校园问题以及通信工程专业给予相关解决方案
- java生成word(报告报表)含统计图表图片、循环表格,Spring Boot整合word生成
- SWFObject 2.0官方文档
- 使用Three.js实现炫酷的赛博朋克风格3D数字地球大屏
- Google文件系统(一)
- 弧齿锥齿轮零件图_弧齿锥齿轮加工原理
热门文章
- 6-2 矩阵乘法函数(高教社,《Python编程基础及应用》习题4-11)
- ucore_lab6实验报告
- 1.异常、IO、多线程
- 新手学习广告设计要如何培养广告思维
- 【LWJGL官方教程】Game loops 游戏循环
- java web ireport 3.7 打印二维码
- IIC clock strech【转载IIC七宗罪之IIC clock stretch】
- java eventbus_使用RxJava代替EventBus类库
- 【hive报错】SemanticException Failed to breakup Windowing invocations into Groups
- 开放世界游戏中的大地图的实现——异次元篇