混合高斯模型
1. 高斯分布
如果连续标量随机变量 x x x概率密度函数为:
p ( x ) = 1 ( 2 π ) 1 / 2 σ exp [ − 1 2 ( x − μ σ ) 2 ] , ( − inf < x < inf ; σ > 0 ) p(x)=\frac{1}{(2\pi)^{1/2}\sigma}\exp[-\frac{1}{2}(\frac{x-\mu}{\sigma})^2],\\ (-\inf<x<\inf;\sigma>0) p(x)=(2π)1/2σ1exp[−21(σx−μ)2],(−inf<x<inf;σ>0)
则称 x x x服从高斯分布(或正态分布),记为:
x ∼ N ( μ , σ 2 ) x\sim \mathcal{N}(\mu,\sigma^2) x∼N(μ,σ2)
高斯分布的随机变量均值为 μ \mu μ,方差为 σ 2 \sigma^2 σ2。
如果D维随机变量 x = ( x 1 , x 2 , ⋯ , x D ) T \bold{x}=(x_1,x_2,\cdots,x_D)^T x=(x1,x2,⋯,xD)T的联合概率密度函数为:
p ( x ) = 1 ( 2 π ) D / 2 ∣ Σ ∣ 1 / 2 exp [ − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ] , ( μ ∈ R D , Σ ∈ R D × D ) p(\bold{x})=\frac{1}{(2\pi)^{D/2}|\bold{\Sigma}|^{1/2}}\exp[-\frac{1}{2}(\bold{x}-\bold{\mu})^T\bold{\Sigma}^{-1}(\bold{x}-\bold{\mu})],\\ (\bold{\mu}\in\mathcal{R}^D,\bold{\Sigma}\in\mathcal{R}^{D\times D}) p(x)=(2π)D/2∣Σ∣1/21exp[−21(x−μ)TΣ−1(x−μ)],(μ∈RD,Σ∈RD×D)
则称 x \bold{x} x服从D元高斯分布(或正态分布),记为:
x ∼ N ( μ , Σ ) x\sim \mathcal{N}(\bold{\mu},\bold{\Sigma}) x∼N(μ,Σ)
均值为 μ \bold{\mu} μ, Σ \bold{\Sigma} Σ称为协方差矩阵。
由于大数定理的存在,很多实际问题中很多变量都可近似为高斯分布。
假设一个随机变量是从多个高斯分布中采样的,即:
p ( x ) = ∑ m = 1 M c m ( 2 π ) 1 / 2 σ m exp [ − 1 2 ( x − μ m σ m ) 2 ] = ∑ m = 1 M c m N ( x ; μ m , σ m 2 ) \begin{aligned} p(x)&=\sum\limits_{m=1}^{M}\frac{c_m}{(2\pi)^{1/2}\sigma_m}\exp[-\frac{1}{2}(\frac{x-\mu_m}{\sigma_m})^2]\\ &=\sum\limits_{m=1}^{M}c_m\mathcal{N}(x;\mu_m,\sigma_m^2) \end{aligned} p(x)=m=1∑M(2π)1/2σmcmexp[−21(σmx−μm)2]=m=1∑McmN(x;μm,σm2)
其中 c m c_m cm为每个高斯分布所占权重,则称 x x x服从混合高斯分布(Gaussian Mixture Model,GMM)。
推广到多元混合高斯分布,则为:
p ( x ) = ∑ m = 1 M c m ( 2 π ) D / 2 ∣ Σ m ∣ 1 / 2 exp [ − 1 2 ( x − μ m ) T Σ m − 1 ( x − μ m ) ] = ∑ m = 1 M c m N ( x ; μ m , Σ m ) \begin{aligned} p(x)&=\sum\limits_{m=1}^{M}\frac{c_m}{(2\pi)^{D/2}|\bold{\Sigma}_m|^{1/2}}\exp[-\frac{1}{2}(\bold{x}-\bold{\mu}_m)^T\bold{\Sigma}_m^{-1}(\bold{x}-\bold{\mu}_m)]\\ &=\sum\limits_{m=1}^{M}c_m\mathcal{N}(\bold{x};\bold{\mu}_m,\bold{\Sigma}_m) \end{aligned} p(x)=m=1∑M(2π)D/2∣Σm∣1/2cmexp[−21(x−μm)TΣm−1(x−μm)]=m=1∑McmN(x;μm,Σm)
在语音识别中, x x x的维度很高,使用协方差矩阵将引入大量参数。为了减少参数量,可以采用以下优化方式:
- 所有分布共享同一个协方差矩阵
- 使用对角协方差矩阵
2. 参数估计
如果有一系列从混合高斯分布中采用的点,并且已知高斯分布的个数,则可用最大期望算法(Expectation Maximization,EM)对分布进行参数估计。
确定隐变量与似然函数
设想观测数据是这样产生的:
- 按照概率 c k c_k ck选择第k个高斯分布分模型 ϕ ( y ∣ θ k ) \phi(y|\theta_k) ϕ(y∣θk)
- 按照 ϕ ( y ∣ θ k ) \phi(y|\theta_k) ϕ(y∣θk)生成观测数据 y j y_j yj
- 重复N次生成N个观测数据
此时观测数据是已知的,但是反映观测数据 y j y_j yj来自哪一个分模型的参数是未知的,以隐变量 γ j k \gamma_{jk} γjk表示,即:
γ j k = { 1 , y j f r o m ϕ ( y ∣ θ k ) 0 , o t h e r s \gamma_{jk}= \begin{cases} 1,\;y_j\;from\;\phi(y|\theta_k)\\ 0,\;others \end{cases} γjk={
1,yjfromϕ(y∣θk)0,others
故完全数据是:
( y j , γ j 1 , γ j 2 , ⋯ , γ j K ) , j = 1 , 2 , ⋯ , N (y_j,\gamma_{j1},\gamma_{j2},\cdots,\gamma_{jK}),\;\;j=1,2,\cdots,N (yj,γj1,γj2,⋯,γjK),j=1,2,⋯,N
可以写出完全数据的似然函数:
P ( y , γ ∣ θ ) = ∏ j = 1 N P ( y j , γ j 1 , γ j 2 , ⋯ , γ j K ∣ θ ) = ∏ k = 1 K ∏ j = 1 N [ c k ϕ ( y j ∣ θ k ) ] γ j k = ∏ k = 1 K c k n k ∏ j = 1 N [ ϕ ( y j ∣ θ k ) ] γ j k = ∏ k = 1 K c k n k ∏ j = 1 N [ 1 2 π σ k exp ( − ( y j − μ k ) 2 2 σ k 2 ) ] γ j k P(y,\gamma|\theta)=\prod\limits_{j=1}^NP(y_j,\gamma_{j1},\gamma_{j2},\cdots,\gamma_{jK}|\theta)\\ =\prod\limits_{k=1}^K\prod\limits_{j=1}^N[c_k\phi(y_j|\theta_k)]^{\gamma_{jk}}\\ =\prod\limits_{k=1}^Kc_k^{n_k}\prod\limits_{j=1}^N[\phi(y_j|\theta_k)]^{\gamma_{jk}}\\ =\prod\limits_{k=1}^Kc_k^{n_k}\prod\limits_{j=1}^N[\frac{1}{\sqrt{2\pi}\sigma_k}\exp(-\frac{(y_j-\mu_k)^2}{2\sigma_k^2})]^{\gamma_{jk}} P(y,γ∣θ)=j=1∏NP(yj,γj1,γj2,⋯,γjK∣θ)=k=1∏Kj=1∏N[ckϕ(yj∣θk)]γjk=k=1∏Kcknkj=1∏N[ϕ(yj∣θk)]γjk=k=1∏Kcknkj=1∏N[2πσk1exp(−2σk2(yj−μk)2)]γjk
其中, n k = ∑ j = 1 N γ j k , ∑ k = 1 K n k = N n_k=\sum\limits_{j=1}^N\gamma_{jk},\sum\limits_{k=1}^Kn_k=N nk=j=1∑Nγjk,k=1∑Knk=N。
完全数据的对数似然函数为:
log P ( y , γ ∣ θ ) = ∑ k = 1 K { n k log c k + ∑ j = 1 N γ j k [ log ( 1 2 π ) − log σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } \log P(y,\gamma|\theta)=\sum\limits_{k=1}^K\{n_k\log c_k+\sum\limits_{j=1}^N\gamma_{jk}[\log(\frac{1}{\sqrt{2\pi}})-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2]\} logP(y,γ∣θ)=k=1∑K{
nklogck+j=1∑Nγjk[log(2π1)−logσk−2σk21(yj−μk)2]}
-
E步:确定Q函数
Q ( θ , θ ( i ) ) = E ( log P ( y , γ ∣ θ ) ∣ y , θ ( i ) ) = E { ∑ k = 1 K { n k log c k + ∑ j = 1 N γ j k [ log ( 1 2 π ) − log σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } } = ∑ k = 1 K { ∑ j = 1 N E ( γ j k ) log c k + ∑ j = 1 N E ( γ j k ) [ log ( 1 2 π ) − log σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } Q(\theta,\theta^{(i)})=E(\log P(y,\gamma|\theta)|y,\theta^{(i)})\\ =E\{\sum\limits_{k=1}^K\{n_k\log c_k+\sum\limits_{j=1}^N\gamma_{jk}[\log(\frac{1}{\sqrt{2\pi}})-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2]\}\}\\ =\sum\limits_{k=1}^K\{\sum\limits_{j=1}^NE(\gamma_{jk})\log c_k+\sum\limits_{j=1}^NE(\gamma_{jk})[\log(\frac{1}{\sqrt{2\pi}})-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2]\} Q(θ,θ(i))=E(logP(y,γ∣θ)∣y,θ(i))=E{ k=1∑K{ nklogck+j=1∑Nγjk[log(2π1)−logσk−2σk21(yj−μk)2]}}=k=1∑K{ j=1∑NE(γjk)logck+j=1∑NE(γjk)[log(2π1)−logσk−2σk21(yj−μk)2]}
其中
γ ^ j k = E ( γ j k ∣ y , θ ) = P ( γ j k = 1 ∣ y , θ ) = P ( γ j k = 1 ∣ y j , θ ) ( 试 验 间 相 互 独 立 ? ) = P ( γ j k = 1 , y j ∣ θ ) P ( y j ∣ θ ) = P ( γ j k = 1 , y j ∣ θ ) ∑ k = 1 K P ( γ j k = 1 ∣ θ ) P ( y j ∣ γ j k = 1 , θ ) = P ( γ j k = 1 , y j ∣ θ ) ∑ k = 1 K P ( γ j k = 1 , y j ∣ θ ) ( 选 分 模 型 和 随 机 采 样 相 互 独 立 ) = P ( y j ∣ γ j k = 1 , θ ) P ( γ j k = 1 ∣ θ ) ∑ k = 1 K P ( γ j k = 1 ∣ θ ) P ( y j ∣ γ j k = 1 , θ ) = c k ϕ ( y j ∣ θ k ) ∑ k = 1 K c k ϕ ( y j ∣ θ k ) \hat{\gamma}_{jk}=E(\gamma_{jk}|y,\theta)=P(\gamma_{jk}=1|y,\theta)\\ =P(\gamma_{jk}=1|y_j,\theta)\;\;(试验间相互独立?)\\ =\frac{P(\gamma_{jk}=1,y_j|\theta)}{P(y_j|\theta)}\\ =\frac{P(\gamma_{jk}=1,y_j|\theta)}{\sum\limits_{k=1}^KP(\gamma_{jk}=1|\theta)P(y_j|\gamma_{jk}=1,\theta)}\\ =\frac{P(\gamma_{jk}=1,y_j|\theta)}{\sum\limits_{k=1}^KP(\gamma_{jk}=1,y_j|\theta)}\;\;(选分模型和随机采样相互独立)\\ =\frac{P(y_j|\gamma_{jk}=1,\theta)P(\gamma_{jk}=1|\theta)}{\sum\limits_{k=1}^KP(\gamma_{jk}=1|\theta)P(y_j|\gamma_{jk}=1,\theta)}\\ =\frac{c_k\phi(y_j|\theta_k)}{\sum\limits_{k=1}^Kc_k\phi(y_j|\theta_k)} γ^jk=E(γjk∣y,θ)=P(γjk=1∣y,θ)=P(γjk=1∣yj,θ)(试验间相互独立?)=P(yj∣θ)P(γjk=1,yj∣θ)=k=1∑KP(γjk=1∣θ)P(yj∣γjk=1,θ)P(γjk=1,yj∣θ)=k=1∑KP(γjk=1,yj∣θ)P(γjk=1,yj∣θ)(选分模型和随机采样相互独立)=k=1∑KP(γjk=1∣θ)P(yj∣γjk=1,θ)P(yj∣γjk=1,θ)P(γjk=1∣θ)=k=1∑Kckϕ(yj∣θk)ckϕ(yj∣θk)
γ ^ j k \hat{\gamma}_{jk} γ^jk是当前模型参数下,第j个观测数据来自第k个分模型的概率,称为分模型k对观测数据 y j y_j yj的响应度。故:
Q ( θ , θ ( i ) ) = ∑ k = 1 K { n k log c k + ∑ j = 1 N γ ^ j k [ log ( 1 2 π ) − log σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } Q(\theta,\theta^{(i)})=\sum\limits_{k=1}^K\{ {n_k\log c_k+\sum\limits_{j=1}^N\hat{\gamma}_{jk}[\log(\frac{1}{\sqrt{2\pi}})-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2]}\} Q(θ,θ(i))=k=1∑K{ nklogck+j=1∑Nγ^jk[log(2π1)−logσk−2σk21(yj−μk)2]} -
M步:确定参数迭代公式
求新一轮迭代的模型参数:
θ ( i + 1 ) = arg max θ Q ( θ , θ ( i ) ) \theta^{(i+1)}=\arg\max\limits_\theta Q(\theta,\theta^{(i)}) θ(i+1)=argθmaxQ(θ,θ(i))
对Q函数中各个参数求偏导数,并令其为0,得:
μ ^ k = ∑ j = 1 N γ ^ j k y j ∑ j = 1 N γ ^ j k σ ^ k 2 = ∑ j = 1 N γ ^ j k ( y j − μ k ) 2 ∑ j = 1 N γ ^ j k c ^ k = n k N = ∑ j = 1 N γ ^ j k N \hat{\mu}_k=\frac{\sum\limits_{j=1}^N \hat{\gamma}_{jk}y_j}{\sum\limits_{j=1}^N\hat{\gamma}_{jk}}\\ \hat\sigma_k^2=\frac{\sum_{j=1}^N\hat\gamma_{jk}(y_j-\mu_k)^2}{\sum\limits_{j=1}^N\hat\gamma_{jk}}\\ \hat c_k=\frac{n_k}{N}=\frac{\sum\limits_{j=1}^N\hat\gamma_{jk}}{N} μ^k=j=1∑Nγ^jkj=1∑Nγ^jkyjσ^k2=j=1∑Nγ^jk∑j=1Nγ^jk(yj−μk)2c^k=Nnk=Nj=1∑Nγ^jk
重复以上计算,知道对数似然函数值不再有明显变化为止。
3 GMM对语音特征建模
原始语音数据经过短时傅里叶变换形式或者取倒谱后会成为特征序列,在忽略时序信息的条件下,前文讨论的混合高斯分布就非常适合拟合这样的语音特征。也就是说,可以以帧(fame)为单位,用混合高斯模型(GMM)对语音特征进行建模。
-
在说话人识别中可以用GMM直接对所有说话人的语音特征分布建模,得到通用背景模型( Universal background model,UBM)。
-
在语音特征降噪或噪声跟踪中,可以采用类似的做法,用GMM拟合一个先验分布。
-
在语音识别中,GMM被整合在HMM中,用来拟合基于状态的输出分布。
如果把语音顺序信息考虑进去,GMM便不再是一个好模型,因为它不包含任何顺序信息。而隐马尔可夫模型(Hidden Markov Model,HMM)可以对时序信息进行建模,当给定HMM的一个状态后,若要对属于该状态的语音特征向量的概率分布进行建模,GMM不失为一个好的模型。
使用GMM对HMM每个状态的语音特征分布进行建模,有许多明显的优势。只要混合的高斯分布数目足够多,GMM可以拟合任意精度的概率分布,并且它可以通过EM算法很容易拟合数据。
还有很多关于限制GMM复杂度的研究,一方面为了加快GMM的计算速度,另一方面希望能够找到模型复杂度与训练数据量间的最佳权衡。其中包括参数绑定、半绑定GMM与子空间GMM。
GMM参数通过EM算法的优化,可以使其在训练数据上生成语音观察特征的概率最大化。在此基础上,若通过鉴别性训练,基于GMM-HMM的语音识别系统的识别准确率可以得到显著提升。当所使用的鉴别性训练目标函数与音素错误率、字错误率或句子错误率密切相关时,这种提升更加显著。此外,通过在输入语音特征中加入由神经网络生成的联合特征或瓶颈特征,语音识别率同样可以得到提升。过去的很多年间,在语音特征的建模和语音识别中的声学模型的建模中,GMM一直有非常成功的应用(直到大概在2010年至2011年间,深度神经网络取得了更加准确的识别效果)。
尽管GMM有着众多优势,但它也有一个严重的不足。那就是GMM不能有效地对呈非线性或近似非线性的数据进行建模。举例来说,若对一系列呈球面的点阵建模,如果选择合适的模型,只需要很少的参数,但对GMM来讲,却需要非常多的对角高斯分布或相当多的全协方差高斯分布。众所周知,语音是由调节动态系统中相对少的参数来产生的。这意味着隐藏在语音特征下的真正结构的复杂度,比直接描述现有特征(一个短时傅里叶窗就包含数百个系数)的模型要小得多。因而,我们期待有其他更好的模型,能够更好地捕获语音特性,使其作为语音声学模型的能力比GMM更好。特别是,比起GMM,这种模型要能更加有效地挖掘隐藏在长窗宽语音帧中的信息。