基于对抗样本的数据扩充在鲁棒语音识别和关键词检出中的应用

文:孙思宁,王雄,谢磊 陕西省西安市西北工业大学,计算机学院 | 2019年第二期 (0) | (0)

1.摘要

  本文将对抗样本用于语音识别和关键词检出中深度神经网络声学模型的训练过程中,以用来提高声学模型的鲁棒性。在模型训练过程中,使用基于快速符号梯度方法来产生对抗样本作为原始训练样本的扩充,与传统的基于数据变换的数据扩充方式不同,本文所提出的方法是一种模型和数据相关的方法,在模型训练过程中,根据模型的参数和当前训练数据动态地生成对抗样本。在本文中,对于语音识别任务,我们在Aurora-4数据库上进行了实验,我们提出的方法能够显著地提高模型对噪声和信道的鲁棒性,而且,我们将本文所提出的数据扩充方式和教师/学生学习策略结合,在Aurora-4数据库上,我们可以得到23%的相对词错误率下降。在关键词检出任务中,我们所提出的方法也明显地降低了基于注意力机制的唤醒模型的误唤醒率和误拒绝率。

关键词:鲁棒语音识别,关键词检出,对抗样本,快速符号梯度法,数据扩充

2.前言

  近年来,随着深度学习(DeepLearning,DL)的兴起以及深度神经网络(DeepNeuralNetworks,DNNs)在声学模型上的成功应用,自动语音识别(AutomaticSpeechRecognition,ASR)[1][2]和关键词检出(KeywordSpotting,KWS)[3][4]得到了快速发展。各种网络结构,例如CNN,RNN和LSTM等,都成功应用在声学建模中。基于DNNs的声学模型在实际应用中,表现出了良好的噪声鲁棒性,因为其特殊结构以及多层非线性变换,让其具有较强的建模能力。即便如此,基于DNNs的ASR和KWS系统,仍然还会受到噪声、混响以及信道等因素的影响[6],造成识别性能地下降。为了解决这些问题,大量的工作在不同的方面被提出来,比如数据扩充[7]、单/多通道语音增强、特征变换,还有一些有效的学习策略,比如教师/学生(Teacher/Student,T/S)学习[8]、对抗训练[9]等。在本文中,我们主要集中在数据扩充的方法,来提高ASR和KWS系统的鲁棒性。

  当训练数据和测试数据之间存在分布的不匹配时,声学模型的性能将会大打折扣。为了弥补这种不匹配的问题,数据扩充是一个非常有效而且被广泛采用的方法,数据扩充的目的是通过对干净数据添加噪声、混响等干扰,产生干净数据的带噪副本,模拟真实的带噪数据,提高训练数据的多样性,然后将其用于模型训练。这种训练方式,被称作多场景训练。此外,T/S学习也是一种常用的提高模型鲁棒性的方法,它可以在有监督或者无监督的场景下进行使用,T/S学习需要并行的数据分别训练T模型和S模型。

  为了提高模型对于噪声的鲁棒性,本文提出来一种使用对抗样本来进行数据扩充的方法。对抗样本(AdversarialExamples)的概念首先是在[10]中计算机视觉任务上被提出来,研究者们发现,对于一个已经被完全训练好的图像识别网络,如果对一个可以被正确分类的图像,进行一些非常细微的像素级别的扰动,即使扰动是人眼难以察觉的,模型也将会将扰动后的图像错误分类,这种被错误分类的样本被称作对抗样本。对抗样本的存在,说明现有的模型对某些极小的扰动非常的敏感!在计算机视觉领域,对抗样本吸引的研究者的广泛兴趣。最近,对抗样本的研究也扩展到语音信号领域,[12]提出来一种对端到端语音识别模型的定向攻击方法:给定一段语音,产生一段人耳不可感知的扰动,扰动后的语音可以被识别成任何目标文本。同样地,在KWS系统中,我们很自然地把误唤醒(Falsealarmed,FA)或误拒绝(Falserejected,FR)的样本当成对抗样本!当系统遇到与关键字完全无关的样例时,仍然会存在错误唤醒的现象,或者当输入明显是关键字时,系统会错误地拒绝。由于复杂的声学环境和许多其他不可预测的原因,触发FA和FR的样例往往是不可重现的。正是因为如此,这种不可重现的属性使得进一步提高KWS性能变得很困难。

  之前基于对抗样本改进模型鲁棒性的工作,主要是为了提高模型对对抗样本的鲁棒性。而在我们本文的工作中,我们的目的是通过使用基于对抗样本地数据扩充来提高模型对于正常的带噪声数据的鲁棒性,而不仅是针对对抗样本。在训练阶段,快速符号梯度法(FastGradientSignMethod,FGSM)[11]被用来动态的生成对抗样本,与其他方法相比,FGSM方法比较高效。对于每一个mini-batch的训练数据,对抗样本生成之后,模型参数将会使用对抗样本进行更新。另外,在ASR任务中,我们还将提出的基于对抗样本的数据扩充方法和T/S学习结合,发现两个方法带来的增益可以相互叠加。

本文章节安排如下:第2章详细介绍FGSM生成对抗样本的方法;第3章介绍对抗样本在声学模型训练中的应用;第4章将会给出实验设置以及实验结果;第5章对全文进行总结。

3.对抗样本

对抗样本定义

  对抗样本的目的是成功地破坏一个已经被训练好的神经网络模型,即使一个非常好的模型,也特别容易遭受对抗样本的攻击,即模型的预测十分容易被输入端的人为扰动干扰,即使扰动是人耳无法察觉的。这种人为扰动,称为对抗扰动,而这种被对抗扰动干扰的样本,称为对抗样本。对抗样本的存在,说明网络的输出关于输入存在不平滑的问题,即输入端的极小变化可以造成输出端的一个巨大的跳跃。

  一般来说,一个机器学习模型,比如神经网络,可以表示为一个参数化的函数智能系统孙思宁_对抗样本2622.png,其中,智能系统孙思宁_对抗样本2627.png是输入特征向量,智能系统孙思宁_对抗样本2636.png 是模型的参数。给定一个输入样本智能系统孙思宁_对抗样本2652.png ,及其对应的标签智能系统孙思宁_对抗样本2661.png ,一个训练好的模型智能系统孙思宁_对抗样本2671.png 将用来预测样本的标签。而对抗样本,可以通过下面的公式来构建:

智能系统孙思宁_对抗样本2703.png(1)

并且有

智能系统孙思宁_对抗样本2736.png 

其中

智能系统孙思宁_对抗样本2742.png 

智能系统孙思宁_对抗样本2744.png被称作为对抗扰动。对于一个已经被训练好的神经网络,一般来说,普通的随机扰动将不会影响网络的输出,因此,对抗样本产生的关键是对抗扰动的设计和生成,一旦可以生成对抗扰动,对抗样本就可以作为训练数据来进行网络训练,从而提高模型的的平滑性和鲁棒性。

对抗样本的生成

  在本文中,我们使用快速符号梯度法(FGSM)来进行对抗样本的生成。FGSM利用当前的模型参数和训练数据,生成公式(1)中的对抗扰动。给定模型参数智能系统孙思宁_对抗样本2946.png ,输入智能系统孙思宁_对抗样本2950.png 和输出智能系统孙思宁_对抗样本2954.png,模型在训练阶段使用训练数据来最小化损失函数智能系统孙思宁_对抗样本2977.png,在一般的分类任务中,损失函数一般采用交叉熵,也是本文中使用的损失函数。当网络参数已经被优化,网络收敛之后,为了在输入空间上寻找一个能够使网络损失函数增大的扰动方向,即能够使网络对输入进行错误分类的方向,FGSM提出使用下面公式来进行扰动的计算:

智能系统孙思宁_对抗样本3102.png 

其中,智能系统孙思宁_对抗样本3108.png 是一个极小的常量,注意到,FGSM使用了一个符号函数来获取的损失函数关于输入的梯度的符号,而并非直接使用梯度的值,目的是为了满足扰动的最大范数约束,并且容易控制扰动的幅度,从而满足公式(3)的约束。我们在后面的实验中证明,一个小的智能系统孙思宁_对抗样本3224.png 便足够产生增强模型鲁棒性的对抗样本。

4.使用对抗样本进行声学模型训练

  与其他的基于数据仿真的数据扩充的方法不同,例如添加噪声和混响的方法,基于对抗的样本的数据扩充方法是一种模型和数据相关的方法,并且明确的将对抗样本和损失函数关联起来,明确产生了能使损失函数的数值增大的样本,因此,这种方法更为高效。一旦生成对抗样本,这些对抗样本将用来训练网络,进而增强网络对干扰的鲁棒性。在本工作中,FGSM方法用来为每一个mini-batch的训练数据动态地生成对抗样本。算法1给出了在声学模型训练过程中用到的流程。

算法1:使用对抗样本训练声学模型

1.1.jpg

  在声学模型训练中,输入特征智能系统孙思宁_对抗样本3695.png 一般为MFCC特征,目标智能系统孙思宁_对抗样本3708.png 为绑定的隐马尔可夫模型的状态。在上述的算法1,每一个mini-batch的训练数据中,我们采用4步操作,来进行模型的训练:(1)使用原始的训练数据训练模型参数,然后将模型参数固定,产生当前数据的对抗扰动智能系统孙思宁_对抗样本3810.png 。因为FGSM使用了符号函数,因此,对抗扰动每一维上的数值为 智能系统孙思宁_对抗样本3841.png或者智能系统孙思宁_对抗样本3844.png;(2)使用生成的对抗扰动来生成对抗样本;(3)将对抗样本和原始数据的目标进行组合,产生新的训练数据;(4)使用新生成的训练数据进行模型训练,更新模型参数。在这里,我们要强调的是,我们将对抗样本和原始的标签进行了组合,因为在我们的实验里,扰动非常小,我们希望神经网络可以输出和原始的样本相同的预测类别。通过FGSM生成的对抗样本,能够使模型损失函数明显上升,说明这些样本是当前模型的“盲点”,模型无法成功覆盖这些区域,导致模型产生了不可预知的错误。

5.实验

数据库和系统描述

Aurora-4数据库

  Aurora-4数据库是一个基于华尔街日报(WallStreetJournal,WSJ)的噪声鲁棒的中词汇量的连续语音识别数据库,即以WSJ0数据库为基础通过加噪产生的。Aurora-4中,两种麦克风被用来进行录音:主要麦克风和次要麦克风。次要麦克风中包含多种不同的型号,两种麦克风同时用来进行7138句训练数据的录制。Aurora-4的训练数据集合可分为两个:干净训练数据和多场景带噪声训练数据。干净训练数据全部使用主麦克风录制,不含有任何噪声。多场景训练数据也包括7138句话,包含主麦克风和次麦克风录制的数据,同时也包含干净的和带噪声的数据,因此,多场景训练数据覆盖了更多的噪声和信道(麦克风)失真。Aurora-4的测试集合也包含4种:干净测试集(A)、带噪测试集(B)、信道失真测试集(C)以及噪声和信道失真测试集(D)。A集合只包含330句主麦克风录制的干净语音;B集合包含6个A集合的带噪数据的副本,总计330*6=1980句;C集合只包含330句次麦克风录制的干净语音;D集合包含6个C集合的带噪数据的副本。

唤醒数据库

  我们使用出门问问(Mobvoi)智能音箱TicKasaFox2收集的唤醒数据验证我们的方法。唤醒词由三个普通话音节组成(“嗨小问”)。这一数据集涵盖了523个不同的说话者,包括303名儿童和220名成年人。此外,每个说话人的集合包括正样例(带唤醒词)和负样例,每个说话人的集合包括在不同的麦克风的距离和不同的信噪比下录制的数据,其中噪音来自典型的家庭环境。总共有20K正样例(约10小时)和54K负样例(约57小时)用作为训练数据。校验集包括2.3K正样例(约1.1h)和5.5K负样例(约6.2h),而测试集包括2K正样例(约1h)和5.9K的负样例(约6h)。

系统描述

  语音识别工作中,我们采用了CNN作为声学模型,CNN模型在多个工作中表现出来了对噪声较强的鲁棒性,在本文中,我们采用了和[15]中一样的模型结构。对于Aurora-4的实验,40维的FBANK特征,已经11帧的上下文信息被用来训练神经网络。对于CHiME-4的实验,我们使用Kaldi的fMLLR特征作为网络训练的特征,所有的特征提取以及高斯混合模型声学模型的训练,都是基于Kaldi[13]完成的,神经网络的训练已经对抗样本的实现,则是基于Tensorflow[14]。在两个实验中,开发集合用来确定最优模型的参数,包括对抗样本的对抗扰动权重智能系统孙思宁_对抗样本5196.png ,之后最优的模型直接应用于测试集合。

  在关键词检出工作中,我们遵循了[5]中使用的基于注意力机制的端到端模型结构。编码器采用1层GRU。由于与正样例相比,负样例的持续时间较长,因此我们在训练中对正样例进行了分割,分割的长度为200帧(约2s)。在测试过程中,使用一个帧长200的窗口,帧移为每次1帧。如果一个样例中至少有一帧移动后的得分大于预先设置的阈值,则触发KWS系统。我们的实验是基于TensorFlow进行的,采用ADAM作为优化器。

实验结果

Aurora-4语音识别实验

智能系统孙思宁_对抗样本5462.png 

图1Aurora-4数据库开发集上的WER(%)和对抗权重的关系

  图1展示了Aurora-4数据库开发集合上词错误率(WordErrorRate,WER)和对抗权重的关系。基于图1的结果,当智能系统孙思宁_对抗样本5587.png时,在开发集合上得到了最优的效果。因此,我们将词模型使用测试集合进行测试。表1给出了在Aurora-4的4个测试集合上的结果,其中,基线模型是使用多场景训练数据进行训练的模型,对抗样本模型是使用算法1的流程进行训练的,从表1中我们可以看出,使用对抗样本之后,我们取得了平均14.1%的WER的相对下降,在3个具有失真的测试集上,对抗样本模型都取得了提升,特别是在集合D上,我们提出的方法获得了18.6%的WER的相对提升。在干净测试集合A上虽然识别效果变差,主要原因是训练数据中引入了过多的带噪数据,这个问题可以通过添加更多的干净数据来弥补。

表1Aurora-4测试集合上基线模型和使用对抗样本模型的WER(%)的对比

1.2.jpg 

  此外,本文提出的数据扩充的方法,可以与其它的学习和训练策略进行结合,为了验证这一点,我们将其与T/S学习进行结合,实验结果证明,两中策略所带来的收益是可以叠加的。Aurora-4数据库里包含成对的干净和带噪语音,因此,我们可以利用干净的模型训练T模型,带噪数据用来训练S模型,当S模型进行训练的时候,使用下面的损失函数进行训练:

智能系统孙思宁_对抗样本6202.png(5)

  其中,智能系统孙思宁_对抗样本6213.png ,CE为交叉熵损失函数,智能系统孙思宁_对抗样本6226.png 为S模型的参数,智能系统孙思宁_对抗样本6235.png 为带噪数据的特征,智能系统孙思宁_对抗样本6245.png 为原始的监督信息,智能系统孙思宁_对抗样本6255.png 为教师模型的输出的概率分布,它是通过将干净语音智能系统孙思宁_对抗样本6279.png 输入到T模型得到的概率分布:智能系统孙思宁_对抗样本6295.png 

  其中,智能系统孙思宁_对抗样本6300.png 为T模型训练好的参数。表2给出了我们使用T/S学习和对抗样本结合的实验结果。从表2中可以看出,使用T/S学习可以明显降低WER,将T/S学习和对抗样本结合之后,我们可以获得8.50%的最好的识别结果,同时,为了证明增益是来自对抗样本而不是因为数据量的增加,我们将对抗扰动换成了随机扰动,我们发现随机扰动只带来了很小的增益,从而证明了对抗样本的有效性。更多细节可以参考文章[16]。

表2Aurora-4测试集合上对抗样本和T/S结合的实验结果

 1.3.jpg

唤醒实验

  为了验证FGSM方法对模型产生的影响,我们在测试集上使用FGSM生成了相反的样例,正样例扰动(即Pos-FGSM)表示扰动只添加到关键字部分。负样例扰动(即Neg-FGSM)则将扰动直接被添加到整个样例。当我们测试得到的结果是KWS模型面对对抗样本时,FRR急剧增加。如图3,我们分析了的注意力层的权重在添加对抗扰动之前和之后的变化。可以看出,模型的权重发生了较大的偏移,即注意力机制被破坏,模型所“注意”的关键词位置错误,从而导致很容易输出错误的结果。

 智能系统孙思宁_对抗样本6947.png

图3(1)正样例注意力权重层图3(2)负样例注意力权重层

  这一观察结果表明,目前的模型是对对抗性扰动的样例非常敏感的问题确实存在。为了提高模型的鲁棒性,我们使用对抗性样本进一步扩展了训练数据。具体来说,我们使用对抗样例对模型进行了重新训练。在训练阶段,为每一步中的训练数据生成对抗性样例(包括正样例和负样例)。然后这些样例被用来再次训练一个已经训练良好的KWS模型。在具体实验中,我们也一样尝试了不同的训练策略,包括只使用正样例对抗样本、只使用负样例对抗样本和使用正负样例对抗样本,作为对照我们还设置了随机扰动样本。

表4一小时误唤醒一次时的误拒绝率

智能系统孙思宁_对抗样本7248.png 

智能系统孙思宁_对抗样本7250.png 

图4不同训练策略的ROC曲线

  图4为各种方法的ROC曲线结果,这里超参数智能系统孙思宁_对抗样本7290.png 。Pos-FGSM和Neg-FGSM分别表示使用正负对抗样例扩充,而ALL-FGSM表示正负样例都扩充。Random表示对所有训练数据加上随机符号扰动,而非使用对抗扰动。表4表示测试集中FAR为1.0时的FRR的大小。从中我们看到基于Pos-FGSM和Neg-FGSM的对抗样例数据扩充能显著降低FRR,降低比例分别为45.6%和24.8%。作为比较,随机的扰动扩充样例也能稍微提高模型性能。综上所述,使用对抗样例扩充训练数据是提高模型鲁棒性的有效方法。更多细节可参考文章[17]。

6.结论

  本文提出了一种基于对抗样本的数据扩充方法,并将其应用在鲁棒ASR和KWS任务中。在模型训练过程种,FGSM方法被用来进行对抗样本的动态产生。在Aurora-4鲁棒语音识别任务上,我们的提出的方法可以获得14.1%的WER的相对降低。同时,实验结果表明,将本文和其它学习方式结合,例如T/S学习,可以获得更进一步的提高,在Aurora-4任务上,通过和T/S结合,我们获得了23%的WER相对下降。在KWS任务中,我们针对KWS任务,进行了不同方式数据扩充,所提出的数据扩充方法同样可以有效降低基于注意力机制的KWS模型的FAR和FRR。

7.参考文献

1.4.jpg

1.5.jpg




杂志订阅

填写邮件地址,订阅精彩资讯: