基于最大似然估计(交叉熵)的模型,模型中存在隐变量,则用EM(Expectation maximization algorithm)算法做参数估计。
一、基本原理
算法的原理,强烈推荐直接看《参考资料2》,简明易懂。
无监督的K-means、GMM算法,就属于包含了隐变量的例子。又如:假设有三枚硬币A、B、C,每个硬币正面出现的概率是π、p、qπ、p、q。进行如下的掷硬币实验:先掷硬币A,正面向上选B,反面选C;然后掷选择的硬币,正面记1,反面记0。

简单来说,就是先假定两枚硬币各自正面的概率,推算某个实验结果为A\B各自的概率(E),然后基于此,更新两枚硬币各自正面的概率(M),不断迭代。
二、应用场景
K-means算法可以纳入EM框架去理解,那么对应的收敛性即与EM的收敛性采用相同的方式证明。
求解参数的极大似然估计,由于隐变量的存在或直接对连乘的似然函数求导太复杂,可用EM算法来求解。
EM算法有意思的地方在于,既然由于隐变量的存在,无法计算,索性做个假定,将不完全数据补全成完全数据,解决了鸡生蛋、蛋生鸡的矛盾。在数学上,当无法直接对某个含参式子求极大值时,考虑对它的下界求极大值,当确定下界取极大值的参数时也能让含参式子值变大,也就是不断求解下界的极大值逼近求解对数似然函数极大化(李航.《统计学习方法》)。
三、局限性
收敛性受初始化值的影响,不同初始化值可能会得到完全不同的结论,类似深度学习的初始化问题,可以参阅《参考资料3》,一般采用He initialization或Batch Normalization。
考虑到EM算法会陷入局部最优、不收敛,要设置停止条件。
附,参考资料:
1、再论EM算法的收敛性和K-Means的收敛性,https://blog.csdn.net/u010161630/article/details/52585764
2、如何感性地理解EM算法?https://www.jianshu.com/p/1121509ac1dc
3、【机器学习算法系列之一】EM算法实例分析,https://chenrudan.github.io/blog/2015/12/02/emexample.html
网友评论