EM算法
EM算法(Expectation Maximization Algorithm, 最大期望算法)
是一种迭代类型的算法
是一种在概率模型中寻找参数最大似然估计或最大后验估计的算法
其中概率模型依赖于无法观测的隐藏变量
步骤:
- 初始化分布参数
- 重复下面两个步骤直到收敛
- E步骤:估计隐藏变量的概率分布期望函数;
- M步骤:根据期望函数重新估计分布参数;
原理:
-
m个训练样本{X(1),X(2),…,X(m)},样本间独立,找出样本的模型参数θ,极大化模型分布的对数似然函数,如下:
θ=θargmaxi=1∑mlog(P(x(i)θ))
-
嘉定样本数据中存在隐含数据z={z(1),z(2),…,z(k)},此时极大化模型分布的对数似然函数,如下:没看懂
θ=θargmaxi=1∑mlog(P(x(i)θ))=θargmaxi=1∑mlog(z(i)∑P(z(i))P(x(i)∣z(i);θ)=θargmaxi=1∑mlog(z(i)∑P(x(i),z(i);θ))
-
令z的分布为Q(z;θ),[z∑Q(z;θ)=1],并且Q(z;θ)≥0;那么有公式,如下:
l(θ)=i=1∑mlogz∑p(x,z;θ)=i=1∑mlogz∑Q(z;θ)⋅Q(z;θ)p(x,z;θ)=i=1∑mlog(EQ(Q(z;θ)p(x,z;θ)))≥i=1∑mEQ(log(Q(z;θ)p(x,z;θ)))[Jensen不等式]=i=1∑mz∑Q(z;θ)log(Q(z;θ)p(x,z;θ))
-
θ求解
θ=θargmaxl(θ)=θargmaxi=1∑mz∑Q(z;θ)log(Q(z;θ)p(x,z;θ))=θargmaxi=1∑mz∑Q(z∣x;θ)log(Q(z∣x;θ)p(x,z;θ))=θargmaxi=1∑mz∑Q(z∣x;θ)log(p(x,z;θ))
EM算法流程
样本数据:X={X(1),X(2),…,X(m)}
联合分布:p(x,z;θ)
条件分布:p(z∣x;θ)
最大迭代次数:J
- 随机初始化模型参数 θ=θ0;
- EM算法的迭代处理
-
E步骤:计算联合分布的条件概率期望:
Qj=p(z∣x;θj)
l(θ)=i=1∑mz∑Qjlog(p(x,z;θj))
-
M步骤:极大化l函数,得到θj+1
θj+1=θargmaxl(θ)
-
如果 θj+1已经收敛,则算法结束,输出最终模型参数θ,否则继续迭代处理
EM算法收敛证明
证明对数似然函数的值在迭代的过程中是增加的 即可



GMM(Gaussian Mixture Model, 高斯混合模型)
指该算法由多个高斯模型线 性叠加混合而成。每个高斯模型称之为component。GMM算法描述的是数据的 本身存在的一种分布。
GMM算法常用于聚类应用中,component的个数就可以认为是类别的数量。
假定GMM由k个Gaussian分布线性叠加而成,那么概率密度函数如下:


对数似然函数

GMM-EM算法求解
E步骤

M步骤

对均值求偏导


对方差求偏导

对概率使用拉格朗日乘子法求解
