基于任务的焦点损失提升多语言元学习语音识别方法与流程

文档序号:31698531发布日期:2022-10-01 06:50阅读:94来源:国知局
基于任务的焦点损失提升多语言元学习语音识别方法与流程

1.本发明涉及语音识别技术领域,尤其涉及一种基于任务的焦点损失提升多语言元学习语音识别方法。


背景技术:

2.多语言预训练中,当从不同的源语言中学习时,不同种类的语言有不同的训练数据规模和不同的语音系统,造成任务难度的不平衡。这样一来,模型的初始化就倾向于接近大尺度和容易的语言,而偏离了小尺度和困难的语言,使得模型学习到的初始化不是最佳的,从而降低了对目标语言的泛化性。


技术实现要素:

3.针对多语言语音识别中存在因任务难度不平衡造成模型泛化性较低的问题,本发明提供一种基于任务的焦点损失提升多语言元学习语音识别方法,引导模型专注于那些困难的任务,从而使模型的初始化在各种语言之间更加平衡。
4.本发明提供的基于任务的焦点损失提升多语言元学习语音识别方法,采用端到端的语音识别网络架构,具体包括:
5.步骤1:初始化语音识别模型f
θ
,输入原始语音特征序列(x1,x2,...,x
t
);
6.步骤2:针对从多语言数据集中抽取的任务ti,将所述任务ti分为支持集和查询集表示第i种语言数据;
7.步骤3:计算任务ti的asr损失,使用梯度下降得到在支持集上更新后的参数θi;
8.步骤4:使用在支持集上更新后的参数θi在查询集上计算查询损失
9.步骤5:根据任务ti的查询损失计算得到任务ti的难任务调节器m
tfl
(θ),所述难任务调节器m
tfl
(θ)用于表示任务ti的学习难度等级;其中,查询损失越大,则对应的难任务调节器m
tfl
(θ)越大;
10.步骤6:重复n次步骤2至步骤5,计算得到n个任务对应的查询损失和难任务调节器;
11.步骤7:基于所有n个任务对应的查询损失和难任务调节器计算得到基于任务的焦点损失l
tfl

12.步骤8:使用所述焦点损失l
tfl
更新语音识别模型f
θ
的元参数θ;
13.步骤9:重复步骤2至步骤8,直至更新后的语音识别模型f
θ
满足给定要求。进一步地,步骤5中,难任务调节器m
tfl
(θ)的计算公式为:
[0014][0015]
其中,k≥0和γ≥0为可调超参数。
[0016]
进一步地,步骤7中,基于任务的焦点损失l
tfl
的计算公式为:
[0017][0018]
其中,是基础学习器的损失函数。
[0019]
进一步地,步骤8中,元参数θ的更新公式为:
[0020][0021]
其中,β表示学习率。
[0022]
进一步地,所述端到端的语音识别网络架构具体采用ctc-注意力联合架构;
[0023]
对应的,步骤3中,任务ti的asr损失的计算公式为:
[0024]
l=λl
ctc
+(1-λ)l
att
[0025]
其中,l
ctc
为ctc损失,l
att
为解码损失,超参数λ表示l
ctc
的权重。
[0026]
本发明的有益效果:
[0027]
目前的多语言元学习(mml-asr)方法中忽略了任务之间的不平衡,导致模型初始化倾向于简单且数据量大的语言而远离困难且数据量小的语言,从而对新任务的泛化能力下降,如图4(a)所示。本发明提出的基于任务的焦点损失改进多语言元学习对任务不平衡的忽略,基于每个任务的查询损失引入了难任务调节器,引导模型更加关注难任务,并且为了充分利用难任务的数据,同时使用支持集梯度与查询集梯度来更新元参数。此外,本发明还在样本层面解释了难任务调节器的意义,经过公式推导,发现它与任务内样本的预测概率乘积成反相关。通过使用本发明方法,可以使模型学习到的初始化更加均衡,如图4(b)所示,更加充分地利用了所有源语言的知识,从而能够有效的对目标语言进行泛化。
附图说明
[0028]
图1为本发明实施例提供的基于任务的焦点损失提升多语言元学习语音识别方法的流程示意图;
[0029]
图2为本发明实施例提供的mml-asr和tfl-mml-asr的示意图;
[0030]
图3为本发明实施例提供的基于ctc-注意力联合架构(joint ctc-attention)多语言学习模型结构示意图;
[0031]
图4为本发明实施例提供的使用基于任务的焦点损失后的损失与原损失的关系图;
[0032]
图5为本发明实施例提供的在ipara babel数据集和openslr数据集上的多语言预训练验证集字符错误率(%);
[0033]
图6为本发明实施例提供的在25%越南语下不同方法微调曲线;
[0034]
图7为本发明实施例提供的不同参数下tfl-mml-asr的验证集字符错误率;
[0035]
图8为本发明实施例提供的在ipara babel数据集和openslr数据集上的多语言预训练在有无支持集梯度下的验证集字符错误率(%)。
具体实施方式
[0036]
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附
图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]
在像maml这样的元学习器中,当一个任务的查询损失很大时,意味着模型不能很好地学习这个任务,本发明认为这样的任务是一个难任务。而对于这些难任务,本发明认为最好同时使用该任务的支持集梯度和查询集梯度来学习它,这样做的原因在于:本发明认为有两个原因导致任务的查询损失较大,一个原因是模型在支持集上学习得不好,另一个原因是尽管在支持集上训练得比较好,但模型在查询集上表现得很差。对于第一个原因,引入支持集梯度显然是有用的。对于第二个原因,任务的查询损失较大意味着任务的难度;此时,最好使用更多的数据来再次训练,特别是在很少的实例的情况下。因此,引入支持集梯度来更新难任务的元参数是很有好处的。特别是,我们希望使模型更专注于难任务,这就意味着需要提高有大查询损失的任务的权重。
[0038]
基于上述内容,本发明构思主要包括两个方面:一方面在外循环的查询损失之和中引入难任务调节器m
tfl
(θ)。另一方面同时使用支持集和查询集上的难任务的损失梯度来更新元学习器的参数。
[0039]
基于上述的发明构思,如图1所示,本发明实施例提供一种基于任务的焦点损失提升多语言元学习语音识别方法,该方法采用端到端的语音识别网络架构进行多语言语音识别,本发明实施例中,以采用如图2所示的ctc-注意力联合架构作为端到端的语音识别网络架构为例,该网络架构分为三部分:transformer模型中的编码器、解码器,以及连接主义时间分类(ctc)模块;其中,ctc模块可以指导模型学习良好的对齐方式并提高收敛速度。
[0040]
所述语音识别方法具体包括以下步骤:
[0041]
s101:初始化语音识别模型f
θ
,输入原始语音特征序列(x1,x2,...,x
t
);
[0042]
s102:针对从多语言数据集中抽取的任务ti,将所述任务ti分为支持集和查询集表示第i种语言数据;表示包含n种不同语言;
[0043]
s103:计算任务ti的asr损失,使用梯度下降得到在支持集上更新后的参数θi;
[0044]
具体地,由于本发明实施例中采用ctc-注意力联合架构进行多语言语音识别,因此,任务ti的asr损失的计算公式为:
[0045]
l=λl
ctc
+(1-λ)l
att
[0046]
其中,l
ctc
为ctc损失,l
att
为解码损失,超参数λ表示l
ctc
的权重。
[0047]
在内循环中,基础学习器从初始元学习器f
θ
学习每个任务的模型。对任务ti而言,利用任务ti的支持集通过对的梯度下降计算,从θ更新模型参数θi:其中,是基础学习器的损失函数,α是内循环的学习率。
[0048]
s104:使用在支持集上更新后的参数θi在查询集上计算查询损失
[0049]
s105:根据任务ti的查询损失计算得到任务ti的难任务调节器m
tfl
(θ),所述难任务调节器m
tfl
(θ)用于表示任务ti的学习难度等级;
[0050]
作为一种可实施方式,难任务调节器m
tfl
(θ)的计算公式为:
[0051][0052]
其中,k≥0和γ≥0为可调超参数。
[0053]
具体地,以采用ctc-注意力联合架构作为语音识别网络结构为例,设计上述的难任务调节器m
tfl
(θ)的合理性分析过程如下:
[0054]
(1)asr损失是ctc损失和解码损失的加权和,ctc损失被定义为:其中p(y|x)表示产生x的所有对齐路径y的输出概率的累积和;s表示一个任务中相应样本的总数。因此,exp(-kl
ctc
)可以表示为:
[0055][0056]
(2)解码损失采用交叉熵损失,可定义为:其中,i是输出层节点索引,是第t帧的真实标签,y(t)是第t帧的激活输出,t是特征序列帧的数量。对于分类问题,是独热向量。因此,exp(-kl
att
)可以表示为:
[0057][0058]
其中,j表示真实标签所对应的索引,yj(t)表示在j处的t帧输出概率值。
[0059]
(3)对于asr模型,难任务调节器(1-exp(-kl))
γ
可以表示为:
[0060][0061]
因为p(y|x)≤1,yj(t)≤1,且0≤λ≤1,所以需要满足k≥0,γ≥0。此外,k和γ是超参数,分别用于调整所有样本的预测概率的乘积和对困难任务的关注程度。
[0062]
从exp(-kl
ctc
)和exp(-kl
att
)的计算公式来看,当任务内样本的预测概率p
t
较低时,表明该任务很难,也就是说,m
tfl
(θ)与任务中每个样本的预测概率的乘积成反相关。所以难任务的调节器(1-exp(-kl))
γ
将被调整为较大,而难任务调节器越大,则提升了元学习模型对难任务的关注度,反之亦然,如此表明了本发明实施例设计的m
tfl
(θ)的有效性和合理性。加入不同取值的超参数k和γ的难任务调节器后的新损失函数如图3所示。
[0063]
从图3中可以发现,当γ变大时,查询损失小的任务会被更多地忽略。而当k变小时,转化损失曲线会更平坦。因此需要为不同大小的损失设置适当的超参数。
[0064]
值得注意的是,不同的任务需要有相同规模的样本。在语音识别中,序列长度影响着所有样本的乘积。所以在实际应用中,可以在训练过程中使用长度帧数排序的方法来组合任务,如此每批任务中包含的样本的序列长度几乎是相等的。
[0065]
s106:重复n次步骤s102至步骤s105,计算得到n个任务对应的查询损失和难任务调节器;
[0066]
s107:基于所有n个任务对应的查询损失和难任务调节器计算得到基于任务的焦点损失l
tfl

[0067]
作为一种可实施方式,基于任务的焦点损失l
tfl
的计算公式为:
[0068][0069]
其中,是基础学习器的损失函数。
[0070]
s108:使用所述焦点损失l
tfl
更新语音识别模型f
θ
的元参数θ;
[0071]
作为一种可实施方式,元参数θ的更新公式为:
[0072][0073]
其中,β表示外循环的学习率。
[0074]
s109:重复步骤s102至步骤s108,直至更新后的语音识别模型f
θ
满足给定要求。例如,在验证集上评估模型的准确率,保留最好的5个验证集准确率对应的模型。
[0075]
本发明实施例基于任务的焦点损失来改进元学习对所有任务同等处理而忽略的任务间不平衡问题,该方法通过使用一个基于任务查询损失的难任务调节器来引导模型关注更难的任务,查询损失越大,认为任务越难,因此需要增加对任务的关注度。并且在样本层面上分析了难任务调节器的意义,发现它与任务内所有样本的预测概率乘积成反相关,当任务较难时,任务内样本的预测概率较低,而难任务调节器越大,则提升了元学习模型对难任务的关注度,证实了它的有效性。
[0076]
如图4所示的多语言元学习mml-asr与本发明的基于任务的焦点损失多语言元学习tfl-mml-asr的示意图,图中,虚线箭头指出的圆圈表示源语言,虚线表示多语言预训练,实线箭头指向的圆圈表示目标语言,实线表示从初始化θ到目标语言的适应路径;由图4可知,本发明的tfl-mml-asr使得初始化θ到各语言的路径基本相同,解决了任务间不平衡的问题。
[0077]
为了验证本发明方法的有效性,本发明还提供有下述实验。
[0078]
分别在ipara babel和openslr两个数据集上进行了实验。实验结果表明本发明方法能够有效提升预训练过程以及对新任务的适应,无论是在最终结果还是在收敛速度上都有极大的提升。
[0079]
实验设置:使用kaldi工具包进行特征提取,以获得40维梅尔频谱系数(mfcc)特征和在25毫秒窗口内每10毫秒计算一次的3维基音特征。语音识别模型使用一个6层的vgg卷积网络,transformer由4个编码器和2个解码器组成。将ctc损失的权重λ设置为0.3。难任务调节器将ipara babel的超参数k调整为1,γ调整为5,将openslr的k调整为1,γ调整为1。在推理过程中,使用波束搜索获得最佳序列。当使用bpe时,设定词汇量为9000。除了元学习中的内循环,使用sgd算法。对于其余的模型优化,使用adam。将热启动步骤设置为12000,k为0.5。在实验中,使用字符错误率(cer)作为标准,并保留五个最佳模型。最后,对最好的五个模型参数进行平均,作为最终模型。在训练中,使用频谱增强和速度扰动。对于openslr,将热启动步骤设置为1000,k为0.5。
[0080]
预训练效果:比较了多语言迁移学习asr(mtl-asr)、多语言元学习asr(mml-asr)和本发明的基于任务的焦点损失多语言元学习(tfl-mml-asr)在预训练期间的收敛速度和收敛性能。如图5所示,其中,tfl-mml-asr在收敛速度和最终性能都优于mml-asr和mtl-asr。与mtl-asr不同,本发明方法随着语言数量的增加仍然有效。这是由于元学习整合了每
个任务的信息并获得了更好的初始化。而tfl-mml-asr通过专注于难任务,使其在多个任务上的表现更好。
[0081]
微调性能:比较了随机初始化、mtl-asr、mml-asr和tfl-mml-asr在babel和openslr上对目标语言进行微调的性能。如表1所示,本发明的tfl-mml-asr在所有语言上都优于mml-asr。
[0082]
表1 不同目标语言下的验证集字符错误率(%)
[0083][0084]
从表1中,发现模型的改进并不像预期的那样好。原因在于数据的充足,尤其是在babel上有大约80小时的训练数据。因此,进一步在10%、25%和50%目标语言数据的不同比例的三种设置下,比较了这些方法的性能,实验结果如表2所示。
[0085]
表2 不同规模的目标语言下的验证集字符错误率(%)
[0086][0087][0088]
对于babel数据集,tfl-mml-asr在少量学习中更为有效。与元学习相比,在微调25%的越南语训练数据时,它将cer提高了约12%,在微调10%和50%的训练数据时,提高了约7%-8%。还可以看出,tfl-mml-asr对其他低资源目标语言如斯瓦希里语和泰米尔语也非常有效。
[0089]
对于openslr数据集,当只用10%进行微调时,模型无法收敛。因此,比较了25%和50%目标语言数据的微调结果,可以发现在所有不同规模的语言中,tfl-mml-asr的表现都
优于mml-asr。
[0090]
除了收敛性能外,在微调过程中,tfl-mml-asr的收敛速度也比mml-asr快。所有语言的微调过程都呈现出相同的趋势。此处只展示了越南语在25%下的微调实验,如图6所示,它显示了no-pretrain、mml-asr和tfl-mml-asr三种方法在历时中的有效cer曲线。可以看到,元学习方法有效地提高了低资源语音识别的性能。然而,tfl-mml-asr在适应目标语言方面更快、更好。
[0091]
实验分析:在tfl-mml-asr中,引入了一个难任务调节器m
tfl
(θ)来引导模型专注于难任务。难任务调节器中有两个超参数k和γ,由于k和γ的选择影响了tfl-mml-asr的性能,进一步对参数的选择进行了探索。
[0092]
如图7所示,比较了tfl-mml-asr在ipara babel和openslr上不同参数k和γ下的性能。在ipara babel上,当保持k不变并设置为1时,通过调整γ,模型的性能会逐渐变好。当γ设置为5时,模型的表现最好,随着γ的增加,模型的表现开始下降。当γ保持不变并设置为5时,k的表现类似,设置为1可获得最佳结果。在openslr上,可以观察到类似的结果,不同之处仅在于,最佳的k和γ取值与在babel数据集中最佳的k和γ取值不同。
[0093]
图7所示结果与本发明方法的初始动机是一致的,即:γ的增加意味着损失的权重在更大程度上倾向于那些困难任务。然而,当γ继续上升时,性能就会下降。这可以解释为,高γ的模型过度忽略了低损失的任务,这损害了模型的整体性能,因此模型表现不佳。当k增加时,任务的样本预测概率的乘积会被调整。当任务内的样本预测概率很小时,降低k可以帮助模型专注于更难的任务。当k太小时,模型就会过度关注困难的任务,导致整体性能下降,反之亦然。
[0094]
因此,在实际应用中,需要结合查询损失值来配置超参数k和γ,并选择一个合适的转换损失,这样它就不会忽略简单的训练任务,而可以专注于困难的任务。
[0095]
在tfl-mml-asr中增加支持损失的影响:如图8所示,一方面,引入支持度梯度的元学习在ipara babel中是有用的,但在openslr中不是。这表明,使用支持度梯度来更新元参数并不总是成功的。另一方面,在ipara bebal和openslr中,在tfl-mml-asr中引入支持梯度比不这样做要好。如果没有支持度梯度,本发明方法在openslr上的表现比元学习更差。本发明认为这是因为,openslr中的数据很少,而模型在支持集上的学习效果很差。如果只是鼓励模型专注于难任务,并不能提高难任务的性能。
[0096]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1