高斯混合模型2021-8-14
高斯混合模型
模型定义
其中,各符号解释如下:
- 为观测变量。
- 该模型共由个高斯模型混合组成,为高斯模型的概率密度函数。
- 为对应的“混合系数”,随件变量由哪个高斯模型生成的先验分布,满足的约束为。
假设的生成过程
注意:此过程为我们假设的数据生成过程,基于一定的假设,便于后续的推导。
假设样本的生成过程由高斯混合模型生成:
- 根据定义的先验分布选择高斯混合成分(即某个高斯混合模型),其中,对任意一个随机变量,为选择第个混合成分的概率。
- 根据被选择的高斯分布的概率密度函数进行采样,从而生成相应的样本。
- 重复上述步骤,生成训练集。
总结:该过程生成了若干数据,数据来源于多个高斯模型,但是,我们不知道高斯模型的参数,也不知道每个数据来自于哪个高斯模型。而我们要做的,便是解决上述两个”不知道“。
求后验分布
该步的目标是解决第二个“不知道”:数据来自于哪个高斯模型。
假设目前已经给定``数据集,令随机变量表示样本由哪个高斯模型生成,其取值未知。基于假设,的先验概率为:
, 根据贝叶斯定理,的后验分布为:
换言之,给出了样本由第个高斯模型生成的后验概率分布,简记为。
由全概率公式可得:
聚类
当高斯混合模型(公式一)已知时,高斯混合聚类将把样本集划分为个簇。每个样本由一个高斯分布生成,来自于同一个高斯分布的样本被认为一类,每个样本的簇标记如下确定:
因此,从原型聚类的角度来看,高斯混合聚类时采用概率模型(高斯分布)对原型进行刻画,簇划分则由原型对应的后验概率确定。
参数求解
极大似然估计
给定样本集,样本个数为,可使用极大似然法对模型参数进行估计。对数似然函数为:
求
令,则:
求解可得:
求
令,则:
求解可得:
求
对于混合系数,除了要最大化,还需要满足,,构造如下拉格朗日函数:
其中,为拉格朗日乘子 对求导可得:
两边同乘以可得:
将带入可得:
求解可得:
迭代过程
- 先根据当前参数计算每个样本属于每个高斯模型的后验概率
- 根据参数公式对参数进行更新
EM算法
完全数据的对数似然函数
首先需要明确隐变量,写出完全数据的对数似然函数。
定义隐变量如下:
第个观测来自第个分模型否则 那么,完全数据为:
令,则完全数据的似然函数为:
上述公式解释:
表示在参数下选择某个高斯模型(假设第s个)生成数据的概率,则根据先验知识,该过程分为两个步骤:
- 依概率选择第个高斯模型
- 通过生成
所以,综合来看,如果不知道由哪个模型生成,则该概率为:
由哪个模型生成,则对应的为1。
与的区别
需要考虑可能来源于个高斯模型中的任何一个,而则限定了只会来源于某一个高斯模型。
完全数据的对数似然函数为:
此似然函数中包含隐变量,因此,不能够直接最大化似然函数。反之,如果知道了,则最大化似然函数水到渠成。
怎么办呢?基于当前的模型参数,先对隐变量进行当下的估计。
初始化的时候可以随机给定,也就是当前知道了每个高斯分布的参数,而隐变量则是指明数据由哪个高斯模型产生,有了每个高斯模型的参数,自然就能够计算数据最可能来自哪个高斯模型,也就知道了隐变量。将上述步骤迭代进行之,则是EM算法。
E步:确定Q函数
其中,则是基于当前参数对隐变量的估计:
将带回函数可得:
M步:Q函数最大化
有了函数,就可以对函数进行最大化,得到下一次迭代的模型参数了,即:
采用求导及拉格朗日乘子法,可得第轮参数为:
其中, 例子
见《西瓜书》P210页。
参考文档
- (48条消息) 详解EM算法与混合高斯模型(Gaussian mixture model, GMM)林立民爱洗澡-CSDN博客混合高斯模型
- 《西瓜书》 P206