一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

元对抗学习提升多语言预训练与低资源语音识别的方法与流程

2022-11-30 13:07:19 来源:中国专利 TAG:


1.本发明涉及语音识别技术领域,尤其涉及一种元对抗学习提升多语言预训练与低资源语音识别的方法。


背景技术:

2.在现实世界的场景中,由于不同语言的规模和难度,它们之间存在着明显的差异。事实上,在现有的多语言预训练方法中,由于缺乏对多语言预训练的限制,asr模型会更倾向于某些更容易和有更多数据的源语言。并且,由于在多语言预训练中没有任何限制,在不同语言中具有相似含义的单词和短语在语义空间中可能是遥远的,这将影响asr模型很难从不同语言中学习共同的语义信息。


技术实现要素:

3.针对不同语言数据规模与难度差异大导致asr模型容易对一些语言产生倾向性以及不容易学习多种语言之间的共享语义空间的问题,本发明提供一种元对抗学习提升多语言预训练与低资源语音识别的方法,可以缩小不同语言在语义空间中的差距。
4.本发明提供的一种元对抗学习提升多语言预训练与低资源语音识别的方法,采用ctc-注意力联合的端到端语音识别网络架构,在端到端语音识别网络架构中的编码器的输出端添加语言识别器,在元学习外循环中利用所述语言识别器与更新的语音识别模型对抗,引导更新的语音识别模型产生与语言无关的表征,缩小不同语言在语义空间中的差距;所述语言识别器由浅层至深层依次包括第一linear层、第一relu层、第二linear层、第二relu层、第三linear层和softmax层。
5.进一步地,所述编码器的输出端和所述语言识别器之间还包括梯度反转层。
6.进一步地,采用公式(5)作为整体的损失函数:
7.minl=min(l
asr-μl
adv
)
ꢀꢀ
(5)
8.其中,l
asr
表示语音识别损失,l
adv
表示语言识别损失,μ为语言识别损失的比重。
9.进一步地,该方法具体包括:
10.步骤1:初始化语音识别模型f
θ
,输入原始语音特征序列(x1,x2,...,x
t
);
11.步骤2:针对从多语言数据集中抽取的任务ti,将所述任务ti分为支持集和查询集表示第i种源语言数据;
12.步骤3:计算任务ti的asr损失,使用梯度下降得到在支持集上更新后的参数θi;
13.步骤4:使用在支持集上更新后的参数θi在查询集上计算语音识别查询损失与语言识别查询损失
14.步骤5:重复n次步骤2至步骤4,计算得到n个任务对应的语音查询损失和语言识别查询损失;
15.步骤6:根据n个任务对应的语音识别查询损失和语言识别查询损失更新解码器和ctc模块参数θ
ctc-att
、编码器参数θ
enc
和语言识别器参数
16.步骤7:重复步骤2至步骤6,直至更新后的解码器和ctc模块参数θ
ctc-att
、编码器参数θ
enc
满足给定要求。
17.进一步地,步骤6中,采用公式(6)更新解码器和ctc模块参数θ
ctc-att

[0018][0019]
其中,β表示元学习外循环的学习率。
[0020]
进一步地,步骤6中,采用公式(7)更新编码器参数θ
enc

[0021][0022]
其中,表示语言识别器,β表示元学习外循环的学习率。
[0023]
进一步地,步骤6中,采用公式(8)语言识别器参数
[0024][0025]
其中,表示语言识别器,β表示元学习外循环的学习率。
[0026]
进一步地,将语言识别器的输出描述为向量x,x∈ωb×
t
×n,其中b表示是批量大小,t表示原始语音特征序列长度,n表示语言的数量;
[0027]
对时间维度进行求和,并计算z'=e(x),z'∈ωb×n,然后把softmax加到z'中,得到y',y'=(y'0,y'1,...,y'
n-1
),∑y'j=1,最后将语言识别损失表示为:
[0028][0029]
其中,z'表示对输出向量x时间维度求平均后的结果,是语音在识别器的输出结果,e(
·
)表示求期望,y'表示预测概率。
[0030]
进一步地,采用log_softmax对时间维度进行归一化,将归一化过程描述为z'=e(log_softmax(x)),z'∈ωb×n,最后将语言识别损失表示为:
[0031][0032]
本发明的有益效果:
[0033]
本发明通过在元学习算法的外循环中使用语言识别器作为对抗性辅助目标,引导从任务中学习后的更新模型产生与语言无关的嵌入特征,这可以使共享语义空间更加紧密,提高模型泛化。并且,使用wasserstein距离和时间归一化来进一步优化对抗性训练,这使得训练过程更加稳定和容易。在实际应用中,采用本发明方法,可以获得比元学习更好的预训练模型,从而在低资源目标语言上获得更好的泛化。
附图说明
[0034]
图1为本发明实施例提供的在原端到端语音识别网络架构中增加语言识别器后所形成的新的网络架构图;
[0035]
图2为本发明实施例提供的语言识别器的结构示意图;
[0036]
图3为本发明实施例提供的mml-asr与madml-asr的共享语义空间和模型语言偏好对比示意图;
[0037]
图4为本发明实施例提供的多语言预训练验证集字符错误率(%):(a)为ipara babel数据集上的实验结果,(b)为openslr数据集上的实验;
[0038]
图5为本发明实施例提供的在25%越南语下不同方法微调曲线;
[0039]
图6为本发明实施例提供的openslr中不同语言对应的编码器状态的t-sne表示,不同的颜色表示不同的语言,并用0-8进行标记每种语言的聚类中心;
[0040]
图7为本发明实施例提供的使用或不使用wasserstein距离的语言识别损失学习曲线;
[0041]
图8为本发明实施例提供的使用或不使用wasserstein距离的有效cer(%)学习曲线;
[0042]
图9为本发明实施例提供的使用mml-asr、madiml-asr、admml-asr和madml-asr的预训练学习曲线。
具体实施方式
[0043]
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044]
为了更好地的理解本发明,下面先对“多语言元学习”进行简要介绍。多语言元学习将每种语言视为一项任务,假设数据集表示包含n种不同语言。我们从中抽取任务ti,将ti分为两个子集,支持集和查询集f
θ
表示多语言模型,算法包括两个优化步骤:
[0045]
首先,在内循环中,基础学习器从初始元学习器f
θ
学习每个任务的模型。利用每个任务的支持集通过对的梯度下降计算,从θ更新模型参数θi:
[0046][0047]
其中,是基础学习器的损失函数。
[0048]
其次,在外循环中,元学习器整合了内循环中每个基础学习器的知识。更新后的模型参数θi通过计算查询集上的所有任务查询损失来更新模型参数,因此模型参数θ的更新方式如下:
[0049][0050]
其中α、β分别为内循环和外循环的学习率。总而言之,让p(t)为任务的分布。我们可以将元学习过程表述为:
[0051][0052]
从式(1)和式(2)中,我们可以看到元学习优化过程需要计算θ的二阶导数,这在计
算上是很昂贵的。因此,我们使用一阶maml算法(fomaml),所以式(2)可以被重新表述为:
[0053][0054]
如同在多语言元学习中所介绍的,对于每个元训练迭代,元学习器需要学习一批从不同语言中抽样的任务。在现实世界的场景中,由于它们的规模和难度,它们之间存在着明显的差异。因此,模型会倾向于选择一些容易和规模大的语言。此外,在多语言预训练中没有任何限制,所以在不同语言中具有相似含义的单词和短语在语义空间中可能是遥远的。这将影响模型从不同语言中学习共同的信息。因此,本发明希望能够解决偏好问题,缩小不同语言在语义空间中的差距。
[0055]
实施例1
[0056]
基于上述内容,本发明实施例提供一种元对抗学习提升多语言预训练与低资源语音识别的方法(简称madml-asr),如图1所示,本实施例使用ctc-注意力联合架构这一端到端语音识别网络架构进行多语言语音识别。ctc-注意力联合架构由三部分组成:transformer模型中的编码器和解码器,以及连接主义时间分类(ctc)模块。
[0057]
本发明实施例通过在端到端语音识别网络架构中的编码器的输出端添加语言识别器(domain classifier),在元学习外循环中利用所述语言识别器与更新的语音识别模型对抗,引导更新的语音识别模型产生与语言无关的表征,缩小不同语言在语义空间中的差距;语言识别器由一个非线性神经网络组成,如图2所示,所述语言识别器由浅层至深层依次包括第一linear层、第一relu层、第二linear层、第二relu层、第三linear层和softmax层。
[0058]
作为一种可实施方式,所述编码器的输出端和所述语言识别器之间还包括梯度反转层(grl,gradient reversal layer)。
[0059]
具体地,在内循环中,asr模型需要最小化语音识别损失l
asr
,而对于语言识别器来说,它保持不变。在外循环中,asr模型需要最大化语言识别损失l
adv
,同时最小化l
asr
,因此,本发明实施例将整体的损失函数表示为:
[0060]
minl=min(l
asr-μl
adv
)
ꢀꢀ
(5)
[0061]
其中,μ表示语言识别损失的比重。
[0062]
实施例2
[0063]
在上述实施例的基础上,本发明实施例提供的元对抗学习提升多语言预训练与低资源语音识别的方法,具体包括:
[0064]
s101:初始化语音识别模型f
θ
,输入原始语音特征序列(x1,x2,...,x
t
);
[0065]
s102:针对从多语言数据集中抽取的任务ti,将所述任务ti分为支持集和查询集表示第i种源语言数据;
[0066]
s103:计算任务ti的asr损失l=λl
ctc
(1-λ)l
att
,使用梯度下降得到在支持集上更新后的参数θi:
[0067]
s104:使用在支持集上更新后的参数θi在查询集上计算语音识别查询损失与语言识别查询损失
[0068]
s105:重复n次步骤s102至步骤s104,计算得到n个任务对应的语音查询损失和语言识别查询损失;
[0069]
s106:根据n个任务对应的语音识别查询损失和语言识别查询损失更新解码器和ctc模块参数θ
ctc-att
、编码器参数θ
enc
和语言识别器参数
[0070]
具体地,步骤s102至步骤s104为本发明改进后的元学习内循环。步骤s106为本发明改进后的元学习外循环。在内循环中,每个基础学习器的优化参数用于计算在查询集上的语音识别查询损失和语言识别查询损失;在外循环中,元学习器将所有的查询损失相加以更新参数。
[0071]
作为一种可实施方式,由于只有asr模型的编码器与语言识别器有关,所以解码器和ctc模块的参数更新公式可表示为:
[0072][0073]
其中,β表示元学习外循环的学习率。
[0074]
至于编码器,它需要最小化语音识别查询损失,同时最大化所有任务的语言识别查询损失,其参数更新公式表示为:
[0075][0076]
其中,表示语言识别器,β表示元学习外循环的学习率。
[0077]
对于语言识别器来说,它需要使所有任务的语言识别查询损失最小,其参数更新公式表示为:
[0078][0079]
其中,表示语言识别器,β表示元学习外循环的学习率。
[0080]
s107:重复步骤s102至步骤s106,直至更新后的解码器和ctc模块参数θ
ctc-att
、编码器参数θ
enc
满足给定要求。
[0081]
具体地,在验证集上评估模型的准确率,保留最好的5个验证集准确率对应的模型。
[0082]
实施例3
[0083]
在上述各实施例的基础上,本发明实施例提供两种语言识别损失的计算方式。具体过程如下:
[0084]
在对抗性训练过程中,如果用x表示输入特征,整个对抗训练的过程可以描述为:
[0085][0086]
其中,p-i
=p0∪p1∪...∪p
i-1
∪p
i 1
∪...∪p
n-1
,pi表示第i种语言的分布,p-i
表示第i种语言之外的语言分布。g(
·
)表示语言识别器,f(
·
)表示asr模型。通过公式(9),可将多分类问题转换为二元分类问题,可以发现它类似于gan,其优化对象可以表达为:
[0087][0088]
因为gan的训练问题很难,所以asr模型和语言识别器很难平衡,因为最佳语言识别器下的优化函数等于pi和p-i
之间的js分歧。此外,不同语言的嵌入向量在高维空间中几
乎没有重叠,所以js发散将是一个常数,导致梯度消失问题。
[0089]
在对抗性训练中,由于编码器和语言识别器之间的模型复杂度不同,事实上语言识别器在结构上比asr模型更简单,因此语言识别器将直接达到最优,从而导致梯度消失问题,无法与asr模型抗衡。为了解决梯度消失问题,可以设计一个更复杂的语言识别器,然而,事实上设计一个更复杂的语言识别器成本更高,并且也不能保证它能被训练好。
[0090]
因此,本发明实施例借鉴了wasserstein gan的思路,用wasserstein距离代替js发散来衡量pi和p-i
之间的距离,从而可以避免梯度消失,也就解决了对抗性训练难以训练的问题。因此,本发明实施例的对抗训练可以描述为:
[0091][0092]
其中,语言识别器的参数化权重位于紧凑空间φ中,φ是紧凑的意味着所有函数将是k-lipschitz。
[0093]
具体来说,将语言识别器的输出描述为一个向量x,x∈ωb×
t
×n,其中b表示是批量大小,t表示原始语音特征序列长度,n表示语言的数量。
[0094]
当计算损失时,需要对时间维度进行求和,并计算z'=e(x),z'∈ωb×n。然后把softmax加到z'中,得到y',y'=(y'0,y'1,...,y'
n-1
),∑y'j=1,最后语言识别损失可以表示为:
[0095][0096]
其中,z'表示对输出向量x时间维度求平均后的结果,是该段语音在语言识别器的输出结果,e(
·
)表示求期望,y'表示预测概率。
[0097]
需要说明的是,若用wasserstein距离来衡量pi和p-i
之间的距离,则需要在类别层取消log_softmax对语言识别器的输出来计算损失。但可能存在以下问题:即在处理多语言时,每种语言的嵌入向量有很大的差异(有的输出是正数,有的输出是负数,而且数值差距很大)。如果不进行规范化处理,也很难对不同语言进行训练。
[0098]
因此,作为一种更优选的实施方式,将log_softmax用于时间维度。采用log_softmax对时间维度进行归一化,将归一化过程描述为z'=e(log_softmax(x)),z'∈ωb×n,最后将语言识别损失表示为:
[0099][0100]
具体地,通过对时间维度的归一化,不同语言的输出可以统一在一个尺度上。此外,因为序列的长度往往很长,导致最后的平均输出会非常小,这对优化是不利的,因此使用对数函数是必要的。同时对模型进行了参数剪裁。这样,可以不考虑如何平衡asr模型和语言识别分类器的训练,从而大大提高了对抗性训练的稳定性。
[0101]
本发明实施例基于低资源多语言元学习,提出了一种元对抗训练的方法来约束引导模型学习更多语言无关的特征,扩大模型能够学习到的共享语义空间(如图3所示,图3(b)中三个圆形区域的相交区域明显大于图3(a)中三个圆形区域的相交区域)并且减少对任务的偏好性。该方法通过在外循环中使用语音识别的对抗性辅助目标,与语音识别模型进行对抗,引导语音识别模型生成语言无关的特征表示。通过这种方式,使得asr模型所产
生的特征是无法进行语种区分的,如此可以减少asr模型对某些语言的偏爱。而且,该模型可以学习更多与语言无关的表征,这将建立一个更紧密的跨语言语义空间。此外,采用wasserstein距离来度量最优语言识别器下的损失函数,并在对抗性训练中使用时间归一化,这使得训练更加稳定和容易。
[0102]
为了验证本发明方法的有效性,本发明还提供有下述实验。
[0103]
预训练效果:
[0104]
比较了多语言迁移学习asr(mtl-asr)、多语言元学习asr(mml-asr)和本发明(madml-asr)分别在ipara babel数据集和openslr数据集上预训练期间的收敛速度和收敛性能。
[0105]
如图4所示,madml-asr在收敛速度和最终性能都优于mml-asr和mtl-asr。与mtl-asr不同,madml-asr随着语言数量的增加仍然有效。这是由于元学习整合了每个任务的信息并获得了更好的初始化,madml-asr通过约束模型学习更多语言无关的特征实现了更好的性能。
[0106]
微调性能:
[0107]
比较了随机初始化、mtl-asr、mml-asr和madml-asr在babel和openslr上对目标语言进行微调的性能。如表1所示,madml-asr在所有语言上都优于mml-asr。
[0108]
表1不同目标语言下的验证集字符错误率(%)
[0109][0110]
从表1中,可以发现本发明模型的改进并不像预期的那样好。原因在于数据的充足,尤其是在babel上有大约80小时的训练数据。因此,我们在10%、25%和50%目标语言数据的不同比例的三种设置下,比较了这些方法的性能,实验结果如表2所示。
[0111]
表2不同规模的目标语言下的验证集字符错误率(%)
[0112]
[0113][0114]
对于babel数据集,我们发现madml-asr在少量学习中更为有效。与元学习相比,在微调25%的越南语(vietnamese)训练数据时,它将字符错误率cer降低了约9%,在微调10%和50%的训练数据时,降低了约8%和4%。还可以看出,madml-asr对其他低资源目标语言如斯瓦希里语(swahili)和泰米尔语(tamil)也非常有效。
[0115]
除了收敛性能外,我们发现在微调过程中,madml-asr的收敛速度也比mml-asr快。所有语言的微调过程都呈现出相同的趋势。我们只展示了越南语在50%下的微调实验,如图5所示,它显示了no-pretrain、mml和madml-asr三种方法在历时中的有效cer曲线。可以看到,madml-asr在适应目标语言方面更快、更好,有效地提高了低资源语音识别的性能。
[0116]
对抗性原理分析:
[0117]
对不同语言的编码器输出采用了二维t-sne聚类分析,如图6所示,从(a)到(c),是mtl-asr、mml-asr和madml-asr的编码器输出特征的可视化结果。可以看到,mtl-asr在不同语言之间的关联性很低。因为mtl-asr在学习过程中依次学习每个任务,这对它来说很难学习不同语言的共享语义空间。这一结果解释了该方法在openslr的预训练以及微调中的糟糕表现。然而,mml-asr在不同语言间的分布更加均匀,但交叉较少。因此,它比mtl-asr表现更好,但不同语言的语义空间没有重叠。所以这个模型学得不是很好。相反,在我们的madml-asr中,第2类和第3类的一些数据开始与语义空间中的其他类别交叉,并且所有类别的分布更加密集。
[0118]
因此,通过在元学习中引入对抗性学习,不同语言之间的距离和分布更加接近和密集。因此,我们的madml-asr可以有效地约束asr模型,使其学习不同语言之间的共同表征,并获得一个更好的初始化模型。
[0119]
wasserstein距离和时间归一化:
[0120]
对比了使用或不使用wasserstein距离时的语言识别损失,如图7所示。可以发现,如果不使用wasserstein距离,损失收敛得很快,而且不能逐步梯度优化模型。如果使用wasserstein距离,损失就会保持不变,这意味着模型无法区分语言类别。如图8所示,可以看出,如果不使用wasserstein距离来优化模型的训练,模型的表现就会很差。因此,在训练本发明模型时,应使用wasserstein距离。
[0121]
优选地,由于模型的输出将是正的或负的,而且数值变化较大,如果使用wasserstein距离,应进行时间上的正常化。
[0122]
在外循环中加入对抗性训练优越性:
[0123]
分析了在元学习外循环中使用对抗性训练的优越性,主要对比了三种方法。一种是在元学习的内循环中加入对抗性训练,称为madiml-asr;一种是madml-asr;还有一种是在元学习的内循环和外循环中都加入对抗性训练,称为admml-asr。我们展示了三种方法的预训练性能,并与mml-asr进行了对比。
[0124]
从图9来看,首先,madiml-asr比mml-asr表现好,但比madml-asr和admml-asr表现差。可以看到,将对抗性训练加入到内循环中是有效的,但是它不如加入内外循环或者加入外循环那么有效。其次,admml-asr在语种数量少的时候与madml-asr收敛接近,但在最终性能上有差距。而在语种数量多的时候,明显不如madml-asr。发明人认为,这是因为admml-asr需要分出一部分注意力用于内循环的对抗训练。最后,我们从两个方法解释在外循环中引入对抗性训练的优越性。首先,如图3所示,它引导经过内循环适应后的asr模型学习语言无关的特征,可以扩展模型学习到的共享语义空间。其次,它类似一种正则化技术,通过在元学习外循环中添加约束,进而提升模型的泛化性。
[0125]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献