使用深度多项式网络对加密数据的分布式和协作分析

文档序号:1909601 发布日期:2021-11-30 浏览:20次 >En<

阅读说明:本技术 使用深度多项式网络对加密数据的分布式和协作分析 (Distributed and collaborative analysis of encrypted data using a deep polynomial network ) 是由 张世雄 俞栋 于 2020-06-26 设计创作,主要内容包括:本公开涉及云-本地联合或协作数据分析框架,该框架提供数据分析模型,数据分析模型在后端服务器中进行训练并托管在后端服务器中,用于处理由远程终端设备预处理和加密的数据项。数据分析模型配置成生成加密输出数据项,然后将加密输出数据项传送到本地终端设备以进行解密和后处理。该框架在不会使本地终端设备的解密密钥暴露于后端服务器和通信网络的情况下起作用。后端服务器中的加密/解密和数据分析配置成高效地处理和传送数据项,以对来自远程终端设备的数据分析请求提供实时或近似实时的系统响应。(The present disclosure relates to a cloud-local federated or collaborative data analysis framework that provides data analysis models that are trained and hosted in back-end servers for processing data items that are pre-processed and encrypted by remote terminal devices. The data analysis model is configured to generate an encrypted output data item and then transmit the encrypted output data item to the local terminal device for decryption and post-processing. The framework functions without exposing the decryption key of the local end device to the backend server and the communication network. Encryption/decryption and data analysis in the back-end server are configured to efficiently process and transmit data items to provide real-time or near real-time system responses to data analysis requests from remote end devices.)

使用深度多项式网络对加密数据的分布式和协作分析

发明人

张世雄

董宇

交叉引用

本PCT国际专利申请基于2019年7月8日提交的、题为“Distributed andCollaborative Analytics of Encrypted Data Using Deep Polynomial Networks(使用深度多项式网络对加密数据的分布式和协作分析)”的美国专利申请No.16/505,368,并要求该美国专利申请的优先权,该美国专利申请通过引用整体并入本文。

技术领域

本公开总体上涉及数据分析,特别涉及作为实时按需服务的加密数据的语音识别。

背景技术

对一些数据项的分析可基于更适于部署在强大且集中管理的远程后端服务器中的复杂数据处理模型(例如基于神经网络的人工智能模型)。此外,这些模型可能需要大量的努力来生成,且这些模型的开发者可倾向于集中部署,而不是将这些模型分发到本地终端设备,以避免其算法泄露。因此,这样的数据分析可作为远程按需服务来提供。例如,需要这样的数据分析服务的本地终端设备可通过通信网络向远程后端服务器发送数据项,然后在由远程后端服务器执行数据分析之后接收结果。在一些情况下,数据项可以是敏感的或机密的,且不能以未加密的形式暴露于通信网络和/或远程后端服务器。因此,对于一些安全应用,在向远程后端服务器发送数据分析服务的请求之前,可能需要在本地终端设备处对数据项进行加密。因此,部署在远程后端服务器中的数据分析模型可能需要配置成不必访问任何解密密钥就能处理加密数据项。可开发用于这些数据项的特殊数据加密/解密算法,该算法可以在加密输入数据和未加密输入数据之间提供数据分析模型的近乎不变性,但是该算法可能非常复杂且需要大量时间来在本地终端设备中运行。因此,这样的特殊数据加密/解密算法对于要求对数据分析需求做出实时或近似实时响应的许多应用(包括但不限于会话语音识别应用)来说不切实际。

发明内容

本公开涉及云-本地联合或协作数据分析框架,该框架提供数据分析模型,数据分析模型在后端服务器中进行训练并托管在后端服务器中,用于处理由远程终端设备预处理和加密的数据项。数据分析模型配置成生成加密输出数据项,然后将加密输出数据项传送到本地终端设备以进行解密和后处理。该框架在不会使本地终端设备的秘密解密密钥暴露于后端服务器以及本地终端设备和后端服务器之间的通信网络的情况下起作用。因此,除了给数据分析模型提供保护而不会遭受通过在由模型开发者控制的后端服务器中(而不是在终端设备中)部署模式来进行剽窃之外,该框架还提供对用户数据的隐私保护。后端服务器中的加密/解密和数据分析配置成高效地处理和传送数据项,以对来自远程终端设备的数据分析请求提供实时或近似实时的系统响应。例如,可应用该框架来提供远程控制的实时按需语音识别服务。

在一种实现方式中,公开了一种用于提供远程数据分析的系统。该系统包括:通信接口;存储器,用于存储深度学习神经网络;以及电路,与通信接口和存储器通信。电路可配置成:通过通信接口从远程终端设备接收加密数据项;以加密形式使加密数据项经过深度学习神经网络正向传播(forward propagate),以获得加密输出数据项;以及通过通信接口向远程终端设备发送加密输出数据项。深度学习神经网络使用未加密训练数据进行训练,并包括互连成多个层的神经元,其中,深度学习神经网络的至少一个激活操作和至少一个池化操作被多项式化。

在上述实现方式中,远程数据分析包括远程语音识别服务。在上述任一实现方式中,加密数据项包括在远程终端设备处使用语音感知模型导出、随后在远程终端设备处加密的、预定帧持续时间的音频波形的帧的级联特征;深度学习神经网络包括声学模型,声学模型用于将由远程终端设备加密的级联特征处理成加密输出数据项;以及深度学习神经网络的加密输出数据项包括对应于电话码本的概率向量。

在上述任一实现方式中,至少一个池化操作使用缩放的平均池化来多项式化。在上述任一实现方式中,至少一个激活操作使用s型函数的三次多项式近似来多项式化。在上述任一实现方式中,加密数据项可基于远程终端设备处的公钥加密。在上述任一实现方式中,使用未加密训练数据进行训练的深度学习神经网络的至少一个模型参数子集保持未加密,以用于加密数据项的正向传播。

在上述任一实现方式中,模型参数子集包括多个权重和多个批归一化参数。在上述任一实现方式中,模型参数子集进一步包括多个卷积内核。

在上述任一实现方式中,深度学习神经网络可如下进行训练:初始训练深度学习神经网络,其中将一个模型参数集训练到第一精度;以及通过在训练数据的正向传播和反向传播(backward propagation)期间将模型参数集量化到小于第一精度的第二精度,来重新训练深度学习神经网络。

在上述任一实现方式中,通过计算第一精度的模型参数集的统计分布来确定模型参数集的量化水平,使得围绕模型参数集的更集中的值来分配更密集的量化水平。在上述任一实现方式中,第二精度的第一精度分别由模型参数集的参数比特的第一预定数量和参数比特的第二预定数量表示,其中,参数比特的第二预定数量是8。

在上述任一实现方式中,深度学习神经网络包括感知模型和跟随的声学模型。加密数据项包括从远程终端设备发送的预定帧持续时间的音频波形的加密帧。感知模型配置成将音频波形的加密帧转换成感知特征。声学模型配置成将感知特征转换成加密输出数据项,加密输出数据项包括对应于深度学习神经网络的电话码本的概率向量。

在上述任一实现方式中,深度学习神经网络包括声学模型和跟随的语言模型。加密数据项包括从远程终端设备发送的预定帧持续时间的音频波形的多个帧中的每个帧的加密感知特征。声学模型配置成将加密数据项转换成对应于电话码本的多个加密概率向量,每个加密概率向量对应于音频波形的多个帧中的一个帧。语言模型配置成将多个加密概率向量转换成加密输出数据项,加密输出数据项包括加密文本段。

在上述任一实现方式中,深度学习神经网络包括感知模型、跟随的声学模型和跟随的语言模型。加密数据项包括从远程终端设备发送的预定帧持续时间的音频波形的多个加密帧中的每个加密帧。感知模型配置成将音频波形的多个加密帧转换成多个感知特征集。声学模型配置成将多个感知特征集转换成对应于电话码本的多个加密概率向量,每个加密概率向量对应于音频波形的多个帧中的一个帧。语言模型配置成将多个加密概率向量转换成加密输出数据项,加密输出数据项包括加密文本段。

在另一实现方式中,提供一种用于提供远程数据分析的系统。该系统包括终端设备和远程服务器。远程服务器包括:通信接口;存储器,用于存储深度学习神经网络;以及电路,与通信接口和存储器通信。终端设备和远程服务器的电路配置成:通过终端设备对数据项进行加密,以获得加密数据项;通过终端设备向远程服务器的通信接口发送加密数据项;通过电路经由通信接口从终端设备接收加密数据项;通过电路以加密形式使加密数据项经过深度学习神经网络正向传播,以获得加密输出数据项;通过电路经由通信接口向终端设备发送加密输出数据项;通过终端设备从远程服务器接收加密输出数据项;以及通过终端设备对加密输出数据项进行解密,以获得解密数据项。深度学习神经网络使用未加密训练数据进行训练,并包括互连成多个层的神经元,其中,深度学习神经网络的至少一个激活操作和至少一个池化操作被多项式化。

在上述实现方式中,远程数据分析包括远程语音识别服务。加密数据项包括在终端设备处使用语音感知模型导出、随后在终端设备处加密的、预定帧持续时间的音频波形的帧的级联特征。深度学习神经网络包括声学模型,声学模型用于将由终端设备加密的级联特征处理成加密输出数据项。深度学习神经网络的加密输出数据项包括对应于电话码本的概率向量。

在上述任一系统实现方式中,使用未加密训练数据进行训练的深度学习神经网络的至少一个模型参数子集保持未加密,以用于加密数据项的正向传播。

在又一实现方式中,公开了一种用于提供由服务器执行的远程数据分析的方法,服务器包括通信接口、用于存储深度学习神经网络的存储器、以及与通信接口和存储器通信的电路。方法包括:通过电路经由通信接口从远程终端设备接收加密数据项;通过电路以加密形式使加密数据项经过深度学习神经网络正向传播,以获得加密输出数据项;以及通过电路经由通信接口向远程终端设备发送加密输出数据项。深度学习神经网络使用未加密训练数据进行训练,并包括互连成多个层的神经元,其中,深度学习神经网络的至少一个激活操作和至少一个池化操作被多项式化。

附图说明

图1示出了用于提供远程数据分析服务的示例系统。

图2a和图2b示出了用于提供数据分析服务的图1的系统的各种实现方式。

图3示出了用于提供加密数据项的分布式和协作数据分析的示例实现方式。

图4示出了用于提供使用特定加密方案加密的数据项的分布式和协作数据分析的示例实现方式。

图5示出了用于数字化输入音频波形的语音识别的示例数据分析流水线。

图6示出了用于提供加密音频数据项的分布式和协作语音识别的示例实现方式。

图7示出了用于提供加密音频数据项的分布式和协作语音识别的另一示例实现方式。

图8示出了用于提供加密音频数据项的分布式和协作语音识别的另一示例实现方式。

图9示出了用于提供加密音频数据项的分布式和协作语音识别的又一示例实现方式。

图10示出了图6的分布式和协作语音识别过程的更详细实现方式,示出了部署在后端服务器中的深度学习神经网络。

图11示出了用于语音识别的传统深度学习神经网络的多项式化。

图12示出了用于训练深度多项式神经网络的逻辑流程。

图13示出了深度多项式网络的模型参数值空间的示例量化。

图14示出了使用浮点计算但是用于浮点值空间不均匀地量化到低分辨率定点值空间的深度多项式网络的重新训练的截图。

图15示出了可用作图1中的终端设备或服务器设备的计算设备的各种电子元件。

具体实施方式

对复杂数据的分析可依赖于需要强大计算能力和大存储器空间的数据处理流水线。这种数据处理流水线可包括各种类型的数据处理组件和数据处理模型,且可托管在后端服务器中以远程服务于本地终端设备。特别地,这些数据处理流水线可以以虚拟机的形式托管在后端服务器中,虚拟机利用分布在云平台中的虚拟计算资源。需要这种数据分析服务的本地终端设备可通过通信网络向远程后端服务器发送数据项以及处理数据项的请求,然后在远程后端服务器执行所请求的数据分析之后接收结果。

在许多安全应用中,需要数据分析服务的数据项可以是敏感的或机密的,且可不以未加密的形式暴露于通信网络和/或远程后端服务器。对于这些应用,在数据项离开本地终端设备之前以及在对数据分析服务的请求发送到远程后端服务器之前,可能需要对数据项进行加密。出于安全目的,可给后端服务器提供加密数据项,而不必访问解密密钥,因此必须通过以加密形式处理数据项来提供数据分析服务。因此,托管在后端服务器中的数据分析流水线中所包括的数据处理组件和数据处理模型可能需要能够处理加密数据。

本公开涉及云-本地联合或协作数据分析框架,该框架提供数据分析模型,数据分析模型在后端服务器中进行训练并托管在后端服务器中,用于处理由远程终端设备预处理和加密的数据项。托管在后端服务器中的数据分析模型生成加密输出数据项,然后将加密输出数据项传送到请求数据分析服务以进行解密和后处理的本地终端设备。本文公开的框架在不会使本地终端设备的解密密钥暴露于后端服务器以及本地终端设备和后端服务器之间的通信网络的情况下起作用。因此,本文公开的框架提供数据隐私保护。后端中的加密/解密和数据分析配置成高效地处理和传送数据项,以对来自远程终端设备的数据分析请求提供实时或近似实时的系统响应。

此外,托管在后端服务器中的数据分析模型和这些数据分析模型的操作及其训练被调整和修改,使得数据分析模型可以以加密形式处理数据项。相同的数据分析模型可用于给不同的客户端提供服务,每个客户端具有自己的解密密钥。框架和数据分析模型可用于提供远程按需语音识别服务和其他类型的数据分析服务。

图1示出了用于提供远程数据分析服务的示例系统100。系统100包括部署在云平台110中的后端服务器112和远程终端设备120。后端服务器112和远程终端设备通过公共或专用通信网络102连接。适合于部署后端服务器112的示例性云平台包括但不限于亚马逊的AWSTM、谷歌云和微软的AzureTM。虽然在图1中示出了单个云平台110,但是后端服务器可以跨多个云平台来部署。进一步如图1所示,后端服务器可替代地部署为专用服务器130,而不是一个或多个云平台中的虚拟机。同样,专用服务器130通过公共或专用通信网络102连接到远程终端设备120。

系统100还包括基于云的储存库或数据库114和/或不基于云的储存库或数据库132,储存库或数据库114和/或储存库或数据库132连接到通信网络102,用于存储各种数据分析模型以及由数据分析模型和流水线处理的各种输入数据项、中间日期项和最终数据项。终端设备120可包括但不限于台式计算机、膝上型计算机、平板计算机、移动电话、个人数字助理、可穿戴设备等,如终端设备122、124、126和128所示。通信网络102可包括例如有线网络、无线网络、接入网络和核心网络的任何组合,这些网络具有配置成发送和接收数据的网络协议栈。

图2a和图2b还示出了用于从部署在云110中的后端服务器112向终端设备120提供远程数据分析服务的多个示例性实现方式。如图2a所示,用f表示在终端设备120处准备或预处理以由后端服务器112进行进一步数据分析的数据项。数据项可传送到后端服务器112,如箭头203所指示的。由后端服务器执行的数据分析可由m()表示,如204所示。因此,由后端服务器112执行数据分析之后的输出数据项可由m(f)表示,如206所示。然后,处理后的数据项m(f)可由后端服务器112发送到终端设备120,如箭头207所示。终端设备120还可对数据项m(f)进行后处理,如终端设备120中请求远程数据分析服务的应用(图2a中未示出)指定的。

在涉及例如敏感和机密的医疗、金融、企业或其他私有数据的许多应用中,在图2a的实现方式之后提供数据分析服务可能不安全。具体地,在图2a所示的数据传输和通信方案中,未加密形式的数据项f暴露于潜在的不可信通信信道203以及后端服务器112。同样,处理后的、未加密形式的数据项m(f)进一步暴露于不可信通信信道207。因此可危害数据项f和m(f)的完整性。

图2b示出了从图2a修改的用于向数据项f和m(f)添加保护的实现方式。如图2b所示,在数据项f由终端设备120发送到后端服务器112以用于数据分析服务之前,数据项f首先由终端设备120加密,如208所指示的。终端设备120执行的加密函数可由E()表示。这样,由E(f)(而不是f)表示的加密数据项(210)可由终端设备120发送到后端服务器112。解密密钥可由终端设备120保持秘密状态,且可以不暴露于通信信道203和207以及后端服务器112。然后,后端服务器112可使用数据分析处理函数m()处理加密数据项E(f)210,如204所示,以获得处理后的数据项m(E(f)),如212所指示的。然后,处理后的数据项m(E(f))212可从后端服务器112发送到远程终端设备120。然后,当接收到处理后的数据项m(E(f))212时,终端设备120可执行解密D(),如214所示,以在后处理(图2b中未示出)之前获得解密数据项D(m(E(f))),如206所示。

在图2b的实现方式中,因为后端服务器112无法访问任何客户端的秘密解密密钥,所以数据分析函数m()通常被开发成用于处理未加密数据项,而不是处理加密数据项。为了使图2b的实现方式在使用相同的数据分析函数m()处理加密数据项时成功地起作用,图2b的解密过程214需要恢复或几乎恢复在未加密输入数据项直接由数据分析函数m()处理的情况下生成的数据项。这在图3中示出,其中终端设备120处的解密结果D(m(E(f)))恢复为m(f)(在其他方面,图3与图2b相同)。

为了针对任何数据分析函数m(),使用图2b和图3的方案实现D(m(E(f)))=m(f),加密算法E()和解密算法D()可能需要以一些特殊和非传统方式实现。具体地,传统加密方案锁住数据,使得在不首先在后端服务器120处解密的情况下就难以满足上述条件(即使有可能,也难以满足)。满足上述条件的非传统加密过程可被称为同态加密(HE)。HE过程可设计成允许计算和处理加密形式的数据项。可以在加密数据项的计算和处理之后执行解密,且处理后的加密数据项的解密输出可与对相应的未加密数据项执行的相同计算和处理m()的输出相同。这种加密类型被称为同态,因为数据计算和处理(可选地,被称为数据转换)对未加密数据项和加密数据项具有相同的效果。完全同态加密方案可能比较复杂,且可能需要对于终端设备来说不切实际的计算资源,且还可能需要不适合于要求实时响应的应用的计算时间。

一些加密算法可以是部分同态的,因为与任意数据处理操作相反,一些类型的数据转换(上面的函数m())对未加密数据项和加密数据项具有相同的效果。例如,加密算法可包括将输入数字乘以10,且对应的反向解密算法可包括除以10。对于如相加的简单数据转换操作来说,该加密是同态的。例如,未加密数字数据“1”和“2”可根据该特定加密算法分别加密成“10”和“20”(乘以10)。简单相加的数据转换m()在用于处理未加密数据时产生数字数据“3”,而在用于处理加密数据时产生数字数据“30”。加密输出数据“30”被解密成“3”(除以10),与直接对未加密数据执行数据转换的结果相同。

因此,在本公开的一些实现方式中,不是完全同态的有效加密算法可与仅包含一组数据处理操作的数据分析结合使用,这一组数据处理操作限于有效地使加密算法同态化的一组操作。包含不在这一组操作内的数据处理操作的数据分析流水线可被近似或修改,以仅包括来自这一组操作的数据处理操作并自适应地进行训练。通过对数据分析流水线的这种修改,加密算法可以是同态的。

图4示出了使用有效加密算法的示例,针对涉及简单相乘的单个数据分析操作或数据转换操作m(),有效加密算法是同态的。图4所示的加密/解密算法可基于使用公钥来加密和使用私钥(秘密密钥)来解密的传统RSA方案。在图4的示例中,公钥可以是(23,143),私钥可以是(47,143)。加密算法可包括使用公钥的第一分量执行幂函数,然后使用公钥的第二分量执行调制(Mod)操作,如406和408所示。解密过程可包括使用私钥的第一分量执行幂函数,然后使用私钥的第二分量执行Mod操作,如418所示。在图4的示例中,本地终端设备120要处理的数据项是向量f=(f1,f2)=(7,3)。数据分析函数m()包括输入数据向量的分量的简单相乘,m(f)=f1×f2,如422所示。

继续描述图4,本地终端设备120首先使用公钥对数据项f=(f1,f2)=(7,3)进行加密(如406和408所示),生成加密向量E(f)=(E(f1),E(f2)=(2,126),并将加密向量发送到部署在云110中的后端服务器112,如410所示。然后,后端服务器112执行数据分析函数m()以生成处理后的数据项m(E(f))=E(f1)×E(f2)=2×126=252,如412和414所示。然后,数据分析过程412的加密输出414可由后端服务器112传送到远程终端设备120,然后由远程终端设备120进行解密,如416和418所示。在本示例中,使用私钥解密之后的加密输出414是“21”,如418所示,与通过直接对未加密输入数据项f=(7,3)执行数据分析操作m()而得到的结果相同,如422和420所示。

在一些其他实现方式中,数据分析操作可包括输入数据项的相乘和相加的组合。换句话说,数据分析函数m()可以是输入数据项的多项式函数。可给这种数据分析函数设计有效的同态加密/解密算法。特别地,可针对低次多项式数据分析函数m()开发有效的同态加密/解密算法。如以下各示例所示,对于不是低次多项式函数的m(),其可适于近似多个低阶多项式函数的组合。换句话说,数据分析函数m()可被多项式化。结果,有效的同态加密/解密算法可用于这种修改的或近似的数据分析函数。

在实际应用中,可构造由后端服务器112提供给图1-4的终端设备120的数据分析函数m()以分析复杂的输入数据项。例如,后端服务器112(和/或130)可向终端设备120提供语音识别服务。这种语音识别服务可通过语音到文本应用程序接口(API)提供。这种API可用于终端设备以请求后端服务器来处理从包含语音的数字音频波形格式化或转换而来的加密数据项(图2-4的数据项f)。终端设备120还可通过API从后端服务器接收处理后的数据项,对处理后的数据项进行解密,且进一步对解密后的数据项进行后处理,以获得对应于数字音频波形中包含的语音的文本片段。基于后端服务器112使用API提供的语音识别服务,可给终端设备120开发强大的应用,包括但不限于基于语音的控制、使用自然语音转换的用户对话、语音转录和听写。

虽然在音频处理和语音识别服务的环境中提供以下进一步示例实现方式,但是基本原理可应用于涉及不同类型的数据和不同类型的数据处理的其他类型的远程数据分析,包括但不限于数据分类(例如图像分类和文本分类)、数据聚类、数字图像中的对象分割检测和识别(例如脸部分割和识别)等。

图5示出了用于语音识别的示例性数据处理流水线500。数据处理流水线500包括用于生成数字化音频波形503的音频波形获取502。数字音频波形503可分割成预定持续时间的帧(例如10-100ms),然后由感知模型504处理音频帧。感知模型504可设计成将数字波形503的帧转换成语音特征506。感知模型可用于利用语音特征参数集来对人类声带和声腔的生理机能进行建模。因此,感知模型能够基于语音特征参数集将包含语音的数字音频帧(音频帧)转换或编码成表示。例如,感知模型可基于代数、松弛或低延迟码激励线性预测(CELP)。

继续描述图5,语音特征506随后可由声学模型508逐帧处理,以生成概率向量,概率向量表示音频帧包含电话码本中的一组电话中的每一个电话的概率。如下面将更详细地描述的,声学模型508可基于预先训练的深度学习神经网络。用于连续音频帧集合的码本概率向量510还可由音素和语言模型512处理,以通过检测包含在音频帧集合中的音素、单词和句子来生成识别文本514。

根据应用,图5中的各种处理模型可以在本地终端设备120或后端服务器112(或130)中实现和分布。结果,如图6-9的示例性实现方式所示,语音识别流水线500的多个部分可以在本地终端设备120中实现,且流水线500的其他部分可以在可托管在云平台中的远程服务器112中实现。在图6-9中的任一个图中,由本地终端设备120在加密处理之前生成的数据项表示为f;由本地终端设备120在加密之后生成的数据项表示为E(f);由后端服务器112在处理E(f)之后生成的数据项表示为m(E(f));以及由本地终端设备120在解密之后的数据项表示为D(m(E(f))),如图6-9所示,与图2-4中的符号一致。

在图6所示的一个示例实现方式中,声学模型508可由后端服务器112作为服务602而提供,且其他模型和数据处理可位于本地终端设备120处。特别地,本地终端设备120可配置成通过获取过程502生成数字音频波形503,并实现感知模型504以生成语音特征。然后,话音特征可被加密(208),然后加密后的话音特征可传送到后端服务器112。然后,后端服务器112使用声学模型508处理加密后的语音特征以生成加密后的电话概率向量,然后加密后的电话概率向量由本地终端设备120进行解密(214),接下来由本地终端设备120处的音素和语言模型512进行后处理以生成识别文本514。

在图7所示的另一示例实现方式中,声学模型508及音素和语言模型512可由后端服务器112作为服务702而提供,且其他模型和数据处理可位于本地终端设备120处。特别地,本地终端设备120可配置成通过获取过程502生成数字音频波形503,并实现感知模型504以生成语音特征。然后,话音特征可被加密(208),然后加密后的话音特征可传送到后端服务器112。然后,后端服务器112使用声学模型508处理加密后的语音特征以生成加密后的电话概率向量,然后使用音素和语言模型512处理加密后的电话概率向量以生成加密文本m(E(f)),然后加密文本由本地终端设备120进行解密(214),以生成识别文本514。

在图8所示的另一示例实现方式中,感知模型504和声学模型508可由后端服务器112作为服务802而提供,且其他模型和数据处理可位于本地终端设备120处。特别地,本地终端设备120可配置成使用获取过程502来生成数字音频波形503。本地终端设备120还可对数字波形(208)的帧进行加密以生成加密后的数字音频波形。然后加密后的数字音频波形可传送到后端服务器112。然后,后端服务器112使用感知模型504处理加密后的数字音频波形以生成加密后的语音特征,然后加密后的语音特征由声学模型508处理以生成加密后的音素码本概率向量m(E(f))。然后音素码本概率向量可由本地终端设备进行解密(214)以生成解密后的音素码本概率向量。然后解密后的音素码本概率向量可由本地终端设备处的音素和语言模型512进行后处理以生成识别文本514。

在图9所示的又一示例实现方式中,感知模型504、声学模型508及音素和语言模型512全部可由后端服务器112作为服务902而提供,且其他模型和数据处理可位于本地终端设备120处。特别地,本地终端设备120可配置成使用获取过程502生成数字音频波形503。本地终端设备120还可对数字波形的帧进行加密(208)以生成加密后的数字音频波形E(f)。然后加密后的数字音频波形可传送到后端服务器112。然后后端服务器112使用感知模型504处理加密后的数字音频波形以生成加密后的语音特征,然后加密后的语音特征由声学模型508处理以生成加密后的音素码本概率向量。然后音素码本概率向量可由音素和语言模型512设备处理以生成加密文本。然后加密文本可传送到本地终端设备以进行解密(214),而生成未加密且识别的文本514。

在图6-9的实现方式中,用于提供服务602、702、802和902的后端服务器中包括的数据处理模型可被多项式化,成为低次多项式运算,使得诸如图4描述的加密和解密方案相对于服务602、702、802和902变成同态。下面的示例集中于图6所示的实现方式600,其中仅声学模型508托管在后端服务器112中,且语音识别应用所需的其余数据处理在本地终端设备120处执行。用于建立和训练托管在后端服务器112中的一个或多个数据分析模型的基本原理可应用于图7-9的其他实现方式和方案,从而在后端服务器112和远程终端设备120之间分配数据处理模型。

在一些实现方式中,图6的声学模型508可基于深度学习神经网络。例如,声学模型可包括深度学习卷积神经网络(CNN),其具有多个级联卷积、池化、修正和/或完全连接的神经元层,具有大量的内核、权重、偏置和其他参数。这些模型参数可通过使用足够的预标记的输入数据集合来训练CNN而确定。在CNN模型的示例性训练过程中,可利用预定连接性和训练参数使大量标记的训练数据集中的每一个训练数据集正向传播经过CNN网络的神经元层,以计算结束标记丢失或错误。然后,在调整训练参数以减少基于梯度下降的标记损失时,可沿着相反的方向执行经过互连神经元层的反向传播。用于所有训练数据集的正向和反向传播训练过程迭代,直到神经网络产生训练参数集,该训练参数集提供由神经网络在预先与训练数据集关联的标记上预测的、标记的收敛的最小总损失。然后,收敛模型可包括训练参数和神经连接性的最终集合。

上面的深度学习CNN可构造成用作声学模型508,以处理由感知模型504生成并由图6的加密过程208加密的语音特征。例如,完全连接的层可包括具有预定数量的组件的电话码本。电话码本可包含代表可在人类语音中找到的最常见电话的N个组件。例如,电话码本中的电话组件N的数量可以是100-10000,或者可以是任何其他数量。这些组件可完全连接到神经网络的前一层。一旦训练,则这种深度学习神经网络可用于处理输入音频帧的加密语音特征,以生成具有N个分量的概率向量,每个概率向量表示输入音频帧包含对应电话组件的概率。

图10进一步示出了图6的实现方式,其中声学模型508托管在后端服务器112中并实现为如上所述的深度学习神经网络。具体地,数字音频波形503的帧在本地终端设备120处处理成语音特征1002。然后通过本地终端设备120中的加密过程208对语音特征1002进行加密,以生成加密语音特征1004,然后在后端服务器112中使用深度学习神经网络508对加密语音特征1004进行处理,以生成加密电话概率向量,在10图中还称为加密后端(encrypted posteriors)1006。然后,在本地终端设备120处通过解密过程214对加密后端1006进行解密,以生成解密电话概率向量1008,对于同态加密和解密处理(针对深度学习神经网络508中包括的数据操作),解密电话概率向量1008对应于原始后端,如果深度学习神经网络508以未加密形式处理原始语音特征,则可获得原始后端。

传统多层神经网络可包括不是低次多项式函数的数据处理操作。例如,典型的神经元激活函数,例如s型函数,不是多项式。对于另一示例,卷积运算之后的最大池化运算也不是多项式。因此,典型的多层深度学习神经网络可被修改或多项式化,成为低次多项式,以维持图10的加密/解密算法的同态性。这种修改的深度学习神经网络可进行训练并用作声学模型508,以用于处理图10中的加密语音特征1004。修改的深度学习神经网络可被称为深度多项式网络(DPN)或深度学习多项式网络。

在图11中示出并在下文中更详细地描述典型的深度学习神经网络的各层的示例性修改,以仅包括低次多项式运算。例如,诸如深度学习神经网络的完全连接层的密集层可仅包括线性相乘和相加,因此仅包含低次多项式函数。因此,可直接实现而无需对同态加密进行修改,如图11的1102所示。

深度学习神经网络的批归一化层也仅涉及相乘和相加,例如,(其中γ,μ,σ和β是批归一化参数),其可直接实现成用于同态加密,而不需要低次多项式近似,如图11的1104所示。

深度学习CNN的卷积层中的卷积运算基本上涉及权重向量(或内核)和馈送层的输出的点积。因此,卷积运算也仅涉及相乘和相加,而不需要额外的多项式近似,如图11的1106所示。

然而,在深度学习神经网络中使用的典型激活函数通常不是多项式,然而可由低次多项式函数近似。例如,在深度学习神经网络的修正层中使用的ReLU(修正线性单元)函数z→max(0,z)可由低次多项式函数p(z):=z2近似,如图11的1108所示。在另一示例中,s型激活函数可由低次多项式p(z):=1/2+z/4-z3/48近似,如图11的1110所示。

深度学习神经网络(特别是深度学习CNN)的池化层中的池化运算通常不是多项式,且可由低次多项式函数近似。例如,最大池化不是多项式,但是可使用来近似。为了简单起见,参数d可设置成“1”,因此,上面的最大池化函数可由作为一次多项式运算的缩放平均池化来近似。

本领域普通技术人员应理解,上面的低次多项式近似仅仅是示例,还可考虑其他多项式近似。

可使用标记的训练数据集和标记的测试数据集来训练和测试上述修改后的深度学习神经网络或深度多项式网络(DPN)。在一些实现方式中,可使用未加密语音数据来执行训练。使用未加密数据的训练在如下环境中尤其有利,即在深度多项式网络中实施的声学模型可作为服务提供给具有不同公共加密密钥的许多不同客户端。这是因为,如果要对加密数据执行训练过程,则可基于所有潜在客户端的公共密钥生成训练数据集的多个加密版本,并用于单独训练DPN的多个版本。通过使用未加密训练数据,可对所有客户端训练和使用单一版本的DPN。

在训练过程中,可能不需要对各种训练参数进行加密。因此,训练后的深度多项式模型可包括未加密的模型参数(权重、偏置、内核等)和网络连接性。同样,在训练期间保持未加密方案中的模型参数避免了必须准备特定于客户端的模型。此外,当训练后的多项式网络用于处理来自(与特定公钥相关联的)特定客户端的远程终端设备的加密语音特征时,可通过保持这些层的一个或多个模型参数不加密,来执行经过多项式网络的一些层或所有层的正向传播。例如,深度学习神经网络的密集层(完全连接的输出层)中的权重参数W可以在正向传播期间不加密,以用于数据分析服务。给定多项式网络的加密输入,计算密集层中的正向传播的原始方法是首先使用客户端的公钥对权重参数进行加密,然后在加密域E(W)TE(x)(其中E(x)是前一层的输出)中执行经过密集层的正向传播,使得在通过远程终端设备解密之后,可获得WTx的精确值。然而,该过程可能是计算密集型的且不必要。相反,可以在不对权重参数进行加密的情况下在经过密集层的正向传播中使用更有效的运算WTE(x)。类似地,对于批归一化,当训练后的多项式网络用于处理特定客户端的输入语音特征时,可能不需要对参数如上面的批归一化参数γ,μ,σ和β进行加密。在一些实现方式中,这些批归一化参数可与前一密集层合并以给密集层提供修改后的权重参数Wnew=diag(γ/σ)W和修改后的偏置bnew=b+WTβ-WT(μ·γ/σ)。

相对于深度多项式网络,上述加密可以是同态的(相加和相乘)。然而,加密和解密的速度将受到深度多项式网络的次(degree)的显著影响。为了获得更高的计算速度,可能需要将深度多项式网络配置成在低比特固定精度下操作。否则,当系统在浮点数上操作时,同态加密和解密将非常缓慢且不适于实时应用,例如会话语音识别。例如,GPU中的神经网络的典型训练过程对训练参数使用32比特或更高浮点精度,以及对正向传播和反向传播使用浮点计算。以32比特或更高浮点精度训练和操作的深度多项式网络模型将显著增加所需的加密和解密时间。另一方面,对使用浮点计算训练的深度多项式模型的高精度模型参数应用低比特固定点训练后量化,然后使用这种量化的深度多项式网络模型以使用固定点计算来处理输入数据项,可导致显著的性能下降,因为训练过程不适合于低精度模型参数和固定点计算。

在一些实现方式中,在训练期间不使用训练后量化,而是可将深度多项式网络模型的训练过程限制为固定点计算,且可将深度学习多项式模型的模型参数限制为固定点精度。然而,这种实现方式可能不考虑模型参数的值的不均匀统计分布。例如,例如8比特固定点精度的权重参数值可集中在模型参数的8比特值范围的一小部分中,然而,基于固定点计算的训练过程可依赖于在参数空间的8比特值范围内一致的值分辨率。8比特值范围的拥挤部分可设置有与8比特值范围的具有更稀疏参数占用的其他部分相同的数据分辨率。当在浮点精度(例如,32比特而不是8比特精度)下训练深度多项式网络时,这种问题可以不是问题,因为即使基于浮点计算的训练过程同样使用在参数值范围内一致的数据分辨率,但是值范围的拥挤部分仍可具有足够的分辨率/精度以产生合理准确的模型,这是因为在模型参数的浮点表示中可用的比特的总数较大。

在本公开的一些实现方式中,可将模型参数的值空间的非均匀量化合并到训练过程中,使得可使用浮点运算来执行训练,以计算模型参数和梯度,但是所计算的模型参数可在深度多项式网络的每一层处被动态量化,且在训练过程的正向和反向传播期间在下一层中使用。另外,可以在固定点值空间的范围内并基于模型参数的值的统计分布来不均匀地执行在每一层处将所计算的浮点模型参数及其梯度量化成固定点整数精度。

例如,如图12的逻辑流程1200所示,可首先使用浮点精度(而不进行任何量化)来训练深度多项式网络模型,以以浮点精度获得模型参数集(1202)。在该初始训练之后,可使用初始训练后的浮点模型参数作为起点,来重新训练深度多项式网络,如1204所示。重新训练过程1204使用训练数据集并进一步通过合并非均匀量化来执行,以将初始训练后的具有浮点精度的多项式网络转换成具有较低固定点精度的参数并适合于使用固定点计算来处理输入数据项的多项式网络(使得上面讨论的加密算法有效地是同态的)。

如图12的循环箭头1205和框1206所示,可使用训练数据集在多次迭代中执行重新训练过程1204。在重新训练逻辑流程1204中,步骤1208、1210和1212与重新训练过程中的正向传播相关,步骤1214和1216与重新训练过程中的反向传播相关。

在迭代1205和1206中的每一个中,可评估在正向传播期间在每一层处的深度多项式网络的每一组浮点模型参数(权重、偏置等)的统计,以确定每一组参数在浮点值空间中的分布,如1208所示。模型参数可按参数类型来分组。每种类型的模型参数可具有非常不同的值范围和分布。因此,可单独评估每种类型的模型参数在浮点值空间中的统计。例如,模型参数可以在每个网络层处被分组为权重参数、偏置参数、激活参数等。

然后基于对多组模型参数中的每一组的值分布的统计,每一组的浮点值空间可量化成Q个段(或量化水平),如1210所示。Q可由固定点精度确定。例如,如果使用8比特固定点精度,则浮点值空间可量化成Q=28=256个段(量化水平)。量化水平可以不均匀,因为浮点值空间中比其他部分更拥挤的部分可被分配更密集的量化水平。可使用任何算法来确定量化水平。例如,一组参数的量化水平可基于Lloyd-max量化算法。在一些实现方式中,可应用特定量化限制。例如,可始终将零保持为Q个量化水平之一,而不管任何模型参数是否落入该量化水平中。这是因为对于例如零填充函数,通常在卷积神经网络特别是深度多项式网络中,零可具有特殊意义,且应该被指定为量化水平。

如在图12的重新训练逻辑流程1204的步骤1212中进一步示出的,在特定层处的多组模型参数的模型参数值空间的量化之后,通过使用量化后的模型参数来执行浮点计算,正向传播可前进到下一层。

如在图12的重新训练逻辑流程1204的步骤1214中进一步示出的,在反向传播期间,可使用浮点计算来获得每个网络层处的模型参数的梯度。然后,可执行梯度的值分布的统计,随后对梯度进行非均匀量化,成为基于统计和量化算法确定的Q个量化水平,类似于上述其他模型参数的量化。然后如步骤1216所示,量化梯度可反向传播到下一个前一层。

因此,用于深度多项式网络的初始训练和重新训练过程包括模型参数和梯度的非均匀量化。可以在重新训练过程期间动态地和运动地确定量化水平。在重新训练过程中,可根据动态获得的参数的值分布统计来分别确定每种类型的参数和每个网络层的量化水平。因此,所得到的深度多项式模型仅包括具有固定点精度的模型参数,但是适合于在固定点参数结合固定点正向传播来使用以处理输入数据项时合理地使网络精确。

图13示出了模型参数(或梯度)值空间的示例量化。在图13中,1302示出了在最小值1303和最大值1305之间的均匀浮点参数值空间1304中,深度多项式网络的层的一组示例性权重参数的统计分布(直方图)。在1302和1304所示的示例中,权重参数值分布例如集中在中间范围内且在值空间的两端稀疏。

继续描述图13,1306示出了将浮点值空间1304量化成由1306所示的点表示的Q个均匀量化水平。每个点对应于Q个固定点整数值之一。将高分辨率浮点值空间1305中的权重参数直接量化成均匀的较低分辨率固定点值空间1306,会浪费参数值空间两端的量化水平,且在权重参数集中的区域中产生相对较少的量化水平。图13还示出了使得浮点参数值空间成为由1308中的点表示的Q个非均匀量化水平的Lloyd-max量化1308,每个点对应于Q个固定点整数值之一。如1308所示,根据1302的统计分布,在浮点值空间的更集中区域中分配更密集的量化水平。上述Lloyd-max量化方案仅仅是许多示例之一。可应用其他非均匀量化方案。

图14示出了在正向传播经过多个网络层期间使用浮点计算但是非均匀量化到固定点值空间中的深度多项式网络的重新训练的截图。如图14所示,各种网络操作的浮点计算输出(例如乘以权重、激活操作、修正操作,例如1402、1404和1406)在重新训练过程中根据图13的非均匀Lloyd-max量化水平来动态量化,如1408、1410和1412所示。量化输出可用于朝向下一层的浮点计算,如箭头14-1和1403所示。

上面在图12中的实现方式开始于已经从传统非多项式深度学习神经网络或深度学习卷积神经网络修改的初始深度多项式网络。在一些其他实现方式中,如表1所示,传统非多项式网络模型可以在修改成对应的深度多项式网络之前进行初始训练。在非多项式神经网络的初始训练之后,可利用从初始训练后的非多项式神经网络模型的模型参数导出的模型参数来初始化对应的深度多项式网络模型(表1的步骤1)。然后,可以在小批量训练数据集的水平下执行深度多项式网络模型的重新训练,如下面的表1所示(表1的步骤2-4)。

表1

在用于训练深度多项式网络模型并使用训练后的模型来进行语音识别的特定实现方式中,可使用计算网络工具包(CNTK)来训练模型。由微软MicrosoftTM使用SEAL(简单加密算术库)实现同态加密。可使用交换机和我们的语音辅助任务来评估训练后的DPN模型的有效性。

对于交换机任务,309小时数据集和NIST 2000Hub5分别用作训练数据集和测试数据集。在该示例性设置中使用的语音特征包括具有发音级CMN的40维LFB。DPN的输出包括9000个绑定的三音子状态。在两个传统神经网络模型上验证多项式近似。第一模型(深度学习神经网络(DNN))包括6层ReLU网络,ReLU网络利用批归一化并在每一层上有2048个单元。第二模型(深度学习卷积神经网络(CNN))包括一个17-层神经网络,该神经网络包括3个卷积层,卷积层具有大小为3×3的96个内核,随后是最大池化,随后包括4个卷积层,卷积层具有大小为3×3的192个内核,随后是最大池化,随后包括另外4个卷积层,卷积层具有大小为3×3的384个内核,随后是最大池化,随后进一步包括两个密集层和一个softmax层,密集层具有4096个单元。两个示例模型均使用[t-30;t+10]作为输入上下文。然后由语言模型处理上述模型的输出及其对应的深度多项式近似网络。所使用的语言模型的词汇大小是226k。第一模型和第二模型以及对应的深度多项式网络模型的WER(词错误率)如表2所示。使用CE标准训练所有模型。按照表1的算法训练深度多项式网络。

表2

对于语音辅助任务,使用3400小时的美国英语数据进行训练,使用6小时的数据(5500个发音)进行测试。在该设置中使用的感知模型的语音特征包括具有发音级CMN的87-dim LFB。在该设置中使用的神经网络包含与上面针对交换机实例的第一模型相同的结构,但是具有9404个绑定的三音子输出状态。表3总结了该任务的WER和每个发音的平均等待时间(包括加密、AM评分、解密和解码)。

表3

最后,图15示出了用于实现上述任何终端或服务器计算组件的示例性计算机系统1500。计算机系统1500可包括通信接口1502、系统电路1504、输入/输出(I/O)接口1506、存储器1509和显示电路1508,显示电路1508例如在本地或远程机器上运行的网络浏览器中本地或远程生成机器接口1510来用于显示。机器接口1510和I/O接口1506可包括GUI、触敏显示器、语音或面部识别输入、按钮、开关、扬声器和其他用户接口元件。I/O接口1506的其他示例包括麦克风、视频和静止图像相机、头戴式耳机和麦克风输入/输出插孔、通用串行总线(USB)连接器、存储卡槽和其他类型的输入。I/O接口1506还可包括磁或光介质接口(例如,CDROM或DVD驱动器)、串行和并行总线接口以及键盘和鼠标接口。

通信接口1502可包括无线发射机和接收机(“收发机”)1512以及由收发机1512的发射和接收电路使用的任何天线1514。收发机1512和天线1514可支持Wi-Fi网络通信,例如,基于IEEE 802.11的任何版本例如802.11n或802.11ac的通信。通信接口1502还可包括有线收发机1516。有线收发机1516可给任何广泛范围的通信协议(例如任何类型的以太网、电缆数据传输业务接口规范(DOCSIS)、数字用户线路(DSL)、同步光网络(SONET)或其他协议)提供物理层接口。

存储器1509可用于存储各种初始数据、中间数据或最终数据。存储器1509可与图1的一个或多个储存库114和130分离或集成。存储器1509可以是集中式或分布式存储器,且可以是计算机系统1500的本地或远程存储器。例如,存储器1509可由云计算服务提供商远程托管。

系统电路1504可包括硬件、软件、固件或其他电路的任何组合。例如,系统电路1504可利用一个或多个芯片上系统(SoC)、专用集成电路(ASIC)、微处理器、离散模拟和数字电路以及其他电路来实现。系统电路1504是与图1的系统100相关的任何期望功能的一部分实现方式。仅作为一个示例,系统电路1504可包括一个或多个指令处理器1518和内存1520。例如,内存1520存储控制指令1526和操作系统1524。在一种实现方式中,指令处理器1518运行控制指令1526和操作系统1524以执行与图1的任何终端和服务器组件相关的任何期望功能。

上面描述的方法、设备、处理和逻辑可以以许多不同的方式以及以硬件和软件的许多不同组合来实现。例如,全部或部分实现方式可以是包括指令处理器的电路,例如中央处理单元(CPU)、微控制器或微处理器;专用集成电路(ASIC)、可编程逻辑器件(PLD)或现场可编程门阵列(FPGA);或包括分立逻辑器件或其他电路组件的电路,包括模拟电路组件、数字电路组件或两者;或它们的任何组合。作为示例,电路可包括分立互连的硬件组件,和/或可组合在单个集成电路裸片上、分布在多个集成电路裸片上、或实现在公共封装中的多个集成电路裸片的多芯片模块(MCM)中。

电路可进一步包括或访问用于由电路执行的指令。指令可存储在除了瞬时信号之外的有形存储介质中,诸如闪存、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM);或者存储在磁盘或光盘上,例如光盘只读存储器(CDROM)、硬盘驱动器(HDD)或其他磁盘或光盘上;或者存储在另一机器可读介质中或另一机器可读介质上。诸如计算机程序产品之类的产品可包括存储介质和存储在介质中或介质上的指令,且当指令由设备中的电路执行时,指令可使设备实现上面描述或附图中所示的任何处理。

这些实现方式可作为电路分布在多个系统组件上,例如分布在多个处理器和存储器上,可选地包括多个分布式处理系统。参数、数据库和其他数据结构可单独存储和管理,可合并到单个存储器或数据库中,可以在逻辑上和物理上以许多不同的方式组织,且可以以许多不同的方式实现,包括作为数据结构,例如链接列表、哈希表、阵列、记录、对象或隐式存储机制。程序可以是单个程序的一部分(例如,子例程)、单独的程序、分布在多个存储器和处理器上、或者以许多不同的方式实现,例如在库,例如共享库(例如,动态链接库(DLL))中实现。例如,DLL可存储指令,当指令由电路执行时,指令执行上面描述或附图中所示的任何处理。

从前文可以看出,本公开提供一种用于基于数据处理模型的云-本地联合或协作数据分析的系统和方法,数据分析模型在后端服务器中进行训练并托管在后端服务器中,用于处理由远程终端设备预处理和加密的数据项。托管在后端服务器中的数据分析模型生成加密输出数据项,然后将加密输出数据项传送到本地终端设备,本地终端设备请求数据分析服务以进行解密和后处理。该框架在不给后端服务器提供对本地终端设备的解密密钥的访问以及不提供本地终端设备和后端服务器之间的通信网络的情况下起作用。因此,该框架提供数据隐私保护。后端服务器中的加密/解密和数据分析配置成高效地处理和传送数据项,以对来自远程终端设备的数据分析请求提供实时或近似实时的系统响应。托管在后端服务器中的数据分析模型、其操作及其训练过程被适配和修改,使得数据分析模型可处理加密形式的数据项。在建立和训练模型时不需要解密密钥。相同的数据分析模型可用于向不同的客户端提供服务,每个客户端具有自己的解密密钥。框架和数据分析模型可用于提供远程按需语音识别服务和其他数据分析服务。

36页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:量子逻辑门设计与优化

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!