APP下载

基于元学习的语音识别探究

2019-10-15潘文林

关键词:语料语料库语音

王 璐,潘文林

(云南民族大学 数学与计算机科学学院,昆明 650500)

任何语音识别的实际应用,高准确率都是必要条件.目前,广泛使用小规模语料库来保证高准确率.但对于少数族群的语言和方言,语料采集困难多、成本高,难以构造大型语料库.如果使用少量语料即可达到高准确率,将大大降低自动语音识别(automatic speech recognition, ASR)的应用成本,并得以推广到少数族群语言.因此,基于小规模语料库的语音识别已成为目前挑战性的研究问题.

现有的模型学习能力弱,而人类能基于经验快速掌握新事物[1].如高性能的ASR模型需要上万小时的语料[2],AlphaZero需要上百万次对弈学习[3],DQN及其变种算法[4]在Atari 2 600 基准中需要1 800万帧才能达到人类平均水平[5].可见,要大规模推广ASR应用,必然要提升机器学习模型的学习能力,降低数据需求和训练时间.

元学习(meta learning)是模仿人类利用已有经验快速学习新知识的新兴机器学习研究领域,在强化学习、图像识别领域显著地提升了模型学习能力[6].我们认为:将元学习方法用于ASR模型,可能会提升ASR模型的学习能力,有助于解决小规模语料语音识别这一挑战性问题.ASR的基础是孤立词识别,因此,本文以提升孤立词识别模型的学习能力为研究目标.

1 相关工作

1.1 语音识别

ASR模型常用循环神经网络(recurrent neural network,RNN).典型方法如LiGRU-Dropout[7]、Light GRU[8]、LSTM-CNN[9]、Deep Speech 2[2]、BiLSTMs-ResNet[10]等等,其中双向RNN取得了良好效果.Attention机制使模型可以同时识别和对齐[11-12],在各类ASR基线任务上表现良好[13-14].除RNN,基于CNN、LAS + Spec Augment[15]、tdnn+chain[16-17]等其它方法也在基线任务中取得良好效果.

目前常用的基线(baseline)数据集有:LibriS-peech test-clean,词错误率(word error rate,WER)最低为 2.5%[15];LibriSpeech test-other,词错误率最低为5.8%[15];TIMIT,错误率(percentage error)最低为14.2%[7];Switchboard + Hub500,错误率最低为5.5%[10];WSJ eval92,错误率最低为:2.32%[17];CHIME real错误率最低为11.4%[18].此外,常用的中文基线数据集有RASC863[19]和THCHS-30[20].

ASR工程技术已基本成熟.国内已实现了汉语及其部分方言[21]、藏、彝、蒙[22]等语言的商用语音识别.国外,Google支持英、俄、西班牙、德、日、法等120 种语言和方言的语音识别.

然而ASR尚未广泛应用.中国有97个汉语方言片[23],语言数量超过130种[24].世界上的语言数量超过5 000种.未能广泛应用的原因之一是高精度ASR依赖于大型语料库,如文献[2]中使用了11 940 h的英语语料和9 400 h的普通话语料,文献[25]中使用了约18 000 h的英语语料.

是否能使用更少的语料实现语音识别呢?此前已有一些低资源(非大语料)语音识别的相关研究.如Chan等人的研究表明低资源语音识别中CNN的表现较好[26],Cai等提出SPM(Stochastic Pooling Maxout)方法[27]用于低资源语音识别.Yu等[28]使用DBLSTM+CTC模型对吕苏语、土家语上取得了不错的识别精度,此外Yu等[29]还建立端到端的迁移学习模型以提升土家语的识别率,并表明少数族群的语料库构建更困难.

大型语料库构建成本高,而小型语料库则难以达到高准确率.小规模语料库语音识别这一挑战性问题是广泛推广ASR的关键.

1.2 元学习

元学习(meta learning),或学习学习(learning to learn),是一门系统地观察不同机器学习方法如何在广泛的学习任务中执行的科学,然后从获得的经验或元数据中学习.从而比其他方法更快速地学习新任务[30].元学习本是认知心理学中非正式古老概念,近年才成为机器学习的正式概念.

元学习更多地关注提升神经网络的学习能力.对于神经网络,其拟合能力已被证明,如Cybenko等[31]针对前馈神经网络证明通用近似定理、Haykin等[32]针对循环神经网络证明通用近似定理等等.根据通用近似定理,两层的前馈神经网络可以近似任意有界闭集上的任意连续函数,一个完全连接的循环网络是任何非线性动力系统的近似器[33]. 但这些通用近似定理并没有给出如何找到这样的网络以及如何快速达到最佳性能.

元学习是一个广泛的概念,不同的研究方向使用的方法理论不同,如基于模型的方法大多可以针对性基于通用近似定理证明,但一些非神经网络新模型只有较为严谨的实验证明.基于优化的研究通常基于梯度下降等优化算法,因此如MAML等算法可以简单地看作梯度优化算法的变种,而MAML具体地性能提升难以计算(算法性能还依赖于模型、数据与超参数).由于神经网络的可解释性是经典科研难题且机器学习领域研究日新月异,因此相关研究一般需要可复现的实验证明,而严谨的理论证明则往往在其广泛应用后才开始研究.

目前,元学习已在机器人学习[40]、机器视觉[38]等领域有所应用.如小样本学习的常用基线任务Mini-ImageNet 1-Shot Learning正确率已达62.86%[41-42](小样本学习中,常用N-shotK-way来指代N样本K分类问题,如1-shot意为每类仅提供1个训练样本,称为单样本学习或一次学习).

一种元学习问题的定义[34]:

θ*=arg minθED~p(D)[lθ(D)].

(1)

即:通过优化参数θ来降低数据集分布p(D)中的期望学习成本.

元学习实验一般分为2步:元学习和学习,其等价描述为元训练和元测试.元训练为学习不同任务中包含的元知识,元测试为在其他任务上测试元学习算法的能力.

与传统机器学习相比,元学习将一个数据集看作一个任务(样本).任务中用于元训练的集合称为支撑集(support set).用于元测试(meta test)的集合称为查询集(query set).训练集与测试集由多个任务组成.

与迁移学习相比,元学习通常倾向于研究多任务中的共性,而迁移学习通常倾向于研究一项任务到另一任务的迁移.

可见文献中尚无对元学习语音识别的研究.要将某一元学习方法用于语音识别,首先要验证元学习方法是否对其有效,即:对于语音信号和模型,某一方法能否提升语音识别模型的学习速度与泛化精度.

基于优化的元学习方法最有可能提升语音识别模型性能,其代表性算法为MAML.本文选用了MAML的一阶近似算法Reptile,它所需的计算量较少.

2 Reptile算法

Reptile算法由OpenAI提出[43],是MAML算法[6]的一阶近似,算法思想如下:

(2)

其元训练过程为迭代式(2)以从不同任务中学习元知识,得到的参数θ*作为元测试中模型的初始参数,用以评估该算法效果.对比用的基线算法为最广泛应用的神经网络参数初始化方法:随机初始化.

从基于优化的角度来看,当训练集、测试集为相同任务时,Reptile可以看作梯度下降算法的变种,其优化能力由经典梯度优化算法保证,当训练集、测试集为不同任务时,其学习目标为学习元知识.

Reptile的算法思想可以描述为:寻找一组参数,它到所有任务上最优参数的距离最短.

3 基于Reptile的孤立词识别

3.1 实验描述

优化目标:单样本孤立词二分类问题.单样本学习是最能衡量学习能力的问题,孤立词识别(分类)是语音识别中最基本的问题,二分类是分类中最基本的问题.因此,要衡量某一元学习方法是否能提升语音识别模型的学习能力,最典型的实验就是单样本孤立词二分类问题.值得一提的是:连续语音识别问题中模型较为复杂,影响因素多,可见文献中尚无可用的小样本连续语音识别方案.

对比目标:针对同一数据集,在同一超参数、模型下训练,对比使用θ*与当前通用方法初始化参数的优化效果,若使用θ*可以取得更好的优化过程与结果,则说明使用Reptile算法得出的模型学习能力更强.

数据集:佤语是典型的由于语料库较小而无法实现ASR的语言之一,在佤语语料上进行实验以说明Reptile等元学习方法可以提升佤语语音识别模型的学习能力.此外,还使用了TIMIT英语语料库再次实验,更充分地说明该算法在语音识别上的通用性.

模型:对于二分类孤立词识别问题,小型神经网络应该可以取得较好效果.

性能比较:训练模型到验证损失不再下降,测试正确率越高、验证损失越低,代表泛化性能越强.

学习速度比较.达到最高泛化精度的训练轮数,轮数越小则其学习速度越快.

此外,正确率与损失曲线越平滑,在不同数据下变化越小,说明模型稳定性越好.

3.2 数据集

3.2.1 佤语孤立词数据集

对于每个任务,随机取1个样本作支撑集,20个样本作查询集,部分类别的词不足20个,则取训练样本外的全部.

3.2.2 TIMIT孤立词数据集

对于每个任务,随机取1个样本作支撑集, 20个样本作查询集,不足同上法.

3.3 模型

四层卷积+一层全连接.其中每个卷积层由64个步长2的3×3卷积核构成,对卷积结果进行批量正则化后,使用Relu函数激活.全连接层由1个神经元构成,激活函数为Sigmoid.模型输入为语谱图(大小为3×64×64).

3.4 实验过程

3.4.1 元训练

用于TIMIT语料库的超参数设置如下:迭代次数iter=354,m=5,k=21,α=1,U=SGD(lr=0.01).每类样本数N=1,即1-shot2-way任务.用此参数迭代公式(2) 相应获得模型参数θ*.

用于佤语语料库的超参数设置如下:迭代次数iter=1 000,m=5,k=15,α=1,U=SGD(lr=0.01).每类样本数N=1,即1-shot2-way任务.用此参数迭代公式(2)获得相应模型参数θ*.

使用网格搜索或群体智能搜索来寻找超参数通常能够获得更好的泛化精度.如果能在较为任意的超参数下仍能取得较好地实验效果,更能反应Reptile算法的适用性与易用性.因此,上述超参数为任意给出,只经过简单调优.

3.4.2 元测试

分别使用Reptile获得的参数θ*与随机初始化的参数训练模型.随机参数初始化方法为random uniform,偏置为全零初始化.

随机抽取任务测试10次,每次都使用相同的任务、模型、超参数.

3.5 实验结果

3.5.1 TIMIT孤立词数据集的实验结果

图中的阴影部分为随机10次实验的数据分布.可以明显看出多次实验中Reptile方法收敛快、测试正确率更高.在300轮训练后,Random方法开始过拟合(测试损失增加).相比于佤语数据集,TIMIT更早地开始过拟合,这可能是由于TIMIT发音人更多(630人)造成的.

此外,Reptile方法的曲线更平滑,说明Reptile方法获得参数的损失函数空间更平滑,更易优化.

3.5.2 佤语孤立词数据集的实验结果

模型性能:对于同一模型,使用Reptile方法的测试正确率为93.75%,损失更小,实验中未发生过拟合.而随机初始化的模型性能更差,并在600轮处开始过拟合.

学习速度:Reptile方法使模型收敛的速度更快.仅2轮正确率就达到了90%,30轮达到93%,并在170轮后稳定于93.75%附近.而随机初始化则需要近200轮,且正确率由波动,400轮后稳定于89.5%附近.

4 结语

相比于围棋中理想、完美的信息,现实世界如语音识别领域要处理的信息通常不具备这一条件.要广泛地应用语音识别,就要在小规模语料库上达到高准确率.本文认为,研究基于元学习的语音识别,是解决小规模语料库的语音识别这一挑战性研究问题的有效途径.本文在单样本孤立词语音识别任务上,首次使用元学习方法Reptile提升了模型学习能力,模型从多个不同的小规模任务上习得元知识,使模型对目标任务的收敛速度与泛化精度得到了提高.

猜你喜欢

语料语料库语音
基于归一化点向互信息的低资源平行语料过滤方法*
《语料库翻译文体学》评介
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……
基于JAVAEE的维吾尔中介语语料库开发与实现
《苗防备览》中的湘西语料
国内外语用学实证研究比较:语料类型与收集方法
语篇元功能的语料库支撑范式介入