机器学习(七)EM算法

本文介绍EM算法原理及其在高斯混合模型中的应用,包括如何通过EM算法实现参数的最大似然估计,并逐步推导出高斯混合模型中各参数的具体更新公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习(七)EM算法

7.1 EM
已知X为观测变量,Z为隐变量,θθ为模型参数,欲对θθ做极大似然估计

LL(θ|X,Z)=lnP(X,Z|θ)(7.1.1)(7.1.1)LL(θ|X,Z)=lnP(X,Z|θ)

Z为隐变量无法直接求解上式,转为求解:
LL(θ|X)=lnP(X|θ)=lnZP(X,Z|θ)(7.1.2)(7.1.2)LL(θ|X)=lnP(X|θ)=ln∑ZP(X,Z|θ)

原型:
  基于θtθt推测隐变量Z的期望记为ZtZt
  基于已观测变量X和ZtZt对于θθ做极大似然估计,记为θt+1θt+1
  重复上诉步骤直至收敛

E-step:
  基于参数θtθt计算隐变量Z的概率分布P(Z|X,θt)P(Z|X,θt),计算对数似然函数LL(θ|X,Z)LL(θ|X,Z)关于Z的期望:

Q(θ|θt)=EZ|X,θtLL(θ|X,Z)(7.1.3)(7.1.3)Q(θ|θt)=EZ|X,θtLL(θ|X,Z)

M-step,参数最大化:
θt+1=argmaxθQ(θ|θt)(7.1.3)(7.1.3)θt+1=argmaxθ⁡Q(θ|θt)

7.2 高斯混合聚类
多元高斯分布定义:

p(x|μ,Σ)=1(2π)n2|Σ|12e12(xμ)TΣ1(xμ)(7.2.1)(7.2.1)p(x|μ,Σ)=1(2π)n2|Σ|12e−12(x−μ)TΣ−1(x−μ)

多元高斯混合分布:
pM(x)=i=1kαip(x|μi,Σi)(7.2.2)(7.2.2)pM(x)=∑i=1kαip(x|μi,Σi)

假设样本的生成过程如下,首先根据α1,α2...,αkα1,α2...,αk定义的先验分布选择在高斯主成分,其中αiαi为选择第i个主成分的概率,根据被选择概率密度进行采样,生成相应样本
zj{1,2,..k}zj∈{1,2,..k}表示生成样本xjxj的高斯混合主成分,先验概率P(zj=i)=αiP(zj=i)=αi
后验分布:
pM(zj=i|xj)==P(zj=1)pM(xj|zj=i)pM(xj)αip(xj|μi,Σi)kl=1αlp(xj|μl,Σl)(7.2.3)pM(zj=i|xj)=P(zj=1)pM(xj|zj=i)pM(xj)(7.2.3)=αip(xj|μi,Σi)∑l=1kαlp(xj|μl,Σl)

pM(zj=i|xj)pM(zj=i|xj)记为γjiγji
每个样本的xjxj簇标记记为λjλj
λj=argmaxi{1,2,...k}γji(7.2.4)(7.2.4)λj=argmaxi∈{1,2,...k}⁡γji

对数似然:

LL(D)==ln(j=1mpM(xj))j=1Mln(i=1kαip(xj|μi,Σi)(7.2.5)LL(D)=ln(∏j=1mpM(xj))(7.2.5)=∑j=1Mln(∑i=1kαip(xj|μi,Σi)

采用EM算法进行迭代求解:
p(xj|μi,Σi)p(xj|μi,Σi)进行求导:
|X|X=|x|tr(X1dX)∂|X|∂X=|x|tr(X−1dX)

X1X=X1dXX1∂X−1∂X=−X−1dXX−1

p(xj|μi,Σi)μi=p(xj|μi,Σi)Σ1i(xjμi)(7.2.6)(7.2.6)∂p(xj|μi,Σi)∂μi=p(xj|μi,Σi)Σi−1(xj−μi)

dp(xj|μi,Σi)=+=++=+1(2π)n2d1|Σi|12e12(xjμi)TΣ1i(xjμi)1(2π)n2|Σ|12de12(xjμi)TΣ1i(xjμi)|Σ|12(2π)n2|Σ|12|Σi|tr(Σ1idΣi)e12(xjμi)TΣ1i(xjμi)p(xj|μi,Σi)tr(12Σ1i(xjμi)(xjμi)T(xjμi)Σ1idΣi)....12p(xj|μi,Σi)tr(Σ1idΣi)12p(xj|μi,Σi)tr(Σ1i(xjμi)(xjμi)T(xjμi)Σ1idΣi)(7.2.7)dp(xj|μi,Σi)=1(2π)n2d1|Σi|12⋅e−12(xj−μi)TΣi−1(xj−μi)+1(2π)n2|Σ|12de−12(xj−μi)TΣi−1(xj−μi)=−|Σ|−12(2π)n2|Σ|12|Σi|tr(Σi−1dΣi)⋅e−12(xj−μi)TΣi−1(xj−μi)+p(xj|μi,Σi)⋅tr(12Σi−1(xj−μi)(xj−μi)T(xj−μi)Σi−1dΣi)+....=−12p(xj|μi,Σi)tr(Σi−1dΣi)(7.2.7)+12p(xj|μi,Σi)tr(Σi−1(xj−μi)(xj−μi)T(xj−μi)Σi−1dΣi)

p(xj|μi,Σi)Σi=12p(xj|μi,Σi)(Σ1i(xjμi)(xjμi)T(xjμi)Σ1iΣ1i)(7.2.6)(7.2.6)∂p(xj|μi,Σi)∂Σi=12p(xj|μi,Σi)(Σi−1(xj−μi)(xj−μi)T(xj−μi)Σi−1−Σi−1)

令偏导为0可得,

LLμi=j=1mαip(xj|μi,Σi)ki=1αip(xj|μi,ΣiΣ1i(xjμi)=0(7.2.7)(7.2.7)∂LL∂μi=∑j=1mαip(xj|μi,Σi)∑i=1kαip(xj|μi,ΣiΣi−1(xj−μi)=0

μi=mj=1γjixjmj=1γji(7.2.8)(7.2.8)μi=∑j=1mγjixj∑j=1mγji

LLΣi=j=1mαip(xj|μi,Σi)2ki=1αip(xj|μi,Σi(Σ1i(xjμi)(xjμi)T(xjμi)Σ1iΣ1i)=0(7.2.9)(7.2.9)∂LL∂Σi=∑j=1mαip(xj|μi,Σi)2∑i=1kαip(xj|μi,Σi(Σi−1(xj−μi)(xj−μi)T(xj−μi)Σi−1−Σi−1)=0

Σi=mj=1γji(xjμi)(xjμi)Tmj=1γji(7.2.10)(7.2.10)Σi=∑j=1mγji(xj−μi)(xj−μi)T∑j=1mγji

αiαi求导,引入拉个朗日乘子

LL(D)+λ(i=1kαi1)LL(D)+λ(∑i=1kαi−1)

LLLαi=j=1mp(xj|μi,Σi)ki=1αip(xj|μi,Σi)+λ=0(7.2.11)(7.2.11)∂LLL∂αi=∑j=1mp(xj|μi,Σi)∑i=1kαip(xj|μi,Σi)+λ=0

得到:
j=1mγji=λαi(7.2.12)(7.2.12)∑j=1mγji=−λαi

对上式进行累加:
i=1kj=1mγji=λi=1kαi(7.2.13)(7.2.13)∑i=1k∑j=1mγji=−λ∑i=1kαi

可得:
λ=m(7.2.14)(7.2.14)λ=−m

(7.2.14)(7.2.14)带入(7.2.12)(7.2.12),可得:
αi=1mj=1mγji(7.2.15)(7.2.15)αi=1m∑j=1mγji

由上可得EM算法:
  E-step: 对每个样本计算γjiγji
  M-step:利用(7.2.8)(7.2.8)(7.2.10)(7.2.10)(7.2.15)(7.2.15)更新 αiμi,Σiαi,μi,Σi

迭代速度慢,次数多,容易陷入局部最优
当所要优化的函数不是凸函数时,EM算法容易给出局部最佳解,而不是最优解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值