EM算法与高斯混合模型

EM算法(The Expectation-Maximization Algorithm)可以解决HMM的参数估计问题,在MT中的词对齐中也会用到。

Jensen不等式

Jensen不等式表述如下:
如果f是凸函数,X是随机变量,那么E[f(X)]≥f(E[X])特别地,如果f是严格凸函数,那么E[f(X)]=f(E[X]);当且仅当p(x=E[x])=1,也就说X是常量。用图表示就是:
EM算法与高斯混合模型
Jensen不等式应用于凹函数时,不等号方向反向,也就是E[f(X)]≤f(E[X])

Jensen’s Inequality
当f为凸函数且 ∑iλi=1, λi≥0 时,有f(∑iλixi)≤∑iλif(xi)

极大似然估计

极大似然估计(Maximum Likelihood Estimation)提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。但其前提是,假设所有的采样都是独立同分布的。
假设x1,x2,…,xn dii,参数为θ的模型f产生上述采样可表示为:

f(x1,x2,…,xn|θ)=f(x1|θ)⋅f(x2|θ),…,⋅f(xn|θ)

此时x1,x2,…,xn为已知,θ为未知,则定义为
L(θ|x1,x2,…,xn)=f(x1,x2,…,xn|θ)=∏i=1nf(xi|θ)

在实际应用中常用的是两边取对数(Ln 或者 log不影响),得到公式如下:
ln⁡L(θ|x1,x2,…,xn)=∑i=1nln⁡f(xi|θ)   ι^=1nln⁡L

其中ln⁡L(θ|x1,x2,…,xn)称为对数似然,而ι^称为平均对数似然。而我们平时所称的最大似然为最大的对数平均似然,即:
θ=arg⁡maxθL(θ|X)

显然对L(θ|X)求导,令导数得0 ,求得的解即为最优的θ∗了,而且对MLE来说数据量越多,所得到的模型会越能反映数据的真实分布。

EM算法

期望最大化算法(Expectation Maximization Algorithm,EM)用于含有隐变量概率模型的MLE,隐变量就是每个可见随机变量的值都对应着一个隐藏的随机变量。参见三硬币模型实例

问题描述

给定一个训练集X=x1,…,xm,我们希望拟合包含隐含变量z的模型P(x,z;θ)中的参数 θ。根据模型的假设,每个我们观察到的xi还对应着一个我们观察不到的隐含变量zi,我们记Z=z1,…,zm。做极大对数似然就是要求θ的“最优值”:

θ=arg⁡maxθL(θ|X)

其中
L(θ)=log⁡P(X|θ)=log⁡∑ZP(X,Z|θ)

直接使用log 套∑的形式直接求解θ往往非常困难。EM 通过迭代逐步极大化L(θ),假设第i次迭代后θ的估计值是θi,θi已知后,下一次迭代需要使得L(θ)更大.

EM算法基本步骤

输入:观测数据X,隐变量数据 Z,联合分布P(X,Z|θ)
输出:极大似然参数θ
1. 选择初始参数θ0;
2. E Step:计算隐变量Z在参数θi下的后验分布P(Z|X,θi)以得到:

EZ|X;θiL(θ|X,Z):=EZ|X;θilog⁡P(X,Z|θ)=∑ZP(Z|X,θi)log⁡P(X,Z|θ)

3. M Step:估计θ(i+1)的值:
θ(i+1)=argmaxθEZ|X,θiL(X,Z|θ)

4. 重复(2)至(3),直到收敛.

EM 算法每次迭代都建立在上轮迭代对θ的最优值的估计θi上,利用它可以求出Z的后验概率P(Z|X,θi) ,进而求出L(θ|X,Z) 在分布Z∼P(Z|X,θ)上的期望 EZ|X;θiL(θ|X,Z)。

因为arg⁡maxθL(θ|X,Z)在未知Z的情况下难以直接计算,EM算法就转而通过最大化它的期望EZ|X;θiL(θ|X,Z)来逼近θ的最优值,得到θ(t+1)。注意由于L(θ|X,Z)的这个期望是在Z的一个分布上求的,这样得到的表达式就只剩下θ一个未知量,因而绕过了z未知的问题。而θ(i+1)又可以作为下轮迭代的基础,继续向最优逼近。

算法中E-step就是在利用θi 求期望EZ|X;θiL(θ|X,Z),这就是所谓“Expectation”;
M-step就是通过寻找 θ(i+1) 最大化这个期望来逼近θ的最优值,这就“Maximization”。

EM算法推导

L(θ)=log⁡P(X|θ)=log⁡∑ZP(X,Z|θ)

引入一个概率分布Q(θ,θi)=EZ|X,θilog⁡L(θ|X,Z)=P(Z|X,θi),利用分子分母同乘Q(θ,θi)的trick(期望可以写成概率和样本的乘积形式),得到:
L(θ)=log⁡∑ZP(X,Z|θ)=log⁡∑ZQ(θ,θi)P(X,Z|θ)Q(Z)=log⁡EZ∼Q[P(X,Z|θ)Q(Z)]

根据 Jensen 不等式,对于任意分布Q都有:
L(θ)=log⁡EZ∼Q[P(X,Z|θ)Q(θ,θi)]≥EZ∼Q[log⁡P(X,Z|θ)Q(Z)]

且上面的不等式在P(X|Z,θ)Q(θ,θi)为常数时取等号。之后Q(θ,θi)用贝叶斯公式展开:
Q(θ,θi)=P(X|Z,θi)P(Z|θi)P(X|θi)

带入回上式:
L(θ)≥EZ|X,θi[log⁡P(X,Z|θ)P(Z|X,θi)]=EZ|X,θilog⁡[P(X|Z)P(Z|θ)P(X|θi)P(X|Z,θi)P(Z|θi)]=EZ|X,θilog⁡[P(Z|θ)P(X|θi)P(Z|θi)]=EZ|X;θi[log⁡P(Z|θ)]+EZ|X;θi[log⁡P(X|θi)]−EZ|X;θi[log⁡P(Z|θi)]=Q(θ,θi)−Q(θi,θi)+L(θi)

第二行P(X|Z),P(X|Z,θi)这两个其实相同所以约去;最后一行在已知θi时,仅
Q(θ,θi)不固定,所以需要不断调整下一时刻θ使之最大。即可得到:
θt+1:=arg⁡maxθQ(θ,θi)

除以上方法推导,还可以用前项减后项方法推导L(θ)−L(θ(i))
具体见The Expectation Maximization Algorithm A short tutorial

高斯混合模型

高斯分布

假设数据x∈Rn服从参数为μ,Σ的高斯分布:

N(x;μ,Σ)=1(2π)n/2|Σ|1/2exp⁡{−12(x−μ)TΣ−1(x−μ)}

这里μ为均值,Σ为协方差矩阵,对于单个高斯分布,当给定数据集之后,直接进行 MLE 即可估计高斯分布的参数;但是有些数据集是多个高斯分布叠加在一起形成的,也就数据集是由多个高斯分布产生的,如下图所示三个高斯分布叠加在一起:
EM算法与高斯混合模型
多个高斯分布叠加在一起便是混合高斯模型 GMM,其的定义如下:
p(x)=∑k=1KπkN(x|μk,Σk)

这里K表示高斯分布的个数,πk代表混合系数,且满足0≤πk≤1,∑kπk=1,可以把πk看做每个模型的权重。如果把 GMM 用在聚类中,则样本x的类别即为arg⁡maxkπk

在 GMM 中,需要估计的参数为πk,μk,Σk模型里每个观测数据x都对应着一个隐变量z∈RK,代表的即为类别变量, 且zk∈{0,1},一个样本可以属于多个类别,叠加起来概率为 1,这里显而易见有:

p(zk=1)=πk

对于GMM的参数采用EM算法来求解,其完全数据的联合分布为:
p(X,Z|μ,Σ,π)=∏n=1N{∑k=1KπkN(xn|μk,Σk)}

写成对数似然函数的形式:
ln⁡p(X,Z|μ,Σ,π)=∑n=1Nln⁡{∑k=1KπkN(xn|μk,Σk)}

EM算法求解GMM的步骤

E步: 使用参数θold=(πold,μold,Σold),计算每个样本xn对应隐变量zn的后验分布:

γ(znk)=p(zn=k|xn;μold,Σold)=p(znk=1)p(xnk|znk=1)∑j=1Kp(znj=1)p(xn|znj=1)=πkoldN(xn|μkold,Σkold)Σj=1KπjoldN(xn|μjold,Σjold)

M步: 极大化Q函数的计算
Q(θ,θold)=∑Zp(Z|X,θold)ln⁡p(X,Z|θ)=∑Zp(Z|X,θold)ln⁡p(X|Z,θ)P(Z|θ)=∑n=1N∑k=1Kγ(znk){ln⁡πk+ln⁡N(xn|μk,Σk)}

得到下一步迭代的参数:
θnew=arg⁡maxθQ(θ,θold)

对Q函数求导,令倒数得0,即可求得下一次迭代的参数值

μknew=1Nk∑n=1Nγ(znk)xnΣknew=1Nk∑n=1Nγ(znk)(xn−μknew)(xn−μknew)Tπknew=NkN

其中:
Nk=∑n=1Nγ(znk)

相关文章:

  • 2022-01-18
  • 2022-12-23
  • 2021-07-29
  • 2021-08-21
  • 2021-09-18
  • 2021-05-01
  • 2021-04-08
  • 2022-01-03
猜你喜欢
  • 2021-04-20
  • 2021-12-22
  • 2021-11-02
  • 2021-05-07
  • 2021-07-22
  • 2022-12-23
相关资源
相似解决方案