Processing math: 100%

混合高斯模型与EM算法

Mixtures of Gaussians

这一部分引入了高斯混合模型和EM算法的定义,但是没有进一步证明EM算法的导出。

引入

给定训练集{x(1),,xm},根据无监督学习的定义,这些数据不带有任何标签。现在通过一个联合分布对数据进行建模:

p(x(i),z(i))=p(x(i)|z(i))p(z(i))

其中

  • z(i)Multinomial(ϕ),p(z(i)=j)=ϕj0,kj=1ϕj=1
  • x(i)|z(i)=jN(uj,Σj)

k表示z(i)取值的个数,所以模型假设每个x(i)是由随机选择(多项分布)的z(i)生成的,且x(i)来自由z(i)所对应的高斯分布。这就叫做高斯混合模型z(i)被称作隐变量,这正是让根据观测数据预测模型参数(ϕ,μ,Σ)的困难所在。

最大似然估计

为了估计高斯混合模型的参数,其最大似然估计可以被表示为

(ϕ,μ,Σ)=mi=1logp(x(i);ϕ;Σ)=mi=1logkz(i)=1p(x(i)|z(i);μ;Σ)p(z(i);ϕ)

第一行到第二行的转变表示每个观测数据x(i)被模型生成的概率是每个高斯分模型生成x(i)的概率之和。
但是,将偏导置为0后会发现,最大似然估计的参数没有封闭解。
那么,如果已知z(i)的值,即已经确定x(i)来自于哪一个高斯分模型,则最大似然估计为

(ϕ,μ,Σ)=mi=1logp(x(i)|z(i);μ,Σ)+logp(z(i);ϕ)

最大化这个似然函数:

ϕj=1mmi=11{z(i)=j}μj=mi=11{z(i)=j}x(i)mi=11{z(i)=j}Σj=Σmi=11{z(i)=j}(x(i)μj)(x(i)μj)Tmi=11{z(i)=j}

如果z(i)是已知的,最大似然估计的结果和高斯判别分析非常相似。如果是未知的,就需要使用EM(Expectation Maximization)算法来解决该问题。

EM算法

EM算法分为两个主要步骤,在上述问题中,在E步中,算法将“猜测”z(i)的取值,在M步中,算法将根据猜测的z(i)更新高斯混合模型的参数。
E步:

w(i)j:=p(z(i)=j|x(i);ϕ,μ,Σ)

M步:

ϕj=1mmi=1w(i)jμj=mi=1w(i)jx(i)mi=1w(i)jΣj=Σmi=1w(i)j(x(i)μj)(x(i)μj)Tmi=11{z(i)=j}

在E步中,在给定x(i)和模型参数下,计算z(i)的后验概率。例如,使用贝叶斯公式:

p(z(i)=j|x(i);ϕ,μ,Σ)=p(x(i)|z(i)=j;μ,Σ)p(z(i)=j;ϕ)kl=1p(x(i)|z(i)=l;μ,Σ)p(z(i)=l;ϕ)

其中p(x(i)|z(i)=j;μ,Σ)来自给定uj,Σjx(i)之后的高斯分布,p(z(i)=j;ϕ)来自ϕj

现在比较已知z(i)和未知的情况,如果已知,那么只有一个高斯模型,每个数据点都来自该模型,所以可以求解,如果未知,则不知道每个数据点到底来自那个分模型,所以只有使用EM算法(待证明)

和K-means法类似,EM算法有出现局部最优的可能,所有多次初始化参数会有更好的表现。现在对于该算法还有一些问题,即算法是如何推导的?如何保证该算法会收敛?,需要在接下来证明。

Error: Comments Not Initialized