高斯混合模型是一种业界广泛使用的聚类算法,该方法使用了高斯分布作为参数模型,并使用了期望最大算法(EM)进行训练。
什么是高斯分布
高斯分布有时也被称作正态分布,是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面都有着重大的影响。
若随机变量X服从一个数学期望为
μ、标准方差为
σ2的高斯分布,记作:
X N(μ,σ2)
则其概率密度函数为:
公式中含有2个参数,参数
μ表示均值,参数
σ表示标准差,均值决定了其位置,标准差决定了分布的幅度。
有了概率密度函数,在已知参数
μ,σ的前提下,输入变量x,可以获得其相对应的概率密度。
高斯混合模型
定义:高斯混合模型是指具有如下形式的概率分布模型:
P(y∣θ)=k=1∑Kαkφ(y∣θk) (1)
其中,
αk是系数,且
αk≥0,k=1∑Kαk=1;
φ(y∣θk)是高斯分布密度函数,其中
θk=(μk,σk)
φ(y∣θk)=2π
σk1exp(−2σk2(y−μk)2) (2)
称为第k个分模型。
一般混合模型可以由任意概率分布密度函数代替2中的高斯密度函数,现在只介绍最常用的高斯混合模型。
高斯混合模型参数估计的EM算法
假设观测数据
y1,y2……yN由高斯混合模型生成,
P(y∣θ)=k=1∑Kαkφ(y∣θk)
其中
θ=(α1,α2…αK;θ1,θ2…θK),我们用EM算法估计高斯混合模型的参数
θ
1明确隐变量,写出完全数据的对数似然函数
可以设想观测数据
yj,j=1,2……N,是这样产生的:
1)首先依概率
αk选择第k个高斯分布分模型
φ(y∣θk)
2)然后依第k个分模型的概率分布
φ(y∣θk)生成观测数据
yj
这时,观测数据
yj时已知的,反映观测数据
yj来自第k个分模型的数据时未知的。以变量
γjk表示。
隐变量
γjk,他的取值只能是1或者0
1)当第j个观测变量来自第k个高斯分布时,隐变量
γjk=1
2)当第j个观测变量不是来自第k个高斯分布时,隐变量
γjk=0
那么对于每一个观测数据
yj,都会对应一个向量变量
Γi=(γj1,γj2…γjK)
其中只有一个分量是1,其他分量全为0
k=1∑Kγjk=1
p(Γi)=∏αkγjk k=1,2,……K
其中,K为高斯分布的个数,
αk为第k个高斯分量的权值,因为观测数据来自各个高斯分布是相互独立的,而
αk刚好可以看做观测数据来自第k个高斯分布的概率,因此可以用上式求
p(Γi)
有了观测数据
yj以及
γjk,那么完全数据为
(yj,γj1,γj2…γjK)
完全数据似然函数:
对于观测数据
yj,当已知其是哪一个高斯分布生成的之后,其服从的概率分布为:
p(yj∣γjk=1;θ)=φ(y∣θk)
由于观测数据从哪个高斯分布生成这个事件之间是相互独立的,因此可以写成
p(yi∣Γi;θ)=∏φ(yj∣θk)jkγ k=1,2……K
由
p(Γi)=∏αkγjk k=1,2,……K
两式相乘得到单个完全观测数据的似然函数:
p(yi,Γj;θ)=∏αkγjkφ(yj∣θk)γjk
最终得到所有观测数据的完全似然函数为:
p(y,Γj;θ)=∏∏αkγjkφ(yj∣θk)γjk 其中 j=1,2……N,k=1,2……K
取对数,得到对数似然函数为:
lnp(y,Γj;θ)=j=1∑Nk=1∑K(γjklnαk+γjklnφ(yj∣θk))
φ(y∣θk)=2π
σk1exp(−2σk2(y−μk)2)
假设,我们已经知道了隐变量
γjk的取值,对上面得到的似然函数分别对
μk,σk求偏导并令其为0,得到:
μk=j=1∑Nk=1∑Kγjkj=1∑Nk=1∑Kγjkyj
σk=j=1∑Nk=1∑Kγjkj=1∑Nk=1∑Kγjk(yj−μk)2
由于上面两式的第二个求和符号是对k=1,2……K求和,而在求和过程中
γjk只有一次取到1,其他都是0,因此上面两个式子可以简化为:
μk=j=1∑Nγjkj=1∑Nγjkyj
σk=j=1∑Nγjkj=1∑Nγjk(yj−μk)2
现在参数中还有一个
αk没有求。
αk=Nj=1∑Nγjk
隐变量的估计公式:
需要求
γjk
根据EM算法,现在需要通过当前参数的取值得到隐变量的估计公式,即隐变量的期望的表达形式。
即求解
E(γjk∣y,θ)
E(γjk∣y,θ)=p(γjk=1∣y,θ)
高斯混合模型参数估计EM算法流程
输入:观测数据
y1,y2……yn,高斯混合模型
输出:高斯混合模型参数
1)取参数的初始值开始迭代
2)E步:依据当前的模型参数,计算分模型k对观测数据
yj的响应度
γjk=k=1∑Kαkφ(y∣θk)αkφ(y∣θk)
3)M步:计算新一轮迭代的模型参数
μk=j=1∑Nγjkj=1∑Nγjkyj
σk=j=1∑Nγjkj=1∑Nγjk(yj−μk)2
αk=Nj=1∑Nγjk
4)重复2)和3),知道收敛。