从两个例子理解EM算法

  • Post author:
  • Post category:其他


从两个例子理解EM算法

本文是作者对EM算法学习的笔记,从EM算法出发介绍EM算法,为了更好理解,用两个应用EM算法求解的例子进一步解释EM的应用。


EM算法

EM算法引入

EM算法,指的是最大期望算法(Expectation Maximization Algorithm,期望最大化算法),是一种迭代算法,在统计学中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。基本思想是首先随机取一个值去初始化待估计的参数值,然后不断迭代寻找更优的参数使得其似然函数比原来的似然函数大。

  • EM算法当做最大似然估计的拓展,解决难以给出解析解(模型中存在隐变量)的最大似然估计(MLE)问题
  • 在算法中加入隐变量的思想可以类比为几何题中加入一条辅助线的做法。

假定有训练集{











x










(


1


)









,





x










(


2


)









,


.


.


.





x










(


m


)

















x

(

1

)

,

x

(

2

)

,

.

.

.

x

(

m

)



},包含







m










m



个独立样本,希望从中找到该组数据的模型




p


(


x


,


z


)




的参数。

对数似然函数表达如下:

这里写图片描述

在表达式中因为存在隐变量,直接找到参数估计比较困难,所以我们通过EM算法迭代求解下界的最大值,直到收敛。

我们通过以下的图片来解释这一过程:

这里写图片描述

图片上的紫色部分是我们的目标模型







p


(


x






|




θ




)










p

(

x

|

θ

)



曲线,该模型比较复杂,难以直接求解其解析解,为了消除隐变量







z










z



带来的影响,我们可以得到一个不包含的




z




的模型







r




(


x






|




θ




)










r

(

x

|

θ

)



(该函数是我们自己选定的,因此最大值可求解), 同时满足条件







r




(


x






|




θ




)





p


(


x






|




θ




)










r

(

x

|

θ

)

p

(

x

|

θ

)



  • 我们先取一个










    θ








    1















    θ

    1



    ,使得







    r




    (


    x






    |







    θ








    1







    )


    =


    p


    (


    x






    |







    θ








    1







    )










    r

    (

    x

    |

    θ

    1

    )

    =

    p

    (

    x

    |

    θ

    1

    )



    (如绿线所示),然后再对此时的







    r












    r



    求其最大值,得到极值点





    θ


    2





    ,实现参数的更新。

  • 不断重复以上过程,在更新过程中始终满足







    r







    p










    r

    p



    直到收敛。


从以上过程来看,EM算法的核心就是如何找到这个







r












r



,即




p




的下界函数。

这个下界函数有多种方法理解,我们从Jensen不等式的角度来理解。

这里写图片描述

上述等号成立的条件是












p


(





x










(


i


)









,





z








(


i


)









;


θ




)











Q






i







(





z








(


i


)









)














=


c










p

(

x

(

i

)

,

z

(

i

)

;

θ

)

Q

i

(

z

(

i

)

)

=

c



,

















z










Q






i







(





z








(


i


)









)


=


1










z

Q

i

(

z

(

i

)

)

=

1



,所以:

这里写图片描述

最终框架如下:

这里写图片描述

EM推导高斯混合模型

高斯混合模型GMM

设有随机变量







X












X



, 则高斯混合模型可以用




p


(


x


)


=






K




π


k




N



(


x



|




μ


k



,



Σ


k



)




,其中
















(


x






|







μ






k









,





Σ






k









)










N

(

x

|

μ

k

,

Σ

k

)



表示混合模型中的第







k












k



个分量





π


k





表示混合系数,满足


















k












π








k









=


1











0








π








k












1










k

π

k

=

1

0

π

k

1



我们知道高斯函数的概率分布为







f




(


x




)


=





1











(





















2


π




)


σ
















e


x




p


(









(


x







μ





)






2













2





σ








2



















)










f

(

x

)

=

1

(

2

π

)

σ

e

x

p

(

(

x

μ

)

2

2

σ

2

)



, 在混合高斯分布中待估计变量就包括了







μ


,


σ




,


π












μ

,

σ

,

π



对数似然函数为










l










μ


,


Σ


,


π











=












N










i


=


1









l




o


g


(












K










k




=


1









)





π








k


















(





x








i









|







μ






k









,





Σ






k









)


)










l

μ

,

Σ

,

π

=

i

=

1

N

l

o

g

(

k

=

1

K

)

π

k

N

(

x

i

|

μ

k

,

Σ

k

)

)


EM 推导过程

第一步:估算数据来自于哪个组分,即估计每一个组分生成的概率,对每个样本










x








i















x

i



,它由第







k












k



个组份生成的概率可以记作:




γ


(


i


,


k


)


=





π


k




N



(



x


i




|




μ


k



,



Σ


k



)








j




π


j




N



(



x


i




|




μ


j



,



Σ


j



)





第二步:估计每个组份的参数

E-step: 在给定了样本和每个高斯分布的参数以及组份的分布函数的情况下











w








(


i


)








j









=





Q






i







(





z








(


i


)









=


j




)


=


p


(





z








(


i


)









)


=


j






|







x










(


i


)









;


ϕ


,


μ


,


Σ


)










w

j

(

i

)

=

Q

i

(

z

(

i

)

=

j

)

=

p

(

z

(

i

)

)

=

j

|

x

(

i

)

;

ϕ

,

μ

,

Σ

)


M-step:将多项式分布和高斯分布的参数带入:


















m








i


=


1
























z








(


i


)



















Q






i







(





z








(


i


)









)


l




o


g






p


(





x










(


i


)









,





z








(


i


)









;


ϕ


,


μ


,


Σ


)











Q






i







(





z








(


i


)









)






















i

=

1

m

z

(

i

)

Q

i

(

z

(

i

)

)

l

o

g

p

(

x

(

i

)

,

z

(

i

)

;

ϕ

,

μ

,

Σ

)

Q

i

(

z

(

i

)

)











=












m








i


=


1



















k










j




=


1












Q






i







(





z








(


i


)









=


j




)


l




o


g






p


(





x










(


i


)











|







z








(


i


)









=


j




;


ϕ


,


μ


,


Σ


)


p


(





z








(


i


)









=


j




;


ϕ


)











Q






i







(





z








(


i


)









)






















=

i

=

1

m

j

=

1

k

Q

i

(

z

(

i

)

=

j

)

l

o

g

p

(

x

(

i

)

|

z

(

i

)

=

j

;

ϕ

,

μ

,

Σ

)

p

(

z

(

i

)

=

j

;

ϕ

)

Q

i

(

z

(

i

)

)





















m








i


=


1



















k










j




=


1












w








(


i


)








j









l




o


g









1







(


2


π







)











n






2






















|







Σ






j














|










(





1






2













)





















e


x




p


(








1






2













(





x










(


i


)















μ






j












)






T












Σ











1








j









(





x










(


i


)















μ






j









)


)





ϕ






j

















w








(


i


)








j




























i

=

1

m

j

=

1

k

w

j

(

i

)

l

o

g

1

(

2

π

)

n

2

|

Σ

j

|

(

1

2

)

e

x

p

(

1

2

(

x

(

i

)

μ

j

)

T

Σ

j

1

(

x

(

i

)

μ

j

)

)

ϕ

j

w

j

(

i

)


分别对其中的未知参数求偏导数:

  • 对均值求偏导























    u






    j


























    m








    i


    =


    1



















    k










    j




    =


    1












    w








    (


    i


    )








    j









    l




    o


    g









    1







    (


    2


    π







    )











    n






    2






















    |







    Σ






    j














    |










    (





    1






    2













    )





















    e


    x




    p


    (








    1






    2













    (





    x










    (


    i


    )















    μ






    j












    )






    T












    Σ











    1








    j









    (





    x










    (


    i


    )















    μ






    j









    )


    )





    ϕ






    j

















    w








    (


    i


    )








    j




























    u

    j

    i

    =

    1

    m

    j

    =

    1

    k

    w

    j

    (

    i

    )

    l

    o

    g

    1

    (

    2

    π

    )

    n

    2

    |

    Σ

    j

    |

    (

    1

    2

    )

    e

    x

    p

    (

    1

    2

    (

    x

    (

    i

    )

    μ

    j

    )

    T

    Σ

    j

    1

    (

    x

    (

    i

    )

    μ

    j

    )

    )

    ϕ

    j

    w

    j

    (

    i

    )









=




















u






j


























m








i


=


1



















k










j




=


1












w








(


i


)








j












1






2













(





x










(


i


)















μ






j












)






T












Σ











1








j









(





x










(


i


)















μ






j









)










=

u

j

i

=

1

m

j

=

1

k

w

j

(

i

)

1

2

(

x

(

i

)

μ

j

)

T

Σ

j

1

(

x

(

i

)

μ

j

)











=












m








i


=


1












w








(


i


)








j












Σ











1








j









(





x










(


i


)















μ






j









)


=


0










=

i

=

1

m

w

j

(

i

)

Σ

j

1

(

x

(

i

)

μ

j

)

=

0


可得











μ






j









=
















m








i


=


1












w








(


i


)








j












x










(


i


)

























m








i


=


1












w








(


i


)








j





























μ

j

=

i

=

1

m

w

j

(

i

)

x

(

i

)

i

=

1

m

w

j

(

i

)


  • 对方差求导:























    Σ






    j


























    m








    i


    =


    1



















    k










    j




    =


    1












    w








    (


    i


    )








    j









    l




    o


    g









    1







    (


    2


    π







    )











    n






    2






















    |







    Σ






    j














    |










    (





    1






    2













    )





















    e


    x




    p


    (








    1






    2













    (





    x










    (


    i


    )















    μ






    j












    )






    T












    Σ











    1








    j









    (





    x










    (


    i


    )















    μ






    j









    )


    )





    ϕ






    j

















    w








    (


    i


    )








    j




























    Σ

    j

    i

    =

    1

    m

    j

    =

    1

    k

    w

    j

    (

    i

    )

    l

    o

    g

    1

    (

    2

    π

    )

    n

    2

    |

    Σ

    j

    |

    (

    1

    2

    )

    e

    x

    p

    (

    1

    2

    (

    x

    (

    i

    )

    μ

    j

    )

    T

    Σ

    j

    1

    (

    x

    (

    i

    )

    μ

    j

    )

    )

    ϕ

    j

    w

    j

    (

    i

    )









=

















Σ






j


























m








i


=


1



















k










j




=


1












w








(


i


)








j









(


l




o


g





Σ














1






2


























1






2













(





x










(


i


)















μ






j












)






T












Σ











1








j









(





x










(


i


)















μ






j









)


)










=

Σ

j

i

=

1

m

j

=

1

k

w

j

(

i

)

(

l

o

g

Σ

1

2

1

2

(

x

(

i

)

μ

j

)

T

Σ

j

1

(

x

(

i

)

μ

j

)

)











=












m








i


=


1












w








(


i


)








j












Σ








(





1


)






















m








i


=


1












w








(


i


)








j









(





x










(


i


)















μ






j









)


(





x










(


i


)















μ






j












)






T












Σ








(





2


)









=


0










=

i

=

1

m

w

j

(

i

)

Σ

(

1

)

i

=

1

m

w

j

(

i

)

(

x

(

i

)

μ

j

)

(

x

(

i

)

μ

j

)

T

Σ

(

2

)

=

0




可得











Σ






j









=
















m








i


=


1












w








(


i


)








j









(





x










(


i


)















μ






j









)


(





x










(


i


)















μ






j












)






T

























m








i


=


1












w








(


i


)








j





























Σ

j

=

i

=

1

m

w

j

(

i

)

(

x

(

i

)

μ

j

)

(

x

(

i

)

μ

j

)

T

i

=

1

m

w

j

(

i

)










  • ϕ










    ϕ



    求偏导, 等式约束,用到拉格朗日乘子法, 删除常数项目得到:























    ϕ






    j


























    m








    i


    =


    1



















    k










    j




    =


    1












    w








    (


    i


    )








    j









    l




    o


    g


    (





    ϕ






    j









    )


    +


    β




    (












    k










    j




    =


    1












    ϕ






    j












    1


    )










    ϕ

    j

    i

    =

    1

    m

    j

    =

    1

    k

    w

    j

    (

    i

    )

    l

    o

    g

    (

    ϕ

    j

    )

    +

    β

    (

    j

    =

    1

    k

    ϕ

    j

    1

    )











    =












    m








    i


    =


    1















    w








    (


    i


    )








    j
















    ϕ






    j




















    +


    β




    =


    0










    =

    i

    =

    1

    m

    w

    j

    (

    i

    )

    ϕ

    j

    +

    β

    =

    0














    β




    =












    m








    i


    =


    1



















    k










    j




    =


    1












    w








    (


    i


    )








    j









    =


    m










    β

    =

    i

    =

    1

    m

    j

    =

    1

    k

    w

    j

    (

    i

    )

    =

    m




    可得











    ϕ






    j









    =





    1






    m























    m








    i


    =


    1












    w








    (


    i


    )








    j

















    ϕ

    j

    =

    1

    m

    i

    =

    1

    m

    w

    j

    (

    i

    )



EM推导PLSA模型

详细过程可参考作者的另一篇博客

plsaEM的详细推导



版权声明:本文为ustbfym原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。