博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对多维高斯分布的理解
阅读量:3932 次
发布时间:2019-05-23

本文共 1159 字,大约阅读时间需要 3 分钟。

本文高度参考: 

(1)

如果是一元标准高斯分布,对应的就是前面的表达式,它是高斯分布最简单的形式。

要推导出最右边的看似复杂的表达式,其实也不难。就是不断的在z-score标准化,以及一些线性代数的计算罢了。我们还知道一元一般的高斯分布形式如下,其实可以将上面标准高斯分布对积分变量换元,换到标准高斯分布下就能得到的:

(2)

我们看一下ΣX表示的是随机变量的协方差矩阵,其第i行第j列的元素aij=E((xi-μi)(xj-μj)),也就是说当各个维度的变量不相关的时候,该矩阵将会是对角矩阵,而其逆Σ-1X也将是对角矩阵。由于该表达式指数上 (-1/2(X-μX)TΣ-1X(X-μX)) 是一个二项式,而二项式的矩阵为对角矩阵好展开一些(只含有平方项),我们就从这个各个维度的变量不相关假设开始入手证明。

我们知道当两个变量独立时候,P(x,y)=PxPy。也就是联合概率密度等于边缘概率密度的乘积。我们这里的条件虽然是不相关,但对于高斯分布,只要变量之间不相关就能证明其是独立的,也就能写出其乘积形式:

(3)

而之前我们说了,指数上的那部分是二项式,可以写成矩阵形式:

 

(4)

其中,指数部分省去常数项为公式(5)所示,可以看出Σ矩阵的对角线为各个变量的方差矩阵,而Σ-1为其逆矩阵。

(5)

接下来,我们只需要证明对于变量各维度之间有相关性的情况。同理,我们可以把线性相关的量投影为线性无关。就是坐标系的变换。

(6)

其中U的每一列代表了一个投影方向,这一步操作相当于将原来的X向量从原来的坐标系,变换到新的坐标系下。(类似数据点分布为椭圆可以找到长轴短轴,那就是两个投影方向。相对应的,数据点为三维时,数据分布为椭球,投影方向就为它的三个轴。)

到这一步,Y变量的每一维度就线性无关了。我们可以继续让Y的个维度方差为1。及令Z=DY。其中D为:

(7)

我们知道当高斯分布为(高维或多维)标准高斯分布时,指数上的部分就是欧式距离的平方,我们计算:

(8)

展开得:

(9)

我们知道有:

(10)

我们可以通过协方差矩阵Σx 和Σy的定义得到他们之间的关系:

 

(11)

我们还知道一个条件U矩阵是正交的即UT=U-1。

因而我们可以得到:

(12)

接下来我们只需要证明非指数部分,由于概率密度函数要求积分和为1。前面我们做的相当于把积分变量换元了Z=DUT(X-μ),需要在前面乘以|DUT|,也就是乘以|Σx|-1/2,即证:

(13)

至于为什么积分变量换元,在这就是前面乘以其行列式。我的理解对于多维高斯分布,该矩阵必须满秩,可以理解为对坐标进行投影变换然后再缩放。由于是不定积分,坐标的投影变换并不会影响积分结果,而缩放的系数正好就是行列式的值,这样就好理解前面乘以|Σx|-1/2的原因了。

转载地址:http://myqgn.baihongyu.com/

你可能感兴趣的文章
cuda更新过后, findcuda找不到怎么办?
查看>>
cast shared_ptr to shared_ptr
查看>>
Elastic Job入门示例-实现DataflowJob接口
查看>>
Elastic Job入门示例-Console控制台
查看>>
Elastic Job入门示例-实现原理介绍
查看>>
HTTP状态码对照表
查看>>
Spring Cloud Feign 服务间调用 -超时
查看>>
MySQL 中事务、事务隔离级别详解
查看>>
Telnet 命令在Windows与Linux/Unix下的区别
查看>>
Java传统IO / NIO基础知识
查看>>
Netty3- 入门示例
查看>>
Netty3 - 多连接的客户端示例
查看>>
Netty3 -会话状态监听
查看>>
Netty3 - 对象的序列化与反序列化ProtoBuf
查看>>
Netty3 - 对象的序列化与反序列化 java
查看>>
Netty3 - 自定义序列化协议(1)
查看>>
Netty3 - 自定义序列化协议(2)
查看>>
数据缓存一致性方案
查看>>
分布式锁原理 --及常见实现方式的优劣势分析
查看>>
一:Lua 数据类型及表达示
查看>>