0
本文作者: 陈圳 | 2016-08-05 17:57 |
雷锋网按:本文作者CSDN周建丁,在本文将会介绍 1)基于深度学习语音识别的最新进展及未来的发展趋势;2)微软深度学习工具CNTK。
作为人工智能领域的一个重要方向,语音识别近年来在深度学习(Deep Learning)的推动下取得了重大的突破,为人机语音交互应用的开发奠定了技术基础。语音识别技术演进及实现方法、效果,既是语音识别从业者需要系统掌握的知识,也是智能化应用开发者应当了解的内容。日前,微软研究院首席研究员、《解析深度学习-语音识别实践》第一作者俞栋接受CSDN专访,深入解析了基于深度学习的语音识别的最新技术方向,和微软团队的实践心得,并对微软开源的深度学习工具CNTK的迭代思路做了介绍。
俞栋介绍了deep CNN、LFMMI、深度聚类、PIT和RNN生成模型等最新的用于语音识别的深度学习模型,以及《解析深度学习-语音识别实践》中提到的迁移学习、计算型网络(CN)等技术。他表示,更困难环境下的识别(如远场、高噪音、或带口音的语音识别)会是下一个需要解决的问题,目前他的团队就专注于研发对各种场景都具有更强识别能力的模型,如deep CNN以及能提升远场识别率的模型(如PIT)。
作为研究人员,俞栋同样注重工程方面的实用性。问题的重要性、研究方向的潜力、解决方案的普适性和工程上的便利性,是他选择研究方向的四个重要考量因素。从工程的角度,他认为,计算型网络在语音识别中的应用,需要考虑训练的难易程度、模型的大小、以及运行时的速度、时延和能耗。这其实也是CNTK未来迭代的核心诉求。
此外,他表示,深度学习只是众多人工智能技术中的一种,主要擅长非线性特征提取和端到端的基于梯度的优化,无法单独用来解决许多实际问题,把多种技术有机地结合起来才是最佳方案。
俞栋,1998年加入微软公司,现任微软研究院首席研究员,兼任浙江大学兼职教授和中科大客座教授。语音识别和深度学习方向的资深专家,出版了两本专著,发表了160多篇论文,是60项专利的发明人及深度学习开源软件CNTK的发起人和主要作者之一。曾获2013年IEEE信号处理协会最佳论文奖。现担任IEEE语音语言处理专业委员会委员,曾担任IEEE/ACM音频、语音及语言处理汇刊、IEEE信号处理杂志等期刊的编委。
以下为采访实录:
|语音识别的最新进展
CSDN:能否介绍当前语音识别领域最让您兴奋的一些进展,以及您目前所做的一些有趣的工作?
俞栋:自从2010年我们在大词汇量语音识别系统里成功引入深层神经网络后,语音识别研究和应用就进入了深度学习时代。最近这几年语音识别领域的发展速度大大超出了我们的预期,每年都有新的更有效的模型和方法被提出来。
在最近的这一年里,有几项工作让我觉得很有意思。
第一项工作是包括IBM、微软、讯飞、上海交大等研究机构报告的深层卷积网络(deep CNN)在大词汇量语音识别中的成功应用。之前我们一般仅在底层使用卷积网络,在那样的框架下卷积网络大大增加工作量但识别上的性能优势并不明显,所以在书中我们没有花很大的篇幅介绍这方面的工作。但当我们应用类似于图像识别中所用的诸如VGG、GoogleNet、和ResNet那样的深层卷积网络时,识别率有了很大的提升,甚至超过了之前表现最佳的深层双向LSTM。由于时延(latency)的原因,双向LSTM不能用于实时系统,而深层卷积网络的时延比较小而且可控,所以可以用于实时语音识别系统中。
第二项工作是约翰霍普金斯大学Dan Povey博士主导的lattice free MMI(LFMMI)。为了提高语音识别系统构建过程的鲁棒性,传统语音识别系统的构建需要经过很多步骤。最近几年里,许多研究人员都在尝试通过端到端(end-to-end)优化直接构建识别系统以省去其他步骤,最有影响力的工作是基于LSTM的Connectionist Temporal Classification(CTC)模型。Google和百度都报告说成功应用了该技术,但据我们所知,直接使用CTC需要大量的调参工作因而总的建模时间反而更长,否者效果很差。或者说这一方法在新任务上的可重复性较差。而LFMMI从传统的MMI序列训练方法发展而来,引入了CTC的一些概念,也可以实现端到端的训练,但构建过程更容易重复,鲁棒性更高。
第三和第四项工作是对鸡尾酒会问题的解决方案。鸡尾酒会是语音识别里一个很难但很重要的问题。最近有两项工作使我们看到了解决这一问题的曙光。
一项是MERL的John Hershey博士为主提出的深度聚类(Deep Clustering)方法。他们的方法通过把混合语音的每个time-frequency bin结合它的context映射到一个新的空间,使得在这一空间中属于同一说话人的bin距离较小因而可以聚类到一起。
另一项是我们和Aalborg大学合作提出的具有置换不变性的训练方法(permutation invariant training,PIT)。PIT通过自动寻找分离出的信号和标注的语源之间的最佳匹配来优化语音分离这一目标。这两种方法各有千秋,我个人的观点是PIT更有潜力一些,最终解决问题的有可能是PIT的某种改进或这两种方法的某种组合。
另外在基于RNN生成模型的识别方法(例如sequence-to-sequence模型)上最近也有一些进展,但总的来说,这一方面的研究还在初步阶段。
我最近在做三项工作:
一项是deep CNN,我们差不多与其他几个研究组同时发现了deep CNN在大词汇量语音识别中的优越性能;
一项是基于 PIT的语音分离,我是这项工作的主导者和主要贡献者;
第三项是基于RNN生成模型的识别方法,我们有一些新的想法,但这项工作还在初级阶段。
|深度学习与语音识别
CSDN:概括地说,除了特征提取,深度学习在语音识别领域主要还发挥哪些作用?
俞栋:深度学习目前最主要的作用仍然在特征提取上。即使deep CNN也可以看成是一个更复杂的特征提取器。但正如你可以想见的,深度学习的作用不仅仅是特征提取。比如我们两年前提出的prediction-adaptation-correction(PAC)模型可以把一些识别上的行为特征比如预测、自适应、和纠偏直接建在模型里。又比如,我们在书中提到的noise-aware和speaker-aware自适应方法可以通过网络结构直接实现自适应建模。再比如,PIT模型可以直接由深度学习模型分离语音,而基于CTC和RNN生成模型的识别方法更是直接由深度学习模型产生识别结果。
CSDN:您与邓力博士合著的《解析深度学习-语音识别实践》系统地介绍了基于DNN的语音识别技术,哪些人应该读这本书?他们会收获些什么?这本书适合入门吗?需要读者具备什么知识基础?
俞栋:对于正在或将来想从事语音识别研究或工程实践的学者、学生、和工程师,这本书都会对他们有所助益。而这也正是我们写这本书的初衷。在这本书里,我们试图描绘基于深度学习的语音识别技术的整个框架和主要技术。因为我本人一直奋斗在科研的第一线,所以在书中我们能够提供各种方法提出的基本思路、具体的数学推导、以及实现上的细节和经验。我们希望这本书可以成为大家的reference book。不同的读者可以在书中找到他们想要了解的东西。对于非语音识别领域的研究人员,这本书中提到的方法和思想对他们解决自己的问题也会有所帮助,因为这些都是通用的。
这本书同样适合入门。事实上北美和日本都有大学把本书作为本科或研究生语音处理课程的教材或参考书之一。要读懂这本书,读者只需要基本的微积分、概率论、和矩阵分析的知识。当然,学过机器学习会对里面提到的一些基本概念有更好的认识,而有传统语音识别系统的知识有助于理解识别系统的整个框架以及序列层面上的区分度训练(sequence-level discriminative training)。
CSDN:您介绍了很多提高鲁棒性的方法,有哪一种是您最喜欢的吗?
俞栋:从实用的角度看,基于辅助信息(auxiliary information)的方法例如noise-aware和speaker-aware模型、以及基于SVD和KLD regularization的自适应方法目前最简单有效。
CSDN:书中专门谈到了迁移学习,举了一些例子,如欧洲语言到中文普通话的成功迁移,那么哪些因素决定共享DNN隐层架构在当前语音识别领域的边界和局限?迁移学习在语音识别领域推广应用的挑战是什么?
俞栋:理论上来讲基于共享DNN隐层架构的多语言迁移学习没有本质上的局限,这是因为你总能找到某个层面,在这个层面上语音特征非常类似,即使是非常不同的语言,比如西语与中文。从工程实践的角度来讲,会有权衡。一般来讲,迁移学习想要实现两个目标,一个是快速学习新任务(在这里是新语言),一个是减少学习新任务所需的数据。所以如果一个新语言有足够的数据而运算工具不是问题,那么直接训练可能更好,这是因为一个已经收敛的模型比较难调整到新语言上,就好像一个成年人学新语言比幼儿会难一些。但是如果数据和运算工具有一个不足,那么基于共享DNN隐层架构的多语言迁移学习就会对你的最终系统有帮助。
值得指出的是,基于共享DNN隐层架构的迁移学习也可以用于唤醒词识别(hot-word detection)中以支持用户自选唤醒词。图像识别中也有类似的应用,比如,用ImageNet训练出来的分类器的隐层可以用于image captioning或其他图像分类任务。另外,我们这里提到的是特征层面的迁移,其他层面的迁移也有可能但会困难很多。
CSDN:书中还强调了计算型网络(CN)在新语音识别系统中的作用,考虑CN需要注意哪些问题?热门的LSTM RNN被高估了吗?
俞栋:从学术研究的角度来讲最重要的是分析模型各变量之间的关系,然后用计算型网络来实现这些关系。从工程的角度来讲,还要考虑训练的难易程度、模型的大小、以及运行时的速度、时延和能耗。
LSTM 在许多模型中仍然有重要的作用。不过我们发现一些其他模型在某些问题上可以和LSTM表现接近甚至超过它,比如前面提到的deep CNN在非特定人语音识别上能超过LSTM,而GRU和基于Rectified Linear Unit 的RNN在很多时序问题上和LSTM表现接近但更简单。
|未来技术趋势
CSDN:语音识别的未来技术方向,其中哪些是您的团队所关注的?您如何确定一个技术研究的方向?
俞栋:我们认为更困难环境下的识别比如远场、高噪音、或带口音的语音识别会是下一个需要解决的问题,我们的研究也侧重在这些方面。我们目前专注于研发对各种场景都具有更强识别能力的模型比如 deep CNN 以及能提升远场识别率的模型比如PIT。我们也关注可能引发技术革新的其他新想法比如基于RNN生成模型的识别系统。
对于研究方向,我个人主要基于如下四个方面来决定:
问题的重要性。我们侧重解决重要的问题而不管问题本身是简单还是困难。
研究方向或方法的潜力而不仅仅是目前的表现。如果一个方法目前表现不够佳,但是具有很大的可扩展性和想象空间,那么我们会在这个方向上推进。
解决方案的普适性。我们更喜欢能解决一类问题或多个场景的方法而不是某个特定问题或场景的方法。
工程上的便利性。我们更喜欢简洁的方法,简洁的方法更便于工程实现和快速迭代。
CSDN:训练关键的发音特征并泛化,目前有什么样的进展?您认为技术成熟还需要什么条件?
俞栋:我们现在的所有模型都不对关键的发音特征做任何预设,模型参数完全是从数据中学出来的。
在机器学习中,有个著名的bias and variance dilemma。拟合能力弱的模型一般有较小的方差引起的错误率,比较不容易过拟合,但有较大的由偏差引起的错误率。而拟合能力强的模型则反之。由偏差引起的错误率不容易减小,但是由方差引起的错误率却可以通过增加训练数据来减小。深度学习模型其实就是拟合能力较强的一类模型,目前解决泛化能力(或由方差引起的错误率)的主要方法就是增加训练数据。
但是人可以用少得多的训练数据达到在不同场合下的较高的识别率,尤其是对未见场合的泛化能力人远远超过深度学习。我个人做过一些这方面的探索,比如让每个音素学习一个在多种环境下都适用的模板(或mask),但遗憾的是这些尝试并不成功。目前我们还没有发现具有这种强泛化能力的模型。要解决这个问题,机器学习算法必须能够自动识别各层次低维流型上不同sample的相同点和不同点,并知道对哪个问题用哪个层次上的特征。
CSDN:未来三五年的语音识别领域,是否还有一些非深度学习方法具有挖掘的潜力(或者可以和深度学习进行结合实现更好的效果)?
俞栋:其实目前的主流语音识别技术仍然集成了传统方法和深度学习方法。如果把深度学习定义为任何具有多级非线性处理的系统,那么任何含有深度学习模块的系统都是深度学习系统。但这并不表示深度学习就是全部。
从更广泛的范围来看,深度学习只是众多人工智能技术中的一种,它的主要长处还是在于非线性特征提取和端到端的基于梯度的优化。许多问题都不能仅仅使用深度学习技术来完成。比如AlphaGo 其实就是集成了深度学习、强化学习、和蒙特卡洛树搜索技术。我个人认为应该让每个技术做它擅长的事,把多种技术有机地结合起来会是解决很多实际问题的最佳方案。
|新技术学习方法
CSDN:这本书的参考文献数量达到了450多份,包括很多论文,这可能得益于您的IEEE的工作,但目前各个大会/期刊收的论文非常多,能否介绍一些快速选择和研读论文的通用方法?
俞栋:你会发现,虽然论文很多,但主要的进展仍然是由几个主要的研究机构和个人推动的。如果你没有足够的时间,那么跟踪这些研究机构和个人会是一个比较有效的方法。如果你能与他们建立良好的关系,你甚至可以在他们的工作正式出版之前就了解他们的进展或得到文章的预印本。如果你还有时间,我建议你去参加相关的学术会议。学术会议是信息交流的场所,你可以了解到大家都在讨论什么问题和方法,推荐阅读哪一篇文章,注意哪一项工作。
当然,并不是每篇文章都值得仔细研读。我会阅读概要、简介、和总结以对一篇文章有个大致的了解,而只花更多时间在有新思想、新方法、新视角或者新结论的具有潜力的工作上。
|CNTK加速模型训练速度
CSDN:您认为CNTK在语音识别算法开发中的优势如何体现?
俞栋:就我个人所知,许多新的语音识别模型都是基于CNTK开发的。我们一开始开发CNTK主要就是为语音识别的研究服务的。即使今天CNTK能方便地支持图像、视频、文本、以及其他信息的处理,它对于语音识别模型的支持仍然比较好。CNTK非常灵活,它支持各种主流模型,比如 DNN、CNN、LSTM,同时可以自定义各种新模型,比如PIT模型和PAC模型就都是完全由CNTK构建的。另外,因为CNTK也是我们产品线上的主要工具,所以我们开发了许多高效率高性能的并行算法。这些算法极大地提升了像语音识别这样需要大量训练数据的任务的训练速度。
CSDN:能否介绍CNTK的Python支持的进展?未来对于其他语言如Matlab、R、Java、Lua、Julia的支持是如何规划的?
俞栋:我们在已经发布的1.5和1.6版本中已经有对Python的支持。在将要发布的2.0版本中我们会提供更完善的支持,另外2.0版的API也会更完整、更灵活。在新的API框架下,加入对其他语言的支持会变得很容易。
CSDN:CNTK可扩展GPU的能力值得称道,但大规模部署GPU能耗同样不小,现在有不少FPGA、ASIC加速方案的尝试,CNTK会做类似扩展的考虑吗?
俞栋:事实上,感谢我们工程师的优化工作,我们目前的所有语音识别系统都可以在单CPU上实现实时识别。所以在serving端,GPU能耗还不是问题。 但我们预见到单CPU的瓶颈,所以在CNTK上也在部署低精度低能耗的CPU/GPU架构。当然,我们也有同事在做FPGA的工作。
CSDN:深度学习用于语音识别的形式往往是混合模型,您认为是否有必要考虑CNTK与非深度机器学习系统的整合,比如Yahoo!的Caffe-On-Spark?
俞栋:在运行环境上的集成方面,黄学东博士(1993年被微软从卡内基梅隆大学聘请来主导语音识别项目)主导的Philly项目有做类似的工作。
CSDN:在未来半年CNTK会有哪些重要的更新?
俞栋:我们会有更好更灵活的API层,会提供更全面的Python支持,会进一步提升训练的效率,对稀疏矩阵会做更好的支持,会支持低精度计算。当然,更多种类的更复杂的计算节点(比如LFMMI)也会加入到工具中。
CSDN:除了CNTK,还有哪些深度学习开源技术是您喜欢的?
俞栋:TensorFlow、Torch、MxNet、Theano等都是不错的深度学习开源工具。每种工具都有自己的特点和长处。
CCAI 2016中国人工智能大会将于8月26-27日在京举行。
原文链接:http://geek.csdn.net/news/detail/93513
雷峰网版权文章,未经授权禁止转载。详情见转载须知。