本文是《统计学习方法》李航著学习笔记。
EM算法本身并不是一种能进行预测的机器学习算法,它只能算作“某个整体机器学习预测算法概率模型”建模过程中的一个重要的概率参数估计算法,它的地位等价于“极大似然估计”,只不过它是处理“含有隐变量的”概率模型参数估计算法。
通常,监督学习的训练数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)}中xi=(x1i,x2i,⋯,xni)∈Rn的各维度的数据是全部已知的,但是有些情况会出现无法观测的情况,即某个xji,其中i=1,2,⋯,N,j=1,2,⋯,n无法给出,这时称该维度数据为“隐变量”,相应给定维度的数据称为“观测数据”,隐变量和观测数据组成“完全数据”。存在隐变量时,如何进行先验概率和条件概率的估计?显然不能直接利用极大似然估计,这时利用EM算法就可以估计“先验概率”和“条件概率”,就是所谓的概率模型参数估计。得到先验概率和条件概率后,可以类似朴素贝叶斯算法一样,构建后验概率模型,进行分类问题预测。有关朴素贝叶斯和极大似然估计的内容请参考http://blog.csdn.net/cymy001/article/details/78016109
注:可以将《统计学习方法》书中的符号对应映射作Y,Z→Xˆ,θ→Yˆ,则学习先验概率P(Yˆ)=P(θ),学习条件概率P(Xˆ|Yˆ)=P(Y,Z|θ),利用先验概率、条件概率及贝叶斯定理得后验概率P(Yˆ|Xˆ)=P(θ|Y,Z),即对于新给定的预测完全数据Y,Z,求后验概率P(θ|Y,Z)最大的θ对应的分类就是该预测实例点所在类。
下面重点叙述有关EM算法的模型的内容:包括EM算法的导出,EM算法的收敛性,EM算法的F函数解释,高斯混合模型的构建方法。
EM算法的导出
对于含有隐变量的概率模型,优化目标是极大化观测数据Y关于参数θ的对数似然函数
L(θ)=logP(Y|θ)=log∑ZP(Y,Z|θ)=log∑Z(P(Y|Z,θ)P(Z|θ))
由于上式包含关于未知隐变量
P(Z|θ))的求和,所以不能直接求解,利用EM算法迭代求解:找到使
L(θ)递增的参数序列
θ(i)。下面通过寻找下界函数的方法,寻求
L(θ)极大化的弱化条件。
L(θ)−L(θ(i))=log∑Z(P(Y|Z,θ)P(Z|θ))−logP(Y|θ(i))=log(∑ZP(Z|Y,θ(i))P(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i)))−logP(Y|θ(i))≥∑ZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))−∑ZP(Y,Z|θ(i))P(Y|θ(i))logP(Y|θ(i))=∑ZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i))
所以
L(θ)≥L(θ(i))+∑ZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i))≜B(θ,θ(i))
所以
B(θ,θ(i))是
L(θ)的一个下界,并且当
θ=θ(i)时,
L(θ(i))=B(θ(i),θ(i))。也就是,可以使
B(θ,θ(i))增大的
θ,也可以使
L(θ)增大。所以,极大化
L(θ)可以转化为极大化
B(θ,θ(i)) θ(i+1)=argmaxθB(θ,θ(i))=argmaxθ(L(θ(i))+∑ZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i)))=argmaxθ(L(θ(i))−∑ZP(Z|Y,θ(i))log(P(Z|Y,θ(i))P(Y|θ(i)))+∑ZP(Z|Y,θ(i))log(P(Y|Z,θ)P(Z|θ)))=argmaxθ(∑ZP(Z|Y,θ(i))log(P(Y|Z,θ)P(Z|θ)))≜Q(θ,θ(i))
上式证明中用到了
∑ZP(Z|Y,θ(i))=1,此外,
Q函数:
Q(θ,θ(i))是“完全数据的对数似然函数
logP(Y,Z|θ)”对“未观测数据
Z的条件概率分布
P(Z|Y,θ(i))”的期望。
综上所述,EM算法实现参数
θ的更新包括:求
Q(θ,θ(i))函数,即期望expectation步;求
argmaxθQ(θ,θ(i)),即极大化maximization步。
EM算法的收敛性
Theory:观测数据的似然函数P(Y|θ)关于EM算法得到的参数序列θ(i)是单增的,即P(Y|θ(i+1))≥P(Y|θ(i))。
Proof:
logP(Y|θ)=logP(Y,Z|θ)P(Z|Y,θ)=logP(Y,Z|θ)−logP(Z|Y,θ)
对上式左右两侧都乘
P(Z|Y,θ(i)),再对
Z遍历求和得
∑ZlogP(Y|θ)P(Z|Y,θ(i))=∑ZlogP(Y,Z|θ)P(Z|Y,θ(i))−∑ZlogP(Z|Y,θ)P(Z|Y,θ(i))
其中
左边=∑ZlogP(Y|θ)P(Z|Y,θ(i))=∑ZP(Z|Y,θ(i))logP(Y|θ)=logP(Y|θ)
右边=Q(θ,θ(i))−∑ZlogP(Z|Y,θ)P(Z|Y,θ(i))
所以
logP(Y|θ)=Q(θ,θ(i))−∑ZlogP(Z|Y,θ)P(Z|Y,θ(i))
考虑
logP(Y|θ(i+1))−logP(Y|θ(i))=Q(θ(i+1),θ(i))−Q(θ(i),θ(i))+∑ZlogP(Z|Y,θ(i+1))P(Z|Y,θ(i))P(Z|Y,θ(i))=Q(θ(i+1),θ(i))−Q(θ(i),θ(i))
由序列
θ(i)的生成过程知,
θ(i+1)是使
Q(θ,θ(i))达到极大的点,所以
Q(θ(i+1),θ(i))≥Q(θ(i),θ(i)),从而得证定理。
注:EM算法对参数初值的选取较敏感,一般选取几个不同的初值进行迭代和最后的估计值比较选取。EM算法得到的参数序列收敛到对数似然函数序列的稳定点,但是不能保证收敛到极大值点。
EM算法的F函数解释
EM算法可以解释为F函数的极大-极大算法:第一步极大化指,固定参数θ,求隐变量数据Z的概率分布使F函数极大化;第二步极大化指,固定第一步得到的Z的概率分布,求参数θ使F函数极大化。这里,F函数相比于Q函数,主要是利用求极大化目标函数的转化得到的,F函数的第一步极大化相当于求Q函数,第一步极大化相当于求argmaxθQ(θ,θ(i))。
Defination:P˜(Z)是隐变量Z的概率分布,分布P˜(Z)的熵为H(P˜)=−P˜(Z)logP˜(Z)=−EP˜P˜(Z),定义分布P˜与参数θ的函数
F(P˜,θ)=EP˜[logP(Y,Z|θ)]+H(P˜)
为
F函数。
显然,此时
∑ZP˜(Z)=1,则将约束优化
F函数转化成无约束的Lagrange函数求极大值问题
Lf=F(P˜,θ)+λ(1−∑ZP˜(Z))。首先,
Lf关于
P˜(Z)求偏导数,得到是
Lf极大化的
P˜θ(Z)=P(Z|Y,θ);再将
P˜θ(Z)带回
F(P˜,θ)化简得
F(P˜,θ)=logP(Y|θ)=Lf(θ)。由
P˜θ关于
θ的连续性可证,
F(P˜,θ)和
Lf(θ)取到极值具有同步性。
最后,看一下F函数和Q函数的关系:
由第一步Lf极大化,固定θ(i)求得P˜(i+1)(Z)=P(Z|Y,θ(i)),此时
F(P˜(i+1),θ)=EP˜(i+1)[logP(Y,Z|θ)]+H(P˜(i+1))=∑ZlogP(Y,Z|θ)P(Z|Y,θ(i))+H(P˜(i+1))=Q(θ,θ(i))+H(P˜(i+1))
显然,
H(P˜(i+1))项在极大化
θ时是无关项,所以得证。进而,极大化
Q函数可以转化成极大化
F函数,即对应GEM算法的相关内容。
高斯混合模型的构建方法
所谓的“混合模型”就是对单个概率模型做凸组合形成的模型,其中,最常用的是高斯分布概率分布(也叫“正态分布”)凸组合形成的“高斯混合模型”,该模型的数学表达如下
P(y|θ)=∑k=1Kαkϕ(y|θk)=∑k=1Kαk12π−−√σkexp(−(y−μk)22σ2k)
上式中
αk≥0,∑k=1Kαk=1。
通常,需要根据给定的观测数据y1,y2,⋯,yN,利用EM算法求“高斯混合模型”P(y|θ)的参数θ=(α1,⋯,αK,μ1,⋯,μK,σ1,⋯,σK)。将yi看成来自“某一个高斯模型”,这是一个隐含的中间过程,所以定义隐变量
γjk={1,第j个观测yj来自第k个分模型ϕ(y|θk)0,否则
显然
γjk是0-1随机变量,且
∑k=1K∑j=1Nγjk=N。
对完全数据的(yj,γj1,⋯,γjK),j=1,⋯,N求其对数似然函数logP(y,γ|θ);对数似然函数关于隐变量γjk求期望,得Q(θ,θ(i))函数;再加上限制∑k=1Kαk=1,利用Lagrange乘子法求参数θ的值。