高斯混合模型中的K-means和EM



上周重新看了一下高斯模型,同时对目前为止的学习回顾一下。

目前所了解的computervision有关的研究中,K-meansEM的基础思想主要用来进行点聚类的划分,而在点划分的基础上也很容易进行各种抽取,如前景,背景和所要找寻的区域。这两种是基本的实行方法。

高斯混合模型更多的体现在一种观点或者说思想,它先验的将图像背景看做三类模型的混合,即分别考虑到静态物体,阴影,以及光照。在目前可以认知的范围内,背景大概是由这几种因素混合而成,所以在实验中即使增加了模型数量,也不会取得更为明显的效果,这是由源决定本而致。因为增加的背景并没有相应的自然界的支持,或者说它代表的因素在一般情况下居于非常次要的地位。在这里猜想一下,如果在另外一个因素会形成明显干扰的情况下,也许增加模型会取得明显的效果?并不确定,因为没有相应的数据和实验,也可能增加的因素会规约到三种模型中。

在高斯模型认为图形背景主要有三种模型构成,并且这三种模型均符合高斯分布的前提下,K-meansEM就有了用武的可能。用高斯分布看待图形的观点,那么具体实施的过程中不可避免遇到的问题是如何具体确定高斯函数。进一步简化来说,如何确定高斯函数的均值和方差,这是最主要的两个参数,这便是用武之地。

K-meansEM在点聚类过程中的比较。以下EM均代表的是EM算法(最大期望算法)。

两者均采用了较为相似的想法:先用已知数据来假设一个参数的值(或者说初始化,类似这种意思,因为这一步其实并没有太多的合理性,仅仅是为了后续的开展而已),这一步通常也被很多人叫做ExpectionStep,然后根据相应的函数约束求出其他参数(MaximizationStep).那么随后便是重复上两次工作,当然E-Step的时候不能再随便假设了,要根据之前求出的其他参数对E-Step的目标参数进行求解。也许有人要问E-StepM-Step合起来不就是EM吗?K-means有交版权费吗?EM也不会收或者说不敢收,因为所谓的E-StepM-Step并没有涉及到任何具体的东西,也同样是一种想法,这种想法可以用在任何地方任何领域。如Mean-Shift同样有类似想法的操作。没有哪个具体的算法(k-meansEM算法之类)可以去占据一种更为宏大的思想,它没有这个能力。综合来说,E-stepM-stepEM并没有直接联系,反过来才有。


相似的想法和步骤下,两者聚类处理的过程中的数学基础是完全不同的,先从K-means说起。

聚类划分过程中的衡量标准是什么,即设存在K个聚类,一个点的所属的最优聚类应当如何定义,显然应当属于中心距点最近的那个。K-means便是由此出发,从聚类的欧拉距离的角度考虑问题,即目标是使点与聚类中心不要过远,基本出发点的数学表达为此:                                                                                                                         

其中,定义为

同时个人认为

的具体意义或者说它的具体表达完全取决于模型建立的数学基础,在高斯领域他是方差矩阵的运算,其他模型条件下显然是不同的。

目标是要使F(X)函数的取值最小化。条件是部分数据(当前的数据如视频数据处理过程中截止到当前帧时的数据)已知,那么它的E-stepM-step是什么呢?

需要处理的是另两个参数,但是较为简单的是其实第一步只需要假设一个即可,因为这两者是相互关联的。点的聚类分析中,无论假设点属于k(假设出的值)还是假设抽取几个点分别代表相应k聚类的均值(假设出均值),显然的是这两者假设其实是一回事情。

当第一步的K个聚类均值取到的时候,`根据相应模型的约束,求出当前分类条件下使F(X)取得最小值的的值,这便是M-step,其实便是对其他点进行聚类划分。然后根据M-step取得的聚类划分的情况,再求均值,直到满足要求。

可以看出K-means是简单的,因为它基于这样一种假设即一个点仅以1或者0的概率属于某一聚类,这两者中间的取值并没有考虑,将一个可以无穷取值的模型简化到了两个值,显然变得不复杂了,那么如果想要考虑到中间的值呢?即一个点仅以某一概率属于某一聚类呢?那么这便是EM的范畴。

                                                                                                                              

既然考虑到概率,那么与K-means的数学基础便是完全不同的,即并没有直接考虑欧式距离的问题。而把距离作为先验的定义,即应当如何在可能的距离范围内(即方差)去定义均值才可以使聚类包含更多的点,也可以说使所有点被包含的概率最大。这是与K-means完全不同的考虑出发点,首先当然会想到利用似然函数:

                                                                                                                                                                                                                                                                                  

p(w_k)是点属于聚类k的概率。

同样分析已知和所求,已知数据,要求聚类也就是均值。这时候同样有两个未知,一个当然是均值,另一个是概率。这个与K-means不同,这两个并不等价,抽取k个点认为他们是初始均值绝不等价于可以求出他们属于这些点的概率。再次强调,这里点并非仅以10的概率属于某一聚类。先不下结论,应当假设哪一项,虽然比较容易看出来,接着既然想要使P最大,当然要利用最大似然函数的求法,易得到:

                                                                                                                         

c次步当然是求导:

                                                                                                 

利用条件概率,可以得到

                                                                                   

到这一步已经是在不涉及到具体函数情况下可以推导的极限了,接下来在高斯混合的情况下继续进行。将高斯概率函数带入后面求导的部分,最终可以得到

                                                                                 

需要假设出抽取的点属于这个模型的概率。此为E-step.

M-step当然是根据已知属于模型的概率求出相应模型的均值。

重复以上过程,根据上一步得到的均值求出此条件下点属于相应模型的相应概率。


设在进入第t次循环时的已知条件为

首先E-step要算出各个点属于相应各个模型的概率

                                                                         

接着便是M-step

                                                                       高斯混合模型中的K-means和EM_第1张图片


这一步用到的E-step已经求出。


解方程,然后归一化(?)后,便可以,这表示点属于相应模型的概率。




另外要强调的是,在高斯混合中,认为点属于三个模型。但并不是仅有三个模型对应于一切点,而是对于每个点都建立三个模型。这一点要注意,否则无法理解相应点的模型的意思。建议要读一读高斯混合的源码,这更有助于理解。


其中很多内容来自于卡梅隆大学的Clusteringwith Gaussian Mixture一节。


其中必然有许多问题,因为有些东西我也并没有完全做到得心应手的运用。看完PS&ML的第八章后再来做纠正。

你可能感兴趣的:(c,算法,工作,图形)