机器学习(七)EM算法
7.1 EM
已知X为观测变量,Z为隐变量, θ θ 为模型参数,欲对 θ θ 做极大似然估计
LL(θ|X,Z)=lnP(X,Z|θ)(7.1.1) (7.1.1) L L ( θ | X , Z ) = l n P ( X , Z | θ )
Z为隐变量无法直接求解上式,转为求解:
LL(θ|X)=lnP(X|θ)=ln∑ZP(X,Z|θ)(7.1.2) (7.1.2) L L ( θ | X ) = l n P ( X | θ ) = l n ∑ Z P ( X , Z | θ )
原型:
基于
θt θ t 推测隐变量Z的期望记为
Zt Z t
基于已观测变量X和
Zt Z t 对于
θ θ 做极大似然估计,记为
θt+1 θ t + 1
重复上诉步骤直至收敛
E-step:
基于参数 θt θ t 计算隐变量Z的概率分布 P(Z|X,θt) P ( Z | X , θ t ) ,计算对数似然函数 LL(θ|X,Z) L L ( θ | X , Z ) 关于Z的期望:
Q(θ|θt)=EZ|X,θtLL(θ|X,Z)(7.1.3) (7.1.3) Q ( θ | θ t ) = E Z | X , θ t L L ( θ | X , Z )
M-step,参数最大化:
θt+1=argmaxθQ(θ|θt)(7.1.3) (7.1.3) θ t + 1 = a r g m a x θ Q ( θ | θ t )
7.2 高斯混合聚类
多元高斯分布定义:
p(x|μ,Σ)=1(2π)n2|Σ|12e−12(x−μ)TΣ−1(x−μ)(7.2.1) (7.2.1) p ( x | μ , Σ ) = 1 ( 2 π ) n 2 | Σ | 1 2 e − 1 2 ( x − μ ) T Σ − 1 ( x − μ )
多元高斯混合分布:
pM(x)=∑i=1kαip(x|μi,Σi)(7.2.2) (7.2.2) p M ( x ) = ∑ i = 1 k α i p ( x | μ i , Σ i )
假设样本的生成过程如下,首先根据
α1,α2...,αk α 1 , α 2 . . . , α k 定义的先验分布选择在高斯主成分,其中
αi α i 为选择第i个主成分的概率,根据被选择概率密度进行采样,生成相应样本
令
zj∈{1,2,..k} z j ∈ { 1 , 2 , . . k } 表示生成样本
xj x j 的高斯混合主成分,先验概率
P(zj=i)=αi P ( z j = 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) p M ( z j = i | x j ) = P ( z j = 1 ) p M ( x j | z j = i ) p M ( x j ) (7.2.3) = α i p ( x j | μ i , Σ i ) ∑ l = 1 k α l p ( x j | μ l , Σ l )
将
pM(zj=i|xj) p M ( z j = i | x j ) 记为
γji γ j i
每个样本的
xj x j 簇标记记为
λj λ j :
λj=argmaxi∈{1,2,...k}γji(7.2.4) (7.2.4) λ j = a r g m a x i ∈ { 1 , 2 , . . . k } γ j i
对数似然:
LL(D)==ln(∏j=1mpM(xj))∑j=1Mln(∑i=1kαip(xj|μi,Σi)(7.2.5) L L ( D ) = l n ( ∏ j = 1 m p M ( x j ) ) (7.2.5) = ∑ j = 1 M l n ( ∑ i = 1 k α i p ( x j | μ i , Σ i )
采用EM算法进行迭代求解:
对
p(xj|μi,Σi) p ( x j | μ i , Σ i ) 进行求导:
∂|X|∂X=|x|tr(X−1dX) ∂ | X | ∂ X = | x | t r ( X − 1 d X )
∂X−1∂X=−X−1dXX−1 ∂ X − 1 ∂ X = − X − 1 d X X − 1
∂p(xj|μi,Σi)∂μi=p(xj|μi,Σi)Σ−1i(xj−μi)(7.2.6) (7.2.6) ∂ p ( x j | μ i , Σ i ) ∂ μ i = p ( x j | μ i , Σ i ) Σ i − 1 ( x j − μ i )
dp(xj|μi,Σi)=+=++=+1(2π)n2d1|Σi|12⋅e−12(xj−μi)TΣ−1i(xj−μi)1(2π)n2|Σ|12de−12(xj−μi)TΣ−1i(xj−μi)−|Σ|−12(2π)n2|Σ|12|Σi|tr(Σ−1idΣi)⋅e−12(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) d p ( x j | μ i , Σ i ) = 1 ( 2 π ) n 2 d 1 | Σ i | 1 2 ⋅ e − 1 2 ( x j − μ i ) T Σ i − 1 ( x j − μ i ) + 1 ( 2 π ) n 2 | Σ | 1 2 d e − 1 2 ( x j − μ i ) T Σ i − 1 ( x j − μ i ) = − | Σ | − 1 2 ( 2 π ) n 2 | Σ | 1 2 | Σ i | t r ( Σ i − 1 d Σ i ) ⋅ e − 1 2 ( x j − μ i ) T Σ i − 1 ( x j − μ i ) + p ( x j | μ i , Σ i ) ⋅ t r ( 1 2 Σ i − 1 ( x j − μ i ) ( x j − μ i ) T ( x j − μ i ) Σ i − 1 d Σ i ) + . . . . = − 1 2 p ( x j | μ i , Σ i ) t r ( Σ i − 1 d Σ i ) (7.2.7) + 1 2 p ( x j | μ i , Σ i ) t r ( Σ i − 1 ( x j − μ i ) ( x j − μ i ) T ( x j − μ i ) Σ i − 1 d Σ 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 ( x j | μ i , Σ i ) ∂ Σ i = 1 2 p ( x j | μ i , Σ i ) ( Σ i − 1 ( x j − μ i ) ( x j − μ i ) T ( x j − μ 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) ∂ L L ∂ μ i = ∑ j = 1 m α i p ( x j | μ i , Σ i ) ∑ i = 1 k α i p ( x j | μ i , Σ i Σ i − 1 ( x j − μ i ) = 0
μi=∑mj=1γjixj∑mj=1γji(7.2.8) (7.2.8) μ i = ∑ j = 1 m γ j i x j ∑ j = 1 m γ j i
∂LL∂Σi=∑j=1mαip(xj|μi,Σi)2∑ki=1αip(xj|μi,Σi(Σ−1i(xj−μi)(xj−μi)T(xj−μi)Σ−1i−Σ−1i)=0(7.2.9) (7.2.9) ∂ L L ∂ Σ i = ∑ j = 1 m α i p ( x j | μ i , Σ i ) 2 ∑ i = 1 k α i p ( x j | μ i , Σ i ( Σ i − 1 ( x j − μ i ) ( x j − μ i ) T ( x j − μ i ) Σ i − 1 − Σ i − 1 ) = 0
Σi=∑mj=1γji(xj−μi)(xj−μi)T∑mj=1γji(7.2.10) (7.2.10) Σ i = ∑ j = 1 m γ j i ( x j − μ i ) ( x j − μ i ) T ∑ j = 1 m γ j i
对 αi α i 求导,引入拉个朗日乘子
LL(D)+λ(∑i=1kαi−1) L L ( D ) + λ ( ∑ i = 1 k α i − 1 )
∂LLL∂αi=∑j=1mp(xj|μi,Σi)∑ki=1αip(xj|μi,Σi)+λ=0(7.2.11) (7.2.11) ∂ L L L ∂ α i = ∑ j = 1 m p ( x j | μ i , Σ i ) ∑ i = 1 k α i p ( x j | μ i , Σ i ) + λ = 0
得到:
∑j=1mγji=−λαi(7.2.12) (7.2.12) ∑ j = 1 m γ j i = − λ α i
对上式进行累加:
∑i=1k∑j=1mγji=−λ∑i=1kαi(7.2.13) (7.2.13) ∑ i = 1 k ∑ j = 1 m γ j i = − λ ∑ i = 1 k α i
可得:
λ=−m(7.2.14) (7.2.14) λ = − m
将
(7.2.14) ( 7.2.14 ) 带入
(7.2.12) ( 7.2.12 ) ,可得:
αi=1m∑j=1mγji(7.2.15) (7.2.15) α i = 1 m ∑ j = 1 m γ j i
由上可得EM算法:
E-step: 对每个样本计算 γji γ j i
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算法容易给出局部最佳解,而不是最优解。