EM算法作为非监督学习的一种特有优化算法,可以解决最大似然问题当中隐变量不可观测而难以优化的问题。下面我们对EM算法做一下总结。
1. 引子--高斯混合模型(GMM)
假设我们有m个数据 需要聚类(这些数据的类别
未知)。我们尝试给数据建立概率模型, 数据服从联合概率分布:
。这里
服从多项式分布,而
服从多元高斯分布。也即有
和
。我们假设数据可能有 k 个分类,如此,我们可以这样理解该模型:首选以多项式概率分布随机从 1...k 中选出 z,之后x基于z服从k个多元高斯分布中的一个。以上模型,我们把它叫做高斯混合模型(the Mixture of Gaussian model)。
概率模型建立好之后,之后最大似然概率模型的建立就比较简单了。现在我们有未知参数 , 最大似然概率可以写成如下格式:
注意公式的第二行,不同于监督学习的最大似然公式中概率为条件概率,这里由于z是隐变量观测不到的,我们只使用p(x)。如果将多元高斯以及多项式分布公式代入上式,我们可以发现对上式求导并使导数为0,是很难求得参数变量的(求导可以,但让其等于0再解方程是比较困难的)。另外为什么工程上不使用梯度下降法,这点我并没有取查证,应该也不会是方便的途径。
2. EM算法
现实当中的例子还有很多是具有隐变量的,往往也有最大似然函数不易求导或者不易算出解析解。那么是否有一个妥当的方法可以解决这个优化问题呢?
我们考虑更为宽泛的应用场景,依然有m个数据 需要聚类,z是不可观测数据,模型参数为
,最大似然概率为:
在这种情况下,显式地求解该优化问题可能有困难,但是我们可以使用另外一种策略:重复求取的下界的极大值来慢慢逼近
的极大值,而该下界求极值相对来说是易于实现的。
首先我们来确定的下界,假设z服从于某个分布Q:
。
上式中,可以看作是关于
的随机变量
,而
是
的概率分布,依据期望的定义,
可看作
。
由Jensen不等式,我们知道对于凹函数f以及随机变量X有:,所以有
这样,下界就找到了;但是我们希望下界尽可能地接近原函数,最好是紧的,也就是当Yi是常量(Jensen不等式等号成立)的时候。再因,我们可以设
这样,当Q(z)等于上述式子的时候,一个紧的下界就找到了(当然,p(z|x)不一定容易求取,所以可以借助使用变分推断等方法),而上式就是EM算法里的 E-STEP。有了zi的分布,再求的极大值以及其对应的参数就相对容易了
上式为EM算法中的 M-STEP。
事实上,如果从算法步骤的角度理解EM算法,E步相当于固定住模型参数而优化对应的不可观测数据分布,而M步相当于固定不可观测数据的分布之后优化相关模型参数,如此交替进行。从这个角度讲EM算法和SMO或者坐标轴下降法是很相似的。
3. EM算法的收敛性
下面我们来推导该算法的收敛性。要证明该算法收敛,只要证明第 t+1 个迭代的参数对应似然函数 恒大于等于 第 t 个迭代的参数对应似然函数
。
由Jensen不等式,我们一定可以得到:
上式对于任意的分布Q成立,当然也对所以:
再由
故
证毕。
4. 对GMM使用EM算法
现在已经证明了通用EM算法的合理性,GMM作为一个特殊应用场景,它的E-STEP和M-STEP具体是什么这里就不作详细表述,有兴趣的同学可以查看吴恩达老师CS229课程的讲义, 我们这里给出结论:
E-STEP,对于每一个 i(对应样本标签)和 j(对应类别标签),我们计算参数w:
M-STEP, 更新参数:
5. EM算法的特点
基于EM算法的GMM模型具有以下特点。
1. 相比较于K-means把数据“硬性”地分到某一个类别,EM除了也能做到分类,对于每一个数据都可以得出其属于某一个类别的可能性,它更像是一个“软性”的分类
2. EM算法对于初始参数的设置是敏感的,因为它有可能收敛到局部极小值。所以在实际应用当中,我们可以多试几个初始点。另外EM算法的初始参数也不像K-means那样数量较少,一个可行的方法是,先用K-means算法计算出每个类别数据大致的簇心,将其作为使用之后再使用EM算法继续计算。
参考文献:
[1] 吴恩达 cs229 课堂笔记及视频
[2] https://www.cnblogs.com/jiangxinyang/p/9278608.html
[3] EM算法原理总结