cover_image

【吴恩达】百度第二代深度语音系统发布,未来有望超越人类

新智元
2015年12月10日 13:41

新智元原创1

来源:Arxiv、Money CNN

译者:王婉婷、张巨岩


前言:一个单个语音识别系统(single speech system)能在大部分情景下识别表现都超过人类的未来,即将到来。


论文作者:Dario Amodei,Rishita Anubhai,Eric Battenberg,Carl Case,Jared Casper,Bryan Catanzaro,Jingdong Chen,Mike Chrzanowski,Adam Coates,Greg Diamos,Erich Elsen,Jesse Engel,Linxi Fan,Christopher Fougner,Tony Han,Awni Hannun,Billy Jun,Patrick LeGresley,Libby Lin,Sharan Narang,Andrew Ng,Sherjil Ozair,Ryan Prenger,Jonathan Raiman,Sanjeev Satheesh,David Seetapun,Shubho Sengupta,Yi Wang,Zhiqian Wang,Chong Wang,Bo Xiao,Dani Yogatama,Jun Zhan,Zhenyao Zhu


百度研究院今天透露了硅谷人工智能实验室(SVAIL)的研究成果。结果包含了能够只用一个学习算法精确识别英文和中文的能力。深度学习系统验证了端对端途径的语音识别,代替使用神经网络手工(hand-engineered)部分。


硅谷人工智能实验室的深度语音系统在去年公布,刚开始着重在嘈杂的环境中——如在饭店、在车上和公共交通工具中——提高英语识别的准确性。


去年,硅谷人工智能实验室提高了深度语音在英文方面的性能,并且也训练它翻译普通话。普通话版本已经在很多场景中实现了高精确率,并且已经准备好将其大规模部署在真实世界的应用中,例如在移动装置上的网页搜索。


吴恩达(Andrew Ng)博士,百度的首席科学家评论道:“SVAIL证明了我们的端对端深度学习方法可以被用于识别差别很大的语言。我们方法的关键是我们使用了高性能计算技术,这导致了7倍的加速,与去年这个时候相比。由于这种效率,之前需要几周才能完成的实验现在需要几天。这使得迭代更快了。”


英伟达的首席科学家,Bill Dally博士对深度语音的高性能计算框架评论道:“使用批处理技术(batching)来部署在GPU上语音识别的动态神经网络(DNNs),进而达到如此语音识别效率,这给我留下了深刻的印象。在16个GPUs集群中训练RNNs(循环神经网络)时,深度语音也获得了意义非凡的吞吐量(throughput)。”



在ArXiv.org网站的论文中,SVAIL也报道了深度语音正在学习处理全世界多种多样的口语语音问题。当前,这样的处理对于移动装置上的流行语音系统来说是有挑战性的。深度学习在很多中英语口音中取得了快速进步,包括了印度英语,还有在欧洲的、英语非第一语言的国家中的英语口音。


“我去年在深度语音的起步阶段看到它时就感受到它的潜力,” Ian Lane博士说,他是卡内基梅隆大学工程院助理研究教授,“今天,在一个相对较短的时间之后,深度语音取得了显著的进步。使用一个端对端系统,它不仅能够处理英语还能够处理普通话,并正向着产品化迈进。我对百度的批量调度过程(Batch Dispatch process)和它的能力——影响深度神经网络在云端GPUs的部署方式——很感兴趣。”


更具体的结果展示在ArXiv.org网站的相应论文中——“Deep Speech 2:End-to-End SpeechRecognition in English and Mandarin.”


图片


新智元精选部分论文进行翻译:


摘要


我们展示了一种端到端的深度学习方法,可以被应用于识别英文或是中文普通话——两种极其不同的语言——的语音。因为这种方法用神经网络取代了所有手工部分(hand-engineered components)的管道(pipeline),所以这种端到端的学习让我们能够处理各种不同情况下的语音,包括噪声环境、口音、以及不同语种。我们这种方法的重点是应用了HPC技术,它为我们原先的系统带来了7倍的提速。在这样高效率的基础上,原先需要几周才能完成的实验现在只要几天就可以了。这使我们能够更快地迭代,鉴别出更优的结构和算法。因此,在一些案例中,对于标准数据集的基准测试(bench marked)我们系统做出的识别可以与人类做出的转录文本相媲美。最后,通过在数据中心运用一种称为“通过GPU的批量调度”(BatchDispatch with GPUs)的方法,我们展示了在线环境(online setting)中我们的系统部署起来并不十分昂贵,并且在为大规模用户提供服务时延迟仍然很低。


介绍


几十年来手工领域(hand-engineered domain)的知识进入了当前最先进的自动语音识别流水线(ASR)中。一个简单但有效的替代解决方法是将这样的ASR模型端对端地训练,使用深度学习并用一个模型来替代大部分组件。我们呈现我们的第二代语音系统,它充分证明了端对端学习方法的主要优势。这个深度语音2代ASR流水线(The Deep Speech 2 ASR pipeline)在几个基准测试中接近或超过亚马逊土耳其机器人人类工作者的准确率,它经过很少的修改在多国语言中运行并且可以部署到生产设定(production setting)下。于是,它代表了在以下领域迈出了重要的一步——单一ASR系统解决由人类处理的语音识别语境的所有范围。由于我们的系统建立在端对端深度学习(end-to-end deep learning)系统上,我们能够采用一系列深度学习技术:捕获大型训练集,训练高性能计算的更大的模型和从方法学上探索神经网络框架的空间。我们展现了,通过这些技术我们将以前的端对端系统的错误率减少了43%,并且也高精确地识别普通话。


语音识别的一个挑战是语音和声音的大范围的变异性。结果是,现代ASR流水线由很多组件组成,如复杂特征抽取,声学模型,语言和发音模型,说话者自适应算法等等。建立并调试这些个体组件使得开发一个新语音识别模块(speech recognizer)很困难,特别是新的语言。确实如此,许多部分在不同环境或者语言下不能产生很好的结果,并且为了提高可接受的准确性支持多个特定应用系统经常是必要的。这种事态与人类语音识别不同:人们在童年时期有学习任何语言的与生俱来的能力,使用通用技能来学习语言。在学着读和写之后,大部分人类可以翻译语音,也能不需要另加翻译任务方面特别训练地抵抗外界环境、说话者口音和噪音的变异性。为了满足语音识别用户的期望,我们相信单一的引擎必须学着有相似的能力;只经过小的改动就可以处理大部分应用,也能在没有剧烈变化下从头开始学习新的语言。我们的端对端系统接近了目标,让我们在两个不同语言(普通话和英语)的一些测试中接近或者超过人类工作者的表现。


由于深度语音2代(DS2)是一个端对端的学习系统,我们能够通过着重于三个重要部分来完成性能的提高:


1、模型框架(the model architecture)


2、大型标记训练集(largelabeled training datasets)


3、计算规模(computational scale)


这个方法也在其他应用领域(如电脑视觉和自然语言)产生了重大进步。本篇文章交代了我们在语音识别三个部分中的贡献细节,包括一次模型框架的广泛调查、数据的影响和在识别性能方面的模型尺寸(model size)。特别地,我们描述了用神经网络进行的很多实验,这些神经网络通过用CTC(Connectionist Temporal Classification,链结式的按时间分类算法)损失函数训练来预测音频中的语音翻译。我们认为,应用于RNNs的网络由以下众多层组成:循环联络(recurrent connections)、卷积过滤(convolutionalfilters)、非线性层(nonlinearities)还有批量归一化(BatchNorm)的一个特例的影响。我们发现网络产生的预测结果不仅比之前的工作更好,也发现了能够部署在生产设定下且准确率不显著减少的循环模型的实例。


不限于寻找更好的模型框架,深度学习系统极大地受益于大量训练集。我们详细描述了我们的数据捕捉流水线(data capturing pipeline),它促使我们创造了比以往用于训练语音识别系统的更大的数据集。我们英语识别系统在11940小时的语音中训练,而我们普通话在9400小时的语音中训练。我们使用了数据合成来进一步在训练中强化数据。


在大量的数据中训练通常需要大型模型的使用。确实,我们的模型比以往的模型有更多的参数。训练在这种规模的一个模型需要数十exaFLOPs,这在单核GPU上执行需要3到6周。这使得模型探索变为一个耗时的过程,所以我们构建了高度优化的、使用8或16的GPU的训练系统来训练一个模型。与以往使用参数服务器和异步更新的大型训练方法相比,我们使用了同步SGD,这在测试新想法时调试更加容易,并也能够在同程度的数据并行处理时收敛得更快。为了让整个系统更加有效,我们描述了单核GPU上的优化和多核GPU伸缩性上的改进。我们采用了通常在高性能计算(HPC)上用于提高伸缩性的优化技术。这些优化包括在GPU上CTC损失函数的快速实现,和一个自定义存储分配器。我们也用了精心整合计算节点(carefully integrated compute nodes)和一个all-reduce的自定义实现来加速GPU之前的通信。在16核GPUs上训练时,系统整体维持大约50teraFLOP/second。这意味着每个GPU上3teraFLOP/second,大约是理论性能峰值的50%。这种伸缩性和效率将训练时间减少到3至5天,这让我们在模型和数据集上更快迭代。


我们在几个公开可用的测试数据集中基准测试了我们的系统,并与我们之前端对端系统的结果相比较。我们的目标是最终达到人类级别的表现,不仅仅从特定的基准测试上(这些基础测试可以通过针对其数据集的调试而调试),也要从一系列反映不同情景的基准测试上。为此目的,我们也测量了人类工作者的表现以作对比。我们发现我们系统的表现在一些共同研究的基准测试中超过人类,并在更难的例子中缩小距离。除了公开的基准测试,我们展示了我们普通话系统在内部的反映实际产品情景的数据集中的表现。


深度学习系统在规模部署上可以很有挑战性。大型神经网络评估每个用户的口音在计算上是很昂贵的,并且一些网络框架比其他的更容易部署。通过模型探索,我们发现了高精确率、可部署的网络框架,我们也在本篇文章中详述了。我们也采用了一个适合GPU硬件的批处理方案,名为批量调度(Batch Dispatch),我们因此得到了在生产服务器上我们普通话引擎的一种高效实时的实现方法。我们的方法实现了一个第98百分位的67毫秒的计算延迟,而服务器同时加载10个音频流。


论文简介如下。我们以深度学习相关工作的综述作为开始,端对端语音识别,然后在第二部分伸缩性,第三部分描述了框架和模型的算法改善,第四部分解释了如何高效计算它们。我们在第五部分讨论了训练集和进一步强化训练集所需的步骤。第六部分呈现了DS2系统在英语和普通话中的分析结果。结尾(第七部分)描述了在为实际用户部署DS2时所需的步骤。


图片


英文识别结果


最佳的DS2模型有11层,包括3个2D卷积层、7个双向递归(bidirectionalrecurrent)层、以及1个用了BatchNormalization的全连接(fully-connected)输出层。第1层以3的时间步幅将结果输出到二元字母组(bigrams)。与此相比,DS1模型的5层结构中有1个双向递归层,第1层以2的时间步幅将结果输出到一元字母组(unigrams)。我们对DS2模型和DS1模型都报告了一些测试集的测试结果,在所有进行测试的语音情境中都没有对任何一个模型作过调整(tune)或是适应(adapt)的工作。语言模型解码参数在留存开发集(held-outdevelopment set)上只设定了一次。


为了了解在我们的系统在实际情境中的表现,我们将我们大部分的结果与人类做出的转录文本作比较,作为基准测试,因为语音识别是一种听觉感知和语言理解的问题,人类尤为擅长这样的问题。我们从Amazon Mechanical Turk雇佣人员对所有的测试语音人工转录,以此获得了人类级别的表现水平。每个音频片断长度大约为5秒,由2人进行转录,我们从这2份转录中选取较好的一份用来进行最后的WER(词错误率,WordError Rate)计算。对于每个音频片断,转录人员可以听许多遍,对此没有限制。这些员工大部分都在美国,平均每段录音花费27秒的时间来听。手工录入的结果与已有的真实记录(groundtruth transcript)作比较,得到WER值。虽然已有的真实记录的确有一些标记上的错误(labelerror),但这基本不会超过1%。这暗示了人类水平的转录与真实记录之间的不同能启发我们对于人类水平表现的认识(heuristic)。


语音阅读 Read Speech


图片


表13显示,4个测试集中,DS2识别系统在3个测试集上表现超过了人类,在第4个测试集上也与人类相差不远。基于这样的结果,我们怀疑,在不做针对领域的适应的情况下,通用识别系统在纯净的语音阅读方面已经几乎没有提升空间了。


带口音的语音 Accented Speech


图片


表14显示,当我们将更多带口音的语音材料纳入训练数据、并运用可以有效训练这些数据的结构时,识别系统对所有口音的识别都会有所提升。然而,人类级别的表现仍然大大强于DS2识别系统——印度口音除外。


噪音环境下的语音 Noisy Speech


图片


表15显示,DS2比起DS1有了很大的提升,但DS2在噪音环境下的语音识别能力仍然不如人类。相比于在纯净的语音上叠加噪音,真实噪音环境下的语音DS2和人类差距更大。


中文识别结果


图片


在表16中,基于2000段短语音(utterance)的开发集(developmentset)和1882段嘈杂环境下的语音的测试集(testset),我们比较了用中文普通话语音进行训练的几种不同的模型结构。这份开发集也被用来调整解码参数。我们发现,含有2D不变卷积(2D-invariantconvolution)和BatchNorm的最深模型相比于最浅的RNN模型在表现上提升了48%,与我们在英文识别系统上看到的趋势一致——多层双向递归能够很大地提高语音识别表现。


我们也发现,我们最佳的中文普通话识别系统在转录短语音方面的表现甚至比一个典型的中国大陆人还要好。为了与人类做基准测试比较,我们进行了一项测试,随机选出了100条短语音,让5个人类一起对它们做转录标记(label)。这组人类的误差率为4%,而语音识别系统只有3.7%。我们也对单个人类转录者和识别系统作过比较,在250条随机选取的段语音中,识别系统比人类表现得好得多:语音识别系统有5.7%的误差率,而人类达到了9.7%。


总结


端到端的深度学习是一个让人兴奋的机会,让语音识别系统的表现随着数据和计算增加而获得提升。的确,我们的结果显示,相比于它的前身,深度语音(DeepSpeech)在借助更多数据和更大模型后大大缩小了与人类在转录水平上的差距。不仅如此,由于这种方法是极为通用的,我们展示了它可以被快速运用在新语言上。为两种非常不同的语言——英文和中文普通话——创造高性能的语音识别器,在本质上并不需要对于这些语言有专业的知识。最后,我们也展示了这种方法可以通过在一个GPU服务器上批量处理用户请求来完成高效的部署,为实现将端到端的深度学习技术服务于用户奠定了基础。


为了获得这些结果,我们探索了不同的神经网络结构,找到了一些有效的技巧:通过SortaGrad和Batch Normalization增强数字优化(numerical optimization),在英文识别上对更大时间步幅(stride)的RNN网络输出的二元字母组(bigram)进行评估,在双向和单向模型中都进行搜索(search)。我们使用的是受高性能计算的启发而开发的一个经过了很好的优化的训练模型,它让我们能够在短短几天内基于非常大的数据集来训练全新的、实际尺寸(full-scale)的模型。


整体来说,我们相信我们的结果确认并展现了语音识别的端到端深度学习在一些情景下的价值。在某一些例子中,我们的系统尚未达到能够与人类相比的地步,但是与人类的差距在迅速缩小,这在很大程度上是因为深度学习技术对应用没有敏感性(application-agnostic)。我们相信这些技术将继续延展,所以我们得出了这样的结论:一个单个语音识别系统(single speech system)能在大部分情景下识别表现都超过人类的未来,即将到来。


论文全文下载

请在新智元微信订阅号(AI_era),回复1210下载论文全文(28页)


图片




干货下载
1.【华创证券】机械设备:机器人大趋势
2.【东吴证券】大国崛起:中国智造值得中长期布局
3.【广发证券】清洁机器人:旧时王谢堂前燕,飞入寻常百姓家
4.【民生证券】人工智能 + 适合的应用场景
5.【荐书】The Master Algorithm

如何下载?
关注新智元微信订阅号(AI_era),回复“12月下载”即可获得。
图片


继续滑动看下一个
新智元
向上滑动看下一个