声学模型学习笔记(五) SDT(MMI/BMMI/MPE/sMBR)

来源:互联网 发布:李约瑟问题知乎 编辑:程序博客网 时间:2024/05/16 14:28

DNN训练使用的CE准则是基于每一帧进行分类的优化,最小化帧错误率,但是实际上语音识别是一个序列分类的问题,更关心的是序列的准确性。所以引入SDT(sequence-discriminative training),训练准则更符合实际,有利于提升识别率。常用的准则包括MMI/BMMI、MPE、MBR等。

准则 目标函数 CE 帧错误率 MMI/BMMI 句子正确率 MPE phone错误率 sMBR 状态错误率

MMI

MMI(maximum mutual information)准则最大化观察序列分布和word序列分布之间的互信息,减小句子错误率。
假设观察序列om=om1,...,omTm,word序列wm=wm1,...,wmNm,其中m表示utterance,Tm表示帧数,Nm表示word个数。训练集为S={(om,wm)|0mM}MMI准则可以表示如下:

JMMI(θ;S)=m=1MJMMI(θ;om,wm)=m=1MlogP(wm|om;θ)

=m=1Mlogp(om|sm;θ)kP(wm)wp(om|sw;θ)kP(w)

其中k表示acoustic scale,θ表示模型参数,sm表示状态序列。物理意义可以理解为:分子表示准确结果对应路径的总得分(声学和语言),分母表示所有路径对应的得分总和(为了计算上的可操作性,实际用lattice简化表示)。模型参数的梯度可以表示如下:
JMMI(θ;om,wm)=mtzLmtJMMI(θ;om,wm)zLmtθ=mte¨LmtzLmtθ

其中zLmt表示softmax层的输入(没有做softmax运算),跟CE准则的不同体现在e¨Lmt,进一步计算如下:
e¨Lmt(i)=zLmt(i)JMMI(θ;om,wm)

=rJMMI(θ;om,wm)logp(omt|r)logp(omt|r)zLmt(i)

第一部分

JMMI(θ;om,wm)logp(omt|r)

=logp(om|sm)kP(wm)wp(om|sw)kP(w)logp(omt|r)

=klogp(om|sm)logp(omt|r)logwp(om|sw)kP(w)logp(omt|r)

考虑到p(om|sm)=p(om1|sm1)p(om2|sm2)...p(omTm|smTm),所以上式第一项可以简化为:
kp(om|sm)logp(omt|r)=k(δ(r=smt))
第二项可以进一步求导:
logwp(om|sw)kP(w)logp(omt|r)

=logwelogp(om|sw)kP(w)logp(omt|r)

=1welogp(om|sw)kP(w)welogp(om|sw)kP(w)logp(omt|r)

=1wp(om|sw)kP(w)welogp(om|sw)kP(w)logp(om|sw)kP(w)logp(omt|r)

=1wp(om|sw)kP(w)wp(om|sw)kP(w)δ(smt=r)

=w:st=rp(om|sw)kP(w)wp(om|sw)kP(w)

综合前面的第一项和第二项,可得:
JMMI(θ;om,wm)logp(omt|r)=k(δ(r=smt)w:st=rp(om|sm)kP(w)wp(om|sm)kP(w))

第二部分

考虑到p(x|y)p(y)=p(y|x)p(x),第二部分可以表示如下:

logp(omt|r)zLmt(i)

=logp(r|omt)logp(r)+logp(omt)zLmt(i)

=logp(r|omt)zLmt(i)

其中p(r|omt)表示DNN的第r个输出,
p(r|omt)=softmaxr(zLmt)=ezLmt(r)jezLmt(j)

所以,
logp(omt|r)zLmt(i)=δ(r=i)

按照文章的推导应该得到这个结果,但是实际上分母还包含zLmt(i),是不是做了近似认为分母是常量,这一步有疑问????

综合上面两部分,可以得到最终的公式:

e¨Lmt(i)=k(δ(i=smt)w:st=ip(om|sm)kP(w)wp(om|sm)kP(w))

Boosted MMI

JBMMI(θ;S)=m=1MJBMMI(θ;om,wm)=m=1MlogP(wm|om)wP(w|om)ebA(w,wm)

=m=1MlogP(om|wm)kP(wm)wP(om|wm)kP(w)ebA(w,wm)

相比于MMI,BMMI在分母上面增加了一个权重系数ebA(w,wm),一般b=0.5,A(w,wm)wwm之间准确率的度量,可以是word/phoneme/state级别的准确率。
物理意义:
参考[3]给出的解释,We boost the likelihood of the sentences that have more errors, thus generating more confusable data. Boosted MMI can viewed as trying to enforce a soft margin that is proportional to the number of errors in a hypothesised sentence。
结合参数理解,就是wwm越接近(错误的word越少),ebA(w,wm)这个权重越小,相反,权重会越大,增加了数据的困惑度。
通过可以推导出误差信号:
e¨Lmt(i)=k(δ(i=smt)w:st=ip(om|sw)kP(w)ebA(w,wm)wp(om|sw)kP(w)ebA(w,wm))

MPE/sMBR

MBR(minimum Bayes risk)的目标函数是最小化各种粒度指标的错误,比如MPE是最小化phone级别的错误,sMBR最小化状态的错误。目标函数如下:

JMBR(θ;S)=m=1MJMBR(θ;om,wm)=m=1MwP(w|om)A(w,wm)

=m=1MwP(om|sw)kP(w)A(w,wm)wP(om|sw)kP(w)

其中A(w,wm)表示两个序列之间的差异,MPE就是正确的phone的个数,sMBR是指正确的state的个数。求导可得:
e¨Lmt(i)=zLmt(i)JMBR(θ;om,wm)

=rJMBR(θ;om,wm)logp(omt|r)logp(omt|r)zLmt(i)

第一部分

对于MPE,参考文献[4]:
首先将JMBR(θ;om,sm)分子分母求和部分分为两块,rswrsw

JMBR(θ;om,sm)=sP(om|s)kP(s)A(s,sm)sP(om|s)kP(s)

=s:rsP(om|s)kP(s)A(s,sm)+s:rsP(om|s)kP(s)A(s,sm)s:rsP(om|s)kP(s)+s:rsP(om|s)kP(s)

- 如果满足rs,那么导数满足以下关系:
P(om|s)klogp(omt|r)=eklogP(om|s)logp(omt|r)=kP(om|s)k

- 如果不满足rs,那么导数将为0:
P(om|s)klogp(omt|r)=0

不难推出:

JMBR(θ;om,sm)logp(omt|r)

=ks:rsP(om|s)kP(s)A(s,sm)sP(om|s)kP(s)ksP(om|s)kP(s)A(s,sm)sP(om|s)kP(s)s:rsP(om|s)kP(s)sP(om|s)kP(s)

上面的等式可以简化为以下形式:
JMBR(θ;om,sm)logp(omt|r)=kγ¨DENmt(r)(A¯m(r=smt)A¯m)

各个部分的定义如下:
γ¨DENmt(r)=s:rsP(om|s)kP(s)sP(om|s)kP(s)

A¯m=sP(om|s)kP(s)A(s,sm)sP(om|s)kP(s)

A¯m(r=smt)=E(A(s,sm))=s:rsP(om|s)kP(s)A(s,sm)s:rsP(om|s)kP(s)

第一项表示occupancy statistics
第二项表示lattice中所有路径的平均准确率
第三项表示lattice中所有经过r的路径的平均准确率,是A(s,sm)的均值,可以将三个三项合并起来进行还原就很容易里面均值的含义。

第二部分

第二部分和MMI的一致

tricks

lattice generation

区分性训练时生成高质量的lattice很重要,需要使用最好的模型来生成对应的lattice,并且作为seed model。

lattice compensation

如果lattice产生的不合理的话,会导致计算出来的梯度异常,比如分子的标注路径没有在分母中的lattice出现,这种情况对于silience帧尤其常见,因为silience经常出现在分子的lattice,但是很容易被分母的lattice忽略。有一些方法可以解决这种问题:
- fame rejection,直接删除这些帧
- 根据reference hypothesis修正lattice,比如在lattice中人为地添加一下silience边

frame smoothing

SDT很容易出现overfitting,两方面原因
- sparse lattice
- sdt的squence相比于frame增加了建模的维度,导致训练集的后验概率分布更容易跟测试集出现差异

可以修改训练准则来减弱overfitting,通过结合squence criteria和frame criteria来实现:

JFSSEQ(θ;S)=(1H)JCE(θ;S)+HJSEQ(θ;S)

H成为smoothing factor,经验值设为4/510/11

learning rate

SDT的学习率相比于CE要下,因为
- SDT的起点一般基于CE训练出来的model
- SDT训练容易出现overfitting

criterion selection

sMBR效果相比其他会好一点,MMI比较容易理解和实现。

noise contrastIve estimation

NCE可以用于加速训练

参考

[1]《automatic speech recognition a deep learning approach》 chapter8
[2]Sequence-discriminative training of deep neural networks
[3]Boosted MMI for model and feature-space discriminative training
[4]discriminative training for large vocabulary speech recognition {daniel povey的博士论文chapter6}

2 0
原创粉丝点击