多元高斯分布(The Multivariate normal distribution)
在数据建模时,经常会用到多元高斯分布模型,下面就这个模型的公式并结合它的几何意义,来做一个直观上的讲解。
1, 标准高斯函数
高斯函数标准型:
$f(x) = \frac{1}{\sqrt{2π}}e^{-\frac{x^2}{2}}$
这个函数描述了变量 x 的一种分布特性,变量x的分布有如下特点:
Ⅰ, 均值 = 0
Ⅱ, 方差为1
Ⅲ, 概率密度和为1
2, 一元高斯函数一般形式
一元高斯函数一般形式:
$f(x) = \frac{1}{\sqrt{2π}σ}e^{-\frac{(x-μ)^2}{2σ^{2}}}$
我们可以令:
$z = \frac{x - μ}{σ}$
称这个过程为标准化, 不难理解,$z ∼ N(0, 1)$,从z -> x的过程如下:
Ⅰ, 将 x 向右移动 μ 个单位
Ⅱ, 将密度函数伸展 σ 倍
而标准化(x -> z)所做的事情就是上述步骤的逆向
唯一不太好理解的是前面 $\frac{1}{\sqrt{2π}σ}$ 中的σ, 为什么这里多了一个 σ, 不是 2σ 或其他?
当然,这里可以拿着概率密度函数的性质,使用微积分进行积分,为了保证最终的积分等于1, 这里必须是 σ
这里我想说一下自己的直观感受:
实线代表的函数是标准高斯函数:
$f(x) = \frac{1}{\sqrt{2π}}e^{-\frac{x^2}{2×2^{2}}}$
虚线代表的是标准高斯函数在 x 轴方向2倍延展,效果如下:
A(x = 1) -> D(x = 2)
E(x = 1.5) -> F(x = 3)
G(x = 2) -> H(x = 4)
横向拓宽了,纵向还是保持不变,可以想象,最后的函数积分肯定不等于1
采用极限的思想,将 x 轴切分成无穷个细小的片段,每个片段可以与函数围城一个区域,因为我的切分足够小,这个区域的面积可以近似采用公式:面积 = 底 × 高 求得:
从 AQRS -> DTUV, 底乘以2倍,高维持不变,所以,要保持变化前后面积不变,函数的高度应该变为原来的 1/2
所以高斯函数在 x 轴方向做2倍延展的同时,纵向应该压缩为原来的一半,才能重新形成新的高斯分布函数
扩展到一般情形,x 轴方向做 σ 倍延拓的同时, y 轴应该压缩 σ 倍(乘以 1/σ)
3, 独立多元正态分布
先假设n个变量 $x = \left[ \begin{matrix} x_{1}, x_{2},\cdots,x_{n}\end{matrix}\right]^\mathrm{T}$ 互不相关,且服从正态分布(维度不相关多元正态分布),各个维度的均值$E(x) = \left[ \begin{matrix} μ_{1}, μ_{2},\cdots,μ_{n}\end{matrix}\right]^\mathrm{T}$, 方差 $σ(x) = \left[ \begin{matrix} σ_{1}, σ_{2},\cdots,σ_{n}\end{matrix}\right]^\mathrm{T}$
根据联合概率密度公式:
$f(x) = p(x_{1},x_{2}....x_{n}) = p(x_{1})p(x_{2})....p(x_{n}) = \frac{1}{(\sqrt{2π})^nσ_{1}σ_{2}\cdotsσ_{n}}e^{-\frac{(x_{1}-μ_{1})^2}{2σ_{1}^2}-\frac{(x_{2}-μ_{2})^2}{2σ_{2}^2}\cdots-\frac{(x_{n}-μ_{n})^2}{2σ_{n}^2}}$
令 $z^{2} = \frac{(x_{1}-μ_{1})^2}{σ_{1}^2}+\frac{(x_{2}-μ_{2})^2}{σ_{2}^2}\cdots+\frac{(x_{n}-μ_{n})^2}{σ_{n}^2}$, $σ_{z}= σ_{1}σ_{2}\cdotsσ_{n}$
这样多元正态分布又可以写成一元那种漂亮的形式了(注意一元与多元的差别):
$f(z) = \frac{1}{(\sqrt{2π})^nσ_{z}}e^{-\frac{z^2}{2}}$
因为多元正态分布有着很强的几何思想,单纯从代数的角度看待z很难看出z的概率分布规律,这里需要转换成矩阵形式:
$z^2 = z^\mathrm{T}z = \left[ \begin{matrix} x_{1} - μ_{1}, x_{2} - μ_{2}, \cdots,x_{n} - μ_{n}\end{matrix}\right] \left[ \begin{matrix} \frac{1}{σ_{1}^2}&0&\cdots&0\\
0&\frac{1}{σ_{2}^2}&\cdots&0\\
\vdots&\cdots&\cdots&\vdots\\
0&0&\cdots&\frac{1}{σ_{n}^2}
\end{matrix}\right]\left[ \begin{matrix} x_{1} - μ_{1}, x_{2} - μ_{2}, \cdots,x_{n} - μ_{n}\end{matrix}\right]^\mathrm{T}$
等式比较长,让我们要做一下变量替换:
$x - μ_{x} = \left[ \begin{matrix} x_{1} - μ_{1}, x_{2} - μ_{2}, \cdots,x_{n} - μ_{n}\end{matrix}\right]^\mathrm{T}$
定义一个符号
$∑_{}^{} = \left[ \begin{matrix} σ_{1}^2&0&\cdots&0\\
0&σ_{2}^2&\cdots&0\\
\vdots&\cdots&\cdots&\vdots\\
0&0&\cdots&σ_{n}^2
\end{matrix}\right]$
$∑_{}^{}$代表变量 X 的协方差矩阵, i行j列的元素值表示$x_{i}$与$x_{j}$的协方差
因为现在变量之间是相互独立的,所以只有对角线上 (i = j)存在元素,其他地方都等于0,且$x_{i}$与它本身的协方差就等于方差
$∑_{}^{}$是一个对角阵,根据对角矩阵的性质,它的逆矩阵:
$( (∑_{}^{})^{-1} = \left[ \begin{matrix} \frac{1}{σ_{1}^2}&0&\cdots&0\\
0&\frac{1}{σ_{2}^2}&\cdots&0\\
\vdots&\cdots&\cdots&\vdots\\
0&0&\cdots&\frac{1}{σ_{n}^2}
\end{matrix}\right]$
对角矩阵的行列式 = 对角元素的乘积
$σ_{z}= \left|∑_{}^{}\right|^\frac{1}{2} =σ_{1}σ_{2}.....σ_{n}$
替换变量之后,等式可以简化为:
$z^\mathrm{T}z = (x - μ_{x})^\mathrm{T} \sum_{}{}^{-1} (x - μ_{x})$
代入以z为自变量的标准高斯分布函数中:
$f(z) = \frac{1}{(\sqrt{2π})^nσ_{z}}e^{-\frac{z^2}{2}} = \frac{1}{(\sqrt{2π})^{n}\left|∑_{}^{}\right|^\frac{1}{2}}e^{-\frac{ (x\ -\ μ_{x})^\mathrm{T}\ (\sum_{}{})^{-1}\ (x\ -\ μ_{x})}{2}}$
注意前面的系数变化:从非标准正态分布->标准正态分布需要将概率密度函数的高度压缩 $|∑_{}^{}|^\frac{1}{2}$倍, 从一维 -> n维的过程中,每增加一维,高度将压缩 $\sqrt{2π}$倍
维度不相关正太分布函数图像类似这样(以二元分布函数为例):
4, 相关多元正态分布
前面也说了,我们讨论多元正态分布的前提是多元变量之间是相互独立的,实际上,有很多应用场合,变量与变量之间是有关联的。以二元正态分布为例:
向输入平面作投影后的平面图:
以现在的坐标系来看,X1,X2是相关的,但是如果我们换一个角度,它们就是互不相关的了:
上述过程被称为去相关性,更专业一点叫做归化
假设新坐标系 $x_{1}' = \left[\begin{matrix}u_{x1}^{0}, u_{x1}^{1}\end{matrix}\right]^T$, $x_{2}' = \left[\begin{matrix}u_{x2}^{0}, u_{x2}^{1}\end{matrix}\right]^T$那么原坐标系上的任意一点 $[x_{1}, x_{2}]^T$ 投影到新坐标系上的结果为:
$\left[\begin{matrix}x_{1}'\\
x_{2}'\end{matrix}\right] = \left[ \begin{matrix} u_{x1}^{0}, u_{x1}^{1}\\
u_{x2}^{0}, u_{x2}^{1} \end{matrix} \right]\left[ \begin{matrix} x_{1}\\
x_{2} \end{matrix} \right]$
为了简单起见,定义矩阵:
$U = \left[ \begin{matrix} u_{x1}^{0}, u_{x2}^{0}\\
u_{x1}^{1}, u_{x2}^{1} \end{matrix} \right]$
U的列空间由新坐标向量组成,坐标映射之后:
$X’ = U^{T}X$
现在我们的自变量X’是相互独立的了,满足维度不相关高斯分布模型,现在我们想套用公式:
$f(z) = \frac{1}{(\sqrt{2π})^nσ_{z}}e^{-\frac{z^2}{2}} = \frac{1}{(\sqrt{2π})^{n}\left|∑_{}^{}\right|^\frac{1}{2}}e^{-\frac{ (x\ -\ μ_{x})^\mathrm{T}\ (\sum_{}{})^{-1}\ (x\ -\ μ_{x})}{2}}$
$x->x'$, 这个很容易,$μ_{x} -> μ(x')$这个也不难, 但是这里还有一个 $∑_{}^{}$是未知的! 按照定义,这里的$∑_{}^{}$应该是X’的协方差,我们已知X,已知映射矩阵,如何求解X’的协方差?
从定义出发:
$μ_{x'} = E[U^TX] = U^TE[x] = U^Tμ_{x}$ $\tag{$1$}$
映射之后的协方差:
$\begin{align*}
σ(X') &= E[(X' - μ_{X'})(X' - μ_{X'})^T]\\
&=E[ (X' - μ_{X'}) (X'^T - μ_{X'}^T) ]\\
&=E[X'X'^T - μ_{X'}X'^T - X'μ_{X'}^T + μ_{X'}μ_{X'}^T]\\
&=E[U^TXX^TU-E[U^TX]X^TU - U^TXE[U^TX]^T + E[U^TX]E[U^TX]^T]\\
&=U^TE[XX^T - E(X)X^T - XE[X]^T + E[X]E[X]^T]U\\
&=U^Tσ(X)U\\
\end{align*}$
坐标映射前后的协方差矩阵满足关系:
$(\sum_{}^{})_{x'} = U^{T}(\sum_{}^{})_{x}U$ $\tag{$2$}$
再进一步观察,U的列向量是单位向量,而且是相互正交的,U是正交矩阵,$U^T = U^{-1}$
$(\sum_{}^{})_{x'} = U^{-1}(\sum_{}^{})_{x}U$
也就是说$(\sum_{}^{})_{x'}$ 是 $(\sum_{}^{})_{x}$的相似矩阵,相似矩阵的行列式相等
$|(\sum_{}^{})_{x'}| = |(\sum_{}^{})_{x}|$ $\tag{$3$}$
并且还有一个重要结论:
$(\sum_{}^{})_{x'}^{-1} = (U^T(\sum_{}^{})_{x}U)^{-1} = (U^{-1}(\sum_{}^{})_{x}U)^{-1}=U^{-1}(\sum_{}^{})_{x}^{-1}U = U^{T}(\sum_{}^{})_{x}^{-1}U$ $\tag{$4$}$
有了上述1、2、3、4四个结论,我们就可以放心套用标准化公式了:
$\begin{align*}
f(z) &= \frac{1}{(\sqrt{2π})^nσ_{z}}e^{-\frac{z^2}{2}} \\
&= \frac{1}{(\sqrt{2π})^{n}\left|(∑_{}^{})'_{x}\right|^\frac{1}{2}}e^{-\frac{ (x'\ -\ μ_{x'})^\mathrm{T}\ (\sum_{}{})_{x'}^{-1}\ (x'\ -\ μ_{x'})}{2}}\\
&=\frac{1}{(\sqrt{2π})^{n}\left|(∑_{}^{})_{x}\right|^\frac{1}{2}}e^{-\frac{ (U^Tx\ -\ U^Tμ_{x})^\mathrm{T}\ U^T (\sum_{}{})_{x}^{-1}\ U (U^Tx\ -\ U^Tμ_{x})}{2}}\\
&=\frac{1}{(\sqrt{2π})^{n}\left|(∑_{}^{})_{x}\right|^\frac{1}{2}}e^{-\frac{ (x\ -\ μ_{x})^\mathrm{T}\ (\sum_{}{})_{x}^{-1}\ (x\ -\ μ_{x})}{2}}
\end{align*}$
总结一下我们做了什么。
Ⅰ, 我们先定义了新的坐标系,通过矩阵 $U^{T}$ 将元素映射到新的坐标系,目的是去相关性
Ⅱ, 在新的坐标下,我们定义了新的期望、协方差、协方差的逆,他们都可以通过 $U$ 与 $U^T$计算出来,当然我们不用计算
Ⅲ, 套用标准公式,将新的期望、协方差的逆、协方差的行列式代入,发现最后的结果与$U$、$U^T$无关
为什么会这样?我的理解是这样:
前提条件:概率模型已经构建
假设空白平面上有一点A, 这个点A是客观存在的,一旦A指定了,那么它的概率大小P(A)就已经确定了
现在我们添加了一个坐标系,添加坐标系的好处只是使得P(A)可以被量化 $P(A) = f(u1, u2)$
同理,使用其他坐标系,可以得到其他坐标系下的另外一种量化 $P(A) = f(v1, v2)$
不管使用哪个坐标系,A点的概率始终是不变的,所以$f(u1, u2) = f(v1, v2)$(感觉这有点像哲学问题哈)。
5, 实例分析
$\sum_{}^{} = \left[ \begin{matrix} 1&0.8\\
0.8&1
\end{matrix} \right]$
这个图形与参数是如何对应的?
可以把那条假象的坐标轴线画出来,转换前后,坐标原点不变,很明显,这是一个旋转变换,假设坐标轴旋转的角度为θ,新的坐标向量矩阵将变为:
$U = \left[ \begin{matrix} cosθ&-sinθ\\
sinθ&cosθ
\end{matrix}\right]$
U的列空间组成了新坐标的坐标系
$U^T = \left[ \begin{matrix} cosθ&sinθ\\
-sinθ&cosθ
\end{matrix}\right]$
新坐标系下变量是不相关的,协方差矩阵为对角阵:
$(\sum_{}^{})_{new} = U^T \sum{} U = \left[ \begin{matrix} cosθ&sinθ\\
-sinθ&cosθ
\end{matrix}\right] \left[ \begin{matrix}
1&0.8\\
0.8&1
\end{matrix} \right] \left[ \begin{matrix} cosθ&-sinθ\\
sinθ&cosθ
\end{matrix}\right] = \left[ \begin{matrix} σ_{1}^2&0\\
0&σ_{2}^2
\end{matrix} \right]$
计算可得: $θ = \frac{π}{4}$
代入计算新的协方差为:
$(\sum_{}^{})_{new} = \left[ \begin{matrix} 1.8&0\\
0&0.2 \end{matrix} \right]$
得出的结论: 新的坐标系是原坐标系经过 $θ = \frac{π}{4}$旋转而来,在新的坐标系下,输入元素将会变得不相关,$x_{1}$方向的方差为1.8,分布比较宽, $x_{2}$方向的方差为0.2,分布比较窄,整体表现为扁平。
同理,不难得出:
$\sum_{}^{} = \left[ \begin{matrix} 1&-0.5\\
-0.5&1
\end{matrix} \right]\qquad\qquad\qquad\qquad\sum_{}^{} = \left[ \begin{matrix} 1&-0.8\\
-0.8&1
\end{matrix} \right]\qquad\qquad\qquad\qquad\sum_{}^{} = \left[ \begin{matrix} 3&0.8\\
0.8&1
\end{matrix} \right]$
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
路漫漫其修远兮,吾将上下而求索
多元高斯分布(The Multivariate normal distribution)的更多相关文章
- Multivariate normal distribution | 多元正态分布
现在终于需要用到了.
- Generalized normal distribution and Skew normal distribution
Density Function The Generalized Gaussian density has the following form: where (rho) is the " ...
- 截断正态分布(Truncated normal distribution)
Truncated normal distribution - Wikipedia Normal Distribution 称为正态分布,也称为高斯分布,Truncated Normal Distri ...
- 正态分布(Normal distribution)又名高斯分布(Gaussian distribution)
正态分布(Normal distribution)又名高斯分布(Gaussian distribution),是一个在数学.物理及project等领域都很重要的概率分布,在统计学的很多方面有着重大的影 ...
- 吴恩达机器学习笔记56-多元高斯分布及其在误差检测中的应用(Multivariate Gaussian Distribution & Anomaly Detection using the Multivariate Gaussian Distribution)
一.多元高斯分布简介 假使我们有两个相关的特征,而且这两个特征的值域范围比较宽,这种情况下,一般的高斯分布模型可能不能很好地识别异常数据.其原因在于,一般的高斯分布模型尝试的是去同时抓住两个特征的偏差 ...
- 基本概率分布Basic Concept of Probability Distributions 8: Normal Distribution
PDF version PDF & CDF The probability density function is $$f(x; \mu, \sigma) = {1\over\sqrt{2\p ...
- 正态分布(normal distribution)与偏态分布(skewed distribution)
存在正太分布的概念,自然也少不了偏态分布. 正态分布(normal distribution) 偏态分布(skewed distribution) 左偏态:left skewed distributi ...
- 多元线性回归(Multivariate Linear Regression)简单应用
警告:本文为小白入门学习笔记 数据集: http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearnin ...
- NDT(Normal Distribution Transform) 算法(与ICP对比)和一些常见配准算法
原文地址:http://ghx0x0.github.io/2014/12/30/NDT-match/ By GH 发表于 12月 30 2014 目前三维配准中用的较多的是ICP迭代算法,需要提供一个 ...
随机推荐
- Day 23 面向对象(二)
一.对象独有的名称空间 在产生对象时就赋初值 class Student: def __init__(self,name,sex): self.name = name self.sex = sex # ...
- 18.13 Uboot分析与移植
18.13.1 使用JLink烧写Nor Flash JLink只支持烧写NOR Flash,不支持烧写Nand Flash. 1.准备工作:JLink的USB口接到电脑上,JLink的JTAG口用排 ...
- 写好的Java代码在命令窗口运行——总结
步骤: 1.快捷键 win+r,在窗口中输入cmd,enter键进入DOS窗口. 2.假设写好的代码的目录为:D:\ACM 在DOS中依次写入:cd d: cd ACM 利用cd切换到代码文件所在的目 ...
- CSS的块级元素和内联元素的概念
三生有幸,偶然之下知道了<CSS世界>这本书,让我产生了探究 CSS 的想法. 这里对 CSS 中的块级元素和内联元素的概念做一个简单的整理. 可能对于我们前端开发人员来讲,一般接触到的元 ...
- ICE框架双工通讯+MVVM框架测试案例
准备 开发工具 VS2015 ICE框架 https://zeroc.com/ MVVMLight框架 ICE接口文件 #include "./Identity.ice" #inc ...
- Linux(CentOS)用户修改密码有效期(chage命令)
Linux设置用户密码的有效期限 解决: 先查看密码过期时间,现在是90天 1 2 3 4 5 6 7 8 [root@01 ~]# chage -l testuser Last password c ...
- 学习笔记——Ubuntu下使用Docker包部署禅道任务管理系统
写此文目的:利用搭建禅道环境联系Docker基本使用方法,加深对Docker容器的理解,Ubuntu下面才能原生运行Docker,因此选择了Ubuntu 1.下载禅道开源版 wget http://d ...
- 自动化接口测试(java)
githup地址:https://github.com/SailFan/autoTestMock 包结构: common包 ExtentTestNGIReporterListener.java 为测试 ...
- (转)Windows下cmd nginx的启动,重启,关闭功能
转自:http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html cls @ECHO OFF SET NGINX_PATH=D:\ ...
- Angular:在应用初始化时运行代码
想象一下,您的应用需要一些动态配置信息,这些信息在应用启动之前需要动态获取,并在应用运行中使用. 显然不能直接写道静态配置文件中,但是从客户端发出的请求又是一个异步请求,如何协调这个问题呢? 这里,我 ...