学习笔记之高斯混合模型(GMM)梳理

一、概念解释:

先验概率:在有一定量数据的前提下,我们对参数进行概率估计,事件发生前的预判概率。

极大似然估计:找到一组参数使得我们观测到的数据出现的概率最大。

后验概率:在最合适的那个参数的前提下,观测数据出现的最大概率。

条件概率:P(A|B)=\frac{P(A\cap B)}{P(B)}=\frac{P(A)P(B|A)}{P(B)}

高斯分布:x\sim N(\mu ,\sigma ^{2}),概率密度函数f(x)=\frac{1}{\sigma \sqrt{2\pi }}e^{\frac{-(x-\mu )^{2}}{2\sigma ^{2}}}

高斯混合模型(GMM):高斯混合模型是一种混合模型,混合的基本分布是高斯分布,假设有随机变量x,则高斯混合模型可以表示为:p(x)=\sum_{k=1}^{k=K}\pi _{k}N(x|\mu _{k},\sigma _{_{k}}),其中高斯分布N(x|\mu _{k},\sigma _{_{k}})称为高斯混合模型的第k个分量(component),\pi _{k}相当于每个分量N(x|\mu _{k},\sigma _{_{k}})的权重且满足\sum_{k=1}^{k=K}\pi _{k}=1

密度估计:根据数据来推断概率密度通常被称作密度估计(density estimation)。

参数估计:已知概率密度函数的形式,而要估计其中的参数的过程。

二、GMM理论

  GMM常用于聚类,如果要从一个GMM的分布中随机取一个点的话,实际上可以分为两步:

       1. 随机在K个分量中选一个,每个分量实际被选到的概率就是它的权重,即\pi _{k}

       2. 选中分量之后,单独再这个分两种考虑所选点的概率,此时转化为普通的高斯分布问题。

当确定高斯混合分布的分量个数即K时,之后要做的就是参数估计的过程。假设有N个数据点,我们需要确定的参数有\pi _{k}\mu _{k}\sigma_{k},最终目标是使确定的参数可以使生成这些数据点的概率值最大,而这个概率值实际上就是\prod_{i=1}^{i=N}p(x_{i}),我们这个乘积称作似然函数(likehood)。通常单个点的概率都很小,通常用取对数的方式把乘积变成加和的形式。即\sum_{i=1}^{i=N}logp(x_{i}),我们称这个加和形式为对数似然函数(log-likehood)。我们的目标是使对数似然函数最大化。

log\prod_{i=1}^{i=N}p(x_{i})=\sum_{i=1}^{i=N}log(\sum_{k=1}^{k=K}\pi _{k}N|(\mu _{k},\sigma _{k}))

使用EM(expectation maximization)算法进行估计。引入隐含变量z _{k}z _{k}=1表示第k类分量被选中的概率,z _{k}=0表示第k类分量未被选中的概率,因此,z ^{1}z ^{2}、、、z ^{k}中有且仅有一个为1,其余均为0。令\theta表示各高斯分布概率密度函数中的参数即\pi _{k}\mu _{k}\sigma_{k},用Q_{i}表示隐含变量z的分布,\sum_{z^(i)}Q _{i}(z^{(i)})=1。隐含变量z是一个向量,且这个向量中只有一个元素取值为1.其余均为0。

Jensen不等式:对于凸函数,有f(\sum_{i=1}^{n}\lambda _{i}x_{i})\leq \sum_{i=1}^{n}\lambda _{i}f(x_{i}),(\lambda _{i}\geqslant 0, \sum_{i=1}^{n}\lambda _{i}=1);对于凹函数,有f(\sum_{i=1}^{n}\lambda _{i}x_{i})\geq \sum_{i=1}^{n}\lambda _{i}f(x_{i}),(\lambda _{i}\geqslant 0, \sum_{i=1}^{n}\lambda _{i}=1)x _{i}为常数时Jensen不等式的等号成立。

所以上式可表示为:

L(\theta )=log\prod_{i=1}^{i=N}p(x_{i})=\sum_{i=1}^{i=N}log(\sum_{k=1}^{k=K}\pi _{k}N|(\mu _{k},\sigma _{k}))=\sum_{i=1}^{i=N}log(\sum_{z(i)}p(x^{(i)},z^{(i)};\theta )) =\sum_{i=1}^{i=N}log(\sum_{z(i)}Q_{i}(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}(z^{(i)})})\geq \sum_{i=1}^{i=N}\sum_{z(i)}Q_{i}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}(z^{(i)})}

三、 EM算法参数估计

为了使L(\theta )最大,需使等号成立以最大化下界,即\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}(z^{(i)})}=constant=\frac{\sum p(x^{(i)},z^{(i)};\theta )}{\sum Q_{i}(z^{(i)})}(多个等式的分子分母相加值不变)

又因为\sum_{z^(i)}Q _{i}(z^{(i)})=1所以\sum p(x^{(i)},z^{(i)};\theta )=canstant,所以有

Q_{i}(z^{(i)})=\frac{p(x^{(i)},z^{(i)};\theta )}{\sum p(x^{(i)},z^{(i)};\theta )}=\frac{p(x^{(i)},z^{(i)};\theta )}{ p(x^{(i)};\theta )}=p(z^{(i)}|x^{(i)};\theta )

由上式可知,当各分量的参数\theta确定时,Q _{i}(z^{(i)})的计算公式即为后验概率。(E步)

之后固定Q _{i}(z^{(i)}),调整\theta使L(\theta )的下界极大化(固定Q _{i}(z^{(i)})后,L(\theta )的下界还可以更大)。(M步)

总结:一般的EM算法步骤为:

  1. E步: 对于每一个i,固定\theta计算 Q _{i}(z^{(i)})Q_{i}(z^{(i)})=p(z^{(i)}|x^{(i)};\theta )

  2. M步: 得到Q _{i}(z^{(i)})后,调整\theta使L(\theta )的下界极大化,\theta = argmax_{(\theta )} \sum_{i=1}^{i=N}\sum_{z(i)}Q_{i}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}(z^{(i)})}

  上述过程循环重复直至收敛。

注意:

固定\theta(t)后,执行E步:Q_{i}^{t}(z^{(i)})=p(z^{(i)}|x^{(i)};\theta(t) ),该步骤使Jensen不等式成立,

即:L(\theta (t))= \sum_{i=1}^{i=N}\sum_{z(i)}Q_{i}^{t}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta (t) )}{Q_{i}^{t}(z^{(i)})};

固定Q_{i}^{t}(z^{(i)})后,对上面的L(\theta (t))求导后令导数等于0得到\theta(t+1)L(\theta (t+1))\geq \sum_{i=1}^{i=N}\sum_{z(i)}Q_{i}^{t}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta (t+1) )}{Q_{i}^{t}(z^{(i)})}

得到\theta(t+1)时,只是最大化了L(\theta (t)),也就是L(\theta (t+1))的下界。

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(学习笔记之高斯混合模型(GMM)梳理)