当我们在做聚类任务时, 如果每一类的分布已知的话,那么要求出每个样本属于哪一类, 只需要计算出它归属于 k 个不同簇的概率,然后选择概率值最高的那个簇作为它最终的归属即可。
但很多时候,样本分布的参数乃至概率密度函数的形式都是未知的 这时,我们通过设定一个目标,在优化目标的时候求出这些未知的参数。
在聚类这个问题中,我们希望达到的目标是: 第 i 个样本 x(i) 之所以被归属到了第 k 个簇,是因为 它在这一类的概率是所有类中概率最大的。
所以目标为最大化样本集的集体概率:
这其实是一个似然函数,要优化它,可以用极大化对数似然函数的方法,所以取对数。 这里面的每个 ϕ 都是一个独立的概率密度函数形式,而 θ 是对应的参数集合, 这时 K 个分模型的概率分布都不相同——每个概率密度函数的形式不同,对应参数集合不同,参数本身又都是未知的,如果直接求解就会非常困难,
所以,这时我们可以把所有的 ϕ 都当作高斯分布即可。也就是说这些样本分属的模型对应的概率密度函数形式相同,参数类型也相同,只是参数的具体取值有所差别:
高斯分布(Gaussian Distribution),又名正态分布(Normal distribtion),它的密度函数如上图公式所示。
现实生活中的许多自然现象都被发现近似地符合高斯分布,比如人类的寿命、身高、体重等,在金融、科研、工业等各个领域都有大量现实业务产生的数据被证明是符合高斯分布的。
这时就用到了 高斯混合模型(GMM), 就是将若干个概率分布为高斯分布的分模型混合在一起的模型。
之所以可以把所有的 ϕ 都当作高斯分布, 是高斯分布有一个非常重要的性质:中心极限定理
中心极限定理: 在适当的条件下,大量相互独立的随机变量的均值经适当标准化后,依分布收敛于高斯分布, 即无论 xi 的自身分布是什么,随着 n 变大,这些样本平均值经过标准化处理—后的分布,都会逐步接近高斯分布。
有了这个定理,当我们遇到一个问题的时候,如果对某一变量做定量分析时其确定的分布情况未知,只要掌握了大量的观测样本,都可以按照服从高斯分布来处理这些样本。 例如我们要做一个聚类任务,无论原本每一簇自身的分布如何,我们都可以用高斯模型来近似表示它们。这个混合模型,就可以是一个高斯混合模型(GMM)
GMM 的学习目标为:
x(i) 是已经观测到的样本观测数据,是已知的,zik 是未知的。 因为有没被观测到的隐变量存在,这样的对数似然函数需要用 EM 算法来优化。
用 EM 算法学习 GMM 的参数分为4步:
各参数取初始值开始迭代; E 步; M 步; 重复 E 步和 M 步,直到收敛
E 步的任务是求 Q M 步的任务是求 arg max Q
在 E 步,求出了 zik,代入 Q,得到 Q 只和参数 α,μ,σ 有关, 在 M 步,通过分别对各个自变量求偏导,再令导数为0,来求取 α,μ,σ 的极值点, 然后再带回到函数中去求整体 arg max Q 的值。