本文共 1438 字,大约阅读时间需要 4 分钟。
先给出高斯混合模型的定义,高斯混合模型是指具有如下形式的概率分布模型:
(1)
其中,是系数,且,,而是高斯分布密度,,对于随机变量y是一维数据时,
(2)
称为第k个分模型。理论上只要分模型足够多,并且各分模型的系数设置合理,就能够产生任意分布的样本。
高斯混合模型属于生成模型,可以设想观测数据,,是这样生成的:首先以概率选择第k个分模型,然后由第k个分模型的概率分布生成观测数据。观测数据是能直接观测到的,已知的;而反映观测数据来自第k个分模型的数据是未知的,称为隐随机变量。一般地,用y表示观测随机变量的数据;z表示隐随机变量的数据。y称为不完全数据,而y和z连在一起称为完全数据。
为了求出模型的参数,我们先采用最大似然估计,似然函数可以写为:
(3)
对数化后得到:
(4)
然而(4)式无法直接通过求导并令导数为0的方法来求得参数的极大似然估计,但是如果知道了每个样本具体来自哪个分模型,即,那么(4)式便可以简化为:
(5)
此时便可以通过令偏导为零的方法求其最大似然估计。但实际上是无法获知的,既然无法获知那么能不能使用某种方法对其进行一个估计呢?因此这里需要采用EM算法,EM算法中使用关于z的期望来猜测z。
为了方便推导,这里隐变量用来表示,是一个k维的随机变量,当第j个观测来自第k个分模型时,否则,是0-1随机变量。很明显。
有了观测数据和未观测数据,那么完全数据就是:。于是,可以写出完全数据的似然函数:
(6)
其中表示N个数据中有多少个来自于第k个分模型,另外,很明显。与(6)相比,(3)中没有出现隐变量,可以理解为不完全数据的似然函数,而(6)中限定了只会来源于某个分模型。
那么完全数据的对数似然函数为:
(7)
(7)中存在隐变量,使得我们无法直接使用极大似然估计来求解最优参数。既然无法具体获知,那么我们也许可以对其进行一个估计,由此引入EM算法!
接下来使用EM算法来求解参数,EM算法分为E步,求期望;和M步,求期望最大化时的参数值。
既然无法直接对(7)进行似然估计,那么就转为对Q函数进行似然估计。Q函数表示完全数据的对数似然函数关于在给定观测数据y和当前参数下对未观测数据z的条件概率分布的期望。
(8)
这里将值不确定的随机变量换成了值确定的。Q函数表达的其实就是先对样本做一个最有可能的划分,即以的概率确定样本来自第k个分模型,再描述产生这个样本的可能性。有了对的估计后,似然估计中就不含隐变量,从而可以最大似然估计便可派上用场了。
将记为,这里计算使用了贝叶斯公式:
(9)
表示在当前模型参数下第j个观测数据来自第k个分模型的概率,称为分模型k对观测数据的响应度。
通过最大化Q函数便可以求新一轮的模型参数:
(10)
用,和,k=1,2,...,K,表示的各参数,用Q函数分别对,和求偏导,并令其为0得到第(i+1)轮迭代的参数值:
(11)
(12)
(13)
通过以上推导可以总结算法步骤如下:
(1)初始化模型的参数值。EM算法对初始值较敏感,不同的初始值可能得到不同的参数估计值。
(2)E-step:依据当前模型参数,计算分模型k对观测样本数据的响应度
(3)M-step:计算新一轮迭代的模型参数
(4)重复步骤(2)(3),直至达到收敛。
reference
(1)《统计学习方法》,李航
转载地址:http://fqhzb.baihongyu.com/