高斯分布是机器学习领域中一个重要的概率分布模型,高斯模型分为单高斯模型和混合高斯模型,其中,混合高斯分布能更好地刻画历史数据集中的数据分布,因此,本文将详细叙述混合高斯模型的理论及其模型求解方法。
首先,先介绍单高斯模型。多维高斯分布的概率密度函数定义如下:
(1)
其中,为维的样本空间,是样本集的期望,是方差。由于单高斯模型可以明确训练样本是否属于该高斯模型,因此通常由训练样本的均值代替,由样本方差代替。为了高斯分布用于模型分类,式(1)可以改为:
(2)
式(2)表明样本属于类别C的概率大小。从而,将任意测试样本输入式(2),均可以得到一个标量,然后,根据一个阈值t来确定该样本是否属于该类别,根据经验,阈值t一般取0.7~0.75之间。
针对复杂数据集而言,一个单高斯模型往往不能完整地描述其数据的分布情况,因此需要用多个高斯模型来逼近数据的分布,即,使用混合高斯模型(GMM, Gaussian Mixture Model)来逼近。
在GMM中,对于给定的训练集样本,其隐含类别标签用表示。假设满足多项式分布,其中,且和为1,而且在给定后,假定满足多值高斯分布,则可以得到与的联合概率密度,如式(3)所示
(3)
GMM模型中有3个需要求解的变量,分别为。则参数的求解可以采用极大似然估计的思想,根据以上描述,可以得到似然函数,由于概率值一般都很小,当m很小的时候,连乘的结果非常小,容易造成浮点数下溢,所以我们通常取log,如式(4)所示:
(4)
将式(3)代入(4)中,得到:
(5)
在做参数估计的时候,一般是通过对待求变量进行求导来求极值的,但是,上式中,log中又有求和,故如果采取求导的方式求极值,将会十分复杂,且没有闭合解。因此,可以采用EM算法来估计各个参数,EM算法的求解分为两步:第一步,假设知道各个高斯模型的参数(可以初始化,或基于上一步迭代结果),然后去估计每个高斯模型的权值;第二步,基于估计的权值,再去迭代高斯模型的参数,重复这两步,直到收敛为止。EM具体表达如下:
1.(E step)
对于第i个样本来说,它由第s个model生成的概率为:
(6)
2. (M step)
在得到每个点的后,由于对于样本来说,它的的值是由第s个高斯模型产生的。因此,在估计第s个高斯模型的参数 时,我们就用这些数据去做参数估计,将采用极大似然的方法去估计:
用表示求解的参数,那么对于历史日志中的每条记录,其总体概率分布可以看做由k个加权的高斯函数的线性组合构成,如下:
(7)
其中,是对象在第i个子类的高斯分布概率。