经由输出分布来学习学生DNN的制作方法

文档序号:11814756阅读:441来源:国知局
经由输出分布来学习学生DNN的制作方法与工艺

深度神经网络(DNN)承诺了对于包括语音识别和图像处理的复杂信号处理应用的显著准确性提升。DNN的能力来自其具有非常多的参数的深且广的网络结构。例如,上下文相关的深度神经网络隐马尔可夫模型(CD-DNN-HMM)已被示为在许多自动语音识别(ASR)任务方面优于常规的高斯混合模型(CD-GMM-HMM)。然而,CD-DNN-HMM的杰出性能伴随着高得多的运行时成本,因为DNN使用比传统系统多得多的参数。由此,虽然CD-DNN-HMM已经在具有高准确性的情况下被部署在具有充足计算和存储资源的服务器或其它计算机系统上,但在诸如智能电话、可穿戴设备或娱乐系统之类的具有有限的计算和存储资源的设备上部署DNN变得是有挑战的。

但是,在此类设备普遍存在以及DNN呈现给诸如ASR和图像处理之类的应用的潜在益处的情况下,行业有强烈的兴趣在这些设备上具有DNN。针对该问题的常见方法是例如通过减少隐藏层中的节点数以及输出层中的聚类状态(senone)目标数来减小DNN的尺寸。但尽管该方法减小了DNN模型大小,但准确性损失(例如,字差错率)显著增加并且性能质量受损。

概述

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。

本发明的实施例涉及用于通过从具有更大容量(隐藏节点数)的DNN“学习”所部署的DNN来提供供部署在设备上的具有减小的大小的更准确的DNN模型。为了学习具有更少数量的隐藏节点的DNN,使用更大(更准确)的“老师”DNN来训练更小的“学生”DNN。具体而言,如将进一步描述的,本发明的实施例通过使用诸如未转录数据等未标记数据最小化较小的学生DNN与较大的老师DNN的输出分布之间的分歧来利用DNN输出分布的属性。学生DNN可以通过使未标记训练数据通过老师DNN以生成训练目标来从未标记(或未转录)数据中训练。在不需要已标记(或已转录)训练数据的情况下,多得多的数据变得可供训练,由此进一步提高学生DNN的准确性以提供对来自更大的老师DNN的复杂函数的更好的近似。学生DNN可被迭代地优化直到其输出与老师DNN的输出收敛。以此方式,学生DNN接近老师的行为,以使得无论老师的输出是什么,学生都将近似,甚至在老师可能是错误的情况下。本发明的实施例由此特别适合在智能电话、娱乐系统或类似的消费电子设备上提供准确信号处理应用(例如,ASR或图像处理)。

本发明的一些实施例包括通过从甚至更大的“巨大”老师DNN学习DNN模型来提供更准确的DNN模型(例如,小或标准大小)。例如,供部署在服务器上的标准大小的DNN模型可使用本文描述的老师-学生学习规程来生成,其中学生DNN是标准大小的DNN模型,而老师DNN是巨大的DNN,该DNN可能被实现为具有不同错误模式的多个DNN的经训练系综(ensemble)。在一实施例中,该系综通过使用例如交叉熵准则、顺序准则、最小方差准则、具有非负约束的最小方差准则或类似准则来将系综成员输出与自动学习的组合系数相组合来训练。

附图简述

本发明通过示例被例示出,且不限于附图,附图中相同的附图标记指示相似的元素,其中:

图1是示出其中可以使用本发明的实施例的示例性系统架构的框图;

图2描绘了根据本发明的实施例的DNN模型的说明性表示的各方面;

图3描绘了根据本发明的实施例的使用未标记数据来从较大的老师DNN学习较小的学生DNN的说明性表示的各方面;

图4描绘了根据本发明的实施例的系综老师DNN模型的说明性表示的各方面;

图5描绘了根据本发明的实施例的用于通过向较大的DNN模型学习来生成减小的DNN分类器的方法的流程图;

图6描绘了根据本发明的实施例的用于从系综老师DNN模型中生成经训练DNN模型的方法的流程图;以及

图7是适用于实现本发明的各实施例的示例性计算环境的框图。

详细描述

此处用细节来描述本发明的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人已设想所要求保护的主题还可结合其它当前或未来技术以其它方式来实施,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。

本文描述的技术的各方面一般涉及用于通过从具有更大容量(隐藏节点数)的第二DNN学习减小的第一DNN来提供用于部署在设备上的第一DNN模型的系统、方法和计算机可读介质,等等。为了学习具有更少数量的隐藏节点的DNN,使用更大(更准确)的“老师”DNN来训练更小的“学生”DNN。具体而言,本发明的实施例通过使用诸如未转录数据等未标记数据最小化较小的学生DNN与标准(或较大)的老师DNN的输出分布之间的分歧来利用DNN输出分布的属性。学生DNN可以从未标记(或未转录)数据中训练,因为其训练目标是通过使未标记训练数据通过老师DNN来获取的。在不需要已标记(或已转录)训练数据的情况下,多得多的数据变得可供训练,由此进一步提高学生DNN的准确性以提供对来自更大的老师DNN的复杂函数的更好的近似。

如将进一步描述的,在一个实施例中,学生DNN被迭代地优化直到其输出与老师DNN的输出收敛。以此方式,学生DNN接近老师的行为,以使得无论老师的输出是什么,学生都将近似,甚至在老师可能是错误的情况下。本发明的一些实施例由此特别适合在智能电话、娱乐系统或类似的消费电子设备上提供准确信号处理应用(例如,ASR或图像处理)。此外,本发明的这些实施例中的某一些可以与其它技术(诸如在输出层或所有层处用于进一步减少参数数量并降低CPU成本的低秩矩阵、用于SSE(流式SIMD扩展)评估的8位量化和/或帧跳跃或预测技术)相组合以进一步提高CD-DNN-HMM的运行时性能。

在本发明的一些实施例中,通过从甚至更大的“巨大”老师DNN学习可部署的DNN模型来确定可部署的DNN模型(例如,小或标准大小模型)。例如,供部署的服务器上的标准大小的DNN模型(或者供部署的移动设备上的更小的DNN)可使用本文描述的老师-学生学习规程来生成,其中学生DNN是标准大小的DNN(或更小的DNN模型),而老师DNN是巨大的DNN。在一实施例中,巨大的DNN可被实现为具有不同错误模式的多个DNN的经训练系综。该系综可通过使用例如交叉熵准则、顺序准则、最小方差准则、具有非负约束的最小方差准则或类似准则来将系综成员输出与自动学习的组合系数相组合来训练。

如上所述,本文描述的一些实施例的优点是学生DNN模型可使用未标记(或未转录)数据来训练,因为其训练目标(PL(s|x),如将进一步描述的)是通过使未标记训练数据通过老师DNN模型来获取的。因为标记(或转录)数据以用于训练花费时间和金钱,所以如与未标记数据相比少得多的已标记(或已转录)数据是可用的。(已标记(或已转录)数据可用于训练老师DNN。)在不需要已转录(或已标记)训练数据的情况下,多得多的数据变得可供用于训练学生DNN以接近老师DNN的行为。在具有更多的训练数据可用于覆盖特定特征空间的情况下,所部署的(学生)DNN模型的准确性甚至被进一步提高。该优点由于部署反馈循环而尤其可用于具有大量未标记数据可用的行业场景(其中所部署的模型向应用开发者提供其使用数据,应用开发者使用这些数据来进一步定制应用的将来版本)。例如,许多搜索引擎使用这一部署反馈循环。

现在转向图1,提供了示出适用于实现本发明的实施例且被概括地指定为系统100的系统架构的一个示例的各方面的框图。应当理解,此处所描述的这一和其他安排仅作为示例来阐明。由此,系统100表示合适的计算系统架构的仅仅一个示例。附加于或替代于所示的安排和元素,可使用其他安排和元素(例如,用户设备、数据存储等),并且可为了简明起见完全省略某些元素。此外,本文所描述的许多元素是可以实现为分立或分布式组件或结合其他组件的、以及以任何合适的组合和在任何合适的位置的功能实体。此处被描述为由一个或多个实体执行的各种功能可由硬件、固件和/或软件来执行。例如,各种功能或服务可由执行存储在存储器中的指令的处理器来执行。

系统100包括通信地耦合到一个或多个数据源108、存储106、客户机设备102和104以及DNN模型生成器120以及未示出的其它组件的网络110。图1所示的组件可以在诸如结合图7描述的计算设备700之类的一个或多个计算设备上或使用该一个或多个计算设备实现。网络110可以包括但不限于,一个或更多个局域网(LAN)和/或广域网(WAN)。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。应理解,可在本发明范围内的系统100内采用任何数量的数据源、存储组件或数据存储、客户机设备和DNN模型生成器。每一者可以包括单个设备或在分布式环境中协作的多个设备。例如,DNN模型生成器120可经由布置在分布式环境中的共同提供本文描述的功能性的多个计算设备或组件来提供。另外,在网络环境内还可包括其他未示出的组件。

示例系统100包括一个或多个数据源108。数据源108包括用于训练本文描述的DNN模型的数据资源。数据源108提供的数据可包括已标记和未标记数据,诸如已转录和未转录数据。例如,在一实施例中,数据包括一个或多个音素集(声音),并且还可包括可用于初始化老师DNN模型的相应转录信息或聚类状态标记。在一实施例中,数据源108中的未标记数据通过一个或多个部署反馈循环来提供,如上所述。例如,来自对搜索引擎执行的口头搜索查询的使用数据可作为未转录数据来提供。作为示例而非限制,数据源的其它示例可包括各种口语音频或图像源(包括流传输声音或视频);web查询;移动设备相机或音频信息;web摄像头馈源;智能眼镜和智能手表馈源;客户关怀系统;安全相机馈源;web文档;目录;用户馈源;SMS日志;即时消息收发日志;口语单词转录;游戏系统用户交互(诸如语音命令或捕捉到的图像(例如,深度相机图像));推特;聊天或视频呼叫记录;或者社交网络媒体。所使用的特定数据源108可基于应用来确定,包括该数据是因领域而异的数据(例如,只涉及例如娱乐系统的数据)还是本质上通用的(不因领域而异的)。

示例系统100包括客户机设备102和104,这些客户机设备可包括任何类型的计算设备,其中期望在该设备上具有DNN系统,并且具体而言该设备与更强大的服务器或计算系统相比具有有限的计算和/或存储资源。例如,在一个实施例中,客户机设备102和104可以是本文参照图7描述的一种类型的计算设备。作为示例而非限制,用户设备可被体现为个人数据助理(PDA)、移动设备、智能电话、智能手表、智能眼镜(或其它可穿戴智能设备)、膝上型计算设备、平板、遥控器、娱乐系统、车辆计算机系统、嵌入式系统、控制器、电器、家庭计算机系统、安全系统、消费电子设备或其它类似的电子设备。在一个实施例中,客户机设备能够接收诸如音频和图像信息等可由本文描述的在该设备中操作的DNN系统使用的输入数据。例如,客户机设备可具有用于接收音频信息的话筒或输入线路、用于接收视频或图像信息的相机、或者用于从诸如因特网或数据源108之类的另一源接收这一信息的通信组件(例如,Wi-Fi功能性)。

使用本文描述的学生DNN模型的实施例,客户机设备102和104和学生DNN模型处理所输入的数据以确定计算机可用信息。例如,使用在客户机设备上操作的学生DNN模型的一个实施例,可处理用户说出的查询以确定该用户的意图(即,用户想要什么)。类似地,可处理相机导出的信息以确定图像或视频中的形状、特征、对象或其它元素。

系统100中包括示例客户机设备102和104以提供其上可部署通过本发明的实施例创建的学生(或较小)DNN模型的示例环境。尽管构想本文描述的DNN模型的各方面可以在一个或多个客户机设备102和104上操作,但还构想本发明的一些实施例不包括客户机设备。例如,标准大小或较大的学生DNN可被包含在服务器上或云中。此外,尽管图1示出了两个示例客户机设备102和104,但可使用更多或更少的设备。

存储106一般存储包括数据、计算机指令(例如,软件程序指令、例程或服务)和/或本文描述的本发明的实施例中所使用的模型在内的信息。在一实施例中,存储106存储来自一个或多个数据源108的数据、一个或多个DNN模型(或DNN分类器)、用于生成和训练DNN模型的信息以及由一个或多个DNN模型输出的计算机可用信息。如图1所示,存储106包括DNN模型107和109。DNN模型107表示老师DNN模型,而DNN模型109表示具有比老师DNN模型107更小的大小的学生DNN模型。DNN模型的附加细节和示例结合图2-4描述。尽管为了简明起见被描绘为单个数据存储组件,但存储106可被体现为一个或多个信息存储,包括客户机设备102或104、DNN模型生成器120上或云中的存储器。

DNN模型生成器120包括访问组件122、初始化组件124、训练组件126以及评估组件128。一般而言,DNN模型生成器120负责生成诸如本文描述的CD-DNN-HMM分类器之类的DNN模型,包括通过基于来自数据源108的数据来从经训练的老师DNN模型中初始化并训练“学生”DNN模型来创建新DNN模型(或适配现有DNN模型)。DNN模型生成器120生成的DNN模型可被部署在诸如设备104或102等客户机设备、服务器或其它计算机系统上。在一个实施例中,DNN模型生成器120通过将经初始化的“学生”DNN模型训练成接近具有比学生更大的模型大小(例如,参数数量)的经训练的老师DNN模型来创建供部署在可具有有限的计算或存储资源的客户机设备上的缩小的CD-DNN-HMM分类器。在另一实施例中,DNN模型生成器120通过将经初始化的“学生”DNN模型训练成接近具有比学生更大的模型大小(例如,参数数量)的经训练的巨大老师DNN模型来创建供部署在客户机设备、服务器或其它计算机系统上的DNN分类器,其中该巨大的老师DNN模型包括其它DNN模型的系综。

DNN模型生成器120及其组件122、124、126和128可被体现为经编译的计算机指令或函数集、程序模块、计算机软件服务、或者在诸如结合例如图7描述的计算设备700之类的一个或多个计算机系统上执行的进程布置。DNN模型生成器120、组件122、124、126和128、这些组件执行的功能、或这些组件执行的服务可以在计算系统的诸如操作系统层、应用层、硬件层等合适的抽象层处实现。另选地或另外地,这些组件的功能性、DNN模型生成器120和/或本文描述的本发明的实施例可以至少部分地由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)、等等。

继续图1,访问组件122一般负责访问来自一个或多个数据源108以及诸如DNN模型107和109之类的DNN模型的训练数据并将其提供给DNN模型生成器120。在一些实施例中,访问组件122可访问关于特定客户机设备102或104的信息,诸如关于该客户机设备上可用的计算和/或存储资源的信息。在一些实施例中,该信息可用于确定由DNN模型生成器120生成以供部署在特定客户机设备上的DNN模型的最优大小。

初始化组件124一般负责初始化未经训练的“学生”DNN模型并且在一些实施例中初始化用于训练学生的老师DNN模型。在一些实施例中,初始化组件124基于其上将部署经训练的学生DNN模型的客户机设备的限制来初始化特定大小的学生DNN模型(或者不大于特定大小的模型),并且可基于老师DNN模型(更大的DNN模型)来初始化学生DNN。例如,在一实施例中,初始化组件124从访问组件122接收已经根据本领域技术人员已知的技术来训练的具有大小NT的经完整训练的老师DNN以及关于其上将部署经训练的学生DNN的客户机设备的限制的信息。老师DNN可以针对因领域而异的应用(诸如用于娱乐系统的脸部识别或口头查询)或针对通用目的而初始化和/或训练。基于接收到的信息,初始化组件124创建具有合适模型大小(基于客户机设备的限制)的未经训练的初始学生DNN模型。在一个实施例中,学生DNN模型可通过复制老师DNN模型并将其分成更小模型(更少节点数)来创建。如同老师DNN模型,未经训练的学生DNN模型包括可等于老师的层数的隐藏层数,或者学生DNN可包含与老师DNN模型不同的隐藏层数。在一个实施例中,学生DNN模型大小(包括每一层的节点或参数的数量)小于老师的大小NT。适于用作学生DNN的示例DNN模型结合图2描述。在该示例中,CD-DNN-HMM模型直接从可以是预先存在的常规CD-GMM-HMM系统继承其模型结构,包括音素集、HMM拓扑以及上下文相关状态的绑定。

在一个实施例中,初始化组件124通过将随机数赋予模型中的各节点的权重(即,权重矩阵W)来创建并初始化未经训练的学生DNN模型。在另一实施例中,初始化组件124从访问组件122接收用于预训练学生DNN模型的数据,诸如用于建立学生DNN模型的初始节点权重的未转录数据。

在一些实施例中,初始化组件124还初始化或创建老师DNN模型。具体而言,使用访问组件122提供的来自数据源108的已标记或已转录数据,初始化组件124可创建老师DNN模型(可被预训练)并向训练组件126提供经初始化但未经训练的老师DNN模型以供训练。类似地,初始化组件124可通过确定多个子DNN模型来创建系综老师DNN模型(例如,创建并移交给训练组件126以供训练或标识将被包括为该系综的成员的已经存在的DNN模型)。在这些实施例中,初始化组件124还可确定系综的输出层与成员子DNN模型的输出层之间的关系(例如,通过取得成员模型输出的原始均值),或者可将经初始化但未经训练的系综老师DNN提供给训练组件126以供训练。

训练组件126一般负责基于老师来训练学生DNN。具体而言,训练组件126从初始化组件124和/或访问组件122接收将会是学生的未经训练(或预训练)的DNN模型以及将用作老师的经训练的DNN模型。(还构想学生DNN模型可以是经训练的,但可根据本文描述的实施例来进一步训练。)训练组件126还从访问组件122接收未标记数据以用于训练学生DNN。

训练组件126促进通过评估组件128的迭代过程来学生DNN的学习,该评估组件128将相同的未标记数据提供给老师和学生DNN模型,评估这些DNN模型的输出分布以确定学生DNN的输出分布与老师的输出分布的误差,基于该误差来对学生DNN模型执行反向传播以更新学生DNN模型,并且重复该循环直到输出分布收敛(或以其它方式足够接近)。在一些实施例中,训练组件126根据分别结合图5和6描述的方法500和600来训练学生DNN。

在一些实施例中,训练组件126还训练老师DNN模型。例如,在一个实施例中,老师DNN根据本领域技术人员已知的技术使用已标记(或已转录)数据来训练。在一些实施例中,使用系综老师DNN,训练组件126训练系综老师DNN。作为示例而非限制,训练组件126可通过使用例如交叉熵准则、顺序准则、最小方差准则、具有非负约束的最小方差准则或类似准则来将系综成员输出与自动学习的组合系数相组合来训练系综。

评估组件128一般负责评估学生DNN模型以确定它是否被足够地训练以接近老师。具体而言,在一实施例中,评估组件128评估学生和老师DNN的输出分布,确定这些分布之间的差别(可被确定为误差信号),并且还确定学生是否继续改进或者学生是否不再改进(即,学生输出分布不再显示与老师输出收敛的趋势)。在一个实施例中,评估组件128计算输出分布之间的Kullback-Leibler(KL)分歧,并且与训练组件126协作地寻求通过结合训练组件126描述的迭代过程来最小化该分歧。评估器128的一些实施例可使用递归、均方差(MSE)或其它类似方法来最小化老师和学生DNN的输出之间的分歧。

除了确定误差信号之外,评估组件128的一些实施例还确定是否完成另一迭代,包括:基于误差来更新学生DNN,使未标记数据通过学生和老师DNN,以及评估其输出分布。具体而言,评估组件128的一些实施例应用阈值来确定老师DNN与学生DNN输出分布的收敛。在不满足阈值的情况下,迭代可继续,由此进一步训练学生以接近老师。在满足阈值的情况下,然后确定收敛(指示学生输出分布足够接近老师DNN的输出分布),且学生DNN可被认为是经训练的,并且可被进一步部署在客户机设备或计算机系统上。另选地,在一些实施例中,评估组件128基于学生是否继续展现改进(即,通过多次连续迭代,学生的输出分布是否趋向于与老师分布的输出收敛,从而指示学生DNN将随着后续迭代继续改进)来确定是否继续迭代。在此类实施例中,只要学生改进,迭代训练就继续。但在一个实施例中,在学生学习停止(即,学生DNN输出分布在若干迭代内不再接近老师DNN的输出分布),则“下课”,且学生DNN模型可被认为是经训练的。在一个实施例中,收敛可以在学生DNN输出分布在若干次迭代内不再接近老师DNN的输出分布的情况下被确定。在一些实施例中,评估组件128根据分别结合图5和6描述的方法500和600来评估学生DNN。

现在转向图2,提供示例DNN分类器的说明性表示的各方面并将其概括地称为DNN分类器200。该示例DNN分类器200包括DNN模型201。(图2还示出了数据202,该数据是出于理解的目的而示出的,但不被认为是DNN分类器200的一部分。)在一个实施例中,DNN模型201包括CD-DNN-HMM模型且可被体现为输入与合适输出集的映射概率关系的特定结构,诸如在图2中说明性地描绘的。这些概率关系(被示为每一层的节点205之间的连接线)可通过训练来确定。由此,在本发明的一些实施例中,DNN模型201根据其训练来定义。(因此,未经训练的DNN模型可被认为具有与已经训练的同一DNN模型不同的内部结构。)深度神经网络(DNN)可被认为是具有许多隐藏层的(由此是深度的)常规多层感知器。在本发明的一些实施例中,有助于CD-DNN-HMM的优秀性能的三个方面包括:直接对聚类状态建模(即使可能存在数千个聚类状态);使用DNN而不是浅MLP;以及将帧的长上下文窗口用作输入。

参考图2,DNN模型201的输入和输出被分别表示为x和o(图2的210和250)。将层l(图2的220)处的输入向量表示为vl(v0=x),将权重矩阵表示为Wl,且将偏置向量表示为al。于是,对于具有L个隐藏层(图2的240)的DNN,第l隐藏层的输出是:

vl+1=σ(z(vl)),0<l<L

其中z(vl)=Wlvl+al,且σ(x)=1/(1+ex)是逐元素应用的S函数。后验概率(即,DNN的输出)是:

P(o=s|x)=softmax(z(vl)),

其中s属于聚类状态集(也被称为绑定的三音素状态)。

从中,可通过将状态后验概率P(o=s|x)如下转换来计算出HMM的状态发射概率密度函数p(x|o=s):

<mrow> <mi>p</mi> <mo>(</mo> <mrow> <mi>x</mi> <mo>|</mo> <mi>o</mi> <mo>=</mo> <mi>s</mi> </mrow> <mo>)</mo> <mo>=</mo> <mfrac> <mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>o</mi> <mo>=</mo> <mi>s</mi> <mo>|</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>o</mi> <mo>=</mo> <mi>s</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>&CenterDot;</mo> <mi>p</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>,</mo> </mrow>

其中P(o=s)是状态s的先验概率,且p(x)独立于状态且可以在评估期间被丢弃。

在本发明的一些实施例中,CD-DNN-HMM模型(DNN模型201)直接从可以是预定的CD-GMM-HMM系统继承其模型结构,包括音素集、HMM拓扑以及上下文相关状态的绑定。此外,在一实施例中,用于训练DNN的聚类状态标记可以从使用CD-GMM-HMM生成的强制对准中提取。在一些实施例中,训练准则(适用于训练老师DNN)被用来最小化交叉熵,该交叉熵被减小以最小化负对数似然,因为每一帧只具有一个目标标记sτ

-∑tlog(P(st|xt)) (1)

DNN模型参数可使用随机梯度下降或者对于本领域普通技术人员已知的类似技术来通过反向传播优化。

现在转向图3,说明性地提供了根据本发明的实施例的用于从更大的老师DNN学习更小的学生DNN的系统300的各方面。示例系统300包括老师DNN 302以及被描绘为在其各层341中的每一层上具有更少节点的更小的学生DNN 301。如上所述,在本发明的一个实施例中,老师DNN 302包括经训练的DNN模型,该模型可根据对于本领域普通技术人员是已知的标准技术(诸如结合图2描述的技术)来训练。在另一实施例中,老师DNN可以诸如结合图1的训练器组件126来训练。在任一种情况下,假定存在学生DNN向其学习的好老师(即,经训练的老师DNN)。此外,学生DNN 301和老师DNN 302可被分别体现为具有多个隐藏层341和342的CD-DNN-HMM。在图3所示的实施例中,学生DNN 301具有输出分布351,老师DNN 302具有相同大小的输出分布352,但学生DNN 301本身比老师DNN 302更小。

最初,学生DNN 301未经训练,或者可以是预训练的,但尚未通过老师DNN训练。(还构想学生DNN 301可以是经训练的,但学生DNN 301的准确性可通过从老师DNN中训练来进一步提高。)在一实施例中,系统300可用于使用迭代过程来从老师DNN 302学习学生DNN 301直到学生DNN 301的输出分布351趋同于(或以其它方式近似)老师DNN 302的输出分布352。具体而言,对于每一次迭代,未标记(或未转录)数据310的一小片段被提供给学生DNN 301和老师DNN 302两者。使用正向传播,后验分布(输出分布351和352)被确定。误差信号360然后从分布351和352中确定。误差信号可通过确定分布351和352之间的KL分歧或通过使用递归、MSE或其它合适的技术来确定,并且可使用图1的评估组件128来确定。(术语信号(如在“误差信号”中)是一技术术语且不意味着该误差信号包括诸如所传播的通信信号等瞬态信号。相反,在一些实施例中,误差信号包括向量。)确定KL分歧的实施例提供优于诸如递归或MSE等其它替代方案的优点,因为最小化KL分歧等效于最小化分布的交叉熵,如在图5的方法500中进一步描述的。如果学生DNN 301的输出分布351已经与老师DNN 302的输出分布352收敛,则学生DNN 304被认为是经训练的。然而,如果输出尚未收敛且在一些实施例中输出仍然看上去正在收敛,则学生DNN 301基于该误差来训练。例如,如在370示出的,使用反向传播,学生DNN 301的权重使用误差信号来更新。

如上所述,一些实施例可使用阈值来确定收敛,其中学生DNN 301的分布351在误差低于指定阈值的情况下被确定为已经与老师DNN 302的分布352收敛,该指定阈值可以是预定的并且也可基于DNN的特定应用(或者DNN所使用的数据310的类型)或者学生DNN的大小。例如,预期具有与老师DNN近乎相同的参数数量的学生DNN将达到比老师DNN小得多的学生DNN更好的收敛(误差信号更低并由此准确性更高)。系统300还可以在确定误差信号在后续迭代内将不再更小的情况下确定收敛或以其它方式停止迭代。换言之,对于可用数据而言学生已经学到它能从老师那儿学到的全部。

转向图4,提供了老师DNN 402的一个示例实施例的各方面。老师DNN 402包括系综老师DNN模型。系综DNN模型包括被示为子DNN-1 421到子DNN-K 423的多个子DNN。(为了简明起见只示出了两个子DNN;然而,构想系综老师DNN模型的实施例可包括两个或更多个子DNN,例如一个实施例可包括数十个(或更多个子DNN。)系综老师DNN的优点是经训练的系综的输出甚至更准确,因为它包括系综成员(各子DNN)的所有话音。在一个实施例中,系综老师DNN 402包括巨大的系综DNN,该巨大的系综DNN甚至可能太大以至于除了为了训练更小的学生DNN之外实际上甚至无法被部署,该更小的学生DNN可被部署在服务器、客户机设备或其它计算设备上。

在一些实施例中,系综子DNN(诸如DNN-1 421和DNN-K 423)可以是具有不同的非线性单元(例如,Sigmoid、Rectifer、Maxout或其它单元)、不同结构(例如,标准前馈DNN、卷积神经网络(CNN)、递归神经网络(RNN)、长短期记忆RNN或其它结构)、不同的训练策略(例如,标准训练、具有不同因素的退学、或其它策略)、不同拓扑(例如,不同的层和节点数)的DNN,和/或用不同数据训练。这些差别导致不同的误差模式并由此提供更好的老师DNN。如图4所示,系综网络(老师DNN 402)的输出450仍然是后验向量,具有与其子DNN中的每一子DNN的输出(诸如子DNN-1 421的输出451和子DNN-K 423的输出453)相同的维度。在一些实施例中,作为系综的成员的特定子DNN模型可基于例如以下各项来确定:将用作该系统的子DNN的DNN模型的可用性;系综DNN或者将通过该系综DNN来训练的学生DNN的应用、应用环境或运行时环境;可用训练数据;或者预期将被输入到通过系综DNN训练的学生DNN中的数据。在这些实施例中,图1的初始化组件124(或类似服务)可确定将要被包括在系综中的特定子DNN。

子DNN的输出可通过原始均值、通过加权投票(例如,如果已知特定子DNN对于诸如娱乐之类的特定应用或领域执行得更好,则将更高权重赋予这些子DNN)、或通过训练系综的目标函数来组合成输出450。具体而言,每一子DNN输出与最终输出层450之间的连接可使用一个或多个准则来训练,例如通过使用(作为示例而非限制)交叉熵准则、顺序准则、最小方差准则、具有非负约束的最小方差准则或类似准则来将来自每一子DNN的输出后验向量与自动学习的组合系数相组合。在一个实施例中,系综老师DNN 402通过图1的训练组件126来训练。

现在转向图5,提供了示出用于通过从更大的DNN模型学习更小的DNN模型来生成供部署在计算机系统上的缩小的DNN分类器的一种示例性方法的流程图。在方法500中,更小的DNN模型扮演学生DNN的角色,而更大的DNN用作“老师”,更小的DNN被训练成接近该老师DNN。方法500的实施例可使用图1-4中描述的组件(包括DNN模型)来执行。

在高层面,方法500的一个实施例基于学生DNN的输出与老师DNN的输出来迭代地优化学生DNN直到它与老师DNN收敛。以此方式,学生DNN接近老师的行为,以使得无论老师的输出是什么,学生都将近似,甚至在老师可能是错误的情况下。一旦经训练,学生DNN模型就可作为分类器被部署在诸如智能电话、娱乐系统或者与支持老师DNN模型的计算机系统相比具有有限的计算或存储资源的类似消费电子设备之类的计算机系统上。

在步骤510,确定第一DNN模型。第一DNN模型用作用于在方法500的稍后步骤中训练“学生”DNN的老师DNN。第一DNN模型或“老师DNN”可基于学生DNN在作为分类器被部署在计算设备上时的预期应用来确定。例如,如果经训练的学生DNN旨在作为ASR系统的一部分来部署在例如移动设备上,则老师DNN可专用于ASR。在一个实施例中,所确定的老师DNN已经是经训练的,并且可由诸如图1的访问组件等访问组件来从存储中访问。在另一实施例中,所确定的老师DNN被初始化(这可使用图1的初始化组件124来执行)并且被训练(这可使用图1的训练组件126来执行)。在其中老师DNN在步骤510中被训练的一个实施例中,可根据DNN模型训练领域中是已知的技术来使用已标记或已转录数据,诸如使用基于梯度的优化或无监督的贪婪逐层训练规程。在一个实施例中,老师DNN模型通过应用已标记数据的正向传播、将输出分布与标记信息进行比较以确定误差、更新DNN的参数以及重复直到误差被最小化的迭代过程来训练。

在一个实施例中,老师DNN包括CD-DNN-HMM。另选地,老师DNN可使用非线性单元(例如,Sigmoid、Rectifer、Maxout或其它单元);具有诸如标准前馈DNN、卷积神经网络(CNN)、递归神经网络(RNN)或其它结构等结构;和/或根据例如各种训练策略(例如,标准训练、具有不同因素的退出或其它策略)。在步骤510的一个实施例中,老师DNN模型包括包含多个子DNN模型的系综DNN模型。在此类实施例中,系综DNN模型可以如结合图4以及方法600(图6)的步骤610-630所描述的那样确定。

在步骤520,初始化第二DNN模型。第二DNN模型用作用于向步骤510中确定的老师DNN学习的“学生DNN”。在一些实施例中,第二DNN或“学生DNN”由结合图1的初始化组件124所描述的初始化组件来初始化。例如,在步骤520中,学生DNN可被创建(或者在使用预先存在的学生DNN模型的情况下以其它方式确定)为具有比老师DNN更小的大小(例如,每一层更少的参数或节点数)并且还可具有与老师DNN不同数量的隐藏层。在一些实施例中,学生DNN的大小基于经训练的学生DNN将作为分类器被部署在其上的客户机设备来确定,例如基于该客户机设备的计算和存储限制。学生DNN还可基于经训练的学生DNN在被部署为分类器时的预期应用(例如,ASR、图像处理等)来确定。

在一个实施例中,在步骤520,通过复制并划分步骤510中确定的老师DNN以创建尺寸减小的学生DNN来创建学生DNN。在一实施例中,学生DNN可通过接收训练数据并执行学生DNN模型的无监督预训练来初始化。例如,可接收未转录数据并使用该未转录数据来为学生DNN模型建立初始节点权重(即,诸如结合图2描述的权重矩阵W)。在另一实施例中,步骤520包括通过将随机数赋予模型中的节点的权重来初始化未经训练的学生DNN模型。在一个实施例中,学生DNN模型被创建或初始化为从可以是预先存在的常规CD-GMM-HMM系统继承模型结构,包括音素集、HMM拓扑以及上下文相关状态的绑定。

在步骤530,接收未标记数据集以用于训练在步骤520中初始化的学生DNN。未标记数据可由如结合图1的访问组件122描述的访问组件来接收。例如,未标记数据可以从存储接收和/或可以从部署反馈循环接收(或最终导出)。在一个实施例中,未标记数据可包括未转录数据。

因为大量未标记训练数据可以是可用的(例如,从一个或多个部署反馈循环导出的数据),所以步骤530的一个实施例包括接收大量未标记数据以用于在方法500的后续步骤中训练学生DNN。尽管步骤530在方法500中被示为单个步骤,但构想用于训练的未标记数据可以在方法500的各步骤期间按需接收。例如,在一个实施例中,对于步骤540到560的每一次迭代,未标记数据的新部分(或子集)可被接收并用于确定输出分布。

在步骤540到560中,学生DNN使用迭代过程来训练以将其输出分布优化为接近老师DNN的输出分布;例如,在一个实施例中,步骤540-560被重复直到学生输出分布与老师的输出分布足够收敛(或以其它方式变得接近老师的输出分布)。对于每一次迭代,学生DNN基于其输出分布与老师DNN的输出分布的差别或误差来更新,直到达到足够的收敛。在一些实施例中,在连续迭代中使用训练数据的一次或多次完整遍历以提供对老师和学生DNN的各种输入。

在步骤540,使用在步骤530接收到的未标记训练数据的子集,确定老师DNN的输出分布以及学生DNN的输出分布。老师DNN和学生DNN的输出分布可由如结合图1的训练组件126描述的训练组件来确定。在一个实施例中,训练数据的子集包括被输入到老师DNN和学生DNN中的小批量数据(同一小批量数据被馈送到这两个DNN模型)。由此,确定老师DNN和学生DNN的输出分布。在一个实施例中,小批量数据包括未转录训练数据的256个样本或“帧”。

例如,在一个实施例中,对于每一小批量数据,在老师和学生DNN上进行正向传播以确定输出分布(后验分布)。具体而言,在给定用于老师DNN和学生DNN的输入训练数据x的情况下聚类状态s的后验分布对于老师或较大DNN可被表示为PL(s|x)(其中“L”暗示较大)且对于学生DNN可被表示为PS(s|x)。因此,在步骤540的实施例中,正向传播被应用于分别计算针对老师DNN和学生DNN的PL(s|x)和PS(s|x)。

在步骤550,对照老师DNN输出分布来评估学生DNN输出分布。步骤550的评估过程可由如结合图1的评估组件128描述的评估组件来执行。在步骤550的一个实施例中,从在步骤540中确定的输出分布(从在步骤540中使用的训练数据的小批量数据或子集中确定),首先确定学生DNN的输出分布于老师DNN的输出分布之间的差别。(该差别可被表达为学生输出于老师输出之间的“误差”或“误差信号”。)然后,基于该差别,确定学生DNN输出分布和老师DNN输出分布是否已经收敛。例如,这些输出可以在其差别(或误差)足够小的情况下或者在经过若干迭代该差别不再变得更小(暗示学生DNN学习已经终止,因为其输出分布不再趋向于与老师DNN输出分布收敛)的情况下被确定为已经收敛。

例如,可应用阈值(可被称为收敛或差别阈值)以基于误差信号是否足够小(例如,低于阈值)以指示学生的性能接近老师的性能来确定收敛。换言之,学生现在是经训练的,并且它不再需要继续迭代。在一个实施例中,阈值是预定的和/或可基于学生DNN的大小或者学生DNN在被部署为计算设备上的分类器时的预期应用。另选地,步骤550中确定的评估可比较在步骤540的最近迭代中确定的误差信号或差别以确定误差信号是正变得更小(暗示学生DNN继续通过训练改进)还是一点也没有变得更小(暗示学生DNN或更具体而言是其后验分布已经有效地达到与老师DNN的后验分布收敛)。

继续步骤550,可通过确定后验分布之间的Kullback-Leibler(KL)分歧、通过使用递归、或者通过用于最小化老师和学生DNN的输出之间的分歧的类似技术来确定输出分布之间的差别。例如,在一个实施例中,在老师和学生DNN的后验分布被分别确定为PL(s|x)和PS(s|x)的情况下,对于训练数据集xt,t=1到T,这两个分布之间的KL分歧是

<mrow> <msub> <mi>&Sigma;</mi> <mi>t</mi> </msub> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </msubsup> <msub> <mi>P</mi> <mi>L</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>|</mo> <msub> <mi>x</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mi>log</mi> <mo>(</mo> <mfrac> <mrow> <msub> <mi>P</mi> <mi>L</mi> </msub> <mrow> <mo>(</mo> <mrow> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>|</mo> <msub> <mi>x</mi> <mi>t</mi> </msub> </mrow> <mo>)</mo> </mrow> </mrow> <mrow> <msub> <mi>P</mi> <mi>S</mi> </msub> <mrow> <mo>(</mo> <mrow> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>|</mo> <msub> <mi>x</mi> <mi>t</mi> </msub> </mrow> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>)</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中N是聚类状态的总数。

由于方法500的实施例学习学生DNN以接近经训练的老师DNN,所以只优化学生DNN的参数。因此,最小化上述KL分歧等价于最小化交叉熵:

<mrow> <mo>-</mo> <munder> <mo>&Sigma;</mo> <mi>t</mi> </munder> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>P</mi> <mi>L</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>|</mo> <msub> <mi>x</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <msub> <mi>logP</mi> <mi>S</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>|</mo> <msub> <mi>x</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

因为PL(st|xt)logPL(st|xt)对学生DNN参数优化没有影响。上式(3)的训练准则是结合图2描述的式(1)中的标准DNN训练准则的通式,其中对于每一帧,PL(s|x)的仅仅一个维度等于1且其它等于0。作为对比,在式(3)中,PL(s|x)的每一维度都可具有非零(但可能非常小)值。(这阐明了根据本文描述的方法生成的DNN模型为何与具有相同大小但根据标准训练准则来训练的DNN模型不同(更准确)。)使用KL分歧来确定老师和学生输出分布之间的误差信号提供了对诸如递归或MSE之类的其它替代方案的优势,因为最小化KL分歧等价于最小化分布的交叉熵。

在步骤555,基于在步骤550中确定的评估,方法500继续到步骤560或步骤570。具体而言,如果在步骤550中确定学生DNN与老师DNN的输出分布之间的收敛尚未达成(例如,收敛或差别阈值尚未被满足或者学生DNN的输出正持续改进),则方法500继续至步骤560,其中基于在步骤550中确定的误差信号(或差别)来更新学生DNN。然而,如果在步骤550中确定收敛已经达到或者误差信号不再变得更小(暗示学生DNN不再通过训练改进),则方法500继续至步骤570。(换言之,对于学生DNN而言“下课了”。)

在一个实施例中,步骤555还确定训练数据的完整遍历是否已经出现。如果已经出现(如果所有训练数据都已被使用至少一次)并且达到收敛(或者误差信号不再变得更小),则方法500继续至570。在该实施例中,但是如果所有数据尚未被应用,则方法500继续至步骤560并且重新迭代。

在步骤560,基于在步骤550处确定的评估来更新学生DNN。学生DNN可由如结合图1的训练组件126描述的训练组件来更新。在一个实施例中,在步骤550中确定的学生DNN与老师DNN的输出分布之间的差别被用来更新学生DNN的参数或节点权重,这可使用反向传播来执行。以此方式更新学生DNN促进训练学生DNN的输出分布以便更接近地近似老师DNN的输出分布。

在一实施例中,式(3)的输出用于通过反向传播来更新学生DNN。对于每一次迭代,反向传播可使用式(3)的输出来应用以更新学生DNN,由此将学生DNN进一步训练成接近老师。在步骤560后,方法500继续回到步骤540,其中使用训练数据的子集(或小批量数据)来确定老师DNN和现在经更新的学生DNN的输出分布。在一个实施例中,对于每一次迭代,在步骤540中使用新子集或小批量数据直到未标记训练数据集(在步骤530中接收到)中的所有数据都被使用。可以在训练数据被循环之前应用训练数据的完整遍历。

在步骤570,提供经训练的学生DNN。基于步骤550的确定,经训练的学生DNN输出分布已经与老师DNN的输出分布足够收敛,或者学生DNN不再展现改进征兆。在一个实施例中,经训练的学生DNN被部署为诸如图1的客户机设备102或104等计算系统或计算设备上的DNN分类器。例如,经训练的学生DNN可被部署在智能电话或智能眼镜上。基于老师DNN模型和训练数据,经训练的学生DNN可专用于特定应用(例如,图像处理或ASR)或者是通用的。

如上所述,方法500的一些实施例的优点是学生DNN使用未标记(或未转录)数据来训练,因为其训练目标(作为老师DNN的输出分布的PL(s|x))是通过使未标记训练数据通过老师DNN模型来获取的。在不需要已标记或已转录训练数据的情况下,多得多的数据变得可用于训练。此外,在具有更多的训练数据可用于覆盖特定特征空间的情况下,所部署的(学生)DNN模型的准确性甚至被进一步提高。

现在转向图6,提供了示出用于通过从系综DNN模型学习DNN模型来生成供作为分类器被部署在计算机系统上的经训练的DNN模型的一种示例性方法600的流程图。在方法600中,系综DNN模型扮演“老师”的角色,而被训练的DNN模型扮演“学生”的角色。方法600的学生DNN模型可以按与方法500(图5)中描述的方式相类似的方式被训练成接近系综老师DNN模型。系综老师DNN的优点是经训练的系综的输出甚至更准确,因为它包括系综成员(各子DNN)的所有话音。方法600的实施例可使用图1-4中描述的组件(包括DNN模型)来执行。具体而言,图4描述了适于在方法600的一些实施例中使用的系综老师模型的实施例。

在步骤610,确定将作为子DNN被包括在系综DNN模型中的多个DNN模型。该多个DNN模型可由如结合图1的初始化组件124和访问组件122描述的初始化组件和/或访问组件以及结合图4描述的老师DNN 402来确定。在一些实施例中,被确定被将包括在系综老师DNN中的子DNN可以包括DNN或者具有不同的非线性单元(例如,Sigmoid、Rectifer、Maxout或其它单元)、不同结构类型(例如,标准前馈DNN、卷积神经网络(CNN)、递归神经网络(RNN)、长短期记忆RNN或其它结构)的类似结构,可根据不同的训练策略(例如,标准训练、具有不同因素的退出或其它策略)来训练,具有不同拓扑(例如,不同的层和节点数),和/或用不同数据训练。这些差别可造成不同的误差模式并由此提供更好的老师DNN。

在一些实施例中,作为系综的成员的特定子DNN模型可基于例如以下各项来确定:将用作该系统的子DNN的DNN模型的可用性;系综DNN或者将通过该系综DNN来训练的学生DNN的应用、应用环境或运行时环境;可用训练数据;或者预期将被输入到通过系综DNN训练的学生DNN中的训练数据。在这些实施例中,图1的初始化组件124(或类似服务)可确定将要被包括在系综中的特定子DNN。

在步骤620,使用在步骤610中确定的多个子DNN来生成系综老师DNN模型。系综老师DNN模型可由如结合图1的初始化组件124描述的初始化组件生成,并且在一个实施例中,可以类似于结合图4描述的示例系综老师DNN模型402。在步骤620,系综网络的输出包括表示系综老师DNN模型的输出分布(或后验分布)的后验向量。在一个实施例中,后验向量具有与每一子DNN的输出相同的维度。在一个实施例中,系综老师DNN 402包括巨大的系综DNN,该巨大的系综DNN甚至可能太大以至于除了为了训练更小的学生DNN之外实际上甚至无法被部署,该更小的学生DNN可被部署在服务器、客户机设备或其它计算设备上。

在步骤630,训练系综老师DNN。系综老师DNN模型可由如结合图1的训练组件126描述或者如结合图4描述的训练组件训练。在一个实施例中,子DNN已经是经训练的。另选地,子DNN可以在训练系综老师DNN之前训练(诸如结合方法500的步骤510所描述的)。在一个实施例中,步骤630包括通过使用子DNN的输出的原始均值、通过加权投票(例如,如果已知特定子DNN对于特定应用或领域(诸如娱乐)表现得更好,则将更高的权重指派给这些子DNN的输出)、或者通过目标函数来将子DNN的输出组合成表示系综的后验输出分布的向量。具体而言,每一子DNN输出分布与表示系综的输出分布的向量之间的连接可使用一个或多个准则来训练,例如通过使用交叉熵准则、顺序准则、最小方差准则、具有非负约束的最小方差准则或类似准则来将来自每一子DNN的输出后验向量与自动学习的组合系数相组合。

在步骤640,使用在方法600的之前各步骤中生成和训练的系综老师DNN来训练学生DNN。该训练可由如结合图1的训练组件126描述的训练组件来执行。步骤640的实施例可以如方法500的步骤520到560中描述的那样执行,其中系综老师DNN用作方法500的老师DNN。在步骤640的一些实施例中,学生DNN根据方法500的步骤520来初始化。

在完成步骤640之际,在步骤650,可将经训练的学生DNN部署在计算系统上。在一个实施例中,经训练的学生DNN如方法500的步骤570中所描述的那样部署。在一些实施例中,方法600的学生DNN包括可被部署在诸如服务器等计算机系统而不是客户机设备上的标准大小DNN。

因此,已经描述了涉及用于通过从具有更大容量(隐藏节点数)的老师DNN“学习”所部署的DNN来提供供部署在计算设备上的具有减小的大小的更准确的DNN分类器的系统和方法的技术的各方面。根据本发明的一些实施例训练的DNN分类器特别适用于在智能电话、娱乐系统或与更强大的服务器和计算系统相比具有有限的计算和存储资源的类似消费电子设备上提供准确的信号处理应用(例如,ASR或图像处理)。也已经描述了使用对应于老师的系综DNN模型来应用本文描述的老师-学生训练过程的实施例,其中系综老师DNN可以在训练学生DNN之前训练。

可以理解本文描述的实施例的各种特征、子组合和修改是具有实用性的,并且可以在不参考其它特征或子组合的情况下在其它实施例中采用。此外,示例方法500和600中示出的步骤的次序和顺序不旨在以任何方式限制本发明的范围,而事实上这些步骤在本发明的实施例内可以按各种不同的顺序出现。此类变体及其组合也被构想为在本发明的实施例的范围内。

在描述了本发明的各实施例后,现在描述适于实现本发明的实施例的示例性计算环境。参考图7,提供了示例性计算设备并且将其概括地称为计算设备700。计算设备700只是合适的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应该将计算设备700解释为对所示出的任一组件或其组合有任何依赖性或要求。

本发明的各实施例可以在由计算机或诸如个人数据助理或其它手持式设备之类的其它机器执行的计算机代码或机器可使用指令(包括诸如程序模块之类的计算机可使用或计算机可执行指令)的一般上下文中描述。一般而言,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本发明的各实施例可在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、或更专用计算设备等等。本发明的各实施例也可以在任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质两者中。

参考图7,计算设备700包括直接或间接耦合以下设备的总线710:存储器712、一个或多个处理器714、一个或多个呈现组件716、一个或多个输入/输出(I/O)端口718、一个或多个I/O组件720、和说明性电源722。总线710表示可以是一条或多条总线(诸如地址总线、数据总线或其组合)。虽然为了清楚起见利用线条示出了图7的各个框,但实际上,这些框表示逻辑组件而不一定是实际组件。例如,可以将诸如显示设备等呈现组件认为是I/O组件。而且,处理器也具有存储器。发明人认识到,这是本领域的特性,并且重申,图7的图示只是例示可结合本发明的一个或多个实施例来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等类别之间没有区别,它们全部都被认为是在图7的范围之内的并且被称为“计算设备”。

计算设备700通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备700访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法和技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储技术、磁带盒、磁带、磁盘存储或其它磁性存储设备,或可用于存储所需信息并且可由计算设备700访问的任何其它介质。计算机存储介质不包括信号本身。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线路连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。上述的任意组合也应包含在计算机可读介质的范围内。

存储器712包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的,不可移动的,或两者的组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等等。计算设备700包括从诸如存储器712或I/O组件720之类的各种实体读取数据的一个或多个处理器714。呈现组件716向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。

I/O端口718允许计算设备700逻辑上耦合至包括I/O组件720的其他设备,其中某些可以是内置的。说明性组件包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、无线通信设备等等。I/O组件720可提供处理空中姿势、话音或用户生成的其它生理输入的自然用户接口(NUI)。在某些情况下,输入可被传送到合适的网络元件以供进一步处理。NUI可实现语言识别、触摸和指示笔识别、面部识别、生物测定识别、平不上或屏幕附近的姿势识别、空中识别、头部和眼睛跟踪、以及与计算设备700的显示器相关联的触摸识别的任何组合。计算设备700可装备有深度相机,诸如立体相机系统、红外相机系统、RGB相机系统以及这些的组合以也能够与姿势检测和识别。此外,计算设备700可装备有允许检测运动的加速度计或陀螺仪。加速度计或陀螺仪的输出可被提供到计算设备700的显示器以渲染沉浸式增强现实或虚拟现实。

所描绘的各组件以及未示出的组件的许多不同的安排都是可能的,而不背离所附权利要求书的精神和范围。已带着说明性而非限制性的意图描述了本发明的各实施例。替代实施例将阅读本公开后且由于阅读本公开而本公开的读者变得显而易见。用于实现上述功能的替代装置可以在不背离以下权利要求书的范围的情况下完成。特定特征和子组合是有实用性的,并且可以使用而无需参考其他特征和子组合并且被认为是在权利要求书的范围之内的。

尽管用结构特征和/或动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述特定特征和动作是作为实现权利要求书的示例而公开的,并且其他等价特征和动作旨在处于权利要求书的范围内。

因此,在第一方面,本发明的实施例涉及一种或多种其上包含有计算机可执行指令的计算机可读介质,这些指令在由具有处理器和存储器的计算系统执行时使该计算系统执行一种用于生成供部署在计算设备上的DNN分类器的方法。该方法包括将第一DNN模型确定为老师DNN模型,将第二DNN模型初始化为学生DNN模型,以及接收未标记训练数据集。该方法还包括对于多次迭代:(a)使用该训练数据集的子集,确定老师DNN模型的老师输出分布以及学生DNN模型的学生输出分布;(b)确定对学生输出分布与老师输出分布的评估,该评估包括差别;以及(c)基于该评估,更新学生DNN模型以最小化差别。该方法还包括提供学生DNN模型作为经训练的DNN分类器,其中迭代数基于所确定的评估。

在该第一方面的一些实施例中,确定对学生输出分布与老师输出分布的评估包括确定学生输出分布与老师输出分布之间的收敛,并且其中迭代数是执行步骤(a)到(c)直到收敛被确定的次数。在第一方面的一些实施例中,使用Kullback-Leibler分歧来确定对学生输出分布与老师输出分布的评估,并且其中所确定的评估包括误差信号,并且在另一些实施例中,学生DNN模型基于误差信号使用反向传播来更新。

在第一方面的一些实施例中,老师输出分布和学生输出分布使用数据子集来通过正向传播确定。在第一方面的一些实施例中,第一DNN模型是从已经过训练的DNN模型确定的。在第一方面的一些实施例中,第一DNN模型包括系综DNN模型。在第一方面的一些实施例中,第二DNN模型基于第一DNN模型来初始化或者用随机权重值来初始化,并且其中第二DNN模型是预先训练的。在第一方面的一些实施例中,第二DNN模型是CD-DNN-HMM框架的一部分。在第一方面的一些实施例中,训练数据集的子集包括小批量数据,并且其中不同的小批量数据用于多次迭代中的每一迭代直到该训练数据集全部都已被使用。本发明的一个实施例包括被部署在客户机设备上并且通过计算系统执行第一方面的计算机可执行指令来生成的DNN分类器。

在第二方面,提供了一种用于生成供作为分类器部署在计算机系统上的经训练的DNN模型的计算机实现的方法。该方法包括确定将作为子DNN被包括在系综DNN模型中的多个DNN模型,以及使用子DNN来组装系综DNN模型,由此使得多个子DNN中的每一子DNN都是系综成员。该方法还包括训练系综DNN模型。该方法还包括初始化学生DNN模型,以及使用作为老师DNN的经训练的系综DNN模型来训练学生DNN模型。该方法还包括提供学生DNN模型作为DNN分类器。

在第二方面的一些实施例中,将作为子DNN被包括在系综DNN模型中的多个DNN模型是基于被部署在计算机系统上的DNN分类器的预期应用来确定的。在第二方面的一些实施例中,子DNN包括(a)具有不同的非线性单元,(b)具有不同的结构类型,(c)根据不同的训练策略来训练,(d)具有不同拓扑,或者(e)用不同数据来训练的DNN模型。在第二方面的一些实施例中,训练系综DNN模型包括使用例如交叉熵准则、顺序准则、最小方差准则或具有非负约束的最小方差准则来通过所学习的系数组合来组合系综成员输出分布。

在第二方面的一些实施例中,训练学生DNN模型包括:(a)接收未标记训练数据中的小批量数据;(b)使用小批量数据,通过该小批量数据在学生DNN模型和老师DNN模型中的正向传播来确定老师DNN模型的老师输出分布以及学生DNN模型的学生输出分布;(c)确定对学生输出分布与老师输出分布的评估,该评估包括误差信号;以及(d)基于该评估,确定学生输出分布与老师输出分布是否已达成收敛:(i)如果学生输出分布与老师输出分布被确定为已经收敛,则提供学生DNN模型以供部署在客户机设备上;以及(ii)如果学生输出分布与老师输出分布被确定为尚未收敛,则基于所确定的评估来更新学生DNN模型并重复步骤(a)到(d)。一些实施例还包括其中学生DNN模型是CD-DNN-HMM框架的一部分,并且其中在步骤(a)中接收到的小批量数据包括尚未在步骤(b)中使用的训练数据的子集。

在第三方面,提供了被部署在客户机设备上并且根据一种过程创建的基于DNN的分类器。该过程包括(a)将第一DNN模型确定为老师DNN模型以及(b)将第二DNN模型初始化为学生DNN模型。该过程还包括(c)接收未标记训练数据集以及(d)使用来自该训练数据集的子集,确定老师DNN模型的老师输出分布以及学生DNN模型的学生输出分布。该过程还包括(c)确定对学生输出分布与老师输出分布的评估。该过程还包括(f)基于该评估,确定学生输出分布与老师输出分布是否已经达成收敛。如果学生输出分布与老师输出分布被确定为已经收敛,则提供学生DNN模型以供部署在客户机设备上;而如果学生输出分布与老师输出分布被确定为尚未收敛,则基于所确定的评估来更新学生DNN模型并重复步骤(d)到(f)。

在第三方面的一个实施例中,学生DNN模型是CD-DNN-HMM框架的一部分,Kullback-Leibler分歧被用来确定对学生输出分布与老师输出分布的评估,所确定的评估包括误差信号,学生DNN模型基于该误差信号使用反向传播来更新,并且DNN分类器作为自动语音识别系统的一部分被部署在客户机设备上。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1