高斯分布在机器学习中占有举足轻重的作用。在 MLE 方法中:
θ=(μ,Σ)=(μ,σ2),θMLE=θargmaxlogp(X∣θ)iid=θargmaxi=1∑Nlogp(xi∣θ)
一般地,高斯分布的概率密度函数PDF写为:
p(x∣μ,Σ)=(2π)p/2∣Σ∣1/21e−21(x−μ)TΣ−1(x−μ)
带入 MLE 中我们考虑一维的情况
logp(X∣θ)=i=1∑Nlogp(xi∣θ)=i=1∑Nlog2πσ1exp(−(xi−μ)2/2σ2)
首先对 μ 的极值可以得到 :
μMLE=μargmaxlogp(X∣θ)=μargmaxi=1∑N(xi−μ)2
于是:
∂μ∂i=1∑N(xi−μ)2=0⟶μMLE=N1i=1∑Nxi
其次对 θ 中的另一个参数 σ ,有:
σMLE=σargmaxlogp(X∣θ)=σargmaxi=1∑N[−logσ−2σ21(xi−μ)2]=σargmini=1∑N[logσ+2σ21(xi−μ)2]
于是:
∂σ∂i=1∑N[logσ+2σ21(xi−μ)2]=0⟶σMLE2=N1i=1∑N(xi−μ)2
值得注意的是,上面的推导中,首先对 μ 求 MLE, 然后利用这个结果求 σMLE ,因此可以预期的是对数据集求期望时 ED[μMLE] 是无偏差的:
ED[μMLE]=ED[N1i=1∑Nxi]=N1i=1∑NED[xi]=μ
但是当对 σMLE 求 期望的时候由于使用了单个数据集的 μMLE,因此对所有数据集求期望的时候我们会发现 σMLE 是 有偏的:
ED[σMLE2]=ED[N1i=1∑N(xi−μMLE)2]=ED[N1i=1∑N(xi2−2xiμMLE+μMLE2)=ED[N1i=1∑Nxi2−μMLE2]=ED[N1i=1∑Nxi2−μ2+μ2−μMLE2]=ED[N1i=1∑Nxi2−μ2]−ED[μMLE2−μ2]=σ2−(ED[μMLE2]−μ2)=σ2−(ED[μMLE2]−ED2[μMLE])=σ2−Var[μMLE]=σ2−Var[N1i=1∑Nxi]=σ2−N21i=1∑NVar[xi]=NN−1σ2
所以:
σ^2=N−11i=1∑N(xi−μ)2
多维高斯分布表达式为:
p(x∣μ,Σ)=(2π)p/2∣Σ∣1/21e−21(x−μ)TΣ−1(x−μ)
其中 x,μ∈Rp,Σ∈Rp×p ,Σ 为协方差矩阵,一般而言也是半正定矩阵。这里我们只考虑正定矩阵。首先我们处理指数上的数字,指数上的数字可以记为 x 和 μ 之间的马氏距离。对于对称的协方差矩阵可进行特征值分解,Σ=UΛUT=(u1,u2,⋯,up)diag(λi)(u1,u2,⋯,up)T=i=1∑puiλiuiT ,于是:
Σ−1=i=1∑puiλi1uiT
Δ=(x−μ)TΣ−1(x−μ)=i=1∑p(x−μ)Tuiλi1uiT(x−μ)=i=1∑pλiyi2
我们注意到 yi 是 x−μ 在特征向量 ui 上的投影长度,因此上式子就是 Δ 取不同值时的同心椭圆。
下面我们看多维高斯模型在实际应用时的两个问题
-
参数 Σ,μ 的自由度为 O(p2) 对于维度很高的数据其自由度太高。解决方案:高自由度的来源是 Σ 有 2p(p+1) 个自由参数,可以假设其是对角矩阵,甚至在各向同性假设中假设其对角线上的元素都相同。前一种的算法有 Factor Analysis,后一种有概率 PCA(p-PCA) 。
-
第二个问题是单个高斯分布是单峰的,对有多个峰的数据分布不能得到好的结果。解决方案:高斯混合GMM 模型。
下面对多维高斯分布的常用定理进行介绍。
我们记 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∼N(μ,Σ),y∼Ax+b,那么 y∼N(Aμ+b,AΣAT)。
证明:E[y]=E[Ax+b]=AE[x]+b=Aμ+b,Var[y]=Var[Ax+b]=Var[Ax]=A⋅Var[x]⋅AT。
下面利用这个定理得到 p(xa),p(xb),p(xa∣xb),p(xb∣xa) 这四个量。
-
xa=(Im×mOm×n))(xaxb),代入定理中得到:
E[xa]=(IO)(μaμb)=μaVar[xa]=(IO)(ΣaaΣbaΣabΣbb)(IO)=Σaa
所以 xa∼N(μa,Σaa)。
-
同样的,xb∼N(μb,Σbb)。
-
对于两个条件概率,我们引入三个量:
xb⋅a=xb−ΣbaΣaa−1xaμb⋅a=μb−ΣbaΣaa−1μaΣbb⋅a=Σbb−ΣbaΣaa−1Σab
特别的,最后一个式子叫做 Σbb 的 Schur Complementary。可以看到:
xb⋅a=(−ΣbaΣaa−1In×n)(xaxb)
所以:
E[xb⋅a]=(−ΣbaΣaa−1In×n)(μaμb)=μb⋅aVar[xb⋅a]=(−ΣbaΣaa−1In×n)(ΣaaΣbaΣabΣbb)(−Σaa−1ΣbaTIn×n)=Σbb⋅a
利用这三个量可以得到 xb=xb⋅a+ΣbaΣaa−1xa。因此:
E[xb∣xa]=μb⋅a+ΣbaΣaa−1xa
Var[xb∣xa]=Σbb⋅a
这里同样用到了定理。
-
同样:
xa⋅b=xa−ΣabΣbb−1xbμa⋅b=μa−ΣabΣbb−1μbΣaa⋅b=Σaa−ΣabΣbb−1Σba
所以:
E[xa∣xb]=μa⋅b+ΣabΣbb−1xb
Var[xa∣xb]=Σaa⋅b
下面利用上边四个量,求解线性模型:
已知:p(x)=N(μ,Λ−1),p(y∣x)=N(Ax+b,L−1),求解:p(y),p(x∣y)。
解:令 y=Ax+b+ϵ,ϵ∼N(0,L−1),所以 E[y]=E[Ax+b+ϵ]=Aμ+b,Var[y]=AΛ−1AT+L−1,因此:
>p(y)=N(Aμ+b,L−1+AΛ−1AT)>
引入 z=(xy),我们可以得到 Cov[x,y]=E[(x−E[x])(y−E[y])T]。对于这个协方差可以直接计算:
>>Cov(x,y)=E[(x−μ)(Ax−Aμ+ϵ)T]=E[(x−μ)(x−μ)TAT]=Var[x]AT=Λ−1AT>>
注意到协方差矩阵的对称性,所以 p(z)=N(μAμ+b),(Λ−1AΛ−1Λ−1ATL−1+AΛ−1AT))。根据之前的公式,我们可以得到:
>E[x∣y]=μ+Λ−1AT(L−1+AΛ−1AT)−1(y−Aμ−b)>
>Var[x∣y]=Λ−1−Λ−1AT(L−1+AΛ−1AT)−1AΛ−1>