摘要
在本文中,我们提出了一种新的损失函数,用于隐马尔可夫模型的整体风险标准评估。对于连续语音识别,用于整体风险标准评估的所提出的损失函数旨在直接最大化训练数据上的单词识别准确性。我们为HMM参数提出了重新估计方程,该方程是使用扩展Baum-Welch算法(一种计算HMM参数的方法)推导出的。通过所提出的方法对HMM进行训练,已将TIMIT数据库上的音素识别任务的单词识别错误率降低了17.3%。
1.介绍
当前大多数自动语音识别器都使用最大后验(MAP)解码器,该解码器根据以下贝叶斯决策规则在给定声学观察结果
ooo的情况下选择句子
w^:
w^=wargmax P(w∣ooo)=wargmax P(ooo∣w)P(w).(1)
声学模型提供条件概
P(ooo∣w),语言模型提供先验概率
P(w)。识别自然语音时,
P(ooo∣w)和
P(w)的真实分布是未知的。因此,我们必须选择这些分布的一些参数表示。当前,声学模型概率的最流行的参数表示是基于隐马尔可夫模型(HMM)的。
在基于HMM模型的识别器训练期间,目的是估计HMM参数集
Θ,从而可能获取最低的识别错误率。估计HMM参数的最流行方法是最大似然估计(MLE)。给定训练数据中的
R个声学观测值,MLE中使用的目标函数为:
fMLE(Θ)=r=1∏RP(ooor∣Θr).(2)
在此,
P(ooor∣Θr)是
P(ooor∣wr)的HMM参数表示。
Nadas已表明,在某些限制下,MLE将产生最佳的解码器。但是,在实际的语音识别应用中几乎从未遇到过这些限制。因此,近年来已经提出并成功地实施了用于HMM参数估计的替代方法。最常用的两个是最大交互信息估计(MMIE)和最小分类误差估计(MCEE)。
最近,Na等人提出了一种新的训练方法,在本文中我们将其称为总体风险标准估计(ORCE)。它直接来自贝叶斯决策理论的最小错误率分类。Na等人提出的ORCE中的目标函数是:
fORCE(Θ)=r=1∑R(1−P(wr∣ooor))p(ooor).(3)
在[8]中描述的实验中,证明了ORCE在孤立数字识别任务中的有用性。
在本文中,我们扩展了Na等人所做的工作,用于连续语音识别的情况。代替使用[8]中的零一损失函数来推导ORCE目标函数,我们提出了一个新的损失函数,该函数取决于错误的数量(替换,插入和删除)。
2.总体风险标准
(1)ORCE
令
W={w1,w2,…,wM}是
M个可能句子的有限集合(模型实际输出集合),且
A={α1,α2;…,αM}是M可能动作的有限集合(模型真实标签集合)。在给定声学观察
ooo的情况下,动作
αi将选择句子
wi作为识别结果。我们假设唯一可能的识别结果是
M个句子之一(我们不允许拒绝结果)。令
λ(αi∣wj)为当真实句子为
wj时采取行动
αi所造成的损失。给定一个声学观察
ooo,与动作
αi相关的预期损失为:
R(αi∣ooo)=m=1∑Mλ(αi∣wm)P(wm∣ooo).(4)
让我们假设给出了决策函数
α(ooo)(在我们的案例中,这是在方程式(1)中定义的贝叶斯决策规则)。那么,整体风险是:
R=∫R(α(ooo)∣ooo)p(ooo)dooo,(5)
其中,积分扩展到在整个声学观察空间。对于训练数据库中有限数量的
R个声学观测,我们可以将表达式(5)重写为:
R=r=1∑RR(α(ooor)∣ooor)p(ooor)=r=1∑Rm=1∑Mλ(α(ooor)∣wm)P(wm∣ooor)p(ooor).(6)
我们假设
p(ooor)是统一的,因为它不依赖于参数集
Θ。通过应用贝叶斯规则,并用其HMM参数化
P(ooor∣Θr)替换
P(ooor∣wr),我们得出总体风险标准的最终表达式:
fORCE(Θ)=r=1∑R∑m=1MP(ooor∣Θr)P(wm)∑m=1Mλ(α(ooor)∣wm)P(ooor∣Θr)P(wm).(7)
等式(7)中可替换的是损失函数
λ(⋅)的选择。通常,选择所谓的对称或零一损失函数,该函数不会将损失分配给正确的决策,而是将损失分配给任何错误的决策:
λ(αi∣wj)={01i=ji=ji,j=1,…,M.(8)
使用这种损失函数,Na等人推导了方程(3)中定义的目标函数。
(2)SMBR
当使用零一损失函数时,所有错误的权重均相同,这是孤立单词识别的合理选择。在连续语音识别中,识别性能的常用标准是单词识别准确度,它取决于每个句子中被替换的S,插入的I和删除的D单词的数量:
%Accuracy=NN−S−I−D.(9)
这里,
N是识别出的句子中的单词总数。
在连续语音的情况下,在等式(7)中使用零一损失函数识别将导致同等权重被分配给所有不正确的序列,而与被替换,插入和删除的单词的数量无关。因此,我们提出了一种不同的损失函数,该函数根据错误序列中的错误数量对不正确的序列进行惩罚,并且在我们看来,与零一损失函数相比,所提出的损失与识别精度的相关性更高。提出的损失函数由下式给出:
λ(αi∣wj)={0e(i,j)i=ji=ji,j=1,…,M.(10)
这里
e(i,j)是将
wi与
wj比较时计算出的错误数(替换,插入和删除)。可以使用匹配
wi和
wj的动态规划算法来计算
e(i,j)。与零一损失函数(不区分错误句子)相反,提出的损失函数会根据单词识别准确度的不正确性对句子进行惩罚。如果在给定的训练集上将具有提出的损失函数的目标函数(7)最小化,则该集合(以及希望在测试集上)的单词识别精度也相应提高。
3.训练算法