高斯分布|机器学习推导系列
Posted ccqun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高斯分布|机器学习推导系列相关的知识,希望对你有一定的参考价值。
一、概述
假设有以下数据:
[X=(x_{1},x_{1},cdots ,x_{N})^{T}=egin{pmatrix} x_{1}^{T}\ x_{2}^{T}\ vdots \ x_{N}^{T} end{pmatrix}_{N imes p}其中x_{i}in mathbb{R}^{p}且x_{i}overset{iid}{sim }N(mu ,Sigma )则参数 heta =(mu ,Sigma )]
二、通过极大似然估计高斯分布的均值和方差
- 极大似然
[ heta_{MLE}=underset{ heta }{argmax}P(X| heta ) ]
- 高斯分布
[一维高斯分布p(x)=frac{1}{sqrt{2pi }sigma }exp(-frac{(x-mu )^{2}}{2sigma ^{2}})多维高斯分布p(x)=frac{1}{(2pi )^{D/2}|Sigma |^{1/2}}exp(-frac{1}{2}(x-mu)^{T}Sigma ^{-1}(x-mu))]
- 一维高斯分布下的估计
- 关于( heta)的似然函数
[logP(X| heta )=logprod_{i=1}^{N}p(x_{i}| heta )=sum_{i=1}^{N}logfrac{1}{sqrt{2pi }sigma }exp(-frac{(x_{i}-mu )^{2}}{2sigma ^{2}})=sum_{i=1}^{N}[logfrac{1}{sqrt{2pi }}+logfrac{1}{sigma }-frac{(x_{i}-mu )^{2}}{2sigma ^{2}}]]
- 通过极大似然估计法求解(mu _{MLE})
[mu _{MLE}=underset{mu }{argmax}logP(X| heta)=underset{mu }{argmax}sum_{i=1}^{N}-frac{(x_{i}-mu )^{2}}{2sigma ^{2}}=underset{mu }{argmin}sum_{i=1}^{N}(x_{i}-mu )^{2}对mu求导frac{partial sum_{i=1}^{N}(x_{i}-mu )^{2}}{partial mu}=sum_{i=1}^{N}2(x_{i}-mu )(-1)=0\Leftrightarrow sum_{i=1}^{N}(x_{i}-mu )=0\Leftrightarrow sum_{i=1}^{N}x_{i}-underset{Nmu }{underbrace{sum_{i=1}^{N}mu }}=0解得mu _{MLE}=frac{1}{N}sum_{i=1}^{N}x_{i} ]
- 证明(mu _{MLE})是无偏估计
[E[mu _{MLE}]=frac{1}{N}sum_{i=1}^{N}E[x_{i}] =frac{1}{N}sum_{i=1}^{N}mu =frac{1}{N}Nmu =mu ]
- 通过极大似然估计法求解(sigma _{MLE})
[sigma _{MLE}^{2}=underset{sigma }{argmax}P(X| heta )=underset{sigma }{argmax}underset{L}{underbrace{sum_{i=1}^{N}(-logsigma -frac{(x_{i}-mu )^{2}}{2sigma ^{2}})}}\frac{partial L}{partial sigma}=sum_{i=1}^{N}[-frac{1}{sigma }+(x_{i}-mu )^{2}sigma ^{-3}]\Leftrightarrow sum_{i=1}^{N}[-sigma ^{2}+(x_{i}-mu )^{2}]=0\Leftrightarrow -sum_{i=1}^{N}sigma ^{2}+sum_{i=1}^{N}(x_{i}-mu )^{2}=0\sigma _{MLE}^{2}=frac{1}{N}sum_{i=1}^{N}(x_{i}-mu )^{2}\mu取mu_{MLE}时,sigma _{MLE}^{2}=frac{1}{N}sum_{i=1}^{N}(x_{i}-mu _{MLE})^{2}]
- 证明(sigma _{MLE}^{2})是有偏估计
要证明(sigma _{MLE}^{2})是有偏估计就需要判断(E[sigma _{MLE}^{2}]overset{?}{=}sigma ^{2}),证明如下:
[{color{Blue}{Var[mu _{MLE}]}}=Var[frac{1}{N}sum_{i=1}^{N}x_{i}]=frac{1}{N^{2}}sum_{i=1}^{N}Var[x_{i}]=frac{1}{N^{2}}sum_{i=1}^{N}sigma ^{2}=frac{sigma ^{2}}{N}{color{Red}{sigma _{MLE}^{2}}}=frac{1}{N}sum_{i=1}^{N}(x_{i}-mu _{MLE})^{2}=frac{1}{N}sum_{i=1}^{N}(x_{i}^{2}-2x_{i}mu _{MLE}+mu _{MLE}^{2})^{2}=frac{1}{N}sum_{i=1}^{N}x_{i}^{2}-frac{1}{N}sum_{i=1}^{N}2x_{i}mu _{MLE}+frac{1}{N}sum_{i=1}^{N}mu _{MLE}^{2}=frac{1}{N}sum_{i=1}^{N}x_{i}^{2}-2mu _{MLE}^{2}+mu _{MLE}^{2}=frac{1}{N}sum_{i=1}^{N}x_{i}^{2}-mu _{MLE}^{2}E[{color{Red}{sigma _{MLE}^{2}}}]=E[frac{1}{N}sum_{i=1}^{N}x_{i}^{2}-mu _{MLE}^{2}]=E[(frac{1}{N}sum_{i=1}^{N}x_{i}^{2}-mu ^{2})-(mu _{MLE}^{2}-mu ^{2})]=E[frac{1}{N}sum_{i=1}^{N}(x_{i}^{2}-mu ^{2})]-E[mu _{MLE}^{2}-mu ^{2}]=frac{1}{N}sum_{i=1}^{N}E[x_{i}^{2}-mu ^{2}]-(E[mu _{MLE}^{2}]-E[mu ^{2}])=frac{1}{N}sum_{i=1}^{N}(E[x_{i}^{2}]-mu ^{2})-(E[mu _{MLE}^{2}]-mu ^{2})=frac{1}{N}sum_{i=1}^{N}(Var[x_{i}]+E[x_{i}]^{2}-mu ^{2})-(E[mu _{MLE}^{2}]-mu_{MLE} ^{2})=frac{1}{N}sum_{i=1}^{N}(Var[x_{i}]+mu ^{2}-mu ^{2})-(E[mu _{MLE}^{2}]-E[mu_{MLE}] ^{2})=frac{1}{N}sum_{i=1}^{N}Var[x_{i}]-{color{Blue}{Var[mu _{MLE}]}}=sigma ^{2}-frac{1}{N}sigma ^{2}=frac{N-1}{N}sigma ^{2} ]
可以理解为当(mu)取(mu_{MLE})就已经确定了所有(x_{i})的和等于(Nmu_{MLE}),也就是说当(N-1)个(x_{i})确定以后,第(N)个(x_{i})也就被确定了,所以少了一个“自由度”,因此(E[{sigma _{MLE}^{2}}]=frac{N-1}{N}sigma ^{2})。
方差的无偏估计:
[hat{sigma} ^{2}=frac{1}{N-1}sum_{i=1}^{N}(x_{i}-mu _{MLE})^{2} ]
三、为什么高斯分布的等高线是个“椭圆”
- 高斯分布与马氏距离
- 多维高斯分布
[xoverset{iid}{sim }N(mu ,Sigma )=frac{1}{(2pi )^{D/2}|Sigma |^{1/2}}exp(-frac{1}{2}underset{二次型}{underbrace{(x-mu)^{T}Sigma ^{-1}(x-mu)}})xin mathbb{R}^{p},r.v.x=egin{pmatrix} x_{1}\ x_{2}\ vdots \ x_{p} end{pmatrix}mu =egin{pmatrix} mu_{1}\ mu_{2}\ vdots \ mu_{p} end{pmatrix}Sigma = egin{bmatrix} sigma _{11}& sigma _{12}& cdots & sigma _{1p}\sigma _{21}& sigma _{22}& cdots & sigma _{2p}\vdots & vdots & ddots & vdots \sigma _{p1}& sigma _{p2}& cdots & sigma _{pp} end{bmatrix}_{p imes p}\Sigma一般是半正定的,在本次证明中假设是正定的,即所有的特征值都是正的,没有0。]
- 马氏距离
[sqrt{(x-mu)^{T}Sigma ^{-1}(x-mu)}为马氏距离(x与mu之间,当Sigma为I时马氏距离即为欧氏距离。 ]
- 证明高斯分布等高线为椭圆
- 协方差矩阵的特征值分解
任意的(N imes N)实对称矩阵都有(N)个线性无关的特征向量。并且这些特征向量都可以正交单位化而得到一组正交且模为 1 的向量。故实对称矩阵(Sigma)可被分解成(Sigma=ULambda U^{T})。
[将Sigma进行特征分解,Sigma=ULambda U^{T}其中UU^{T}=U^{T}U=I,underset{i=1,2,cdots ,p}{Lambda =diag(lambda _{i})},U=(u _{1},u _{2},cdots ,u _{p})_{p imes p}因此Sigma=ULambda U^{T}=egin{pmatrix} u _{1} & u _{2} & cdots & u _{p} end{pmatrix}egin{bmatrix} lambda _{1} & 0 & cdots & 0 & lambda _{2} & cdots & 0 \vdots & vdots & ddots & vdots & 0 & cdots & lambda _{p} end{bmatrix}egin{pmatrix} u_{1}^{T}\ u_{2}^{T}\ vdots \ u_{p}^{T} end{pmatrix}=egin{pmatrix} u _{1}lambda _{1} & u _{2}lambda _{2} & cdots & u _{p}lambda _{p} end{pmatrix}egin{pmatrix} u_{1}^{T}\ u_{2}^{T}\ vdots \ u_{p}^{T} end{pmatrix}=sum_{i=1}^{p}u_{i}lambda _{i}u_{i}^{T}\Sigma ^{-1}=(ULambda U^{T})^{-1}=(U^{T})^{-1}Lambda ^{-1}U^{-1}=U{Lambda^{-1}}U^{T}=sum_{i=1}^{p}u_{i}frac{1}{lambda _{i}}u _{i}^{T},其中Lambda^{-1}=diag(frac{1}{lambda _{i}}),i=1,2,cdots ,p]
- 将概率密度整理成椭圆方程的形式
[Delta =(x-mu )^{T}Sigma ^{-1}(x-mu )=(x-mu )^{T}sum_{i=1}^{p}u _{i}frac{1}{lambda _{i}}u _{i}^{T}(x-mu )=sum_{i=1}^{p}(x-mu )^{T}u _{i}frac{1}{lambda _{i}}u _{i}^{T}(x-mu )(令y_{i}=(x-mu )^{T}u _{i})=sum_{i=1}^{p}y_{i}frac{1}{lambda _{i}}y_{i}^{T}=sum_{i=1}^{p}frac{y_{i}^{2}}{lambda _{i}}]
上式中(y_{i}=(x-mu )^{T}u _{i})可以理解为将(x)减去均值进行中心化以后再投影到(u _{i})方向上,相当于做了一次坐标轴变换。
当(x)的维度为2即(p=2)时(Delta =frac{y_{1}^{2}}{lambda _{1}}+frac{y_{2}^{2}}{lambda _{2}}),得到类似椭圆方程的等式,所以也就可以解释为什么其等高线是椭圆形状。二维高斯分布的图像如下所示:
四、高斯分布的局限性
- 参数过多
协方差矩阵(Sigma _{p imes p})中的参数共有(1+2+cdots +p=frac{p(p+1)}{2})个((Sigma _{p imes p})是对称矩阵),因此当(x)的维度(p)很大时,高斯分布的参数就会有很多,其计算复杂度为(O(p^{2}))。
可以通过假设高斯分布的协方差矩阵为对角矩阵来减少参数,当高斯分布的协方差矩阵为对角矩阵时,特征向量的方向就会和原坐标轴的方向平行,因此高斯分布的等高线(同心椭圆)就不会倾斜。
另外如果在高斯分布的协方差矩阵为对角矩阵为对角矩阵的基础上使得其特征值全部相等(即(lambda _{1}=lambda _{2}=cdots=lambda _{i})),则高斯分布的等高线就会成为一个圆形,而且不会倾斜,称为各向同性。
- 单个高斯分布拟合能力有限
解决方案是使用多个高斯分布,比如高斯混合模型。
五、求高斯分布的边缘概率与条件概率
- 概述
首先将变量、均值和方差进行划分:
[x=egin{pmatrix} x_{a}\ x_{b} end{pmatrix},其中x_{a}是m维的,x_{b}是n维的。\mu =egin{pmatrix} mu_{a}\ mu_{b} end{pmatrix}Sigma =egin{pmatrix} Sigma _{aa}&Sigma _{ab}\ Sigma _{ba}&Sigma _{bb} end{pmatrix}]
本部分旨在根据上述已知来求(P(x_{a}),P(x_{b}|x_{a}),P(x_{b}),P(x_{a}|x_{b}))。
- 定理
以下定义为推导过程中主要用到的定理,这里只展示定理的内容,不进行证明:
[已知xsim N(mu ,Sigma ),xin mathbb{R}^{p}y=Ax+B,yin mathbb{R}^{q}结论:ysim N(Amu +B,ASigma A^{T})]
一个简单但不严谨的证明:
[E[y]=E[Ax+B]=AE[x]+B=Amu +BVar[y]=Var[Ax+B]=Var[Ax]+Var[B]=AVar[x]A^{T}+0=ASigma A^{T}]
- 求边缘概率(P(x_{a}))
[x_{a}=underset{A}{underbrace{egin{pmatrix} I_{m} & 0_{n} end{pmatrix}}}underset{x}{underbrace{egin{pmatrix} x_{a}\ x_{b} end{pmatrix}}}E[x_{a}]=egin{pmatrix} I_{m} & 0_{n} end{pmatrix}egin{pmatrix} mu _{a}\ mu _{b} end{pmatrix}=mu _{a}Var[x_{a}]=egin{pmatrix} I_{m} & 0_{n} end{pmatrix}egin{pmatrix} Sigma _{aa}&Sigma _{ab}\ Sigma _{ba}&Sigma _{bb} end{pmatrix}egin{pmatrix} I_{m}\ 0_{n} end{pmatrix}=egin{pmatrix} Sigma _{aa}&Sigma _{ab} end{pmatrix}egin{pmatrix} I_{m}\ 0_{n} end{pmatrix}=Sigma _{aa}]
所以(x_{a}sim N(mu _{a},Sigma _{aa})),同理(x_{b}sim N(mu _{b},Sigma _{bb}))。
- 求条件概率(P(x_{b}|x_{a}))
[构造left{egin{matrix} x_{bcdot a}=x_{b}-Sigma _{ba}Sigma _{aa}^{-1}x_{a}\ mu _{bcdot a}=mu_{b}-Sigma _{ba}Sigma _{aa}^{-1}mu_{a}\ Sigma _{bbcdot a}=Sigma _{bb}-Sigma _{ba}Sigma _{aa}^{-1}Sigma _{ab} end{matrix} ight.(Sigma _{bbcdot a}是Sigma _{aa}的舒尔补)x_{bcdot a}=underset{A}{underbrace{egin{pmatrix} Sigma _{ba}Sigma _{aa}^{-1}& I_{n} end{pmatrix}}}underset{x}{underbrace{egin{pmatrix} x_{a}\ x_{b} end{pmatrix}}}E[x_{bcdot a}]=egin{pmatrix} -Sigma _{ba}Sigma _{aa}^{-1}& I_{n} end{pmatrix}egin{pmatrix} mu _{a}\ mu _{b} end{pmatrix}=mu_{b}-Sigma _{ba}Sigma _{aa}^{-1}mu_{a}=mu _{bcdot a}Var[x_{bcdot a}]=egin{pmatrix} -Sigma _{ba}Sigma _{aa}^{-1}& I_{n} end{pmatrix}egin{pmatrix} Sigma _{aa}&Sigma _{ab}\ Sigma _{ba}&Sigma _{bb} end{pmatrix}egin{pmatrix} -Sigma _{aa}^{-1}Sigma _{ba}^{T}\ I_{n} end{pmatrix}=egin{pmatrix} -Sigma _{ba}Sigma _{aa}^{-1}Sigma _{aa}+Sigma _{ba}& -Sigma _{ba}Sigma _{aa}^{-1}Sigma _{ab}+Sigma _{bb} end{pmatrix}=egin{pmatrix} 0& -Sigma _{ba}Sigma _{aa}^{-1}Sigma _{ab}+Sigma _{bb} end{pmatrix}egin{pmatrix} -Sigma _{aa}^{-1}Sigma _{ba}^{T}\ I_{n} end{pmatrix}=Sigma _{bb}-Sigma _{ba}Sigma _{aa}^{-1}Sigma _{ab}=Sigma _{bbcdot a}\]
现在可以得到(x_{bcdot a}sim N(mu _{bcdot a},Sigma _{bbcdot a}))。根据(x_{b})与(x_{bcdot a})的关系可以得到(x_{b}|x_{a})的分布:
[x_{b}=underset{x}{underbrace{x_{bcdot a}}}+underset{B}{underbrace{Sigma _{ba}Sigma _{aa}^{-1}x_{a}}}(在求条件概率P(x_{b}|x_{a})时x_{a}对于x_{b}来说可以看做已知,因此上式中Sigma _{ba}Sigma _{aa}^{-1}x_{a}看做常量B)E[x_{b}|x_{a}]=mu _{bcdot a}+Sigma _{ba}Sigma _{aa}^{-1}x_{a}Var[x_{b}|x_{a}]=Var[x_{bcdot a}]=Sigma _{bbcdot a}]
因此可以得到(x_{b}|x_{a}sim N(mu _{bcdot a}+Sigma _{ba}Sigma _{aa}^{-1}x_{a},Sigma _{bbcdot a})),同理可以得到(x_{a}|x_{b}sim N(mu _{acdot b}+Sigma _{ab}Sigma _{bb}^{-1}x_{b},Sigma _{aacdot b}))。
六、求高斯分布的联合概率分布
- 概述
[p(x)=N(x|mu ,Lambda ^{-1})p(y|x)=N(y|Ax+b ,L ^{-1})\Lambda和L是精度矩阵(precision,matrix), precision,matrix=(covariance,matrix)^{T}。]
本部分旨在根据上述已知来求(p(y),p(x|y))。
- 求解(p(y))
由上述已知可以确定(y)与(x)的关系为线性高斯模型,则(y)与(x)符合下述关系:
[y=Ax+b+varepsilon ,varepsilonsim N(0,L ^{-1}) ]
然后求解y的均值和方差:
[E[y]=E[Ax+b+varepsilon]=E[Ax+b]+E[varepsilon]=Amu+bVar[y]=Var[Ax+b+varepsilon]=Var[Ax+b]+Var[varepsilon]=ALambda ^{-1}A^{T}+L ^{-1}则可以得出ysim N(Amu+b,L ^{-1}+ALambda ^{-1}A^{T})]
- 求解(p(x|y))
求解(p(x|y))需要首先求解(x)与(y)的联合分布,然后根据上一部分的公式直接得到(p(x|y))。
[构造z=egin{pmatrix} x\ y end{pmatrix}sim Nleft ( egin{bmatrix} mu \ Amu+b end{bmatrix} , egin{bmatrix} Lambda ^{-1} & Delta \ Delta ^{T} & L ^{-1}+ALambda ^{-1}A^{T} end{bmatrix} ight )现在需要求解Delta\Delta=Cov(x,y)=E[(x-E[x])(y-E[y])^{T}]=E[(x-mu )(y-Amu-b)^{T}]=E[(x-mu )(Ax+b+varepsilon-Amu-b)^{T}]=E[(x-mu )(Ax-Amu+varepsilon)^{T}]=E[(x-mu )(Ax-Amu)^{T}+(x-mu)varepsilon^{T}]=E[(x-mu )(Ax-Amu)^{T}]+E[(x-mu)varepsilon^{T}](因为xperp varepsilon,所以(x-mu)perp varepsilon,所以E[(x-mu)varepsilon^{T}]=E[(x-mu)]E[varepsilon^{T}])=E[(x-mu )(Ax-Amu)^{T}]+E[(x-mu)]E[varepsilon^{T}]=E[(x-mu )(Ax-Amu)^{T}]+E[(x-mu)]cdot 0=E[(x-mu )(Ax-Amu)^{T}]=E[(x-mu )(x-mu )^{T}A^{T}]=E[(x-mu )(x-mu )^{T}]A^{T}=Var[x]A^{T}=Lambda ^{-1}A^{T}由此可得z=egin{pmatrix} x\ y end{pmatrix}sim Nleft ( egin{bmatrix} mu \ Amu+b end{bmatrix} , egin{bmatrix} Lambda ^{-1} & Lambda ^{-1}A^{T} \ ALambda ^{-1} & L ^{-1}+ALambda ^{-1}A^{T} end{bmatrix} ight )套用上一部分的公式可以得到x|ysim N(mu _{xcdot y}+Lambda ^{-1}A^{T} (L ^{-1}+ALambda ^{-1}A^{T})^{-1}y,Sigma _{xxcdot y})]
公众号同步更新
以上是关于高斯分布|机器学习推导系列的主要内容,如果未能解决你的问题,请参考以下文章
Hulu机器学习问题与解答系列 | 十四:如何对高斯分布进行采样
Spark2.0机器学习系列之8: 聚类分析(K-Means,Bisecting K-Means,LDA,高斯混合模型)