在GMM/HMM(语音识别)训练过程中,需要使用EM算法进行求解模型参数。所以,本文主要推导一下EM算法。即明白什么是期望最大化?
Outline:
- 极大似然估计(Maximum Likelihood Estimation, MLE)
- 期望最大化算法(Expectation Maximization, EM)
我们知道如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法(MLE),或者贝叶斯估计法来估计模型参数(如:求在校学生身高分布)。然而,当模型中含有隐藏变量时,就不能简单地使用这些估计方法(如:《统计学习方法-李航》中的三硬币模型)。所以,在含有隐变量(Latent Variables)统计模型中,就需要利用EM算法来找到符合观测数据的最大似然的模型参数。
1.极大似然估计(Maximum Likelihood Estimation, MLE)
假如有 n 个独立同分布的观测值
所有观测的联合密度函数:
f(x1,x2,⋯,xn|θ)=f(x1|θ)×f(x2|θ)×⋯×f(xn|θ)
θ 似然函数:
L(θ;x1,x2,⋯,xn)=f(x1,x2,⋯,xn|θ)=∏i=1nf(xi|θ)lnL(θ;x1,x2,⋯,xn)=∑i=1nlnf(xi|θ)
极大化似然函数:
θ^=argmaxθlnL(θ;x1,x2,⋯,xn)
得到的 θ^ 作为 θ 的极大似然估计,这样我们就求出了模型参数了。
2.期望最大化算法(Expectation Maximization,EM)
然而在一些实际问题中,所要求解的概率模型含有Latent Variable,导致无法利用ML直接计算。(注:下式是向量形式,对向量形式求概率实际上对每一个观测值概率做累乘,