通俗理解极大似然估计和EM算法
首先推荐这个知乎文章,讲的挺好的:https://zhuanlan.zhihu.com/p/40991784
----------------------------------------------------------------------------------------------------
本文摘自:通俗易懂讲明白 最大似然和EM算法
----------------------------------------------------------------------------------------------------
最大似然
我们需要找到一个参数θ,其对应的似然函数L(θ) 最大,也就是说抽到这100 个男生(的身高)概率最大。这个叫做 θ 的最大似然估计量,记为:
要求出θ,只需要使θ 的似然函数 L(θ) 极大化,然后极大值对应的θ 就是我们的估计。所以对对数似然函数求导数或偏导然后令其为零就可以了(当然,前提是函数 L(θ) 连续可微)。
总结一下:
求极大似然估计的一般步骤:
EM算法
EM是Expectation Maximization的缩写,在上面这个问题中,我们先随便猜一下男生身高的正态分布参数,如均值是1米7,方差是0.1米(当然了,刚开始肯定没那么准)。然后计算出每个人更可能属于第一个还是第二个正态分布(例如这个人的身高是1米8,那很明显,他最大可能属于男生那个分布)。有了每个人的归属之后,就可以计算得到极大似然函数了。计算得到极大似然函数的这个过程,就是期望值计算过程(Expectation)。对这个极大似然函数求最大值,然后令导数为零,得到新的参数的过程,就是期望最大化的过程(Maximization)。然后,当我们更新了这两个分布的参数的时候,每一个人属于这两个分布的概率又变了,那么我们就需要再次计算E步,然后计算M步......,如此往复,直到参数基本不再发生变化为止。
这个例子中,期望就是男女分布。
再举个例子:
EM算法最初是为了解决数据缺失情况下的参数估计问题,其基本思想是:首先根据己经给出的观测数据,估计出模型参数的值;然后再依据上一步估计出的参数值估计缺失数据的值,再根据估计出的缺失数据加上之前己经观测到的数据重新再对参数值进行估计,然后反复迭代,直至最后收敛,迭代结束。
这里的期望是计算出来的缺失值,而计算缺失值的过程,就是Expectation步。
----------------------------------------------------------------------------------------------------
关于Expectation步和Maximization步,吴军在第二版《数学之美》的第27章中以k-means为例谈到:
----------------------------------------------------------------------------------------------------
Kmeans中的EM算法:
----------------------------------------------------------------------------------------------------
(摘自K-means聚类算法与EM算法)