机器学习——线性高斯模型

高斯作为机器学习中的常客也是无法避免的,而线性模型作为比较简单的模型,两者结合出的线性高斯模型,在今后的机器学习中大量涉及到这方面的知识。例如在各种滤波中,高斯滤波,卡曼滤波,粒子滤波。

一维情况 MLE: Maximum Likelihood Estimation

高斯分布在机器学习中占有举足轻重的作用。在 MLE 方法中:

θ=(μ,Σ)=(μ,σ2),xii.i.dp(x|θ),θMLE=argmaxθlogp(X|θ)=i.i.dargmaxθi=1Nlogp(xi|θ)

一般地,高斯分布的概率密度函数 PDF(Probability Density Function)写为:

p(x|μ,Σ)=1(2π)p/2|Σ|1/2e12(xμ)TΣ1(xμ)

带入 MLE 中我们考虑一维的情况

logp(X|θ)=i=1Nlogp(xi|θ)=i=1Nlog12πσexp((xiμ)22σ2)

首先对 μ 的极值可以得到 :

μMLE=argmaxμlogp(X|θ)=argmaxμi=1N(xiμ)2

于是:

μi=1N(xiμ)2=0μMLE=1Ni=1Nxi

其次对 θ 中的另一个参数 σ ,有:

σMLE=argmaxσlogp(X|θ)=argmaxσi=1N[logσ12σ2(xiμ)2](1)=argminσi=1N[logσ+12σ2(xiμ)2]

于是:

σi=1N[logσ+12σ2(xiμ)2]=0σMLE2=1Ni=1N(xiμ)2

值得注意的是,上面的推导中,首先对 μ 求 MLE, 然后利用这个结果求 σMLE ,因此可以预期的是对数据集D求期望时 ED[μMLE]无偏差的:

ED[μMLE]=ED[1Ni=1Nxi]=1Ni=1NED[xi]=μ

但是当对 σMLE 求 期望的时候由于使用了单个数据集的 μMLE,因此对所有数据集求期望的时候我们会发现 σMLE有偏的:

ED[σMLE2]=ED[1Ni=1N(xiμMLE)2]=ED[1Ni=1N(xi22xiμMLE+μMLE2)=ED[1Ni=1Nxi2μMLE2]=ED[1Ni=1Nxi2μ2+μ2μMLE2]=ED[1Ni=1Nxi2μ2]ED[μMLE2μ2]=σ2(ED[μMLE2]μ2)=σ2(ED[μMLE2]ED2[μMLE])=σ2Var[μMLE](2)=σ2Var[1Ni=1Nxi]=σ21N2i=1NVar[xi]=N1Nσ2

所以:

σ^2=1N1i=1N(xiμ)2

多维情况MLE

多维高斯分布表达式为:

p(x|μ,Σ)=1(2π)p/2|Σ|1/2e12(xμ)TΣ1(xμ)

其中 x,μRp,ΣRp×p ,$\mu ,\Sigma$ 为协方差矩阵,一般而言也是半正定矩阵。这里我们只考虑正定矩阵,以方便计算。

什么是正定?
ARn×n,AT=A时,对任意x0,xRn,都有xTAx>0

什么是半正定?

​ 当ARn×n,AT=A时,对任意x0,xRn,都有xTAx0

常用的正定判定有

1. $\lambda(A)\gt0$
2. 各阶主子式均大于0

首先我们处理指数上的数字,指数上的数字可以记为 xμ 之间的马氏距离。对于对称的协方差矩阵可进行特征值分解,

Σ=UΛUT=(u1,u2,,up)diag(λi)(u1,u2,,up)T=i=1puiλiuiT

,于是:

Σ1=(UΛUT)1=UΛ1UT=i=1pui1λiuiT

(3)Δ=(xμ)TΣ1(xμ)(4)=i=1p(xμ)Tui1λiuiT(xμ)(5)=i=1p[(xu)Tui]2λi=i=1pyi2λi

我们注意到 yixμ 在特征向量 ui 上的投影长度,相当于是坐标轴的平移与旋转。因此上式子就是 Δ 取不同值时的同心椭圆。

image

下面我们看多维高斯模型在实际应用时的两个问题

  1. 参数 Σ,μ 的自由度为 O(p2) 对于维度很高的数据其自由度太高。解决方案:高自由度的来源是 Σp(p+1)2 个自由参数,可以假设其是对角矩阵,甚至在各向同性假设中假设其对角线上的元素都相同。前一种的算法有 Factor Analysis,后一种有概率 PCA: Principal Component Analysis(p-PCA) 。

    i,j1p,ij,λi=λj,Σ为对角矩阵,可判定各特征各自同性

  2. 第二个问题是单个高斯分布是单峰的,对有多个峰的数据分布不能得到好的结果。解决方案:高斯混合模型 GMM。

下面对多维高斯分布的常用定理进行介绍。

我们记 x=(x1,x2,,xp)T=(xa,m×1,xb,n×1)T,μ=(μa,m×1,μb,n×1)T,Σ=(ΣaaΣabΣbaΣbb),已知 xN(μ,Σ)

首先是一个高斯分布的定理:`

定理:已知 xN(μ,Σ),yAx+b,那么 yN(Aμ+b,AΣAT)

证明:E[y]=E[Ax+b]=AE[x]+b=Aμ+bVar[y]=Var[Ax+b]=Var[Ax]=AVar[x]AT

下面利用这个定理得到 p(xa),p(xb),p(xa|xb),p(xb|xa) 这四个量。

  1. xa=(Im×mOm×n))(xaxb),代入定理中得到:

    E[xa]=(IO)(μaμb)=μaVar[xa]=(IO)(ΣaaΣabΣbaΣbb)(IO)=Σaa

    所以 xaN(μa,Σaa)

  2. 同样的,xbN(μb,Σbb)

  3. 对于两个条件概率,我们引入三个量:

    xba=xbΣbaΣaa1xaμba=μbΣbaΣaa1μaΣbba=ΣbbΣbaΣaa1Σab

    特别的,最后一个式子叫做 Σbb 的 Schur Complementary。可以看到:

    xba=(ΣbaΣaa1In×n)(xaxb)

    所以:

    E[xba]=(ΣbaΣaa1In×n)(μaμb)=μbaVar[xba]=(ΣbaΣaa1In×n)(ΣaaΣabΣbaΣbb)(Σaa1ΣbaTIn×n)=Σbba

    利用这三个量可以得到 xb=xba+ΣbaΣaa1xa。因此:

    E[xb|xa]=μba+ΣbaΣaa1xa

    Var[xb|xa]=Σbba

    这里同样用到了定理。

  4. 同样:

    xab=xaΣabΣbb1xbμab=μaΣabΣbb1μbΣaab=ΣaaΣabΣbb1Σba

    所以:

    E[xa|xb]=μab+ΣabΣbb1xb

    Var[xa|xb]=Σaab

下面利用上边四个量,求解线性模型:

已知:p(x)=N(μ,Λ1),p(y|x)=N(Ax+b,L1),求解:p(y),p(x|y)

解:令 y=Ax+b+ϵ,ϵN(0,L1),所以 E[y]=E[Ax+b+ϵ]=Aμ+bVar[y]=AΛ1AT+L1,因此:

p(y)=N(Aμ+b,L1+AΛ1AT)

引入 z=(xy),我们可以得到 Cov[x,y]=E[(xE[x])(yE[y])T]。对于这个协方差可以直接计算:

(6)Cov(x,y)=E[(xμ)(AxAμ+ϵ)T](7)=E[(xμ)(xμ)TAT](8)=Var[x]AT=Λ1AT

注意到协方差矩阵的对称性,所以 p(z)=N(μAμ+b),(Λ1Λ1ATAΛ1L1+AΛ1AT)。根据之前的公式,我们可以得到:

E[x|y]=μ+Λ1AT(L1+AΛ1AT)1(yAμb)

Var[x|y]=Λ1Λ1AT(L1+AΛ1AT)1AΛ1

这里的Λ1是精度矩阵,L1是协方差矩阵。

PrecisionMatrix=CovarianceMatrix1

这里补充一些小知识

  1. 一般情况下,两个随机变量x,y独立不相关,不相关不一定独立
  2. x,yN(μ,Σ),不相关等价于独立
posted @   Christopher·阳  阅读(3362)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示
主题色彩