高斯分布与高斯过程

一元高斯分布

我们从最简单最常见的一元高斯分布开始,其概率密度函数为:

p ( x ) = 1 σ 2 π e x p ( − ( x − μ ) 2 2 σ 2 ) p(x)=\frac{1}{\sigma\sqrt{2\pi}}exp(-\frac{(x-\mu)^2}{2\sigma^2}) p(x)=σ2π 1exp(2σ2(xμ)2)

其中 μ \mu μ σ \sigma σ分别表示均值和方差,这个概率密度函数曲线画出来就是我们熟悉的钟形曲线,均值和方差唯一地决定了曲线的形状。

多元高斯分布

从一元高斯分布推广到多元高斯分布,假设各维度之间相互独立

$p(x_1,x_2,\cdots,x_n)=\prod\limits_{i=1}^np(x_i)\
=\frac{1}{(2\pi)\frac{n}{2}}exp(-\frac{1}{2}[\frac{(x_1-\mu_1)2}{\sigma_12}+\frac{(x_2-\mu_2)2}{\sigma_22}+\cdots+\frac{(x_n-\mu_n)2}{\sigma_n^2}])
$

其中 μ 1 , m u 2 , ⋯ , μ 3 \mu_1,mu_2,\cdots,\mu_3 μ1,mu2,,μ3 σ 1 , σ 2 , ⋯ , σ 3 \sigma_1,\sigma_2,\cdots,\sigma_3 σ1,σ2,,σ3分别是第一维,第二维到第n维的均值和方差,对上式向量和举证表示,令

x − μ = [ x 1 − μ 1 , x 2 − μ 2 , ⋯ , x n − μ n ] T x-\mu=[x_1-\mu_1,x_2-\mu_2,\cdots,x_n-\mu_n]^T xμ=[x1μ1,x2μ2,,xnμn]T

K = [ σ 1 2 0 ⋯ 0 0 σ 2 2 ⋯ 0 ⋮ ⋮ ⋱ 0 0 0 0 σ n 2 ] K=\begin{bmatrix} \sigma_1^2&0&\cdots&0\\ 0&\sigma_2^2&\cdots&0\\ \vdots&\vdots&\ddots&0\\ 0&0&0&\sigma_n^2 \end{bmatrix} K= σ12000σ2200000σn2

σ 1 σ 2 ⋯ σ n = ∣ K ∣ 1 2 \sigma_1\sigma_2\cdots\sigma_n=\mid{K}\mid{^\frac{1}{2}} σ1σ2σn=∣K21

( x 1 − μ 1 ) 2 σ 1 2 + ( x 2 − μ 2 ) 2 σ 2 2 + ⋯ + ( x n − μ n ) 2 σ n 2 = ( x − μ ) T K − 1 ( x − μ ) \frac{(x_1-\mu_1)^2}{\sigma_1^2}+\frac{(x_2-\mu_2)^2}{\sigma_2^2}+\cdots+\frac{(x_n-\mu_n)^2}{\sigma_n^2}= (x-\mu)^TK^{-1}(x-\mu) σ12(x1μ1)2+σ22(x2μ2)2++σn2(xnμn)2=(xμ)TK1(xμ)

代入得到

p ( x ) = ( 2 π ) n − 2 ∣ K ∣ 1 − 2 e x p ( 1 − 2 ( x − μ ) T K − 1 ( x − μ ) ) p(x)=(2\pi)^{\frac{n}{-2}}\mid{K}\mid^{\frac{1}{-2}}exp(\frac{1}{-2}(x-\mu)^TK^{-1}(x-\mu)) p(x)=(2π)2nK21exp(21(xμ)TK1(xμ))

其中 μ ∈ R n \mu\in\mathbb{R}^n μRn是均值向量, K ∈ R n × n K\in\mathbb{R^{n\times{n}}} KRn×n为协方差矩阵,由于我们假设了各维度直接相互独立,因此 K K K是一个对角矩阵。在各维度变量相关时,上式的形式仍然一致,但此时协方差矩阵 不再是对角矩阵,只具备半正定和对称的性质。上式通常也简写为

x ∼ N ( μ , K ) x\sim{\mathcal{N}(\mu,K)} xN(μ,K)

无限元高斯分布

在多元高斯分布的基础上考虑进一步扩展,假设有无限多维呢?用一个例子来展示这个扩展的过程

假设我们在周一到周四每天的 7:00 测试了 4 次心率,如下图中 4 个点,可能的高斯分布如图所示(高瘦的那条)。这是一个一元高斯分布,只有每天 7: 00 的心率这个维度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在考虑不仅在每天的 7: 00 测心率(横轴),在 8:00 时也进行测量(纵轴),这个时候变成两个维度(二元高斯分布),如下图所示

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

更进一步,如果我们在每天的无数个时间点都进行测量,则变成了下图的情况。注意下图中把测量时间作为横轴,则每个颜色的一条线代表一个(无限个时间点的测量)无限维的采样。当对每次对无限维进行采样得到无限多个点时,其实可以理解为我们采样得到了一个函数。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当从函数的视角去看待采样,理解了每次采样无限维相当于采样一个函数之后,原本的概率密度函数不再是点的分布 ,而变成了函数的分布。这个无限元高斯分布即称为高斯过程。高斯过程正式地定义为:对于所有 x = [ x 1 , x 2 , ⋯ , x n ] x=[x_1,x_2,\cdots,x_n] x=[x1,x2,,xn] , f ( x ) = [ f ( x 1 ) , f ( x 2 ) , ⋯ , f ( x n ) ] f(x)=[f(x_1),f(x_2),\cdots,f(x_n)] f(x)=[f(x1),f(x2),,f(xn)] 都服从多元高斯分布,则称 f f f是一个高斯过程,表示为

f ( x ) ∼ N ( μ ( x ) , κ ( x , x ) ) f(x)\sim\mathcal{N}(\mu(x),\kappa(x,x)) f(x)N(μ(x),κ(x,x))

这里 μ ( x ) : R → R n × R n \mu(x):\mathbb{R}\rightarrow \mathbb{R}^n\times{\mathbb{R}^n} μ(x):RRn×Rn表示均值函数(Mean function),返回各个维度的均值; κ ( x , x ) : R n × R n → R n × n \kappa(x,x):\mathbb{R}^n\times\mathbb{R}^n\rightarrow\mathbb{R}^{n\times{n}} κ(x,x):Rn×RnRn×n为协方差函数 Covariance Function(也叫核函数 Kernel Function)返回两个向量各个维度之间的协方差矩阵。一个高斯过程为一个均值函数和协方差函数唯一地定义,并且一个高斯过程的有限维度的子集都服从一个多元高斯分布(为了方便理解,可以想象二元高斯分布两个维度各自都服从一个高斯分布)。

核函数(协方差函数)

核函数是一个高斯过程的核心,核函数决定了一个高斯过程的性质。核函数在高斯过程中起生成一个协方差矩阵(相关系数矩阵)来衡量任意两个点之间的“距离”。不同的核函数有不同的衡量方法,得到的高斯过程的性质也不一样。最常用的一个核函数为高斯核函数,也成为径向基函数 RBF。其基本形式如下。其中 σ \sigma σ l l l是高斯核的超参数。

K ( x i , x j ) = σ 2 e x p ( − ∥ x i − x j ∥ 2 2 l 2 ) K(x_i,x_j)=\sigma^2exp(-\frac{\parallel{x_i-x_j}\parallel_2^2}{l^2}) K(xi,xj)=σ2exp(l2xixj22)

高斯过程可视化

下图是高斯过程的可视化,其中蓝线是高斯过程的均值,浅蓝色区域 95% 置信区间(由协方差矩阵的对角线得到),每条虚线代表一个函数采样(这里用了 100 维模拟连续无限维)。左上角第一幅图是高斯过程的先验(这里用了零均值作为先验),后面几幅图展示了当观测到新的数据点的时候,高斯过程如何更新自身的均值函数和协方差函数。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来我们用公式推导上图的过程。将高斯过程的先验表示为 f ( x ) ∼ N ( μ ( f ) , K f f ) f(x)\sim\mathcal{N}(\mu(f),K_{ff}) f(x)N(μ(f),Kff) ,对应左上角第一幅图,如果现在我们观测到一些数据 ( x ∗ , y ∗ ) (x^*,y^*) (x,y),并且假设 y ∗ y^* y f ( x ) f(x) f(x)服从联合高斯分布

[ f ( x ) y ∗ ] ∼ N ( [ μ f μ y ] , [ K f f K f y K f y T K y y ] ) \begin{bmatrix} f(x)\\ y^* \end{bmatrix} \sim\mathcal{N} \begin{pmatrix} \begin{bmatrix} \mu_f\\\mu_y \end{bmatrix} ,\begin{bmatrix} K_{ff}&K_{fy}\\K_{fy}^T&K_{yy} \end{bmatrix} \end{pmatrix} [f(x)y]N([μfμy],[KffKfyTKfyKyy])

其中 K f f = κ ( x , x ) , K f y = κ ( x , x ∗ ) , K y y = κ ( x ∗ , x ∗ ) K_{ff}=\kappa(x,x),K_{fy}=\kappa(x,x^*),K_{yy}=\kappa(x^*,x^*) Kff=κ(x,x),Kfy=κ(x,x),Kyy=κ(x,x),则有 f ∼ N ( K f y T K f f − 1 y + μ f , K y y − K f y T K f f − 1 K f y ) f\sim\mathcal{N}(K_{fy}^TK_{ff}^{-1}y+\mu_f,K_{yy}-K_{fy}^TK_{ff}^{-1}K_{fy}) fN(KfyTKff1y+μf,KyyKfyTKff1Kfy)

上述式子表明了给定数据 ( x ∗ , y ∗ ) (x^*,y^*) (x,y)之后函数的分布 f f f仍然是一个高斯过程,具体的推导可见 Gaussian Processes for Machine Learning。这个式子可以看出一些有趣的性质,均值 实际上是观测点 的一个线性函数,协方差项 的第一部分是我们的先验的协方差,减掉的后面的那一项实际上表示了观测到数据后函数分布不确定性的减少,如果第二项非常接近于 0,说明观测数据后我们的不确定性几乎不变,反之如果第二项非常大,则说明不确定性降低了很多。

上式其实就是高斯过程回归的基本公式,首先有一个高斯过程先验分布,观测到一些数据(机器学习中的训练数据),基于先验和一定的假设(联合高斯分布)计算得到高斯过程后验分布的均值和协方差。

简单高斯过程回归实现

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

红点是训练数据,蓝线是预测值,浅蓝色区域是 95% 置信区间。真实的函数是一个 cosine 函数,可以看到在训练数据点较为密集的地方,模型预测的不确定性较低,而在训练数据点比较稀疏的区域,模型预测不确定性较高。

超参数优化

上文提到高斯过程是一种非参数模型,没有训练模型参数的过程,一旦核函数、训练数据给定,则模型就被唯一地确定下来。但是核函数本身是有参数的,比如高斯核的参数 σ \sigma σ l l l ,我们称为这种参数为模型的超参数(类似于 k-NN 模型中 k 的取值)。

核函数本质上决定了样本点相似性的度量方法,进行影响到了整个函数的概率分布的形状。上面的高斯过程回归的例子中使用了 σ = 0.2 , l = 0.5 \sigma=0.2,l=0.5 σ=0.2,l=0.5 的超参数,我们可以选取不同的超参数看看回归出来的效果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从上图可以看出, l l l越大函数更加平滑,同时训练数据点之间的预测方差更小,反之 l l l越小则函数倾向于更加“曲折”,训练数据点之间的预测方差更大; σ \sigma σ 则直接控制方差大小, σ \sigma σ 越大方差越大,反之亦然。

如何选择最优的核函数参数呢?答案是最大化在这两个超参数下 y y y 出现的概率,通过最大化边缘对数似然(Marginal Log-likelihood)来找到最优的参数,边缘对数似然表示为

l o g p ( y ∣ σ , l ) = l o g N ( 0 , K y y ( σ , l ) ) logp(y|\sigma,l)=log\mathcal{N}(0,K_{yy}(\sigma,l)) logp(yσ,l)=logN(0,Kyy(σ,l))

将训练、优化得到的超参数、预测结果可视化如下图,可以看到最优的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/167257.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大数据】Kafka 实战教程(一)

Kafka 实战教程(一) 1.Kafka 介绍1.1. 主要功能1.2. 使用场景1.3 详细介绍1.3.1 消息传输流程1.3.2 Kafka 服务器消息存储策略1.3.3 与生产者的交互1.3.4 与消费者的交互 2.Kafka 生产者3.Kafka 消费者3.1 Kafka 消费模式3.1.1 At-most-once(…

FPGA设计FIR滤波器低通滤波器,代码及视频

名称:FIR滤波器低通滤波器 软件:Quartus 语言:Verilog/VHDL 本资源含有verilog及VHDL两种语言设计的工程,每个工程均可实现以下FIR滤波器的功能。 代码功能: 设计一个8阶FIR滤波器(低通滤波器&#xff…

【试题040】多个逻辑或例题2

1.题目:设int n0;,执行表达式n ||(n-1) ||(n0)||(n1)||(n2)后n的值是 ? 2.代码解析: 逻辑或 || 运算符是一个短路运算符,它从左到右依次计算表达式,如果遇到一个为真(非零)的值&am…

SequenceFile、元数据操作与MapReduce单词计数

文章目录 SequenceFile、元数据操作与MapReduce单词计数一、实验目标二、实验要求三、实验内容四、实验步骤附:系列文章 SequenceFile、元数据操作与MapReduce单词计数 一、实验目标 熟练掌握hadoop操作指令及HDFS命令行接口掌握HDFS SequenceFile读写操作掌握Map…

2021年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python编程(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 下列代码的输出结果是?( ) x 0x10print(x)A:2 B:8 C&#xff…

数据结构:二叉树(2)

二叉树的基本操作 获取树的结点总数 遍历思路: 每次遍历一个节点,遍历完nodeSize,然后遍历它的左右子树 如果遍历到空的节点,就返回0 public int nodeSize 0;int size(TreeNode root){if(root null){return 0;}nodeSize;siz…

LeetCode讲解篇之77. 组合

文章目录 题目描述题解思路题解代码 题目描述 题解思路 遍历nums,让当前数字添加到结果前缀中,递归调用,直到前缀的长度为k,然后将前缀添加到结果集 题解代码 func combine(n int, k int) [][]int {var nums make([]int, n)fo…

【MATLAB源码-第51期】基于matlab的粒子群算法(PSO)的栅格地图路径规划。

操作环境: MATLAB 2022a 1、算法描述 粒子群算法(Particle Swarm Optimization,简称PSO)是一种模拟鸟群觅食行为的启发式优化方法。以下是其详细描述: 基本思想: 鸟群在寻找食物时,每只鸟都会…

arrow(c++)改写empyrical系列1---用arrow读取基金净值数据并计算夏普率

用arrow c版本读取了csv中的基金净值数据,然后计算了夏普率,比较尴尬的是,arrow c版本计算耗费的时间却比python的empyrical版本耗费时间多。。。 arrow新手上路,第一次自己去实现功能,实现的大概率并不是最高效的方…

windows上下载github上的linux内核项目遇到的问题

问题一:clone的时候报错 Cloning into G:\github\linux... POST git-upload-pack (gzip 27925 to 14032 bytes) remote: Counting objects: 6012062, done. remote: Compressing objects: 100% (1031/1031), done. remote: Total 6012062 (delta 893), reused 342 (…

【Axure高保真原型】可视化图表图标

今天和粉丝们免费分享可视化图表图标原型模板,包括柱状图、条形图、环形图、散点图、水波图等常用的可视化图表图标。 【原型效果】 【原型预览】 https://axhub.im/ax9/d402c647c82f9185/#c1 【原型下载】 这个模板可以在 Axure高保真原型哦 小程序里免费下载哦…

0基础学习VR全景平台篇第110篇:源图像导入和镜头预设 - PTGui Pro教程

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 本节教程,我们讲述拼接软件 PTGui Pro 操作的第一步:导入源图像和预设镜头&画幅参数。 我们此次课堂有两个重点: 第一点是 培养摄影后期…

HTTPS、SSL/TLS,HTTPS运行过程,RSA加密算法,AES加密算法

1、为什么网站要使用安全证书 我们所处的网络环境是复杂多样的,大致分为两类,一类是可信的网络服务商,比如直接连的电信运营商的网络,网线,4G,5G;另一类是不可信的网络,比如WIFI&am…

会声会影2024有哪些新功能?好不好用

比如会声会影视频编辑软件,既加入光影、动态特效的滤镜效果,也提供了与色彩调整相关的LUT配置文件滤镜,可选择性大,运用起来更显灵活。会声会影在用户的陪伴下走过20余载,经过上百个版本的优化迭代,已将操作…

ubuntu20.04 nvidia显卡驱动掉了,变成开源驱动,在软件与更新里选择专有驱动,下载出错,调整ubuntu镜像源之后成功修复

驱动配置好,环境隔了一段时间,打开Ubuntu发现装好的驱动又掉了,软件与更新 那里,附加驱动,显示开源驱动,命令行输入 nvidia-smi 命令查找不到驱动。 点击上面的 nvidia-driver-470(专有&#x…

Maven 生命周期clean default size含义

clean 负责清理工作,清理上一次项目构建产生的一些文件,如编译后的字节码文件,打包后的jar包文件 default 整一个项目构建的核心工作,如编译,测试,打包,安装,部署等等 size 生成报告…

【Mysql】B+树索引的使用(七)

前言 每个索引都对应一棵 B 树, B 树分为多层,最下边一层是叶子节点,其余的是内节点(非叶子节点)。所有用户记录都存储在 B 树的叶子节点,所有目录项记录都存储在内节点。 InnoDB 存储引擎会自动为主键&am…

实现Linux下Word转PDF、Java调用命令方式

使用 LibreOffice 实现 Word 转 PDF 和 Java 调用命令 1、 安装 LibreOffice 外网安装 # 一键安装 yum install -y libreoffice # 验证版本 libreoffice --version # Warning: -version is deprecated. Use --version instead. # LibreOffice 7.5.6.2 f654817fb68d6d4600d7…

数据仓库扫盲系列(1):数据仓库诞生原因、基本特点、和数据库的区别

数据仓库的诞生原因 随着互联网的普及,信息技术已经深入到各行各业,并逐步融入到企业的日常运营中。然而,当前企业在信息化建设过程中遇到了一些困境与挑战。 1、历史数据积存。 过去企业的业务系统往往是在较长时间内建设的,很…

MODBUS-TCP转MODBUS-RTU通信应用(S7-1200和串口服务器通信)

在学习本博客之前,大家需要熟悉MODBUS-TCP和MODBUS-RTU通信,这2个通信的编程应用,大家可以查看下面文章链接: MODBUS-RTU通信 MODBUS-RTU通信协议功能码+数据帧解读(博途PLC梯形图代码)-CSDN博客MODBUS通信详细代码编写,请查看下面相关链接,这篇博客主要和大家介绍MODB…