一、 混合高斯模型
通过密度函数的线性合并获取未知的p(X)模型。形式如下:
![混合高斯模型GMM和EM算法 混合高斯模型GMM和EM算法](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9abWxzWlRvdkx5OURPbHhWYzJWeWMxeGhaRzFwYmx4QmNIQkVZWFJoWEZKdllXMXBibWRjVkdWdVkyVnVkRnhWYzJWeWMxd3lNamcwTWpjMU9EUXhYRkZSWEZkcGJsUmxiWEJjVW1samFFOXNaVnhXUmxKUlZURlhYVFpEV1VRcFJETmRWbnRWVGtaWk1pNXdibWM9.jpg?w=700&webp=1)
![混合高斯模型GMM和EM算法 混合高斯模型GMM和EM算法](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9abWxzWlRvdkx5OURPbHhWYzJWeWMxeGhaRzFwYmx4RWIyTjFiV1Z1ZEhOY1ZHVnVZMlZ1ZENCR2FXeGxjMXd5TWpnME1qYzFPRFF4WEVsdFlXZGxYRU15UTF3ME1GbEpLVVJYT0U4b056ZFRTa1JRVW1CQ1YwNU1OaTV3Ym1jPQ%3D%3D.jpg?w=700&webp=1)
![混合高斯模型GMM和EM算法 混合高斯模型GMM和EM算法](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwybHRaeTVpYkc5bkxtTnpaRzR1Ym1WMEx6SXdNVFV4TVRFMU1UTXhOekV6TkRFNVAzZGhkR1Z5YldGeWF5OHlMM1JsZUhRdllVaFNNR05FYjNaTU1rcHpZakpqZFZrelRtdGlhVFYxV2xoUmRpOW1iMjUwTHpWaE5rdzFUREpVTDJadmJuUnphWHBsTHpRd01DOW1hV3hzTDBrd1NrSlJhMFpEVFVFOVBTOWthWE56YjJ4MlpTODNNQzluY21GMmFYUjVMME5sYm5SbGNnPT0%3D.jpg?w=700&webp=1)
![混合高斯模型GMM和EM算法 混合高斯模型GMM和EM算法](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9abWxzWlRvdkx5OURPbHhWYzJWeWMxeGhaRzFwYmx4RWIyTjFiV1Z1ZEhOY1ZHVnVZMlZ1ZENCR2FXeGxjMXd5TWpnME1qYzFPRFF4WEVsdFlXZGxYRU15UTF3ME1GbEpLVVJYT0U4b056ZFRTa1JRVW1CQ1YwNU1OaTV3Ym1jPQ%3D%3D.jpg?w=700&webp=1)
即假设密度函数是由多个高斯密度函数组合而成,为第z个高斯密度函数,
为第z个高斯密度函数占的权重(或者叫做概率)。用上述模型可以逼近任何连续密度函数,只要有足够的高斯密度函数和适当的参数。
在建立模型的时候,我们首先要确定的是,其中
、
中的
和
是我们需要求得的参数。
通过最大似然法给出一个目标(此目标函数是取对数之后的似然函数):
需要求取当目标函数达到最大值的时候对应的参数
、
中
的和
。
假如已经知道x属于某个高斯分布,参数
、
中的
和
的求取就会变得非常简单。不用最大似然估计一样能够算出来。
和
直接通过期望公式和协方差公式就可以求出来。而
但是在实际上往往不知道属于哪个高斯分布。直接对似然函数求导来解会因为存在项而变得十分麻烦。这时候就需要一个实际的算法对这个模型进行求解。下面的EM算法就是求解的一种常用的方法。EM的精髓就在利用Jensen不等式将
项消除进而进行求解。
二、 EM算法
对EM算法的理解参考自http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html,非常感谢JerryLead的详细讲解,但是感觉如果自己就是完全看明白、在草纸上推导一遍远没有自己详细的写出来记忆深刻,下面的内容多参考自JerryLead的(EM算法)The EM Algorithm。
1. Jensen不等式
回顾优化理论中的一些概念。设f是定义域为实数的函数,如果对于所有的实数x,,那么f是凸函数。当x是向量时,如果其hessian矩阵H是半正定的(
),那么f是凸函数。如果
或者
,那么称f是严格凸函数。
Jensen不等式表述如下:
如果f是凸函数,X是随机变量,那么
特别地,如果f是严格凸函数,那么当且仅当
,也就是说X是常量。
如果用图表示会很清晰:
图中,实线f是凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。(就像掷硬币一样)。X的期望值就是a和b的中值了,图中可以看到成立。
当f是(严格)凹函数当且仅当-f是(严格)凸函数。
2. EM算法
用表示样本符合高斯分布
的概率,
,对最大似然函数做如下变化:
若要使得(2)(3)式完全相等,根据Jensen 不等式可知要求自变量为常数,即。当看到这个结果
会感觉这个结果再正常不过了。因为
单单从数值大小来看,越大表示数据x属于高斯分布
可能性越大。所以用
来表示x属于高斯分布
的概率就再正常不过了。
下面EM算法的步骤就明确了
E步,对给定的参数,
,
通过公式
求取
。
M步,根据E步算出的求取
,因为
固定不变,此时:
根据M步算得的参数继续进行重复EM步骤,直到不再增大或者增大的幅度在接收的范围内。
3. EM求解GMM
在上面已经讲到E步和M步分别要做哪些计算。其中E步骤,求比较简单,直接按照公式进行计算就可以了。那么在看M步骤,
∴
计算和
为0时的解,注意在求取的
时候,只有
是变量,其余的都是常量来计算。在求取
与
的时候道理也一样。
等式等价
于,因而是不可以直接取得解的,参考自上面叙述的文献,引入拉格朗日成子
其中易知部分恒为0
∴
当和
为0时详细的求解暂时还不清楚如何对矩阵进行求导,所以后面没法给出具体的计算公式。
4. EM与K-means的思考
通过观察EM算法,可以看出来E步骤很简单,用代替某种分布,那么
,而在M步骤中对于Pz的求解可以发现Pz与分布没有关系,不管是高斯分布还是伯努利分布,计算方式都一样,不会变化。
剩下的就是对具体分布内部的参数进行计算,当然对于不同的分布有着不同的参数和表达方式,只需要按照求解参数
即可。
仔细观察EM算法和K-means算法有很大相同的地方。他们的共同点都是在于分别有两部分信息未知,如果知道两部分信息中的任意部分,那么问题就可以轻易解出。EM算法第一部分未知的信息为,第二部分未知的信息为
和分布函数的参数集(比如高斯分布的
和
)。而在K-means算法中第一部分未知的信息为都哪些点为一类,第二部分未知的信息是每一类的中心点在哪。这两个算法面临的问题是,只要准确知道两部分信息中的任意一部分信息,就可以知道另一部分信息,也不用再通过迭代进行求解了。但是实际问题是:两部分信息往往都不知道,所以只能先提出假设,然后固定一部分信息,计算另一部分信息,然后再根据计算而来信息改进假设信息,如此迭代下去,直到假设已经非常完美不能再改进,算法结束。