技术领域
[0001] 本发明总体上涉及人工神经网络技术,特别是涉及包括多维深度神经网络的方法和系统。
相关背景技术
[0002] 人工神经网络(ANN)是受人脑的生物神经网络启发的运算系统。这种运算系统被广泛用于各种领域,如自然语言处理(NLP)、图像处理、计算机视觉等。通常,人工神经网络(ANN)是具有相互连接的神经元(即节点)的定向加权图表。这些相互连接的神经元被分组为层。ANN的每一层均对输入数据进行数学变换(例如,非线性转换),以生成输出数据。ANN可以具有输入层、隐藏层和输出层来处理输入数据。每个层之间具有激活函数,用于确定ANN的输出。为了提高处理输入数据的准确性,一些ANN具有多个隐藏层。这种在输入层和输出层之间具有多个层的ANN被称为深度神经网络(DNN)。DNN的相互连接的神经元包含数据值。当DNN接收到输入数据时,输入数据以向前的方向通过每一层传播。每一层均计算输出,并将该输出作为输入提供给下一层。因此,输入数据是以前馈方式传播的。例如,前馈DNN进行函数近似,其通过非线性激活函数过滤加权组合的输入。非线性激活函数被组织成全连接隐藏层的级联。
[0003] 这种DNN需要被训练来完成各种领域的任务。然而,当隐藏层的数量增加以获得更好的近似效果时,训练DNN是一个繁琐的过程。例如,DNN中的激活函数会引起复杂的问题,如在DNN的层之间的目标函数梯度的反向传播过程中的梯度消失问题。反向传播确定了损失函数相对于DNN中的权重的梯度。然而,DNN中大量的隐藏层可能会使梯度为零(即梯度消失问题),这可能离最佳值很远。此外,由于隐藏层的数量大,DNN在优化神经元的权重方面可能会遇到困难。这可能会延迟DNN的训练过程,并可能减缓DNN模型参数的改进,从而影响DNN的准确性。DNN训练过程中的梯度消失问题可以通过在DNN中引入残差神经网络层来解决。
[0004] 残差神经网络(ResNet)利用跳跃连接,将DNN前几层的输出添加到其它非相邻层的输入。通常,ResNet可以用双层或三层的跳跃连接来实现。此外,ResNet只允许在输入传播的向前方向上的层跳跃。这防止形成循环或回路,循环或回路在DNN的训练和推理过程中都是很麻烦的。然而,在一些情况下,输入的向前传播方向可能是一个不理想的限制。可以通过增加隐藏层的数量来弥补这一缺陷。因此,随着额外隐藏层增加,参数的数量可能会增加,同时以向前方向传播输入。参数数量的增加也可能延迟训练过程,这是不期望的。
[0005] 因此,需要一种技术方案来克服上述限制。更具体地,需要以有效和可行的方式训练具有多个隐藏层的神经网络,同时避免梯度消失问题和参数数量增加的问题。
具体实施方式
[0064] 在下面的描述中,为了解释之目的,阐述了许多具体细节,以提供对本公开内容的全面理解。然而,对于本领域的技术人员来说,显然可以在没有这些具体细节的情况下实践本公开。在其它情况下,设备和方法仅以框图形式示出,以避免模糊本公开内容。
[0065] 如在本说明书和权利要求书中使用的,术语“例如”、“比如”和“诸如”以及动词“包括”、“具有”、“包含”及它们的其它动词形式,当与一个或更多个部件或其它项目的列表一起使用时,均应被理解为是开放式的,即该清单不应视为排除其它、附加部件或项目。术语“基于”是指至少部分地基于。此外,应该理解的是,本文采用的短语和术语是为了描述的目的,不应该被视为限制性的。本说明中使用的任何标题只是为了方便,不具有法律或限制作用。
[0066] 概述
[0067] 近年来,神经网络的架构或结构已经从递归神经网络(RNN)发展到长短期记忆(LSTM)、具有卷积序列架构和转换器的卷积神经网络(CNN)。一般而言,卷积顺序架构和转换器被普遍用于自然语言处理,如语言表示学习。对于计算机视觉应用,神经网络的神经架构对应于多路径方法,以实现神经网络各层的有效信息流。对于NLP应用,神经架构对应于基于序列的神经架构。基于序列的神经架构利用神经网络最后层(即输出层)的特征,这提供有限的信息流。一些实施方式是基于实现从基于多路径的神经架构获得洞察力。
[0068] 具体地,一些实施方式是基于对DNN各层之间在数据传播的两个方向上共享信息的优势的理解。例如,虽然来自DNN前几层的输出可以添加到DNN其它相邻层和非相邻层的输入,但让后几层运算的输出帮助更好地处理输入数据或来自早期层的中间输出也是有益的。以这种方式,数据可以在两个方向上进行交换,为数据处理添加额外的灵活性。然而,在两个方向传播数据可能会产生逻辑回路,危及DNN的训练和执行。
[0069] 一些实施方式基于这样的认识:可以通过克隆或复制DNN的参数在不同于数据传播方向的方向展开DNN来解决该循环问题。例如,一些实施方式是基于这样的认识:一个顺序处理输入的隐藏层序列可以为另一个也顺序处理相同输入的隐藏DNN层的并行序列提供有洞察力的信息。
[0070] 为此,一些示例性实施方式公开了组合残差连接和密集连接的多级融合机制,用于获得应用(例如NLP应用、计算机视觉应用或其组合)的稳健神经架构。残差连接使神经网络的层的特征与神经网络的其它非相邻层的跳跃连接成为可能。密集连接使神经网络的层之间的所有可能连接成为可能。残差连接和多级连接是基于操作(例如级连、加法和循环融合)来实现的。残差连接和密集连接能够以有效的方式将神经网络的低层和高层的特征信息结合起来。更具体地,残差连接允许梯度(或矢量)流经神经网络,而不穿过神经网络的层之间的非线性激活函数。以这种方式,残差连接能够跳过神经网络的一个或更多个层。这防止神经网络中的梯度消失问题。对梯度消失问题的预防改善了神经网络的训练过程。
[0071] 多级融合的几个应用实施例包括对象检测、机器翻译等。然而,由于级联、加法和循环融合操作的能力有限,这种模型缺乏对多级信息的捕获。
[0072] 一些实施方式是基于实现确定构建参数模型(如计算机视觉应用的图像模型或NLP应用的语言模型)的最佳结构。为此,最佳结构是基于神经架构搜索(NAS)算法来确定的。此外,或另选地,强化学习和基于演化算法的学习可以用于神经架构搜索。一些实施方式在训练阶段对神经网络不同层的输出(如输出特征)进行随机抽取,以确定最佳结构。这导致一次训练多个架构,并提供一种正则化形式以防止神经网络中的特征或参数过度拟合。通过使用最佳神经架构的内部网络的输出特征,可以获得参数模型(即最佳结构)。这样的参数模型可以用较低的运算成本获得,因为多个架构是在同一时间训练的。
[0073] 图1示出根据本公开的一些实施方式的人工智能(AI)系统100的原理框图。AI系统100包括输入接口102、存储多维神经网络106的存储器104、处理器108以及输出接口110。多维神经网络106具有包括内部DNN和外部DNN的深度神经网络(DNN)的序列。每个DNN均包括层序列,并且不同DNN的对应层具有相同参数。即,内部DNN与外部DNN共享相同参数。相同参数是通过内部DNN和外部DNN之间的不同层(或路径)共享的。共享相同参数防止参数数量增加,并为多维神经网络106的参数提供正则化。参数正则化可以防止参数的过度拟合。每个DNN均配置为由层序列沿着数据传播的第一维度依次处理输入数据。DNN序列中的DNN沿从内部DNN开始直到外部DNN的数据传播的第二维度布置。DNN序列中的DNN连接成使得DNN序列中的一个DNN的层的至少一个中间输出与后续DNN的至少一个层的输入相结合。在一个示例性实施方式中,多维神经网络106中的每个DNN均包括注意力模块。每个注意力模块均包括自注意力子网络和前馈子网络,并且还包括围绕自注意力子网络的残差连接和围绕前馈子网络的残差连接。
[0074] 处理器108配置为将输入数据提交给多维神经网络106以产生外部DNN的输出。在一些实施方式中,处理器108配置为在训练阶段对多维神经网络106的不同层的输出随机抽取。这导致一次为不同的应用训练多个架构,并提高AI系统100的处理时间的效率。在一些实施方式中,处理器108配置为基于多个连接在多维神经网络的一对或多对的DNN层和后续DNN层之间建立连接。这些连接可以具有不同模式和不同类型。不同连接模式连接相邻DNN的不同层。不同类型的连接包括硬连接和软连接,如下文所述。
[0075] 输出接口110配置为渲染外部DNN的输出的至少一个函数。例如,输出的函数对应于应用(如NLP应用、计算机视觉应用或其组合)的参数模型。更具体地,该函数可以是另一个DNN,该另一个DNN接受该外部DNN的输出,并为分类任务(如光学字符识别、对象识别和说话人识别)输出类标签。此外,该函数可以是解码器网络,该解码器网络接受外部DNN的输出并为语句生成任务(如语音识别、机器翻译和图像字幕)生成词序列。
[0076] 图2A示出根据本公开的一个示例性实施方式存储在AI系统100的存储器104中的多维神经网络106的框图。在一个实施方式中,多维神经网络106包括内部DNN 200和外部DNN 210。内部DNN 200包括层序列,如输入层202和输出层208,在输入层202和输出层208之间有一个或更多个中间层或隐藏层,如隐藏层204和隐藏层206。以类似的方式,外部DNN 210包括层序列,如输入层212和输出层218,在输入层212和输出层218之间有一个或更多个隐藏层,如隐藏层214、隐藏层216。
[0077] DNN 200和210包括对应层,即具有相同参数的层。例如,层202对应于层212,层204对应于层214,层206对应于层216,并且层208对应于层218。对应层以相同顺序布置,使得DNN 200和210的结构中至少有一些部分是彼此相同的。以这样的方式,减少了多维神经网络106的参数变更,这增加了其结构的灵活性。
[0078] 内部DNN 200配置为由层(即DNN层202、DNN层204、DNN层206)沿着数据传播的第一维度220依次处理输入数据。以类似方式,外部DNN210配置为由层(即DNN层212、DNN层214、DNN层216)沿着数据传播的第一维度220依次处理输入数据。内部DNN 200和外部DNN 210沿数据传播的第二维度222布置。
[0079] 内部DNN 200的层(即输入层202、隐藏层204和206以及输出层208)在输入/输出级别与外部DNN 210的层(即输入层212、隐藏层214和216以及输出层218)连接。在一个示例性实施方式中,内部DNN 200的层与外部DNN 210的层(即输入层212、隐藏层214和216以及输出层218)具有多个连接。此处的该多个连接对应于图2A中所示的以模式200a布置的多个硬连接(以下称为硬连接模式)。例如,内部DNN 200的中间层(如隐藏层204或隐藏层206)的输出与外部DNN 210的层(如隐藏层214或隐藏层216)的输入相加。在一些示例性实施方式中,内部DNN 200的一个层的输出被作为输入经由残差连接添加到内部DNN 200的任何其它层。
[0080] 不同实施方式可以使用不同的连接模式200a来使多维神经网络适用于不同应用。例如,在一些实施方式中,内部DNN的给定层的输出可能只贡献给外部DNN的一个独特层的输入。在一些实施方式中,内部DNN中两个给定层的输出可以贡献给外部DNN的同一层的输入。例如,内部DNN的所有层可以连接到外部DNN的所有层。这样的连接模式在本文中称为完全连接,使得多维神经网络被完全连接。另选地,多维神经网络可以是部分连接的。例如,在部分连接的多维神经网络中,内部DNN的一个或更多个层可以连接到外部DNN的多个层。此外,或另选地,在部分连接的多维神经网络中,内部DNN的多个层可以连接到外部DNN的一个层。
[0081] 除了多维神经网络中不同DNN的层之间的不同连接模式外,一些实施方式还使用不同类型的连接。例如,各种实施方式使用硬连接、软连接或其组合。例如,在硬连接中,内部DNN的层的输出被整体添加到外部DNN的层的输入。即,这些层要么连接,要么不连接。如果层是连接的,一个层的输出与另一个层的输入相结合,没有额外的缩放和/或权重乘法。如果层是不连接的,则该层的输出不会被添加到其它层的输入。模式200a显示了硬连接的示例性模式。
[0082] 因此,根据硬连接原理,内部DNN的层的输出可能贡献给外部DNN的层的输入,也可能不贡献给外部DNN的层的输入。根据硬连接进行数据传播的原理与单个DNN的层之间的传播原理不同。因此,硬连接允许不同方向上的数据传播的解耦原理。反过来,这种解耦允许在训练DNN参数的基础上寻找更好的硬连接模式,这为多维神经网络的架构添加了额外的灵活性。
[0083] 在一些实施方式中,在多维神经网络的训练过程中,硬连接模式在多个连接模式中被选中。对于每个选中的连接模式,对应的多维神经网络被训练。在所有被训练的多维网络中选择性能最佳的被训练的多维网络。更具体地,硬连接模式的选择是基于搜索算法(例如随机搜索算法)的。该随机搜索算法从多个连接中随机抽取一定数量的连接模式,并针对每个连接模式训练一个模型。然后基于验证集的性能度量(如准确率、F1、BLEU评分等)选择一个模型。
[0084] 在一些实施方式中,可以选择新的连接模式以包括在搜索算法中。可以基于与每个预先确定的连接模式相关的评分来确认预先确定的连接模式。例如,一个或更多个具有高分的预先确定的连接模式可以被选中为新的连接模式。在一些情况下,选中的预先确定的连接模式可以通过进行小的修改来进行操作。
[0085] 此外,或另选地,在软连接类型中,只有一个层的一部分输出与另一个层的输入相结合。具体地,一个层与另一个层的软连接的输出在添加到另一个层的输入之前是“加权”的。对于不同的软连接,软连接的权重可能有所不同。
[0086] 在一个示例性实施方式中,残差连接允许内部DNN 200的一个层的连接跳到内部DNN 200的其它非相邻层。例如,输入层202的输出可以通过基于残差连接跳过隐藏层204而作为输入添加到隐藏层206。在一些示例性实施方式中,输入层202的输出在输入层202的输出作为输入添加到隐藏层206的情况下触发激活函数。这样的激活函数可以是整流线性激活单元(ReLu),其可以转换输入层202的输出中的任何非线性。此外,在一些示例性实施方式中,内部DNN 200的层202至208和外部DNN 210的对应层212至218共享相同参数(例如,权重值或特征向量)。外部DNN 210的层212至218运算数据输入以提供输出224。
[0087] 在另一个实施方式中,多维神经网络106可以在内部DNN 200和外部DNN 210之间具有一个或更多个隐藏DNN,如图2B中所示。
[0088] 图2B示出根据本公开的另一个示例性实施方式存储在AI系统100的存储器104中的多维神经网络106的框图。多维神经网络106包括一个或更多个隐藏DNN,例如,在内部DNN 200和外部DNN 210之间的隐藏DNN 224和隐藏DNN 226。如图2B中所示,每个隐藏DNN均沿着数据传播的第一维度220依次处理输入数据(例如图3中的输入数据302)。内部DNN 200、隐藏DNN 224、隐藏DNN 226和外部DNN 210沿从内部DNN 200开始直到外部DNN 210的数据传播的第二维度222布置。
[0089] 多维神经网络106的隐藏DNN(即隐藏DNN 224和226)连接到向前方向(即沿第二维度222)。隐藏DNN(如DNN 224和226)之间沿第二维度222的连接防止了多维神经网络106中的层之间的回路连接或循环连接。此外,沿第二维度222的连接可以增加内部DNN 200和外部DNN 210之间的隐藏DNN的数量,以提供准确的输出。隐藏DNN(即,隐藏DNN 224和226)数量的增加并不增加参数的数量,因为相同参数在内部DNN 200、隐藏DNN 224和226以及外部DNN 210之间共享。
[0090] 在一个示例性实施方式中,内部DNN 200经由残差连接向任何其它DNN(例如隐藏DNN 226)提供输出。残差连接允许跳过一个或更多个隐藏DNN(例如隐藏DNN224),并将内部DNN 200的一个层的输出添加到隐藏DNN 226的一个层。例如,内部DNN 200的输出可以通过基于残差连接跳过隐藏DNN 224而作为输入添加到隐藏DNN 226。
[0091] 图3示出根据本公开的一些实施方式AI系统100的用于生成多维神经网络106的输出的处理管线300。最初,经由输入接口102向AI系统100提供输入数据302。在一些情况下,输入数据302可以包括用于训练多维神经网络106的训练数据集。此外,输入数据302可以根据应用类型而变更。例如,输入数据302可以包括用于图像处理或计算机视觉应用的图像数据或视频数据。对于NLP应用,输入数据302可以对应于语音数据或文本数据。处理管线300包括由AI系统100进行的操作304至310。
[0092] 在操作304处,由处理器108从输入接口102获得输入数据302。在操作306处,处理器108将输入数据302提交给多维神经网络106。在操作308处,多维神经网络106处理输入数据302。在一些实施方式中,多维神经网络106处理输入数据302,以将DNN 200、224、226和210之一的输出作为输入提供给DNN 200、224、226和210的后续DNN。在一些示例性实施方式中,可以使用预先确定的连接模式处理输入数据302。在一些情况下,预先确定的连接模式可以对应于在多维神经网络106的训练过程中随机搜索期间优化的硬连接模式。在一些其它情况下,预先确定的连接模式可以对应于在多维神经网络106的训练期间与多维神经网络106的参数同时被学习的软连接模式。在操作310处,多维神经网络106渲染外部DNN210的输出的函数。该输出被作为输出数据312经由输出接口110提供。在一些示例性实施方式中,外部DNN 210的输出的函数包括要经由输出接口110作为AI系统100的输出产生的输入数据的编码形式。另外,产生的输出可以通过输出接口的图形表示或可视化来显示。在一个示例性实施方式中,输入数据可由解码器处理并产生解码数据作为输出。
[0093] 示例性实施方式
[0094] 图4A示出根据本公开的一些示例性实施方式多维神经网络106中的编码器的示例性示意图400。在一些实施方式中,多维神经网络106形成神经网络(例如用于将一种语言机器翻译成另一种语言的神经网络)的编码器‑解码器架构中的编码器402。在一个说明性示例方案中,AI系统100为机器翻译训练多维神经网络106。例如,使用训练数据集训练多维神经网络106。训练数据集对应于语言对,例如英‑德语言对或英‑法语言对。训练数据集可以包括多个语句对,如450万个语句对。在训练过程中,多维神经网络106基于字节对编码(BPE)算法生成符号字典(例如32000个符号)。多维神经网络106抽取长度大致相同的语句来分成组或分批。
[0095] 此外,或另选地,AI系统100可以从多个连接中确定最佳连接模式。在连接模式是硬连接模式的一些实施方式中,最佳连接模式可以基于随机搜索算法来确定。该随机搜索算法从多个连接中随机地选择一定数量的连接模式。基于为目标应用准备的验证数据的性能度量来选择模式。例如,性能度量可以是分类应用的识别准确率和机器翻译应用的F1或BLEU评分。
[0096] 图4B示出根据本公开的一个示例性实施方式多线程转换器(MPT)402的框图,MPT的内部网络层与MPT的外部网络层之间具有硬连接模式或软连接模式。在此示例性MPT中,多维神经网络106的层由具有注意力模块架构的子网络形成。MPT 402是完全连接的,即DNN 408的所有注意力模块的输出被添加到DNN 410的所有注意力模块的输入。
[0097] MPT 402的连接模式可以由硬连接和/或软连接形成。参考图4C进一步说明硬连接模式中最佳连接模式的确定。在连接是软连接的一些实施方式中,最佳连接模式可以通过同时优化软连接的权重和神经网络的其它参数来确定。参考图4D进一步说明软连接模式中最佳软连接模式的确定。
[0098] 在一些实施方式中,MPT 402形成机器翻译的编码器。MPT 402包括内部网络和外部网络。内部网络对应于内部DNN 200,外部网络对应于外部DNN 210。与内部DNN 200和外部DNN 210之间共享相同参数类似,内部网络和外部网络之间共享相同参数。内部网络的一个层的输出经由残差连接被添加,该残差连接允许将输出添加到MPT 402中的外部网络的一个层的输入。此外,在一些实施方式中,在训练过程中,MPT 402可以从内部网络或外部网络的最后层(即,输出层)随机抽取用于应用(例如,进行机器翻译)的特征。在一些实施方式中,MPT 402可以将外部DNN 210的输出用于应用,例如机器翻译应用。
[0099] 对于机器翻译,源语句406A(例如,英语语句)作为输入数据(例如,输入数据302)经由输入接口102提供给MPT 402。例如,源语句可以作为语音输入、文本输入或其组合提供。MPT 402将源语句406A翻译成目标语句406B(例如德语语句)。在一个示例性实施方式中,输入接口102对输入语句进行标记,以形成源语句406A,该源语句被发送到内部DNN 200的层202和外部DNN 210的层212。输入语句可以基于字节对编码(BPE)被标记,并由词嵌入层进一步转化为矢量表示。矢量表示可以包括L C维矢量,其中L对应于语句长度,即语句中的标记数量,C对应于词嵌入维度。此外,源语句406A的每个词的位置被编码到位置嵌入空间,并添加到矢量表示,从而形成最终的源语句序列406A,用作MPT 402的输入。然后,MPT 402从输入中运算出编码,其中编码作为外部DNN 210的层218的输出224而获得。在一个实施方式中,由MPT 402运算的编码被提供给解码器404。解码器404从编码中运算出目标语句
406B,并经由输出接口110将目标语句提供为输出。目标语句406B可以提供为语音输出、文本输出或其组合。
[0100] 图4B示出根据本公开的一个示例性实施方式MPT 402的框图,该MPT 402具有针对机器翻译应用的内部网络408(例如内部DNN 200)的层和外部网络410(例如外部DNN 210)的层之间的硬连接模式。内部网络408复制外部网络410以共享相同参数。例如,内部网络408与外部网络410共享相同权重。内部网络408和外部网络410对应于上文参考图1和图2A描述的DNN。每个网络408和410均包括注意力模块层,这些注意力模块沿着一个维度(例如第一维度220)依次连接。例如,内部网络408包括依次连接的注意力模块408A、注意力模块
408B、注意力模块408C和注意力模块408D。以类似方式,外部网络410包括依次连接的注意力模块410A、注意力模块410B、注意力模块410C和注意力模块410D。另外,内部网络408的输出沿向前方向(例如,第二维度222)传播。内部网络408的注意力模块408A至408D中的每一者的输出作为输入提供到外部网络410的注意力模块410A至410D中的每一者。注意力模块
408A至408D中的每一者的输出与注意力模块410A至410D中的每一者的原始输入一起被添加。内部网络408的整体输出被作为第一线程输出提供,外部网络410的整体输出被作为第二线程输出提供。
[0101] 如图4B中所示,注意力模块408A至408D的每个输出均通过多个连接添加到注意力模块410A至410D。这使得在不增加参数数量的情况下以迭代方式细化特征,从而提高MPT 402的性能。在一些实施方式中,MPT 402可以只使用外部网络410的输出来针对机器翻译进行训练。在其它一些实施方式中,通过使用内部网络408的输出或外部网络410的输出来针对机器翻译进行训练,在一个训练会话中训练两个网络模型,即内部网络408和外部网络
410。这允许根据运算要求为各种应用动态地选择参数模型。在一种情况下,运算要求可以手动确定以选择参数模型。在其它一些情况下,运算要求可以自动确定,以自动方式选择参数模型。
[0102] 图4C示出根据本公开的一个示例性实施方式MPT 402的最佳模型412的框图,该MPT 402具有针对某个机器翻译应用选择的具有硬连接的部分连接模式。最佳模型412对应于从基于随机神经架构搜索算法的完全连接搜索空间中确定的最佳连接模式。该神经架构搜索是基于随机搜索算法的。在一个示例性方案中,考虑具有所有连接模式的连接搜索空间,其中内部网络408中的一个层的输出被添加到外部网络410中的一个层的输入,其约束为没有两个输出可以添加到同一输入。这将搜索空间减少到{0,...,N‑1}上的一组排列,其中N表示内部网络408的层数,使得搜索空间大小为N!。如果没有这个约束,搜索空间呈指数N级增长,为N。
[0103] 第i硬MPT架构可以经由相关的第i排列使用对应于序列[0,...,N]的图像(i) (i) (i)[τ0 ,…,τN ]的指数序列来表示。在第i硬MPT架构中,内部网络408中的层τk 的输出被添加到外部网络410中第k注意力模块的输入。例如,对于具有N硬=6个注意力模块408A至
408F的内部网络408,使用连接模式[0,4,1,5,2,3]获得MPT 402的最佳模型412,其中第0内部层的输出添加到第0外部层的输入,第4内部层的输出添加到第1外部层的输入,第1内部层的输出添加到第2外部层的输入,等等。连接模式[0,1,2,3,4,5]表示设置期间MPT 402的默认架构。
[0104] 内部网络408的一个或更多个注意力模块408A至408F的输出与外部网络410的注意力模块410A至410F之一的输入相结合。例如,注意力模块410A的输入与注意力模块408A的输出相结合。可以从内部网络408的中间层或输出层的任何输出到外部网络410的输入层或中间层的任何输入来配置注意力模块408A至408F和注意力模块410A至410F之间的连接。
[0105] 图4D示出根据本公开的一些其它示例性实施方式MPT 418的框图。在一些示例性实施方式中,MPT 418利用软连接,在将经过缩放的输出添加到外部网络410的连接层之前使用权重来缩放内部网络408的输出。例如,注意力模块408A可以利用权重418d w1、w2、w3和w4连接到外部网络410的注意力模块410A至410D中的每一者。在一个说明性的示例方案中,权重w1(例如0.2)可用于缩放注意力模块410A的输入,权重w2(例如0.4)可用于缩放注意力模块410B的输入,权重w3(例如0.6)可用于缩放注意力模块410C的输入,并且权重w4(例如0.8)可用于缩放注意力模块410D的输入。
[0106] 不同的实施方式可以以直接或间接方式使用权重418d。例如,在一个实施方式中,每个软连接均具有相关联的权重,并且该实施方式直接使用该权重来缩放内部层对相应外部层的贡献。因此,每个软连接的权重表示其强度。在另选实施方式中,内部DNN的层j和外部DNN的层k之间的每个软连接的权重wkj不直接用于确定连接强度,而是反馈给一个函数(如softmax函数),从而每个连接的强度取决于其它连接的权重。
[0107] 在一些情况下,MPT 418是用软连接完全连接的。权重是在注意力模块408A‑408D和注意力模块410A‑410D之间的每个层对之间的残差连接的训练过程中学习的。例如,由表示的外部网络410中的第k注意力模块的输出可以被计算为:
[0108]
[0109] 其中AttModule(.)表示注意力模块(例如,注意力模块410A至410D),该注意力模块包括自注意力网络和前馈神经网络。 是第j内部层的输出,并且αkj表示从第j内部层到第k外部层的连接的权重。连接权重利用可学习的参数wkj经由softmax计算为αkj=exp(wkj)/∑jexp(wkj),以强制0≤αkj≤1和∑j(αkj)=1。
[0110] 在一些示例性实施方式中,可以在训练过程中基于输入序列S和目标序列T的随机最小化而训练MPT。在训练过程中,通过将解码器(如图4C的解码器416)应用于外部网络410的输出 来获得目标函数 解码器416对应于图4A的解码器404。在一些示例性实施方式中,内部网络408和外部网络410可以被优化,以便内部网络408和外部网络
410的输出可以用于下游任务,例如机器翻译。内部网络408和外部网络410可以通过最小化内部网络408的输出L(SN‑1,T)和外部网络410的输出 之和来进行优化。在一些情况下,内部网络408的输出或外部网络410的输出可以随机地最小化以进行优化。此外,内部网络408的输出之和可以与外网络410的输出保持一致。这在涉及在高运算成本和低运算成本机制之间的切换的应用中可能是有用的,而不会增加参数数量。
[0111] 对应的内部网络408和外部网络410的注意力模块408A至408D和注意力模块410A至410D的每一层均包括自注意力网络和前馈神经网络,这将参考图5进一步描述。
[0112] 图5示出根据本公开的一些实施方式多维神经网络106中的每个DNN的每一层中的注意力模块502的框图500。例如,注意力模块502的架构对应于注意力模块408A至408D和注意力模块410A至410D的架构。注意力模块502包含一个自注意力子网络504和一个前馈神经子网络(FFN)506,该前馈神经子网络包括其间的残差连接。自注意力子网络504以成对方式学习信息关系。例如,自注意力子网络504学习关于NLP应用(如机器翻译)的词的关系。
[0113] 在一个示例性方案中,自注意力子网络504接收输入,例如由S∈RL×C表示的语句S。自注意力子网络504通过线性变换将S翻译成键(Sk)、查询(Sq)和值(Sv)。通过使用Sk和Sq之间的注意力值,S的每个词均使用自注意力聚合来自其它词的信息。对于键K,查询Q和值V,注意力值可以用公式(2)计算:
[0114]
[0115] 注意力值由特征维度dk的平方根调制。在聚合自注意力网络504中其它词的信息后,FFN子网络506以位置明智方式组合信息。在一些实施方式中,自注意力子网络504对应于多头注意力。这种自注意力子网络504和FFN子网络506的堆叠构成了注意力模块502,对输入S的处理如下:
[0116] Smid=Attention(Sq,Sk,Sv) (3)
[0117] Sout=FFN(Smid) (4)
[0118] 其中,
[0119] Smid是来自内部网络408和外部网络410中的每一者内的中间层(例如,注意力模块408B至408E之一或注意力模块410B至410E之一)的特征;并且
[0120] Sout是由FFN子网络506提供的输出。
[0121] 在一些实施方式中,在输出编码的解码阶段,对每个目标语句的嵌入表示T执行自注意力,其后跟随共同注意力和FFN。解码阶段可以表示如下,其中SA代表自注意力:
[0122]
[0123]
[0124] 编码器‑解码器架构的编码器和解码器之间共享词嵌入层。在获得下一个词的表示(即解码器404中的 )后,对 应用线性变换和softmax操作,以获得可能的下一个词的概率。然后,基于下一个词的概率的交叉熵损失被用于使用ANN的反向传播技术来训练所有的连接网络。
[0125] 图6A示出根据本公开的一个示例性实施方式描绘两个DNN的两个层之间的连接的连接模式600A的框图,该连接模式将DNN的层的最终输出与后续DNN的层的输入相结合。内部网络(例如内部网络408)的注意力模块608包括自注意力子网络602A(例如自注意力子网络504)和前馈神经子网络602B(例如前馈神经子网络506),如图6A中所示。注意力模块608是408A至408D的每个注意力模块的代表。自注意力子网络602A经由子层(例如添加和正则子层604A)连接到FFN子网络602B。添加和正则子层604A是与残差连接相结合的层正则化步骤。以类似方式,外部网络(例如外部网络410)的注意力模块610包括自注意力子网络606A(如自注意力子网络504)和前馈神经子网络606B(如前馈神经子网络506)。注意力模块610是每个注意力模块410A至410D的代表。自注意力子网络606A向添加和正则子层614A提供输出,并且FFN子网络606B向添加和正则子层614B提供输出。自注意力子网络606A的输入被计算为前馈神经子网络602B在添加和正则子层604B之后的输出618A与注意力模块610的输入612之和。
[0126] 在一个示例性实施方式中,注意力模块608的最终输出618A在与注意力模块610的自注意力子网络606A相关联的残差连接之前添加到注意力模块610的输入。自注意力子网络606A的残差连接包括输出618A,即,输出618A和输入612之和在添加和正则子层614A中添加到自注意力子网络606A的输出。
[0127] 图6B示出根据本公开的另一个示例性实施方式描绘两个DNN的两个层之间的连接的连接模式600B的框图,该连接模式将DNN的层的最终输出与后续DNN的层的输入相结合。在一个示例性实施方式中,注意力模块608的最终输出618A在与注意力模块610的自注意力子网络606A相关联的残差连接之后添加到注意力模块610的输入。自注意力子网络606A的输入被计算为前馈神经子网络602B在添加和正则子层604B之后的输出618A与注意力模块
610的输入612之和。自注意力子网络606A的残差连接不包括输出618A,即在添加和正则子层614A中只有输入612添加到自注意力子网络606A的输出。
[0128] 图6C示出根据本公开的另一个示例性实施方式描绘两个DNN的两个层之间的连接的连接模式600C的框图,该连接模式将DNN的层的最终输出与后续DNN的层的输入相结合。在一个示例性实施方式中,自注意力子网络602A在注意力模块608的添加和正则层604A之后的中间输出618B在与外部网络410的注意力模块610的自注意力子网络606A相关联的残差连接之前添加到注意力模块610的输入。自注意力子网络606A的输入计算为自注意力子网络602A在添加和正则子层604A之后的中间输出618B与注意力模块610的原始输入612之和。自注意力子网络606A的残差连接包括中间输出618B,即中间输出618B和原始输入612之和在添加和正则子层614A中添加到自注意力子网络606A的输出。
[0129] 图6D示出根据本公开的另一个示例性实施方式描绘两个DNN的两个层之间的连接的连接模式600B的框图,该连接模式将DNN的层的中间输出与后续DNN的层的输入相结合。在一个示例性实施方式中,自注意力子网络602A在注意力模块608的添加和正则层604A之后的中间输出618B在与注意力模块610的自注意力子网络606A相关联的残差连接之后添加到注意力模块610的输入612。自注意力子网络606A的输入被计算为自注意力子网络602A在添加和正则子层604A之后的的中间输出618B与注意力模块610的输入612之和。自注意力子网络606A的残差连接不包括中间输出618B,即在添加和正则子层614A中只有原始输入612添加到自注意力子网络606A的输出。
[0130] 图7示出根据本公开的实施方式具有各种连接模式的MPT的不同模型的消融研究的表700。表700示出了基于BLEU分数指标(机器翻译中常用的指标)对MPT的不同模型的评价。不同模型包括诸如以下的模型:基础转换器702(如Vaswani等人的文章中所报告的)、基础转换器718(申请人对Vaswani等人的基础转换器的重新实现)、具有硬连接模式[0,1,2,3,4,5]的MPT模型704、基于连接模式600D的MPT模型706、基于连接模式600C的MPT模型708、基于连接模式600B的MPT模型710、基于连接模式600A的MPT模型712、最差搜索硬连接MPT模型714、最佳搜索硬连接MPT模型412以及具有软连接的MPT模型720(例如MPT模型418)。还示出了所有搜索硬连接MPT模型的平均性能716。
[0131] 表700示出,在启动残差连接之前组合信息会带来更好的性能。最佳模型(即MPT转换器412)和性能最低的模型(即基础转换器702)之间的性能差异为0.8,因为MPT转换器412获得28.4,而基础转换器702获得27.3。对表700中的不同模型进行分析,以确定影响不同实施方式的MPT性能的因素。另外,基于这些因素(如搜索网络),当来自内部网络408中较深层的特征被添加到外部网络410中的特征时,除了将内部网络408的最后层的特征添加到第一层(即,外部网络410的层410A)的特征外,性能趋于改善。此外,当来自内部网络408中的浅层的特征与外部网络410的较深层直接链接时,性能也会得到改善。
[0132] 具有硬连接的MPT 402和具有软连接的MPT 418可以实现比演化转换器更好的性能,接下来将参考图8A对此进行描述。
[0133] 图8A示出根据本公开的一个示例性实施方式具有硬连接的MPT 402和具有软连接的MPT 418与现有技术方法(统称为机器翻译方法802)的比较表800。该比较使用数据集(例如EN‑DE(英‑德)和EN‑FR(英‑法)翻译数据集)进行。方法802包括基础转换器(BT)、大型转换器、演化转换器、语句语境最大池化、语句语境注意力、深度语句语境递归神经网络(RNN)、线性组合+BT、动态组合+BT、动态路由+BT和EM路由+BT。
[0134] 演化转换器通过使用演化算法在更大搜索空间上进行架构搜索。可以根据自注意力头的大小、层数、卷积和自注意力网络之间的不同级联、密集残差融合进行架构搜索,并且架构搜索在编码器‑解码器架构神经网络的编码器和解码器上联合进行。演化转换器也可以包括比MPT 402更大的搜索空间。具有硬连接模式的MPT 402在有限搜索空间上进行随机搜索。减少的搜索空间使MPT 402能够实现比演化转换器更好的性能。MPT 418可以在没有随机搜索的情况下估计最佳连接模式,这提供了比演化转换器更好的性能。如表800中所示,在参数数量较少(即,EN‑DE为61.2,并且EN‑FR为111.4)的情况下,MPT 402在EN‑DE数据集上的BLEU指标评分是28.4,在EN‑FR数据集上是41.8。以类似方式,在参数数量较少(即,EN‑DE为61.2,并且EN‑FR为111.4)的情况下,MPT 418在EN‑DE数据集上的BLEU指标评分是28.4,在EN‑FR数据集上是41.6。然而,在参数数量较多(即,EN‑DE为64.1,并且EN‑FR为
221.2)的情况下,在EN‑DE数据集上演化转换器的BLEU指标评分是28.2,在EN‑FR数据集上是41.3。
[0135] 语句语境最大池化转换器基于加法、循环融合、级联或注意力运算符,将编码器网络中所有层的特征相结合。此外,级联和循环融合之类的运算符可能会大大增加参数数量。例如,语句语境最大池化转换器的参数数量为1.069亿,这比MPT 402的参数数量要多。因此,MPT 402可以在参数数量较少的情况下实现比语句语境最大值池化转换器好得多的性能。类似地,与BT的动态组合和与BT的动态路由与语句语境最大池化转换器的概念相同。与BT的动态组合和动态路由也利用基于期望最大化(EM)算法的多层信息融合机制。然而,与BT的动态组合和动态路由增加了参数数量,如1.132亿和1.258亿。
[0136] 值得注意力的是,MPT 402和418还可以与更深转换器进行比较,这些更深转换器具有更多的层但只有一个维度,即没有DNN的序列,也没有沿第二维度的数据传播。例如,具有12层的“更深”转换器的性能大约与具有6层的MPT一样好,但更深转换器使用更多参数,因此有更多的存储器。
[0137] 图8B示出配备有具有多个DNN 810和812的多维神经网络106的多线程转换器806相对于其它转换器结构的优势说明。如图8B中所示并结合图7和图8A说明的,根据各种实施方式的MPT可以(胜过或至少与例如借助更多层数和/或每层更多参数而具有更多单元和更多注意力头的较大转换器808的性能一样好。
[0138] 图9示出根据本公开的一些实施方式用于生成多维神经网络106的输出的方法的流程图900。在框902处,经由输入接口(例如输入接口102),接受AI系统100的输入数据。
[0139] 在框904处,输入数据被提交给多维神经网络106,该多维神经网络具有深度神经网络(DNN)的序列(包括内部DNN和外部DNN)。每个DNN均包括层序列,不同DNN的对应层具有相同的参数,每个DNN均配置为沿着数据传播的第一维度由层序列依次处理输入数据,DNN序列中的DNN沿从内部DNN开始直到外部DNN 的数据传播的第二维度布置,其中,DNN序列中的DNN连接起来,从而使DNN的中间层或最后层的至少一个输出与DNN序列中的后续DNN的至少一个层的输入相结合,如以上在图1以及图2A和图2B的描述中所述。
[0140] 在框906处,产生外部DNN的输出。在908处,渲染外部DNN的输出的至少一个函数。外部DNN的输出经由输出接口110进行渲染。
[0141] 图10示出根据本公开的一些实施方式AI系统1000的框图。AI系统1000对应于图1的AI系统100。AI系统1000包括输入接口1002、处理器1004、存储器1006、网络接口控制器(NIC)1012、输出接口1018和存储装置1022。存储器1006配置为存储多维神经网络1008。多维神经网络1008具有深度神经网络(DNN)的序列,包括内部DNN(例如内部DNN 200)和外部DNN(例如外部DNN 210)。每个DNN(即,内部DNN 200和外部DNN 210)均配置为沿着数据传播的第一维度(如第一维度220)由层序列(如层202至208)依次处理输入数据,即输入数据1016。DNN(例如,内部DNN 200和外部DNN 210)沿从内部DNN 200开始直到外部DNN 210的数据传播的第二维度(例如,第二维度222)布置。DNN序列中的DNN的每个层(例如,层202至
208)均是连接的,从而一个DNN的层的至少一个中间输出与DNN序列中的后续DNN的至少一个层的输入相结合(参考图2A和图2B)。在一些其它实施方式中,多维神经网络1008具有至少一个隐藏DNN(如隐藏DNN 224和226),该隐藏DNN沿着第二维度222布置在内部DNN 200和外部DNN 210之间。在一些实施方式中,多维神经网络1008形成神经网络的编码器‑解码器架构中的编码器(例如MPT 402)。在一些其它实施方式中,具有软连接模式的多维神经网络
1008形成编码器(例如MPT 418)。编码器提供外部DNN 210的输出,该输出对应于输入数据
1016的编码形式。输入数据1016的编码形式由解码器(例如,解码器416)处理,以产生AI系统1000的输出。另外,多维神经网络1008中的每个DNN的每一层均包括注意力模块(例如,注意力模块502)。每个注意力模块均包括自注意力子网络(例如,自注意力子网络504)和前馈子网络(例如,前馈子网络506)。
[0142] 输入接口1002配置为接受输入数据1016。在一些实施方式中,AI系统1000经由网络1014使用NIC 1012接收输入数据1016。在一些情况下,输入数据1016可以是经由网络1014接收的在线数据。在其它一些情况下,输入数据1016可以是存储在存储装置1022中的记录数据。在一些实施方式中,存储装置1022配置为存储用于训练多维神经网络1008的训练数据集。
[0143] 处理器1004配置为将输入数据1016提交给多维神经网络1008,以产生外部DNN 210的输出。从外部DNN 210的输出中渲染经由输出接口1018提供的至少一个函数。输出接口1018另外连接到输出装置1020。输出装置1020的一些实施例包括但不限于监测器、显示屏幕和投影仪。
[0144] 图11A示出根据本公开的一些实施方式用于机器翻译应用的环境1100。环境1100被描绘为包括机器翻译装置,例如分布在不同远程位置的机器翻译装置1104A、机器翻译装置1104B和机器翻译装置1104C。机器翻译装置1104A、1104B和1104C中的每一者均可以由对应的操作者1102A、1102B和1102C操作,这些操作者可能讲不同的语言。这些机器翻译装置1104A、1104B和1104C可以经由网络1014相互连接。机器翻译装置1104A、1104B和1104C中的每一者均包括AI系统1000。AI系统1000可以具有对应于不同语言对(如EN‑DE、EN‑FR)的训练数据集。用于机器翻译的语言对可以是选自不同语言(如英语、法语、西班牙语、德语、意大利语、中文、印地语、阿拉伯语、葡萄牙语、印度尼西亚语、韩语、俄语、日语等)的组合对。
在一些情况下,训练数据集可以包括多个语句对,例如450万个语句对。在一些示例性实施方式中,机器翻译装置1104A、1104B和1104C中的每一者均可以包括语言检测器(未在图11A中示出),用于检测操作者1102A、1102B和1102C的每一种语言。此外或另选地,AI系统1000可以包括存储在存储器1006中的语音到文本的转换程序(未示出),用于将语音输入翻译成文本输出。
[0145] 机器翻译装置1104A、1104B和1104C中的每一者均可以包括对应的接口控制器1106A、接口控制器1106B和接口控制器1106C。例如,接口控制器1106A、1106B和1106C可以布置在与机器翻译装置1104A、1104B和1104C的显示器、扬声器和麦克风连接的NIC 1012中。接口控制器1106A、1106B和1106C可以配置为转换从网络1014接收的作为输入数据1016的相应操作者(即,操作者1102A、1102B和1102C)的语音信号。网络1014可以是互联网、有线通信网络、无线通信网络,或其中至少两者的组合。
[0146] 输入数据1016由机器翻译装置1104A、1104B和1104C中的每一者处理。处理后的输入数据1016由对应的机器翻译装置1104A、1104B和1104C翻译成所期望的语言。翻译后的语音作为输出提供给对应的操作者1102A、1102B和1102C。例如,操作者1102A使用机器翻译装置1104A向操作者1102B发送英语语音信号。英语的语音被机器翻译装置1104B接收。机器翻译装置1104B将英语翻译成德语语音。翻译后的语音被提供给操作者1102B。此外,在一些示例性实施方式中,机器翻译装置1104A、1104B和1104C可以将操作者1102A、1102B和1102C之间的对话存储/记录到存储单元,例如存储装置1022。对话可以使用存储在存储器1006或存储装置1022中的计算机可执行的语音‑文本程序作为音频数据或文本数据来存储。
[0147] 以这种方式,在不同地点讲不同语言的操作者可以使用配备有AI系统1000的机器翻译装置进行有效的交流。这种交流使操作者能够进行合作操作,如图11B中所示和描述的。
[0148] 图11B是根据本公开的一些实施方式使用图11A的机器翻译应用的合作操作系统1110的表示1108。合作操作系统1110可以布置在产品装配/制造生产线的一部分中。合作操作系统1110可以包括语音‑文本程序(计算机可执行的语音‑文本程序)、具有MPT 402的架构的AI系统1000、连接到显示器1112的NIC 1012、摄像头、扬声器以及经由网络1014的输入设备(麦克风/定点装置)。在这种情况下,网络1014可以是有线网络、无线网络、或互联网。
[0149] 一些实施方式基于这样的认识:当操作者1114讲与其它操作者(例如在不同国家的单一设施或不同设施中构建的制造线中工作的操作者1102A、1102B和1102C)不同的语言时,合作操作系统1110可以提供基于预定语言的用于维护/记录制造线的整个工艺数据的工艺数据格式。在这种情况下,即使操作者1102A、1102B、1102C和1114使用不同的指令语言,也可以用个体语言记录工艺数据格式。
[0150] AI系统1000的NIC 1012可以配置为经由网络1014与操纵器(例如机器人1116)进行交流。机器人1116可以包括操纵器控制器1118和连接到操纵器状态检测器1122的子操纵器1120,其中,子操纵器1120配置为装配工件1124,用于制造产品的部件或最终完成产品。另外,NIC 1012可以经由网络1014连接到对象检测器1126。对象检测器1126可以布置成检测工件1124、子操纵器1120和与布置在机器人1116中的操纵器控制器1118连接的操纵器状态检测器1122的状态。操纵器状态检测器1122检测操纵器状态信号(S)并将其传送到操纵器控制器1118。操纵器控制器1118于是基于操纵器状态信号(S)提供工艺流程或指令。
[0151] 显示器1112可以显示代表用于基于(预先设计的)制造方法装配产品的工艺步骤的工艺流程或指令。可以经由网络1014接收该制造方法,并将其存储到存储器1006或存储装置1022中。例如,当操作者1114检查产品的装配部件或装配产品的状况时(同时根据格式(例如工艺记录格式)进行质量控制处理),可以经由合作操作系统1110的麦克风提供音频输入以记录质量检查。质量检查可以基于可以在显示器1112上显示的产品制造工艺和产品规格来进行。操作者1114也可以向机器人1116提供指令,以进行产品装配线的操作。使用存储在存储器1006或存储装置1022中的语音‑文本程序,合作操作系统1108可以使用语音‑文本程序将操作者1114确认的结果存储到存储器1006或存储装置1022中作为文本数据。该结果可以与时间戳以及分配给每个装配部件或装配产品的用于制造产品记录的项目编号一起存储。此外,合作操作系统1108可以经由网络1014将记录传送到制造中央计算机(图11B中未示出),从而装配线的整个工艺数据被整合,以维持/记录产品的质量。
[0152] 下面的描述只提供了示例性的实施方式,并不打算限制本公开的范围、适用性或配置。相反,以下对示例性实施方式的描述将为本领域的技术人员提供实施一个或更多个示例性实施方式的有利说明。在不背离所附权利要求书中阐明的公开主题的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
[0153] 下面的描述中给出了具体细节,以提供对实施方式的全面理解。然而,本领域的普通技术人员可以理解的是,可以在没有这些具体细节的情况下实践本发明的实施方式。例如,所公开的主题中的过程、工艺和其它元素可以以框图的形式示为部件,以便不在不必要的细节中模糊实施方式。在其它情况下,众所周知的过程、结构和技术可以不示出不必要的细节,以避免模糊实施方式。此外,各附图中的相同附图标记和名称表示相同的元件。
[0154] 另外,各个实施方式可以被描述为过程,该过程被描绘为流程图、数据流程图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序的过程,但许多操作可以平行或并发地进行这些过程。此外,操作的顺序可以被重新布置。过程可能在其操作完成后被终止,但可能有未在图中讨论或未包括在图中的额外步骤。此外,在任何特别描述的过程中,并非所有的操作都可以在所有的实施方式中发生。过程可以对应于方法、函数、程序、子例程、子程序,等等。当过程对应于函数时,该函数的终止可以对应于该函数对调用函数或主函数的返回。
[0155] 此外,所公开的主题的实施方式可以至少部分地以手动或自动方式实现。手动或自动实现可以通过使用机器、硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来执行,或至少协助执行。当以软件、固件、中间件或微代码实施时,执行必要任务的程序代码或代码段可以存储在机器可读介质中。一个(多个)处理器可以执行必要的任务。
[0156] 本文概述的各种方法或过程可以编码为软件,该软件可在一个或更多个采用各种操作系统或平台中任何一者的处理器上执行。此外,这种软件可以使用大量合适的编程语言和/或编程或脚本工具中的任一种来编写,也可以编译为可执行的机器语言代码或中间代码,在一个框架或虚拟机上执行。通常情况下,程序模块的功能可以在各种实施方式中根据需要进行组合或分布。
[0157] 本公开的实施方式可以体现为方法,已经提供了其实施例。作为该方法的一部分执行的动作可以以任何合适的方式排序。因此,可以构建实施方式,其中动作的执行顺序与图示不同,这可以包括即使在说明性实施方式中示为顺序动作,也可以同时执行一些动作。此外,在权利要求书中使用诸如“第一”、“第二”这样的序数术语来修饰权利要求元素本身并不意味着一个权利要求元素相对于另一个权利要求元素的任何优先权、级别高低或顺序,也不意味着执行方法的动作的时间顺序,而只是作为标签来区分具有一定名称的一个权利要求元素和具有相同名称的另一个元素(但使用序数术语)来区分这些权利要求元素。
[0158] 尽管已参考某些优选实施方式描述了本公开,但应理解的是,在本公开的精神和范围内,可以进行各种其它的调整和修改。因此,所附权利要求书的方面涵盖本公开的真实精神和范围内的所有此类变更和修改。