本文讲阐述在语音识别中GMM-HMM的知识。其中包括了对GMM(Gauss Mixture Model)和HMM(Hidden Markov Model)的定义、原理及其算法的介绍。
GMM(高斯混合模型)
设有随机变量X,则混合高斯模型可以用下式表示:
p(x)=∑k=1KπnN(x|μk,∑k) p ( x ) = ∑ k = 1 K π n N ( x | μ k , ∑ k )
其中 N(x|μk),∑k N ( x | μ k ) , ∑ k 称为高斯混合模型中的第K个分量。且满足:
∑k=1Kπk=1,0≤πk≤1 ∑ k = 1 K π k = 1 , 0 ≤ π k ≤ 1
可以看到 πk π k 相当于每个分量 N(x|μk,∑k) N ( x | μ k , ∑ k ) 的权重。
GMM参数估计过程
GMM的贝叶斯理解
在GMM的定义中, πk π k 是混合系数,表示第K个分布被选中的概率。下面引入一个K维随机变量Z,其中 zk z k 定义如下:
zk={
10selectothersk,1≤k≤K z k = { 1 s e l e c t k 0 o t h e r s , 1 ≤ k ≤ K
记第k个分布被选中的概率为 p(zk=1)=pk p ( z k = 1 ) = p k ,那么第k个分布未被选中的概率为 p(zk=0)=1−pk p ( z k = 0 ) = 1 − p k 。因此,有: ∑Kzk=1 ∑ K z k = 1 。假设 zk z k 之间是独立同分布的,则z的联合概率分布形式为:
p(z)=p(z1)p(z2)...p(zk)=∏k=1Kpzkk p ( z ) = p ( z 1 ) p ( z 2 ) . . . p ( z k ) = ∏ k = 1 K p k z k
类似的,给定z的一个特定的值,x关于z的条件概率分布是一个高斯分布 p(x|zk=1)=N(x|mk,∑k) p ( x | z k = 1 ) = N ( x | m k , ∑ k ) ,也可以写成
p(x|z)=∏k=1KN(x|m,∑k)zk p ( x | z ) = ∏ k = 1 K N ( x | m , ∑ k ) z k
联合概率分布为
p(z)p(x|z) p ( z ) p ( x | z )
,从而x的边缘概率分布可以通过将联合概率分布对所有的z求和的方式得到,即
p(x)=∑Zp(z)p(x|z)=∑k=1K(∏k=1K(pzkk)N(x|mk,∑k)zk)=∑k=1KpkN(x|mk,∑k) p ( x ) = ∑ Z p ( z ) p ( x | z ) = ∑ k = 1 K ( ∏ k = 1 K ( p k z k ) N ( x | m k , ∑ k ) z k ) = ∑ k = 1 K p k N ( x | m k , ∑ k )
根据贝叶斯定理,后验概率可以表示为:
γ(zk)=p(zk=1|x)=p(zk=1)p(x|zk=1)/∑j=1Kp(zj=1)p(x|zj=1)=πkN(x|μk,∑k)/∑j=1KπjN(x|μj,∑j) γ ( z k ) = p ( z k = 1 | x ) = p ( z k = 1 ) p ( x | z k = 1 ) / ∑ j = 1 K p ( z j = 1 ) p ( x | z j = 1 ) = π k N ( x | μ k , ∑ k ) / ∑ j = 1 K π j N ( x | μ j , ∑ j )
EM 算法估计GMM参数
EM算法分两步,第一步先求出要估计参数的粗略值,第二部使用第一步的值最大似然估计。因此要先求出GMM的似然函数。
假设 x={
x1,x2,...,xN} x = { x 1 , x 2 , . . . , x N } ,GMM模型中有三个参数需要估计,分别为 π,μ,∑ π , μ , ∑ 。并且有:
p(x|π,μ,∑)=∑k=1KπkN(x|μk,∑k) p ( x | π , μ , ∑ ) = ∑ k = 1 K π k N ( x | μ k , ∑ k )
为了估计这三个参数,需要分别求解出这三个参数的最大似然函数。先求解 μk μ k 的最大似然函数。对上式取对数后在对 μk μ k 求导并令导数为0即得到最大似然函数。
0=−∑n=1NπkN(xn|μk,∑k)∑k(xn−μk)/∑jπkN(xn|μj,∑j) 0 = − ∑ n = 1 N π k N ( x n | μ k , ∑ k ) ∑ k ( x n − μ k ) / ∑ j π k N ( x n | μ j , ∑ j )
注意到上式中分数的一项的形式正好是后验概率的形式。两边同乘 ∑−1k ∑ k − 1 ,重新整理可以得到:
μk=(1/Nk)∑n=1Nγ(znk)xn μ k = ( 1 / N k ) ∑ n = 1 N γ ( z n k ) x n
其中:
Nk=∑Nn=1γ(znk) N k = ∑ n = 1 N γ ( z n k )
上面两式中,N表示点的数量。
γ(znk) γ ( z n k )
表示点属于聚类k的后验概率。则
Nk N k
可以表示属于第k个聚类的点的数量。那么
μk μ k
表示所有点的加权平均,每个点的权值是
∑Nn=1γ(znk) ∑ n = 1 N γ ( z n k )
,跟第k个聚类有关。
同理可求 ∑k ∑ k 的最大似然函数,可以得到:
∑k=(1/Nk)∑n=1Nγ(znk)(xn−μk)(xn−μk)T ∑ k = ( 1 / N k ) ∑ n = 1 N γ ( z n k ) ( x n − μ k ) ( x n − μ k ) T
最后剩下 πk π k 的最大似然函数。注意到 πk π k 有限制条件 ∑Kk=1πk=1 ∑ k = 1 K π k = 1 ,因此我们需要加入拉格朗日因子
lnp(x|π,μ,∑)+λ(∑k=1Kπk−1) l n p ( x | π , μ , ∑ ) + λ ( ∑ k = 1 K π k − 1 )
求上式关于 πk π k 的最大似然函数,得到:
0=∑n=1N(N(xn|μk,∑k)/∑jπjN(xn|μj,∑j))+λ 0 = ∑ n = 1 N ( N ( x n | μ k , ∑ k ) / ∑ j π j N ( x n | μ j , ∑ j ) ) + λ
上式两边同乘 πk π k ,可以得到 λ=−N λ = − N ,进而可以得到 πk π k 更简洁的表达式:
πk=Nk/N π k = N k / N
EM算法估计GMM参数化 μk=(1/Nk)∑Nn=1γ(znk)xn μ k = ( 1 / N k ) ∑ n = 1 N γ ( z n k ) x n , ∑k=(1/Nk)∑Nn=1γ(znk)(xn−μk)(xn−