EM算法是基于ML算法也就是最大似然估计算法演化而来的。
其核心解决的点在于非完整的数据使得无法使用ML算法,于是需要解决缺失的数据(隐变量)带来的问题。
实际上对于非完整数据不是无法构建CPT(条件概率表),而是残缺概率表使得计算最大似然函数变得困难:

其中,V是可见的数据节点的集合。PS:条件概率表不知道的朋友可以先自行学习
于是从数学上构想了一种辅助函数(auxiliary function)求极值的可能性,使得可以随机的启动,单调的拟合出极值方法。
此时,随机的启动指的是获取一个随机的CPT(条件概率表),而每一次操作指的是更新CPT(条件概率表),对于通俗的EM步骤来说,E步骤获得的是旧CPT的隐变量后验概率,M步骤是通过这些后验概率算出是的辅助函数值最大的新CPT,直至收敛。最终获得的是使得原最大似然函数值最大的条件概率表。
这是包含所有EM算法的直觉解释。
举个通俗的例子,在其他介绍EM算法的文章里都有使用,一个人掷硬币,有两枚不均匀硬币,随机选择一枚掷五次作为一个循环,一共掷五个循环,求两枚硬币的正面朝上的概率。
其中,两个硬币朝上的概率就是CPT(条件概率表),五轮每轮使用的是哪枚就是隐变量。
此外,对于EM算法硬优化会通过比较隐变量后验概率后固定隐变量的可能,会如同上文中提到的例子中,如果某一轮是B硬币的概率高过A硬币,则在下一次优化中将这一轮视为B硬币掷出的。
相反的,EM算法软优化则不会对于隐变量进行赋值,反而是将两种不同的概率作为权值在后一轮优化中进行加权平均。
----
聚类算法作为EM算法的一种的系统解释,
对于聚类算法中的条件概率表就是每一个变量的属于各个聚类中心的可能性,而聚类算法中的隐变量则是各个聚类中心。
----
理论推导,比较复杂,其实就是构造辅助函数和辅助函数求极值。下次有空更新~
















