Clustering – Probabilistic Model-Based Methods (1)

4_2_probabilistic_Model-based_Methods

我们在这一节会介绍基于概率模型的分类方法。这种算法的思想是将数据划分为几种概率分布的混合模型,并且估计出参数,从而完成聚类。举例来说,假如现在有男生数名,女生数名,我们想要统计不同性别的身高分布。但是我们仅仅只是知道这些人的身高,不知道这些人的性别。我们先验地知道,身高分布会遵循高斯分布。那么我们就可以用这种方法来完成聚类,找到高斯分布所对应的均值和方差参数。

高斯混合模型

我们高中时候就知道对于当变量的数据只有一个维度时,高斯分布公式是对于 xR,我们有:

(1)p(x|μ,σ2)=N(x|μ,σ2)=12πσ2exp(12σ2(xμ)2)

其中μR表示平均值,σ2表示方差。

那么对于一个高维的变量,假设变量xd个维度,那么其对应的高斯分布的公式是:

(2)p(x|μ,Σ)=N(x|μ,Σ)=1(2π)d|Σ|exp(12(xμ)TΣ1(xμ))

推广过程如下:

对于一个一维标准正态分布。我们有:

(3)p(x)=12πexp(x22)

那么对于两个独立的一维标准正态分布随机变量的联合分布,也就是二维标准正态分布:

(4)p(x,y)=p(x)p(y)=1(2π)2exp(x2+y22)

那么我们把两个随机变量x,y组合成一个向量v=[x,y]T,有

(5)p(v)=1(2π)2exp(vTv2)

再推广到一般正态分布,我们令v=A(xμ),则

(6)p(v)=|det(A)|(2π)2exp((xμ)TATA(xμ)2)

可以证明这个分布的均值为μ,协方差是(ATA)1,同时我们的系数增加了A的行列式的值。

由于v服从标准正态分布,所以v内元素的方差为1,v的协方差是E(vvT)=II是单位矩阵。

因为x=A1v+μ,加上μ也不影响协方差,所以x的协方差为E(A1vvTA1T)=A1E(vvT)A1T=(ATA)1

故我们令Σ=(ATA)1,公式可以写成是

(7)p(x|μ,Σ)=N(x|μ,Σ)=1(2π)d|Σ|exp(12(xμ)TΣ1(xμ))

假设现在有k个高斯分布,将他们放到一个坐标轴里叠加起来,每个高斯分布都乘上一个系数πk,那么就有

(8)p(x)=k=1kπkN(x|μk,Σk)

其中IπI=1,πIR,0πI1

上面这个式子就是高斯混合模型,简单来说就是k个高斯的加权平均,权值是πk

EM算法

本节主要讨论高斯混合模型下的EM算法,参考 Pattern Recognition and Machine Learning

首先我们引入一个隐变量z,用来表示当前是哪一个分布。具体来说,z是一个长度为K的量,在某一个位置z的值是1,其他位置的值都是0。用数学语言来表达就是,

(9)zk{0,1}   kzk=1

其中zk表示第k个位置,我们称这种表达方法是"1-of-K"的表达方法。

所以一个隐变量z就有K个状态。在这里我们就假设我们有K个高斯分布,这样一个隐变量就可以对应一个高斯分布了。

我们再用πkz赋值,表示取得某个隐变量z的第k个位置的值为1的概率。即:

(10)p(zk=1)=πk

很明显0πk1k=1Kπk=1

可以列一个表格帮助理解,假设现在有5个高斯分布,那么我们可以设置五个长度为5的隐变量z,分别在隐变量的不同位置设值为1,

下面表格里,为了简洁,这里暂时规定zk表示z的第k个位置的值为1,即z1=(1,0,0,0,0)

隐变量z1z2z3z4z5
概率πkπ1π2π3π4π5

其中k=15πk=1,其实这个表格就已经是一个概率分布了。

我们也可以把这个概率分布写成式子的形式:

(11)p(z)=k=1Kπkzk

表示隐变量z的概率。

那么如何表达高斯混合模型里的某个高斯分布呢?可以用条件概率:

(12)p(x|zk=1)=N(x|μk,Σk)

p(x|zk=1)意思也就是高斯混合模型里多个高斯分布中的第k个,或者是

(13)p(x|z)=k=1KN(x|μk,Σk)zk

用向量的方式表达。

根据联合概率分布的公式,我们可以知道p(z,x)=p(z)p(x|z),把公式(12)(14)带入可以得到

(14)p(z,x)=k=1KπkzkN(x|μk,Σk)zk

现在我们想要表达出p(x),根据边缘分布,可以得到

(15)p(x)=zp(z)p(x|z)=k=1KπkN(x|μk,Σk)

对于公式(14),一个隐变量只有一个位置是等于1的,也就是只有一个位置是有效的。对于公式(15),我们省略了指数,因为连加的变量k将直接指向对应的高斯分布。

公式(15)的结果就是高斯混合模型的公式。但是推导的过程,我们同样得到了隐变量和变量的联合概率分布。这将会简化EM公式的推导。

另外我们还需要准备一下给定x的条件下,z的概率,我们使用贝叶斯公式:

(16)p(zk=1|x)=p(zk=1)p(x|zk=1)p(x)=p(zk=1)p(x|zk=1)k=1KπkN(x|μk,Σk)=πkN(x|μk,Σk)j=1KπjN(x|μj,Σj)

这个式子表达了当我们在一个高斯混合模型中观察到x以后,对应到第k个高斯分布的概率。我们令:

(17)γ(zk)p(zk=1|x)

γ(zk)可以理解为第k个高斯分布对生成数据x付出的贡献,或者是"责任"。


推荐阅读:

Clustering – Partitioning Methods