从MIXMAX概率模型理解Bayesian建模方法
储备知识
HMM-隐马尔可夫模型(Hidden Markov Model)
HMM建模时需要目标有这两个特征:
- 基于序列的,比如时间序列,或者状态序列。
- 有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列
语音信号是典型的时间序列模型,降噪和识别都可以认为是HMM过程,带噪输入是观测序列,降噪过程估计干净语音序列就是隐藏状态序列,识别任务中估计语音的音素(字)就是隐藏状态序列
GMM-混合高斯模型
对混合高斯模型有很多定义,下图是对一个样点进行的直方图统计,可以看出两个尖峰的形状,可以理解为这些样点具备两个高斯混合的特点。更简单的理解就是加型模型
多元高斯分布(The Multivariate normal distribution)
多元高斯可以理解为高斯的乘性质模型。
多元高斯还是混合高斯
这个问题其实挺令人困惑的,大致上分类要采用混合高斯,每一类的多维概率分布建模用多元高斯,高斯混合模型(GMM)及其EM算法的理解这篇博文对此分析的很透彻,还顺便将EM推导了一遍,多读此文肯定受益。
条件分布、边缘分布、联合分布
首先要回顾条件概率:
- 假定事件E和事件F是两个统计独立的事件,那么事件EF样本空间就是所有时间E发生的可能样本和事件F发生的可能样本的排列组合,我们定义为事件EF发生的概率为P(EF),E发生的概率为P(E),F发生的概率为P(F)。假设掷骰子,第一次投掷出来任意一个数字的概率是1/6,第二次也是1/6,那么两次组合的数字概率就是1/6 * 1/6= 1/36。
- 若F已经发生,F是确定性事件,那么这个确定性事件出现了概率即可表示为P(F)。如果在F发生的情况下,E发生的概率是什么呢?其实就是P(E)。这是很显然的事情
- 说到这要想一想:条件概率是啥?条件概率是这一系列事件的联系,不然问题就太简单了,也就无法解决复杂问题了。因为F发生了,所以这种情况下,就要将F(第一次?)的概率除去,只留下E的概率。
- 定义F发生的情况下,E事件的条件概率为P(E|F)。根据以上推理可以的出如下结论: P ( E ∣ F ) = P ( E F ) P ( F ) P(E|F)=\frac{P(EF)}{P(F)} P(E∣F)=P(F)P(EF)
- 如此折腾的一个初衷是条件概率的变换形式: P ( E F ) = P ( E ∣ F ) P ( F ) P(EF)=P(E|F)P(F) P(EF)=P(E∣F)P(F)怎么解释呢?这个公式可以利用F发生的概率和F给定条件下E发生的条件概率,来求解EF交集概率。
- 伟大(复杂)的条件概率乘法公式由上式推导出来:假设EFG三个独立事件,则 P ( E F G ) = P ( E F ) ∗ P ( G ∣ E F ) = P ( E ) P ( F ∣ E ) P ( G ∣ E F ) P(EFG)=P(EF)*P(G|EF)=P(E)P(F|E)P(G|EF) P(EFG)=P(EF)∗P(G∣EF)=P(E)P(F∣E)P(G∣EF)以此类推假设一系列随机事件 E 1 , E 2 . . . E n E_1,E_2...E_n E1,E2...En的概率可以表示为 P ( E 1 E 2 . . . E n ) = P ( E 1 ) P ( E 2 ∣ E 1 ) P ( E 3 ∣ E 1 E 2 ) . . . P ( E n ∣ E 1 E 2 . . . E n − 1 ) = P ( E 1 ) P ( E 2 E 1 ) P ( E 1 ) P ( E 3 E 2 E 1 ) P ( E 1 E 2 ) . . . P ( E 1 E 2 . . . E n ) P ( E 1 E 2 . . . E n − 1 ) P(E_1E_2...E_n)=P(E_1)P(E_2|E_1)P(E_3|E_1E_2)...P(E_n|E_1E_2...E_{n-1})\\ =P(E_1)\frac{P(E_2E_1)}{P(E_1)}\frac{P(E_3E_2E_1)}{P(E_1E_2)}...\frac{P(E_1E_2...E_n)}{P(E_1E_2...E_{n-1})} P(E1E2...En)=P(E1)P(E2∣E1)P(E3∣E1E2)...P(En∣E1E2...En−1)=P(E1)P(E1)P(E2E1)P(E1E2)P(E3E2E1)...P(E1E2...En−1)P(E1E2...En)
- 到此,最伟大的贝叶斯条件概率公式可以呼之欲出了,还是假定 E E E和 F F F两个事件,之前的公式都是求条件概率,或者是几个事件共同发生的概率,认为单纯的E和F概率是已知条件,贝叶斯概率公式则是上述条件概率推演的逆向形式。这里定义 F c F^c Fc是 F F F的互斥事件,可以理解为集合里的补集,那么 P ( F c ) = 1 − P ( F ) P(F^c)=1-P(F) P(Fc)=1−P(F)。那么 E E E可以表示为 E = E F ∪ E F c E=EF\cup EF^c E=EF∪EFc,则 P ( E ) = P ( E F ) + P ( E F c ) = P ( E ∣ F ) P ( F ) + P ( E ∣ F c ) P ( F C ) = P ( E ∣ F ) P ( F ) + P ( E ∣ F c ) ( 1 − P ( F ) ) P(E)=P(EF)+P(EF^c)\\=P(E|F)P(F)+P(E|F^c)P(F^C)\\=P(E|F)P(F)+P(E|F^c)(1-P(F)) P(E)=P(EF)+P(EFc)=P(E∣F)P(F)+P(E∣Fc)P(FC)=P(E∣F)P(F)+P(E∣Fc)(1−P(F))这是个曲线救国求概率的好方法,例子太复杂就不敲键盘了。
- 如果上面这个看明白了,那下面这个也就不难理解了,在item 7的基础上,将贰元事件 F c F^c Fc和 F F F扩展到一个联合事件 B i i ∈ 0 , N B_i\quad i\in 0,N Bii∈0,N,则 P ( E ) = ∑ i = 0 n P ( E B i ) = ∑ i = 0 n P ( B i ) P ( E ∣ B i ) P(E)=\sum_{i=0} ^nP(EB_i)\\=\sum_{i=0} ^nP(B_i)P(E|B_i) P(E)=i=0∑nP(EBi)=i=0∑nP(Bi)P(E∣Bi)这个也叫作全概率公式
- 综上所述,boss级别的贝叶斯公式(定理)马上就成型了,其实贝叶斯定理就是全概率公式的一个变形,前面的公式求得所有事件的联合概率,那么如果这个全概率我知道了,想知道具体某个B事件的概率怎么办呢? P ( B i ∣ E ) = P ( B i E ) P ( E ) = P ( E B i ) ∑ i = 0 n P ( B i ) P ( E ∣ B i ) = P ( E ∣ B i ) P ( B i ) ∑ i = 0 n P ( B i ) P ( E ∣ B i ) P(B_i|E)=\frac{P(B_iE)}{P(E)}=\frac{P(EB_i)}{\sum_{i=0} ^nP(B_i)P(E|B_i)}=\frac{P(E|B_i)P(B_i)}{\sum_{i=0} ^nP(B_i)P(E|B_i)} P(Bi∣E)=P(E)P(BiE)=∑i=0nP(Bi)P(E∣Bi)P(EBi)=∑i=0nP(Bi)P(E∣Bi)P(E∣Bi)P(Bi)
在网上对这个神奇公式各种解释文章太多,从联合分布 & 条件分布 & 边缘分布借图来对这个抽象的公式做一个注解,加深理解吧。
通俗(不严谨不保证准确)的讲:EF的就是联合分布,单独看一个的分布就是边缘分布,把一个定下来看另外一个的就是条件分布。
EM Expectation Maximum算法
EM算法是迭代求解最大值的算法,同时算法在每一次迭代时分为两步,E步和M步。一轮轮迭代更新隐含数据和模型分布参数,直到收敛,即得到我们需要的模型参数。参考文档里有详细介绍。
MIX所指的就是高斯混合模型
经过了那么多铺垫,这里其实很简单,就是想办法让语音经过矢量量化后成为一个混合高斯模型,这就结了。但想实现这个目标还是很曲折的,也有将这个模型叫做标签模型(labeling model),在【6】中用了K-MEANS聚类,【7】用的Bootstrapping or Clustering, 【8】用的EM。当然还有很多别的方法就不一一列举了,要看结果谁最高斯,谁最符合假设。
MAX就是谁大就用谁
这个模型在【6】中被设计出来,诞生于IBM华生研究中心。最初的想法是用来做语音识别,这个模型的提出的目的是想根据观测信号得出某个具体标签出现的概率密度函数。怎么观察呢,且看下面对数谱线,
Y
=
l
o
g
(
X
1
+
X
2
)
Y=log(X_1+X_2)
Y=log(X1+X2),
X
1
X_1
X1和
X
2
X_2
X2越大的值对log结果影响越大,尤其在
(
X
1
+
X
2
)
(X_1+X_2)
(X1+X2)结果大于10之后,在增长一点对纵轴的贡献会很小。
在论文【8】中给出了比较直观的推导。这个算法是基于对数谱的,前端的框图如下:
我们只记住结果 Z ≈ m a x ( X , Y ) Z\approx max(X,Y) Z≈max(X,Y)
Bayesian概率模型
对贝叶斯的理解还停留在大学的贝叶斯公式层面上,随便搜了一下,仿佛打开了潘多拉的墨盒,bayesian statistics、bayesian inference、bayesian probability 还有bayesian theorem等等概念冒出来,就连贝叶斯公式都还没搞明白,这些东西是啥更加懵逼了。说简单点是基于bayesian条件概率公式,引入的一种建模分析方法,即利用先验知识,避免随便瞎猜,从这个角度就好理解为什么paper都说GMM是bayesian概率模型了,就是因为人们先验假设了随机变量符合混合高斯分布的特点,详细的参考文档有很多介绍,在噪声自适应的算法里,语音经过矢量量化,得出的高维数据通过训练(EM/KNN)或者通过其他手段,被classify成为混合的高斯模型,而这种方法可以理解成为贝叶斯方法,暂时理解这么多就够了。上图的注脚也有比较直观的说明。那在语音识别模型中如何和bayesian概率模型联系的呢?我们跟着论文【6】的足迹去揣测一下作者的建模思路,在理解论文之前,先对所谓的标签器(labeler)做些铺垫:
- 假设给你一张小狗的图片,给这个图片打个“小狗”的标签很容易;
- 如果让你打个是“柯基狗”还是“雪橇犬”的标签,就需要一些额外的知识了,而对于品种相近的狗狗,从一张照片上说他想谁的概率大一些,可能更合适。这时候标签和狗狗的种类就不是真实的一一对应了,会出现偏差;
- 如果出现100万张狗狗的照片(照片里还有猫和鸭子滥竽充数),按照品种分类的标签会和狗狗真实的品种之间存在偏差,加入我把照片推向海量无穷大,认为照片中标签出现的次数和狗狗品种在自然界中存在数量的比重会呈现一个联系,ok那么这时候就可以考虑两个事件的有趣关系了;
- 通常标签出现的次数作为统计学意义的概率,我们记做 p i p_i pi, i i i表示为某种狗狗的品种。
- 狗狗真实的属于哪一个类别无法知道,尤其各种狗狗杂居在一起,后代们你中有我,我中有你的,怎么定下来呢?于是抽血提取DNA,利用DNA(向量)片段来做检验,可以把DNA片段做个聚类,这样就可以算出某段DNA和哪类DNA的相似度(概率),我们用 X X X表示DNA特征向量,而对每一个狗狗的具体 x x x抽养值,都针对于每一类品种,有一个概率分布密度函数(这个可不一定是高斯的) f i ( x ) f_i(x) fi(x),简单的判断是,一维高斯情况下,采样值离直方图尖峰越近,就越接近这个类别。
- 我们希望利用之前照片上的标签(外观特征)和狗狗DNA片段来综合评定一下,于是乎就定义了这个联合分布函数 f ( x ) = ∑ i = 1 k p i f i ( x ) f(x)=\sum_{i=1}^kp_if_i(x) f(x)=i=1∑kpifi(x)
有了上述标签器的一些肤浅理解,我们在顺着论文的思路比较一下。
- 首先在理想无噪声的情况下,假设语音的原型已经不是一个d维简单的矢量 X X X,而是一个d维空间定义的概率密度函数,原始序列不能观察,所以一般认为是隐变量【6】,这里定义为 I I I,可能值为一个编码索引,这个编码索引作为原型序列的映射。即 I = i I=i I=i,意味着 X = x X=x X=x,那么这种混合模型可以定义为向量 X X X的边缘分布来表示: f ( x ) = ∑ i = 1 k p i f i ( x ) f(x)=\sum_{i=1}^kp_if_i(x) f(x)=i=1∑kpifi(x)在理想的无噪声环境下,选定标签 i i i等价于最大化条件概率 p ( i ∣ x ) p(i|x) p(i∣x),当选定了 X = x X=x X=x的条件,这就是所谓的MAP解码 i = a r g m a x p ( j ∣ x ) i=argmax\ p(j|x) i=argmax p(j∣x)这里其实已经告诉读者,建模的方法就是构建一个强相关的条件概率分布密度函数: f i ( x ) f_i(x) fi(x)根据联合概率表示的条件概率形式, p ( i ∣ x ) = p i f i ( x ) ∑ j = 1 k p j f j ( x ) p(i|x)=\frac{p_if_i(x)}{\sum_{j=1}^kp_jf_j(x)} p(i∣x)=∑j=1kpjfj(x)pifi(x)这个就是在观测到 x x x时,对应是标签 i i i的概率
- 在有噪声的情况下,出现了噪声变量,用同维的 Y Y Y来表示,但是根据HMM理论, ( I , X , Y ) (I,X,Y) (I,X,Y)都是隐变量,是无法直接观测到的,只能通过带噪的观测向量 Z = Ψ ( X , Y ) Z=\Psi(X,Y) Z=Ψ(X,Y)进行推算。如果是降噪,侧重点在于分开 X , Y X,Y X,Y,如果是识别侧重点是求出最大概率下的 I I I值。最大标签器方法就是通过观察,得出 Ψ = M A X \Psi=MAX Ψ=MAX,在损失精度的情况下(概率产生偏差),让运算变得非常简单。
- 上面这步化解了三个隐变量的复杂度,只用 ( I , Z ) (I,Z) (I,Z)模型来设计条件概率模型,仿照第一步再来一遍,选定标签 i i i等价于最大化条件概率 q ( i ∣ z ) q(i|z) q(i∣z),当选定了 X = z X=z X=z的条件,这就是所谓的MAP解码 i = a r g m a x q ( j ∣ z ) i=argmax\ q(j|z) i=argmax q(j∣z) q ( i ∣ z ) q(i|z) q(i∣z)作为当 Z = z Z=z Z=z时 I = i I=i I=i的条件概率公式 q ( i ∣ z ) = p i h i ( z ) ∑ j = 1 k p j h j ( z ) q(i|z)=\frac{p_ih_i(z)}{\sum_{j=1}^kp_jh_j(z)} q(i∣z)=∑j=1kpjhj(z)pihi(z)上文关键就是设计 h ( x ) h(x) h(x),相对于之前的 f ( x ) f(x) f(x),这个更加难以求取,但所欲的算法都是障眼法,铺垫了这么多,就是为了让 h ( x ) h(x) h(x)乖乖的现形。相对于 h ( x ) h(x) h(x)这种后验信息, f ( x ) f(x) f(x)作为先验知识可以利用统计概率,机器学习等方法近似求得(EM/K-MEANS),假设 d d d维 X X X变量的概率密度函数为: f i ( x ) = ∏ m = 1 d f i , m ( x ( m ) ) f_i(x)=\prod_{m=1}^d f_{i,m}(x(m)) fi(x)=m=1∏dfi,m(x(m))按照类似的方法定义噪声的该V领密度函数为: g ( x ) = ∏ m = 1 d g m ( y ( m ) ) g(x)=\prod_{m=1}^d g_{m}(y(m)) g(x)=m=1∏dgm(y(m))进一步的定义一个关于X概率分布函数 F i , m ( x ) = P r o b { X ( m ) ⩽ x ∣ I = i } F_{i,m}(x)=Prob\{X(m) \leqslant x |I=i\} Fi,m(x)=Prob{X(m)⩽x∣I=i}这是一个条件概率,即 I = i I=i I=i的条件下,另外关于噪声Y的概率分布函数 G m ( y ) = P r o b { Y ( m ) ⩽ y } G_{m}(y)=Prob\{Y(m) \leqslant y\} Gm(y)=Prob{Y(m)⩽y}以及受噪语音Z的概率分布函数 H i , m ( z ) = P r o b { Z ( m ) ⩽ z } H_{i,m}(z)=Prob\{Z(m) \leqslant z\} Hi,m(z)=Prob{Z(m)⩽z}这里用X的累计边缘分布还是有待推敲,假定这个理论正确的前提下,继续考虑条件 I = i I=i I=i的概率分布函数推导如下: H i , m ( z ) = P r o b { Z ( m ) ⩽ z } = P r o b { X ( m ) ⩽ z , Y ( m ) ⩽ z } = F i , m ( z ) G m ( z ) H_{i,m}(z)=Prob\{Z(m) \leqslant z\}\\=Prob\{X(m) \leqslant z,Y(m) \leqslant z \}\\=F_{i,m}(z)G_{m}(z) Hi,m(z)=Prob{Z(m)⩽z}=Prob{X(m)⩽z,Y(m)⩽z}=Fi,m(z)Gm(z),对 H i , m ( z ) H_{i,m}(z) Hi,m(z)求 z z z的偏导数,最后回推出第 i i i个标签的概率密度函数 h i , m ( z ) = f i , m ( z ) G m ( z ) + F i , m ( z ) g m ( z ) h_{i,m}(z)=f_{i,m}(z)G_m(z)+F_{i,m}(z)g_m(z) hi,m(z)=fi,m(z)Gm(z)+Fi,m(z)gm(z)后验概率密度函数就这样被先验的方法求得了,而先验的密度函数通常按照统计方法,假设为混合高斯模型。
结语
至此,MIXMAX概率模型推导解析完毕,这个模型具有噪声自适应的特点,运算复杂度也不高,还是很有价值的。有兴趣的可以想象这些推导如何与那张beyasian的标注来对应。
参考文档
1.贝叶斯方法概要与变分推断
2.知识分享-贝叶斯模型思想与实战
3.参数估计方法简论(贝叶斯估计、最大后验概率估计、极大似然估计)
4.Materials of the Summer school on Deep learning and Bayesian methods 2019
5.EM算法详解
6.SPEECH RECOGNITION USING NOISE-ADAPTIVE PROTOTYPES, Arthur Nadas,
7.Continuous Speech Recognition with Autolnaticdly Selected Acoustic Prototypes Obtained by either Bootstrapping or Clustering, Nadas,
8.Speech Enhancement Using a Mixture Maximum Model,David Burshtein,