一、GMM算法
EM算法实在是难以介绍清楚,因此我们用EM算法的一个特例GMM算法作为引入。
1、GMM算法问题描述
GMM模型称为混合高斯分布,顾名思义,它是由几组分别符合不同参数的高斯分布的数据混合而成的。
假设有n个样本点(x_{1},x_{2},...,x_{n}),它们来自K个不同的高斯分布。有如下参数:
1、不同高斯分布的数据占比:(pi_{i})
2、每个高斯分布的均值与方差:(pi_{i}~N(mu_{i},sigma_{i}^2))
我们的目的是求出每个(pi_{i}),(mu_{i}),(sigma_{i})
因此我们的目标即是求合适的(pi_{i}),(mu_{i}),(sigma_{i})来最大化对数似然函数。
[l_{pi,musigma}(x)=sum^{N}_{i=1}log[sum^{K}_{k=1}pi_{k}N(x_{I}|mu_{k},sigma_{k})]
]
这个目标函数中既有对数又有加和,因此不能直接求导因此我们采用迭代的方法。
2、GMM迭代方法描述
Step1:对于每一个样本点i,计算它由不同组分(第k个组分)生成的概率$$r(i,k)=dfrac{pi_{k}N(x_{i}|mu_{k},sigma_{k})}{sum^{K}{j=1}pi{j}N(x_{i}|mu_{j},sigma_{j})}$$
Step2:由各个样本点的(r(i,k))更新参数(pi_{i}),(mu_{i}),(sigma_{I})
Step3:回到Step1,迭代更新
这其实就是EM算法的E步和M步的过程。
下面给出通用的EM算法伪代码。
3、EM算法
其中,E步的那个(Q)就是第i个样本的分布,就是那个(r(i,k))
这个形式可以推导可得,其实是等价的
M步中,那个公式就是对数似然函数,求使它最大化的参数
总结:EM算法说到底是一个迭代更新的过程。它首先对各个样本计算分布,然后更新参数;再计算分布,再更新参数……