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)=ϕj≥0,∑kj=1ϕj=1
- x(i)|z(i)=j∼N(uj,Σj)
k表示z(i)取值的个数,所以模型假设每个x(i)是由随机选择(多项分布)的z(i)生成的,且x(i)来自由z(i)所对应的高斯分布。这就叫做高斯混合模型。z(i)被称作隐变量,这正是让根据观测数据预测模型参数(ϕ,μ,Σ)的困难所在。
最大似然估计
为了估计高斯混合模型的参数,其最大似然估计可以被表示为
ℓ(ϕ,μ,Σ)=m∑i=1logp(x(i);ϕ;Σ)=m∑i=1logk∑z(i)=1p(x(i)|z(i);μ;Σ)p(z(i);ϕ)第一行到第二行的转变表示每个观测数据x(i)被模型生成的概率是每个高斯分模型生成x(i)的概率之和。
但是,将偏导置为0后会发现,最大似然估计的参数没有封闭解。
那么,如果已知z(i)的值,即已经确定x(i)来自于哪一个高斯分模型,则最大似然估计为
最大化这个似然函数:
ϕj=1mm∑i=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)T∑mi=11{z(i)=j}如果z(i)是已知的,最大似然估计的结果和高斯判别分析非常相似。如果是未知的,就需要使用EM(Expectation Maximization)算法来解决该问题。
EM算法
EM算法分为两个主要步骤,在上述问题中,在E步中,算法将“猜测”z(i)的取值,在M步中,算法将根据猜测的z(i)更新高斯混合模型的参数。
E步:
M步:
ϕj=1mm∑i=1w(i)jμj=∑mi=1w(i)jx(i)∑mi=1w(i)jΣj=Σmi=1w(i)j(x(i)−μj)(x(i)−μj)T∑mi=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,Σj和x(i)之后的高斯分布,p(z(i)=j;ϕ)来自ϕj。
现在比较已知z(i)和未知的情况,如果已知,那么只有一个高斯模型,每个数据点都来自该模型,所以可以求解,如果未知,则不知道每个数据点到底来自那个分模型,所以只有使用EM算法(待证明)
和K-means法类似,EM算法有出现局部最优的可能,所有多次初始化参数会有更好的表现。现在对于该算法还有一些问题,即算法是如何推导的?如何保证该算法会收敛?,需要在接下来证明。