这篇博客里,我们来介绍混合高斯模型和EM算法,也标志着进入到无监督学习新的篇章。EM算法会在混合模型里有应用。(其实之前还有一个k-means算法,但是这个算法比较简单,就不在博客里介绍了)
我们首先来介绍 EM算法的推导,然后介绍在混合高斯模型中的应用。
EM算法
EM算法大概的思路就是,对于没有标注的数据,我们会假设一个数据,然后通过不断地迭代,让我们假设的数据不断地趋近于正确的值。是不是听起来很像k-means算法呢?
我们在EM算法里,要关注的是他是怎么迭代的,以及如何保证他是收敛的
之所以能有EM算法,他的一大理论基础是 Jensen’s inequality詹森不等式
现在介绍这个詹森不等式
注意红框里的内容,这个是我们后面要应用的重点。
借助于下面的图来加强理解吧,没有可多讲的
也就是说,如果我们的图形是一个凸函数(相对于上面的举例,往相反方向弯被),那我们的不等式要调过来,好理解吧!
有了这个理论基础之后,开始我们的EM算法
这里的意思我们队一组数据给予某个模型p(x,z)他的似然函数如上表示
我们想求这个似然函数最大值的时候如果不知道z的值就会比较困哪(在后面我们讲高斯混合模型的时候,就会明白这一点),如果我们知道z的值得话,似然函数就会非常好求(这不就进入假设,迭代,逼近的节奏了吗)
这里的意思是因为EM算法处理这样的问题很高效,我们会用EM算法不断地构建似然函数的下限值,然后在M step里通过调整theta来让 这个下限值最大。 如此重复执行
这个式子就是詹森不等式,仔细看看是不是?
这样我们就构建了这样一个下限值,我们之所以构建下限值是因为,我们接下来会不断让下限值等于似然函数值,并取下限值的最大值,从而保证似然函数是递增的,从而就保证了收敛。在这里的要注意log函数 他是一个凸函数,所以就是上面的不等式。
现在的问题是,我们要如何选择Q值,现在来捋一捋思路,我们的EM算法就是不断地迭代z的值,也就是Q值,而迭代的时候就是因为有了新的theta值,所以更新了z值。所以我们想用theta值来跟z值关联。接下来是一个很关键的一步
我们要求詹森不等式的等号成立(这样做事有原因的,在后面我们在证明EM算法收敛的时候会用到这个性质),这样我们也就得到了theta值和 Q(z)的关联。
这里的意思的意思是,我们假设一个c,他不依赖于z,也就是说z值不管等于什么,他们的比值都是c,再结合Q是一个概率,有归一性,我们就很容易推导出Q的概率表示了
那我们怎么回到 这个算法是不是收敛的呢? 我们要证明收敛就要证明这个EM算法是单调递增的。其实证明这一点的关键步骤是我们让詹森不等式的等号成立! 看下面
以上我们就证明了EM算法的过程以及证明他的收敛,那接下来我们就把EM算法应用于 混合高斯模型来看一下。
其实上面这个公式就是我们在 生成模型里 推导出来的结果,如果知道了z那么,那么我们的似然结果是这样,但是 如果不知道z呢? 我们应该怎么办? 按照EM算法,我们会假设,如下
这是讲,跟有监督算法相比的异同
现在我们知道了EM算法在高斯分布中是怎么应用的,那我们现在来看看,这个更新步骤是怎么就出来的
就简单介绍到此!以上就是高斯混合模型和EM算法的简单介绍
如果你已经看到这了,来,老铁,扫一些我得支付宝红包二维码