EM算法是一种迭代算法,1977年由Dempster等人总给提出,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率,E,求期望;M,求极大似然估计,简称EM算法
Dempster:
例子:
(三硬币模型),假设有3枚硬币,分别记作A,B,C。这些硬币正面出现的概率为 π,p和q 。
先掷硬币A,根据其结果选出硬币B或C,正面选硬币B,反面选硬币C;然后掷选出的硬币,正面记作1,反面记作0;独立重复n次试验,结果:
1,1,0,1,0,0,1,0,1,1
假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率,即三硬币模型的参数
三硬币模型可以写作
P(y|θ)=∑zP(y,z|θ)=∑zP(z|θ)P(y|z,θ)=πpy(1−p)1−y+(1−π)qy(1−q)1−y
则,
P(Y|θ)=∏nj=1[πpyj(1−p)1−yj+(1−π)qyj(1−q)1−yj]
考虑求模型参数 θ=(π,p,q) 的极大似然估计,即
θ^=argmaxθlogP(Y|θ)
这个问题没有解析解,只有通过迭代方法求解。
EM算法首先选取参数的初值,记作 θ(0)=(π(0),p(0),q(0)) ,然后通过下式迭代计算参数的初值,直至收敛为止,第i次迭代参数的估计值为 θ(i)=(π(i),p(i),q(i)) .EM算法的第i+1次迭代如下
E步:计算在模型参数 π(i),p(i),q(i)下观测数据yj来自掷硬币B的概率
μ(i+1)=π(i)(p(i))yj(1−p(i))1−yjπ(i)(p(i))yj(1−p(i))1−yj+(1−π(i))(q(i))yj(1−q(i)36)1−yj
M步:计算模型参数的新估计值
π(i+1)=1n∑nj=1μ(i+1)j
p(i+1)=∑nj=1μ(i+1)jyj∑nj=1μ(i+1)j
q(i+1)=∑nj=1(1−μ(i+1)j)yj∑nj=1(1−μ(i+1)j)
EM算法与初值的选择有关,选择不同的初值可能得到不同的参数估计值
一般地,用Y表示观测随机变量的数据,Z表示隐随机变量的数据。Y和Z连在一起成为完全数据。EM算法通过迭代求 L(θ)=logP(Y|θ) 的极大似然估计
算法:
输入:观测变量数据Y,隐变量数据Z,联合分布 P(Y|θ) ,条件分布 P(Z|Y,θ)
输出:模型参数 θ
1)选择参数的初值 θ(0) ,开始迭代;
2)E步:记 θ(i) 为第i次迭代参数 θ 的估计值,在第i+1次迭代的E步,计算
Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]=∑ZlogP(Y,Z|θ)P(Z|Y,θ(i))
3)M步:求使 Q(θ,θ(i)) 极大化的\theta ,确定第i+1次迭代的参数估计值 θ(i+1)
θ(i+1)=argmaxθQ(θ,θ(i))
4)重复第2和第3步,直至收敛
定义:
(Q函数)完全数据的对数似然函数关于在给定观测数据和当前参数对未观测数据的条件概率分布的期望称为Q函数,即:
Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]
关于EM算法的几点说明:
1)参数的初值可以任意选择,但需注意EM算法对初值是敏感的
2)E步求Q函数.Q函数式中Z是未观测,Y是观测。注意, Q(θ,θ(i)) 的第一个变元便是要极大化的参数,第二个便是参数的当前估计值。每次迭代实际在求Q函数及其极大
3)M步求Q函数极大,得到 θ(i+1) ,完成一次迭代(i到i+1),后面将证明每次迭代使似然函数增大或达到局部极值
4)给出停止迭代的条件,一般是对较小的正数 ε1,ε2,若满足
||θ(i+1)−θ(i)||<ε1或||Q(θ(i+1),θ(i))−Q(θ(i),θ(i))||<ε2
则,迭代停止
极大化观测数据(不完全数据)Y关于参数 θ 的对数似然函数,即极大化
L(θ)=logP(Y|θ)=log∑ZP(Y,Z|θ)=log(∑ZP(Y|Z,θ)P(Z|θ))
注意到,这一极大化的主要困难是式子中有未观测数据并有包含和(或积分)的对数
事实上,EM算法是通过迭代逐步近似极大化 L(θ) 的,我们考虑两者之差
L(θ)−L(θ(i))=log(∑ZP(Y|Z,θ)P(Z|θ))−logP(Y|θ(i))
利用Jensen不等式得到其下界
L(θ)−L(θ(i))=log(∑ZP(Y|Z,θ(i))P(Y|Z,θ)P(Z|θ)P(Y|Z,θ(i)))−logP(Y|θ(i))⩾∑ZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ)
B(θ,θ(i))=^L(θ(i))+∑ZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ)
省去对θ的极大化而言是常数的项
θ(i+1)=argmaxθB(θ,θ(i))=argmaxθ(∑ZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ))=argmaxθQ(θ,θ(i))
上式等价于EM算法的一次迭代,即求Q函数及其极大化。
监督学习是由训练数据学习条件概率分布或决策函数作为模型,用于分类、回归、标注等任务,这时训练数据中每个样本点由输入和输出对组成。
有时训练数据只有输入没有对应的输出,从这样的数据学习模型成为非监督学习问题。EM算法可以用于生成模型的非监督学习,生成模型由联合概率分布表示,可以认为非监督学习训练数据是联合概率分布产生的数据。
两个定理:
定理一:
设 P(Y|θ) 为观测数据的似然函数, θ(i)(i=1,2....)为EM算法得到的参数估计序列 ,则:
P(Y|θ(i+1))⩾P(Y|θ(i)) —单调递增
定理二:
设 P(Y|θ) 为观测数据的似然函数, θ(i)(i=1,2....) 为EM算法得到的参数估计序列,则:
1)如果 P(Y|θ) 有上界,则 L(θ)(i) 收敛到某一值 L∗
2)在Q函数和L函数满足一定条件下,由EM算法得到的参数估计序列的收敛值 θ∗是L(θ)的稳定点
EM算法的一个重要应用是高斯混合模型的参数估计.高斯混合模应用广泛,许多情况下,EM算法是学习高斯混合模型的有效方法
定义:
(高斯混合模型)如下概率分布模型:
P(y|θ)=∑Kk=1αkϕ(y|θk)
其中, αk 是系数, αk⩾0,∑Kk=1αk=1;ϕ(y|θk) 是高斯分布密度, θk=(μk,σ2k) ,
ϕ(y|θk)=−12π√σkexp(−(y−μk)22σ2k)
成为第k个分模型
一般混合模型可以由任意概率分布密度式代上式中高斯分布密度。
假设观测数据由高斯混合模型生成:
P(y|θ)=∑Kk=1αkϕ(y|θk)
其中 θ=(α1,...;θ1,...) ,我们用EM算法估计高斯混合模型的参数 θ
1.明确隐变量,写出完全数据的对数似然函数
γjk={ 1,0,第j个观测来自第k个分模型否则
隐变量γjk是0−1随机变量
有了观测数据yj及未观测数据γjk,那么完全数据是
(yj,γj1,γj2,...,γjK),j=1,2,...,N
于是,可以写出完全数据的似然函数:
p(y,γ|θ)=∏Nj=1P(yj,γj1,γj2,...,γjK|θ)=∏Kk=1∏Nj=1[αkϕ(yj|θk)]γjk=∏Kk=1αnkk∏Nj=1[12π√σkexp(−(y−μk)22σ2k)]γjk
取对数似然
logP(y,γ|θ)=∑Kk=1nklogαk+∑Nj=1γjk[log(12π√)−logσk−12σ2k(yj−μk)2]
2.EM算法的E步:确定Q函数
Q(θ,θ(i))=E[logP(y,γ|θ)|y,θ(i)]=E{∑Kk=1nklogαk+∑Nj=1γjk[log(12π√)−logσk−12σ2k(yj−μk)2]}
z这里需要计算 E(γjk|y,θ),记为γjk^
γjk^=E(γjk|y,θ)=P(γjk=1|y,θ)=αkϕ(yj|θk)∑Kk=1αkϕ(yj|θk)
γjk^ 是在当前模型参数下第j个观测数据来自第k个分模型的概率,称为分模型k对观测数据 yj 的响应度.
将 γjk^=Eγjk 及 nk=∑Nj=1Eγjk 代入上式得:
Q(θ,θi)=∑Kk=1nklogαk+∑Nj=1γjk^[log(12π√)−logσk−12σ2k(yj−μk)2]
3.确定EM算法的M步
θ(i+1)=argmaxθQ(θ,θ(i))
用 μk^,σ2k^及αk^表示各参数,求μk^,σ2k^只需将上式(Q函数)分别对μk^,σ2k^求偏导并令其为0即可;求αk^是在∑Kk=1αk=1条件下求偏导并令其为0得到,结果如下:
μk^=∑Nj=1γjk^yj∑Nj=1γjk^
σ2k^=∑j=1Nγjk^(yj−μk)2∑Nj=1γjk^
αk=nkN=∑Nj=1γjk^N^
重复以上计算,直到对数似然函数值不再有明显变化为止
算法(高斯混合模型参数估计的EM算法)
输入:观测数据 y1,...,yN ,高斯混合模型;
输出:高斯混合模型参数.
1)取参数初值开始迭代
2)E步:依据当前模型参数,计算分模型k对观测数据 yj 的响应度
γjk^=αkϕ(yj|θk)∑Kk=1αkϕ(yj|θk)
3)M步:计算新一轮迭代的模型参数
μk^=∑Nj=1γjk^yj∑Nj=1γjk^
σ2k^=∑j=1Nγjk^(yj−μk)2∑Nj=1γjk^
αk=nkN=∑Nj=1γjk^N^
4)重复第2步和第3步,直到收敛
EM算法还可以解释为F函数的极大-极大算法,基于这个解释有若干变形与推广,如广义期望极大算法(GEM)
定义(F函数) 假设隐变量数据Z的概率分布为 P¯(Z) ,定义分布 P¯与参数θ的函数F(P¯,θ) 如下:
F(P¯,θ)=EP¯[logP(Y,Z|θ)]+H(P¯)
称为F函数,式中 H(P¯)=−EP¯logP¯(Z)是分布P¯(Z)的熵
通常假设 P(Y,Z|θ) 是 θ 的连续函数,因而 F(P¯,θ)是P¯和θ的连续函数.函数F(P¯,θ) 还有以下重要性质
引理1
对于固定的θ ,存在唯一的分布 P¯θ极大化F(P¯,θ),这时P¯θ 由下式给出:
P¯θ(Z)=P(Z|Y,θ)
并且随着θ连续变化
(引入拉格朗日乘子后求偏导易证)
引理2
若 P¯θ(Z)=P(Z|Y,θ) ,则
F(P¯,θ)=logP(Y|θ)
由以上引理可以得到关于EM算法用F函数的极大-极大算法的解释
定理1
设 L(θ)=logP(Y|θ) 为观测数据的对数似然函数, θ(i)为EM算法的到的参数估计序列,如果F(P¯,θ)在P¯∗和θ∗有局部极大值,那么L(θ)也在θ∗有局部极大值.类似得,同θ∗达到全局最大值
定理2 EM算法的一次迭代可由F函数的极大-极大算法实现
设 θ(i) 为第i次迭代参数θ的估计, P¯(i) 为第i次迭代函数 P¯ 的估计。在第i+1次迭代的两步为
1)对固定的 θ(i),求P¯(i+1)使F(P¯(i),θ(i)) 极大化;
2)对固定的 P¯(i+1),求θ(i+1)使F(P¯(i+1),θ)极大化 .
通过以上两步完成了EM算法的一次迭代,由此可知,由EM算法与F函数的极大-极大算法得到的参数估计序列是一致的
GEM算法1
输入:观测数据,F函数;
输出:模型参数.
1)初始化参数 θ(0) ,开始迭代
2)第i+1次迭代,第一步:记θ(i)为参数θ的估计值,P¯(i)为函数P¯的估计,求P¯(i+1)使P¯极大化F(P¯.θ(i))
3)第二步:求 θ(i+1)使F(P¯(i+1),θ) 极大化
4)重复2和3,直到收敛
在GEM算法1中,有时求Q函数的极大化是很困难的,下面的算法2和算法3并不是求 θ(i) 使Q函数达到极大的θ,而是找一个 θ(i+1),使得Q(θ(i+1),θ(i))>Q(θ(i),θ(i))
GEM算法2
输入:观测数据,Q函数;
输出:模型参数.
1)初始化参数 θ(0) ,开始迭代
2)第i+1次迭代,第1步:记 θ(i)为参数θ的估计值,计算
Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]=∑ZP(Z|Y,θ(i))logP(Y,Z|θ)
3)第2步:求 θ(i+1) 使
Q(θ(i+1),θ(i))>Q(θ(i),θ(i))
4)重复2和3,直到收敛
当参数θ的维度为d(d ⩾ 2)时,可采用一种体术的GEM算法,它将EM算法的M步分解为d次条件极大化,每次只改变参数向量的一个分量,其余分量不变
GEM算法3
输入:观测数据,Q函数;
输出:模型参数.
1)初始化参数 θ(0)=(θ(0)1,...,θ(0)d) ,开始迭代
2)第i+1次迭代,第1步:记 θ(i)=(θ(i)1,...,θ(i)d)为参数θ(0)=(θ(0)1,...,θ(0)d)的估计值,计算
Q(θ,,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]=∑ZP(Z|Y,θ(i))logP(Y,Z|θ)
3)第2步:进行d次条件极大化:
首先,在 θ(i)2,...,θ(i)k 保持不变的条件下求使得Q函数达到极大的 θ(i+1)1
然后,在 θ1=θ(i+1),θj=θ(i)j,j=3,4,...,k的条件下求使Q函数达到极大的θ(i+1)2
如此继续,经过d次条件极大化,得到 θ(i+1)=(θ(i+1)1,...,θ(i+1)d) 使得
Q(θ(i+1),θ(i))>Q(θ(i),θ(i))
4)重复2和3,直到收敛