CN110610234A - 将外部应用程序集成到深度神经网络中 - Google Patents
将外部应用程序集成到深度神经网络中 Download PDFInfo
- Publication number
- CN110610234A CN110610234A CN201910503522.6A CN201910503522A CN110610234A CN 110610234 A CN110610234 A CN 110610234A CN 201910503522 A CN201910503522 A CN 201910503522A CN 110610234 A CN110610234 A CN 110610234A
- Authority
- CN
- China
- Prior art keywords
- training
- dnn
- differentiable
- subnet
- estimator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Neurology (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及将外部应用程序集成到深度神经网络中。在深度神经网络(DNN)的端到端训练期间,操作可微分的估计器子网以估计外部软件应用程序的功能。然后,在由所训练的DNN进行推理期间,通过启用DNN和外部软件应用程序之间的API通信,将可微分的估计器子网替换为外部软件应用程序的功能。
Description
技术领域
本发明涉及深度神经网络(DNN)领域。
背景技术
DNN的端到端学习在过去几年中已经占据了一席之地,在包括计算机视觉、文本分析和语音识别在内的多个领域实现了最先进的性能。在端到端学习中,学习过程可以在单个端到端步骤中训练分类器,这消除了对复杂的多阶段机器学习流水线的需要。
行业面临的挑战之一是将DNN与外部应用程序集成。使DNN能够(例如,通过应用程序编程接口(API))使用外部应用程序或与外部应用程序交互可以产生优越的解决方案,因为外部应用程序提供的功能或逻辑可以被包括在DNN中,或者成为DNN的一部分。访问API是经由API的输入和输出参数完成的。例如,考虑简单的问题:“7.2大于4.5吗?”。可以通过让DNN处理自然语言处理部分并访问简单的API(例如通过运行确定哪个值更大的简单函数)来解决逻辑部分来回答该问题。这可以被称为“混合”解决方案。通过使用已经在外部应用程序中实现的分析技术和封闭算法,该类型的解决方案可以胜过纯DNN模型。这样的外部应用程序不需要学习,因此使用它们会减少所需的训练数据总量。
训练DNN以通过外部应用程序的API与外部应用程序交互存在固有的困难:大多数DNN训练过程依赖于梯度反向传播的不同变体。因此,只有所有解决方案部分都被实现为神经网络,或者至少可以返回有效梯度,才可能对它们进行端到端训练。因此,整体解决方案的所有部分必须是可微分的。
相关技术的前述示例和与其相关的限制旨在是说明性的而非排他性的。通过阅读说明书和研究附图之后,相关领域的其他限制对于本领域技术人员而言将变得明显。
发明内容
结合系统、工具和方法来描述和说明以下实施例及其方面,这些系统、工具和方法旨在是示例性和说明性的,而不是限制范围。
一个实施例提供了一种方法,包括:在深度神经网络(DNN)的端到端训练期间,操作可微分的估计器子网以估计外部软件应用程序的功能。
另一实施例提供了一种计算机程序产品,包括具有随其实现的程序代码的非暂态计算机可读存储介质,该程序代码可由至少一个硬件处理器执行以:在深度神经网络(DNN)的端到端训练期间,操作可微分的估计器子网以估计外部软件应用程序的功能。
另一实施例提供了一种系统,包括:至少一个硬件处理器;以及具有随其实现的程序代码的非暂态计算机可读存储介质,该程序代码可由所述至少一个硬件处理器执行以:在深度神经网络(DNN)的端到端训练期间,操作可微分的估计器子网以估计外部软件应用程序的功能。
在一些实施例中,该方法或指令还包括:在由所训练的DNN进行的推理期间,通过启用DNN与外部软件应用程序之间的API通信,来将可微分的估计器子网替换为外部软件应用程序的功能。
在一些实施例中,端到端训练具有随机梯度下降(SGD)。
在一些实施例中,外部软件应用程序的功能是不可微分的。
在一些实施例中,外部软件应用程序的功能是可微分的。
在一些实施例中,该方法或指令还包括操作至少一个选择器子网以:确定对外部软件应用程序的应用程序编程接口(API)调用;以及从到DNN的输入中提取合适的API自变量。
在一些实施例中,该方法或指令还包括操作适应函数以:使选择器子网的输出格式适应API所需的输入格式;并且在推理期间使API的输出格式适应DNN的更高网络层所需的输入格式。
在一些实施例中,可微分的估计器子网将不同的数据表示嵌入到相同的向量空间中,以使DNN能够互换地处理不同的数据表示。
在一些实施例中,不同的数据表示包括数字和文本。
在一些实施例中:在DNN的端到端训练期间,可微分的估计器子网在被操作之前被训练;并且可微分的估计器子网的训练基于作为针对外部软件应用程序生成的输入的训练数据。
在一些实施例中,在DNN的端到端训练期间可微分的估计器子网的参数被更新。
在一些实施例中:在DNN的端到端训练期间,基于由外部软件应用程序生成的标签来计算损失值;并且计算的损失值用于DNN的端到端训练中。
在一些实施例中:在DNN的端到端训练期间,可微分的估计器子网在被操作之前被训练;可微分的估计器子网的训练基于作为针对外部软件应用程序生成的输入的训练数据;在DNN的端到端训练期间基于由外部软件应用程序生成的标签来计算损失值;计算的损失值用于DNN的端到端训练中;并且在DNN的端到端训练期间可微分的估计器子网的参数被更新。
除了上述示例性方面和实施例之外,通过参考附图以及通过研究以下详细描述,其他方面和实施例将变得明显。
附图说明
示例性实施例在参考附图中被示出。附图中所示的组件和特征的尺寸通常被选择以用于方便和清楚地呈现,并且不一定按比例示出。以下列出了附图。
图1示出了与外部应用程序集成的示例性计算机系统的框图;
图2示出了说明本技术的流程图;
图3示出了在线训练过程的示意图;以及
图4A、图4B、图4C和图4D示出了实验结果的图表。
具体实施方式
本文公开了一种技术,该技术被实现为用于将一个或多个外部软件应用程序集成到DNN中的方法、系统和计算机程序产品。这些外部软件应用程序可以是可微分的(differentiable)或不可微分的。在DNN的端到端训练期间,可微分的估计器子网被操作以估计每个外部软件应用程序的功能。在端到端优化过程期间DNN实质上被训练以遵循可微分的估计器子网的接口。
然后,为了由所训练的DNN进行的推理,将每个可微分的估计器子网替换为它的外部软件应用程序的对应功能;例如,这可以通过启用DNN和外部软件应用程序之间的应用程序编程接口(API)通信来实现,以使得DNN可以按需访问外部软件应用程序。
该技术有利地精简了将外部软件应用程序集成到DNN中的过程。如下面的实验结果所表明的,将可微分的估计器子网替换为它的外部软件应用程序对应物,而不是将可微分的估计器子网保持在DNN内,在推理期间产生优越的结果。
贯穿本公开,DNN模型被称“EstiNet”。贯穿本公开,可微分的估计器子网被称为“EstiLayer”。这些术语仅为了方便起见。
参考图1,图1示出了示例性计算机系统100的框图,示例性计算机系统100可以执行上述技术以便通过外部应用程序的API 112与外部应用程序110集成。
外部应用程序可以是可微分的或不可微分的。
计算系统100可以包括在功能上与一个或多个存储设备104相关联的一个或多个硬件处理器102。存储设备104可选地是存储可由硬件处理器102执行的指令的非暂态计算机可读存储介质。除其他之外,这些指令用于执行EstiNet 106。
I/O组件在该图中未示出但仍可选地包括在计算机系统100中,I/O组件诸如指示设备、键盘、显示器、触摸屏、网络接口卡(NIC)和/或类似物。
计算机系统100和外部应用程序112可以通过计算机网络(例如局域网(LAN)或诸如因特网之类的广域网(WAN))进行通信。可替代地,外部应用程序112可以是计算机系统100的部分,并且驻留在存储设备104或计算机系统的不同的存储设备(未示出)中。在后一种情况下,外部应用程序112可以由硬件处理器102或计算机系统的不同硬件处理器(未示出)执行。
参考图2,图2示出了说明本技术的流程图。矩形表示神经网络,带圆角的矩形表示外部应用程序。实线箭头用于正向传递,并且虚线箭头用于反向传播流程。
在训练(“训练模式”)期间,在端到端优化过程中EstiLayer鼓励EstiNet遵循预定义的EstiLayer的输入接口和输出接口。即,本身作为DNN的EstiNet学习每个EstiLayer的输入接口和输出接口的格式、特性和/或其他方面。实质上,EstiNet学习外部应用程序的API。
在推理(“推理模式”)期间,即——当EstiNet被部署并用于分析现实世界数据和发布预测时,EstiLayer被相应的外部应用程序替换。通过将输入接口和输出接口绑定到外部应用程序的实际API来进行替换。即,输入接口通过外部应用程序的API将查询发送到外部应用程序,并且输出接口从外部应用程序接收对查询的响应。由于API实质上是在之前的训练模式期间被学习的,因此每当需要外部应用程序的逻辑来回答查询时,EstiNet将与外部应用程序无缝通信。
作为简化的示例,考虑在背景技术部分中讨论的情况下EstiNet将如何操作。在这种情况下,外部应用程序是一个解决算术问题的简单程序。在推理期间,到DNN1的输入可以是非结构化问题“7.2大于4.5吗?”。经过DNN1的适当处理后,EstiNet通过输入接口与外部应用程序进行通信,并向该外部应用程序发送请求该外部应用程序估计哪个值更大的适当格式化的查询。例如,“greater_than(7.2,4.5)”形式的查询。然后,外部应用程序使用它的预编程的逻辑来处理查询,并通过输出接口将响应“7.2”输出到DNN2。最后,DNN2发布相应的预测。
换句话说,EstiNet处理自然语言处理部分,并访问简单的API例如,通过运行确定哪个值更高的简单函数,来解决逻辑部分。
更一般地,EstiNet可以用作通用DNN架构,该通用DNN架构可以处理任何类型的DNN任务,同时按需访问外部应用程序。这样的任务的示例包括自然语言处理(NLP)、计算机视觉、自动语音识别(ASR)、机器翻译、药物发现和毒理学、媒体推荐系统、生物信息学、图像恢复(例如,去噪、超分辨率、修复),等等。
这里描述的技术表明DNN在训练期间学习到外部应用程序的接口并且在推理时使用它的能力。该方法带来了若干挑战,在所公开技术的框架内应对所有这些挑战。
一个挑战是在正确的时间访问正确的API。从多个API中选择API是离散操作,并且因此是不可微分的。当期望端到端训练时,该固有的离散API选择引起了挑战。
另一个挑战涉及约束接口参数。为了用于EstiLayer的应用程序对应物妥当地替换EstiLayer,EstiLayer的接口需要遵循API的输入和输出参数。作为端到端训练过程的部分将EstiLayer约束到输入和输出定义为该挑战又增加了一层。
现在将更详细地讨论EstiNet模型。
EstiNet可以由三个概念子网(也称为“层”)定义:输入表示、选择器和EstiLayer。这三个子网提供了解决具体任务所需的主要构建块。接下来,我们描述这三个子网中的每个子网的主要功能。
在一些实施例中,定义并创建被表示为fin(x)的输入表示子网。在一些实施例中,基于相关外部应用程序和API的规范和/或行为来定义、创建和/或训练fin(x)子网。fin(x)子网或层的输出使得(下面描述的)选择器子网能够从到DNN的输入中正确地提取信息。
在一些实施例中,定义和创建被表示为fsel()的选择器子网,使得它可以确定调用哪个API,并从由fin(x)子网提供的输入中提取合适的自变量。在一些实施例中,为了从一组API中离散地选择一个API,fsel()针对一组类(API)指派概率分布,并使用函数来选择一个API。仅作为一个示例,该函数可以是Eric Jang、Shixiang Gu和Ben Poole,“CategoricalReparameterization with Gumbel-Softmax(使用Gumbel-Softmax的分类重新参数化)”,stat,1050:1,2017中讨论的函数。选择了API后,fsel()从由fin(x)提供的数据中提取输入自变量,如所描述的。
在一些实施例中,EstiLayer是被表示为fest()的估计API及其功能的子网。在一些实施例中,EstiLayer使用可微分的子网来估计或模拟外部的、不可微分的应用程序,从而例如使用不能用于包括不可微分的组件的DNN的随机梯度下降(SGD)来实现DNN的端到端训练。
如所描述的,通过迫使EstiLayer估计外部应用程序的功能并遵循外部应用程序的API,本发明的实施例使得能够(例如,在推理时)将EstiLayer替换为实际的外部应用程序(或其API),同时保持整体功能完好。
在一些实施例中,EstiNet可以受益于与外部应用程序交互的附加功能。例如,数字API(例如,大于)使用数字作为其自变量。迫使EstiLayer和数字API具有相同的接口使兼容的数字表示成为必要。为此,EstiNet必须以可以与具体数字相互转换的格式表示数字。此外,许多任务需要不同的表示,例如数字和文本。因此,本技术可以将两种表示嵌入到相同的向量空间中。
作为另一示例,可以使用一个或多个适应函数来使选择器输出适应所需的API输入,并且在推理时使API输出适应更高网络层的所需输入。适应函数可以是不可微分的;因此,它不能在反向传播期间被使用。尽管如此,在训练时EstiNet可以使用这些函数以用于标签生成。
可以通过提供任务标签作为监督来执行端到端地训练DNN(诸如EstiNet)的过程。该监督允许模型端到端地学习输入到输出映射,而不提供用于学习应用程序接口的任何指导。这里讨论了可以支持本方法的两个示例性增强训练过程:离线训练和在线训练。
离线训练可以是两步过程。首先,可以训练EstiLayer来估计应用程序的功能。可以通过生成应用程序输入来创建训练数据,然后记录其输出。应用程序输入是通过API发送到应用程序的数据,然后该数据触发应用程序的处理。例如,如果应用程序是简单的乘法,则发送的数据可以是一对数字,这一对数字的乘法是所期望的。生成该数据的步骤可以包括生成大量随机数据。其次,可以将所训练的EstiLayer加载到EstiNet模型中,并且在保持EstiLayer参数(即,用于DNN的该层的所学习的权重)固定的同时对EstiNet进行端到端训练。在端到端训练过程期间允许优化器例如根据一些梯度方案(例如,随机梯度下降)更新EstiLayer参数。这改变与选择器子网的所学习的接口。
在线训练是一种联合训练EstiLayer和整个EstiNet模型的多任务训练过程。在线训练基于它从外部应用程序在线生成的标签计算附加的损失值。令x是某个模型输入样本。令zsoft=fsoft_sel(fin(x))和zhard=fhard_sel(fin(x))分别是在软选择和硬选择模式下到EstiLayer接口的选择器输入。然后,EstiNet模型预测被定义为fmodel(x),软在线预测fonline_soft被定义为fest(zsoft),并且硬在线预测fonline_hard被定义为fest(zhard)。此外,y被定义为用于输入样本x的任务标签,并且yapi=fapi(fadp(zhard))被定义为用于API输入样本zhard的API标签。现在,总损失L可以被定义为:
L=Lmodel+λ1Lonline_soft+λ2Lonline_hard,
其中λ1和λ2是模型的超参数,以及
Lmodel=loss(fmodel,y),
Lonline_soft=loss(fonline_soft,yapi),
以及Lonline_hard=loss(fonline_hard,yapi)。
参考图3,图3示出了在线训练过程的示意图。在线训练过程的一种变体是在线预训练;在这里,如在离线训练中一样,该处理通过训练EstiLayer开始,然后在在线训练期间使用EstiLayer。在图3中,模型参数根据任务标签(左侧)联合优化并且EstiLayer参数根据应用程序标签(中间和右侧)联合优化。在根据应用程序标签优化EstiLayer参数时,梯度流程停止,从而迫使梯度流程保留应用程序功能。请注意,EstiLayer和在线EstiLayer共享它们的参数,并且API标签是从到EstiLayer的输入在线生成的而不是从任务输入生成的。
实验结果
发明人进行的和这里描述的实验表明了本发明实施例的可用性和有效性。可以基于某些实验方法和/或实验结果来配置本发明的一些实施例;因此,以下实验方法和/或实验结果被认为是本发明的实施例。
本技术已经应用于基于生成的表的问答任务(TAQ)。我们在辅助数据集上运行了支持性实验,以表面该技术从较少的数据中学习的能力。在下面的节中,我们提供了TAQ任务描述和解决它的EstiNet模型的详细实现。
TAQ任务
对于TAQ任务,我们生成基于表的问答数据集。TAQ数据集输入具有两部分:问题和表。要根据该数据集正确回答问题,DNN必须访问正确的表列并且使用它从查询中提取的参数对该表列应用不可微分的逻辑。例如,考虑描述在上届奥运会期间每个国家赢得的奖牌数量的表,以及诸如“哪些国家赢得超过7枚金牌?”之类的查询。为回答该查询,DNN必须从该查询中提取自变量(在该情况下为7),访问相关列(即金牌),并使用提取的自变量和列内容(即数字向量)作为其参数执行“大于”操作。操作的输出向量保持满足逻辑条件(在我们的示例中为大于)的行的索引。最终答案包含所选择的行中(即来自国家列)的国家的名称。
TAQ API
解决TAQ任务需要五个基本逻辑函数:等于、小于、大于、最大和最小。每个这样的函数定义由两个输入和一个输出组成的API。第一输入是数字向量,即表中的列。第二输入是标量,即,来自问题的自变量或者如果标量参数不相关则是NaN。输出是与输入向量的大小相同的一个二进制向量。输出向量指示用于具体查询的所选择的行,从而提供答案。
TAQ数据
我们生成了表,在该表中第一行包含列名称并且第一列包含实体列表(例如,国家、团队、产品等)。后续列包含实体的定量属性(例如,人口、获胜次数、价格、折扣等)。每个TAQ生成的表由5列和25行组成。我们通过从封闭列表中随机选择,来为第一列生成实体名称(即国家和俱乐部)。我们通过从均匀分布中采样来为其余列生成值。我们针对训练集表采样1到100之间的值,并且针对测试集表采集300到400之间的值。我们还创建了使用5个API函数的随机生成的问题的2个集合。集合包括训练表上的20,000个训练问题和测试表上的4,000个测试问题。
输入表示
TAQ输入由词、数字、查询和表组成。以下描述了用于这些元素中的每个元素的EstiNet表示。
词表示:如在Yonghui Wu等,“Google’s neural machine translation system:Bridging the gap between human and machine translation(Google的神经机器翻译系统:缩小人与机器翻译之间的差距)”,arXiv preprint arXiv:1609.08144,2016中的,EstiNet使用词片段来表示词。一个词是词片段的串接。EstiNet将每个词a表示为它的片段嵌入的平均值。
数字表示:EstiNet旨在准确地表示数字并将其嵌入到相同的词向量空间中。因此,它的数字表示遵循William Kahan的用于二进制浮点运算的IEEE标准754,1996的float32方案。具体地,它通过将数字表示为32维布尔向量s'n开始。然后它通过将s'n数位中的每一个乘以r次来增加冗余因子r,r*32<d。最后,它使用d-r*32个零来填充结果向量。我们尝试了若干表示方案。该方法产生了最佳的EstiNet性能。
查询表示:EstiNet将查询q表示为词嵌入的矩阵,并使用Sepp Hochreiter和Jurgen Schmidhuber,“Long short-term memory(长短期记忆)”神经计算,9(8):1735-1780,1997的LSTM模型来将查询矩阵编码为向量表示:其中hlast是上个LSTM输出,d_rnn是LSTM的维度。
表的表示:对于TAQ任务,EstiNet将具有n行和m列的表表示为三维张量。它将表中的单元表示为该单元的词的片段平均值。
选择器
EstiNet TAQ模型使用三种选择器类型:操作、自变量和列。操作选择器选择正确的API。自变量选择器从查询中选择自变量并将该自变量传递给API。列选择器的角色是从表中选择列并将该列传递给API。EstiNet将每个选择器子网实现为分类器。令为预测的类矩阵,其中类的总数为cn,每个类由大小为dc的向量表示。例如,对于必须从句子中选择词的选择器,C矩阵包含句子中的词的词嵌入。可以考虑各种选择器实现选项。我们使用简单的全连接的网络实现,其中是参数矩阵,并且是偏差。我们将β=C×(qlstm×W+b)定义为激活前的选择器预测,并且将α=fsel(.)=softmax(β)定义为softmax激活层之后的预测。在推理时,选择器将它的软选择变换为硬选择以满足API需求。EstiNet使用Gumbel Softmax硬选择功能来实现该变换。
EstiLayer
EstiNet TAQ模型使用五个EstiLayer来估计五个逻辑操作中的每一个。每个EstiLayer都是一个通用子网,我们使用如Ashish Vaswani等,“Attention is all youneed(你只需要注意力)”,arXiv preprint arXiv:1706.03762,2017中的变换网络编码器来实现通用子网。具体地,我们使用个相同的层,这些层中的每个层由两个子层组成。第一子层是具有个头的多头注意力(attention),并且第二子层是全连接的前馈双层网络,该网络在序列中的每个单元上被单独激活。然后,我们在这两个子层中的每一个子层周围采用残余连接,然后进行层标准化。最后,我们对编码器输出应用线性变换、增加偏差并应用Gumbel Softmax。
现在讨论如实验中所展现的技术性能。我们从EstiNet模型在TAQ任务上的性能开始。然后,我们提供离线和在线训练过程的性能结果,并将这些结果与普通训练基线进行比较。最后,我们证明了本技术在从较少的数据中学习的方面的优势。
TAQ性能
图4A描绘了三种模型配置的TAQ准确性:
1.训练:训练模型和训练数据集;
2.测试:训练模型和测试数据集;以及
3.推理:推理模型和测试数据集。
如图所示,在20个时期(epoch)之后,训练数据集上的训练模型准确性达到95%。有趣的是,测试集上的推理准确性甚至更高并达到100%,而测试准确性低于40%。该图表证明了TAQ模型学习逻辑接口的能力,尽管低测试准确性指示TAQ模型具有低泛化(generalization)。仅对于生成的数据存在的中间选择器标签允许我们在使用估计器学习接口时进一步评估选择器准确性。图4B呈现了在模型训练期间三个选择器的每个时期的准确性。该图显示了在大约10个时期之后选择器完美学习EstiLayer的接口的能力。选择器测试性能表示相同的结果(图中未显示)。图4C和图4D进一步评估EstiLayer在估计逻辑操作中的准确性。附图显示EstiLayer在训练集上实现了近乎完美的准确性,而测试集性能远低于最佳值。最重要的是,尽管次优EstiLayer测试性能推动测试集上的整体的低模型性能,但是在推理模式中它对模型性能没有影响。显然,这是因为在推理模式期间,我们将每个EstiLayer替换为它的应用程序对应物。
训练过程
表1总结了整个上述训练过程中的TAQ模型性能。
训练模式 | 训练准确性 | 测试准确性 | 推理准确性 |
普通 | 0.9 | 0.11 | 0.08 |
离线 | 0.09 | 0.02 | 0.17 |
离线可训练 | 0.97 | 0.22 | 0.33 |
在线 | 0.76 | 0.22 | 0.69 |
在线预训练 | 0.98 | 0.47 | 0.98 |
表1
该表呈现了对于三种训练过程:普通、离线和在线的三种模型配置:训练、测试和推理的准确性。离线可训练是其中我们允许优化器继续更新EstiLayer参数的离线模式。在线预训练是其中我们当在离线模式下时预先训练EstiLayer的在线模式。表中的每个值被计算为10次重复实验的平均值。
在我们用作我们的基线(表中的第一行)的普通训练中,我们端到端地训练TAQ模型,而没有对选择器-估计器接口进行任何附加约束。如所示出的,该模型可以过拟合训练集(0.9)但测试集性能低(0.11)。注意在这种情况下,推理性能没有实际意义,因为不存在预定义的选择器-估计器接口。因此,用外部API替换估计器没有意义。我们的主要目标是迫使模型学习预定义的接口。为实现这一目标,我们采用了我们将其称为离线训练的两步训练过程。在端到端训练过程期间我们首先训练估计器以过拟合训练集,然后使用所训练的估计器模型。
表中的第二行显示离线实验的结果。如所示出的,该模型无法拟合训练集并且仅显示0.09的准确性。此外,低训练模型准确性导致低推理性能(0.17)。我们假设在端到端训练过程期间固定估计器参数阻止模型的其余部分拟合训练集。因此,我们运行了离线可训练的第三实验,该第三实验允许优化器在端到端训练过程期间更新EstiLayer参数。这使得模型能够成功拟合训练集(0.97),但损害了推理时的接口准确性(0.33)。考虑到这种失败,我们寻找一种方法以使模型端到端地学习TAQ任务,并且同时迫使估计器遵循预定义的接口。
我们将在线训练过程设计为具有两个不相关的损失函数:1)任务,以及2)外部功能的多任务优化过程。在我们的第一在线训练实验(表中的在线条目)中,我们在没有首先初始化估计器参数的情况下训练估计器和整个模型。我们假设在多任务优化过程期间估计器将获得它们的估计功能。实际上,该训练过程导致推理性能的显著改进(0.69)。然而,端到端模型仍然面临在拟合训练集方面的困难,仅获得0.76的准确性。为了改进端到端模型学习性能,我们用在线预训练过程(表中的第五行)进行实验,其中我们使用经训练的估计器模型开始端到端训练过程。如表所示,改进的在线训练过程成功拟合训练集(0.98)并在推理时实现接近完美的结果(0.98)。低测试集性能(0.47)是通常表示次优模型性能的现象(即,由于缺少数据)。但是,在我们的情况下,它证明在缺少数据的情况下的高泛化能力。
从较少数据中学习
为了证明本技术从较少数据中学习的能力,我们对great-than(大于)/less-than(小于)问题的较简单的数据集运行了辅助实验。问题来自10个不同的模板,所有模板都需要对于2个实数的真/假答案。例如:在x和y中,第一个更大吗?其中x,y是从分布中采样的浮点数。
此简单数据集的目标是证明EstiNet从较少数据中学习的能力。我们比较了在普通训练过程和在线训练过程中EstiNet模型的性能。普通训练过程被用作基线并且我们在测试模式下测量其性能。这是因为对于普通训练,模型不学习与外部应用程序交互,因此,推理性能没有意义。另一方面,在线训练让DNN模型学习与外部应用程序交互,因此,我们可以测量其推理性能。
我们的实验包含具有250、500、1,000、5,000或10,000个问题的5个训练集和具有1,000个问题的测试集。表2总结了性能差异。结果表明,通过在线训练,模型更好地泛化,并且随着训练数据量的减少,两种训练过程之间的准确性差异增加。有趣的是,注意到为了实现例如0.97的准确性,在线训练只需要普通训练所需数据的5%的样本。我们将EstiNet在线训练性能的优越性归功于其学习能力。该模型学习与外部应用程序交互以解决问题的逻辑部分。
训练集大小 | 250 | 500 | 1,000 | 5,000 | 10,000 |
普通 | 0.533 | 0.686 | 0.859 | 0.931 | 0.98 |
在线 | 0.966 | 0.974 | 0.968 | 0.995 | 1.0 |
差异 | 81% | 41% | 13% | 7% | 2% |
表2
总之,本技术是解决不可微分性挑战同时将现有应用程序与DNN集成的有利方法。我们使用EstiLayer来估计外部的不可微分功能。然后,我们用EstiLayer作为功能占位符来对DNN进行端到端的训练。DNN学习与EstiLayer的接口并在推理时使用该接口。定义和学习应用程序接口以及学习何时使用它涉及训练过程必须解决的若干不可微分的方面。这些方面包括硬选择、类型化的自变量和功能编排。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、其上存储有指令的机械编码设备、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。计算机可读存储介质是非瞬时(即非易失性)介质。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。在本申请的说明书和权利要求中,动词中的每一个动词“包括(comprise)”、“包含(include)”和“具有”及其同根词用于表示该动词的一个宾语或多个宾语不一定是该动词的一个主语或多个主语的组件、元素或部分的完整列表。除非另有说明,否则诸如“基本”和“约”之类的修饰本公开的实施例的一个特征或多个特征的条件或关系特性的形容词应理解为意味着条件或特性被限定在如所述的实施例的操作可接受的公差范围内。此外,单词“或”被认为是包括性的“或”而不是排他性的“或”,并且表示它所连接的项中的至少一个或任何组合。
Claims (16)
1.一种方法,包括:
在深度神经网络DNN的端到端训练期间,操作可微分的估计器子网以估计外部软件应用程序的功能。
2.如权利要求1所述的方法,还包括:
在所训练的DNN进行推理期间,通过启用所述DNN与所述外部软件应用程序之间的API通信,将所述可微分的估计器子网替换为所述外部软件应用程序的功能。
3.如权利要求2所述的方法,其中所述端到端训练具有随机梯度下降SGD。
4.如权利要求2所述的方法,其中所述外部软件应用程序的所述功能是不可微分的。
5.如权利要求2所述的方法,其中所述外部软件应用程序的所述功能是可微分的。
6.如权利要求2所述的方法,还包括操作至少一个选择器子网以:
确定对所述外部软件应用程序的应用程序编程接口API调用;以及
从到所述DNN的输入中提取合适的API自变量。
7.如权利要求6所述的方法,还包括操作适应函数以:
使所述选择器子网的输出格式适应所述API所需的输入格式;以及
在推理期间,使所述API的输出格式适应所述DNN的更高网络层所需的输入格式。
8.如权利要求2所述的方法,其中所述可微分的估计器子网将不同的数据表示嵌入到相同的向量空间中,以使所述DNN能够互换地处理所述不同的数据表示。
9.如权利要求8所述的方法,其中,所述不同的数据表示包括数字和文本。
10.如权利要求2所述的方法,其中:
在所述DNN的端到端训练期间,所述可微分的估计器子网在被操作之前被训练;以及
所述可微分的估计器子网的所述训练基于作为针对所述外部软件应用程序生成的输入的训练数据。
11.如权利要求10所述的方法,其中,在所述DNN的所述端到端训练期间更新所述可微分的估计器子网的参数。
12.如权利要求2所述的方法,其中:
在所述DNN的所述端到端训练期间基于由所述外部软件应用程序生成的标签来计算损失值;以及
所计算的损失值用于所述DNN的所述端到端训练中。
13.如权利要求2所述的方法,其中:
在所述DNN的端到端训练期间,所述可微分的估计器子网在被操作之前被训练;
所述可微分的估计器子网的所述训练基于作为针对所述外部软件应用程序生成的输入的训练数据;
在所述DNN的所述端到端训练期间基于由所述外部软件应用程序生成的标签来计算损失值;
所计算的损失值用于所述DNN的所述端到端训练中;以及
在所述DNN的所述端到端训练期间更新所述可微分的估计器子网的参数。
14.一种计算机程序产品,所述计算机程序产品包括具有随其实现的程序代码的非暂态计算机可读存储介质,所述程序代码能够由至少一个硬件处理器执行以执行如权利要求1-13中任一项所述的方法中的步骤。
15.一种系统,包括:
至少一个硬件处理器;以及
非暂态计算机可读存储介质,所述非暂态计算机可读存储介质具有随其实现的程序代码,所述程序代码能够由所述至少一个硬件处理器执行以执行如权利要求1-13中任一项所述的方法中的步骤。
16.一种包括用于执行如权利要求1-13中任一项所述的方法中的步骤的模块的系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/008,058 US11625609B2 (en) | 2018-06-14 | 2018-06-14 | Integration of external applications into deep neural networks |
US16/008,058 | 2018-06-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110610234A true CN110610234A (zh) | 2019-12-24 |
CN110610234B CN110610234B (zh) | 2023-04-07 |
Family
ID=68839506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910503522.6A Active CN110610234B (zh) | 2018-06-14 | 2019-06-12 | 将外部应用程序集成到深度神经网络中 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11625609B2 (zh) |
CN (1) | CN110610234B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114600457A (zh) * | 2020-05-12 | 2022-06-07 | 腾讯美国有限责任公司 | 替换式端到端视频编解码 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920604B (zh) * | 2018-06-27 | 2019-08-13 | 百度在线网络技术(北京)有限公司 | 语音交互方法及设备 |
US11017028B2 (en) * | 2018-10-03 | 2021-05-25 | The Toronto-Dominion Bank | Systems and methods for intelligent responses to queries based on trained processes |
CN112437929A (zh) * | 2018-10-11 | 2021-03-02 | 谷歌有限责任公司 | 带泄漏尖峰神经网络中的时间编码 |
US11704573B2 (en) * | 2019-03-25 | 2023-07-18 | Here Global B.V. | Method, apparatus, and computer program product for identifying and compensating content contributors |
US11551145B2 (en) * | 2020-02-05 | 2023-01-10 | International Business Machines Corporation | Performance based switching of a model training process |
CN111833583B (zh) * | 2020-07-14 | 2021-09-03 | 南方电网科学研究院有限责任公司 | 电力数据异常检测模型的训练方法、装置、设备和介质 |
CN112507995B (zh) * | 2021-02-05 | 2021-06-01 | 成都东方天呈智能科技有限公司 | 一种跨模型人脸特征向量的转换系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100312735A1 (en) * | 2009-06-04 | 2010-12-09 | Honda Research Institute Europe Gmbh | Implementing a neural associative memory based on non-linear learning of discrete synapses |
JP2012018450A (ja) * | 2010-07-06 | 2012-01-26 | Keio Gijuku | ニューラルネットワークシステム、ニューラルネットワークシステムの構築方法およびニューラルネットワークシステムの制御プログラム |
CN103870878A (zh) * | 2014-03-28 | 2014-06-18 | 西安西热控制技术有限公司 | 一种电站锅炉燃烧特性神经网络模型 |
US20170046616A1 (en) * | 2015-08-15 | 2017-02-16 | Salesforce.Com, Inc. | Three-dimensional (3d) convolution with 3d batch normalization |
CN106951512A (zh) * | 2017-03-17 | 2017-07-14 | 深圳市唯特视科技有限公司 | 一种基于混合编码网络的端到端对话控制方法 |
CN108009636A (zh) * | 2017-11-16 | 2018-05-08 | 华南师范大学 | 深度学习神经网络进化方法、装置、介质和计算机设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10332028B2 (en) | 2015-08-25 | 2019-06-25 | Qualcomm Incorporated | Method for improving performance of a trained machine learning model |
US10635974B2 (en) | 2015-11-12 | 2020-04-28 | Deepmind Technologies Limited | Neural programming |
US10963779B2 (en) | 2015-11-12 | 2021-03-30 | Google Llc | Neural network programmer |
EP4020282A1 (en) * | 2017-10-13 | 2022-06-29 | Ping Identity Corporation | Methods and apparatus for analyzing sequences of application programming interface traffic to identify potential malicious actions |
-
2018
- 2018-06-14 US US16/008,058 patent/US11625609B2/en active Active
-
2019
- 2019-06-12 CN CN201910503522.6A patent/CN110610234B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100312735A1 (en) * | 2009-06-04 | 2010-12-09 | Honda Research Institute Europe Gmbh | Implementing a neural associative memory based on non-linear learning of discrete synapses |
JP2012018450A (ja) * | 2010-07-06 | 2012-01-26 | Keio Gijuku | ニューラルネットワークシステム、ニューラルネットワークシステムの構築方法およびニューラルネットワークシステムの制御プログラム |
CN103870878A (zh) * | 2014-03-28 | 2014-06-18 | 西安西热控制技术有限公司 | 一种电站锅炉燃烧特性神经网络模型 |
US20170046616A1 (en) * | 2015-08-15 | 2017-02-16 | Salesforce.Com, Inc. | Three-dimensional (3d) convolution with 3d batch normalization |
CN106951512A (zh) * | 2017-03-17 | 2017-07-14 | 深圳市唯特视科技有限公司 | 一种基于混合编码网络的端到端对话控制方法 |
CN108009636A (zh) * | 2017-11-16 | 2018-05-08 | 华南师范大学 | 深度学习神经网络进化方法、装置、介质和计算机设备 |
Non-Patent Citations (6)
Title |
---|
ARVIND NEELAKANTAN 等: "LEARNING A NATURAL LANGUAGE INTERFACE WITH NEURAL PROGRAMMER", 《ARXIV:1611.08945V4》 * |
ARVIND NEELAKANTAN 等: "Neural Programmer: Inducing Latent Programs with Gradient Descent", 《ARXIV:1511.04834V1》 * |
CHENG ZHANG 等: "Automatic parameter recommendation for practical API usage", 《 2012 34TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE)》 * |
LIANG, PERCY 等: "Learning Executable Semantic Parsers for Natural Language Understanding", 《ACM》 * |
XIAODONG GU 等: "Deep API Learning", 《FSE 2016》 * |
安金霞等: "基于神经网络知识库的多神经网络集成方法", 《中南大学学报(自然科学版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114600457A (zh) * | 2020-05-12 | 2022-06-07 | 腾讯美国有限责任公司 | 替换式端到端视频编解码 |
CN114600457B (zh) * | 2020-05-12 | 2024-08-20 | 腾讯美国有限责任公司 | 视频编解码的方法、装置及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110610234B (zh) | 2023-04-07 |
US11625609B2 (en) | 2023-04-11 |
US20190385060A1 (en) | 2019-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110610234B (zh) | 将外部应用程序集成到深度神经网络中 | |
US11790212B2 (en) | Quantization-aware neural architecture search | |
US20190325308A1 (en) | Multi-task learning using knowledge distillation | |
EP3054403B1 (en) | Recurrent neural networks for data item generation | |
EP3956821A1 (en) | Multi-task machine learning architectures and training procedures | |
CN111639710A (zh) | 图像识别模型训练方法、装置、设备以及存储介质 | |
CN114514540A (zh) | 语言任务的对比预训练 | |
JP2021501390A (ja) | テキスト意味論的コード化の方法および装置 | |
US11574239B2 (en) | Outlier quantization for training and inference | |
CN109558605B (zh) | 用于翻译语句的方法和装置 | |
US20240256786A1 (en) | Machine-Learned Language Models Which Generate Intermediate Textual Analysis in Service of Contextual Text Generation | |
WO2020150678A1 (en) | Oblivious binary neural networks | |
US11281867B2 (en) | Performing multi-objective tasks via primal networks trained with dual networks | |
CN112836502B (zh) | 一种金融领域事件隐式因果关系抽取方法 | |
US20230042327A1 (en) | Self-supervised learning with model augmentation | |
CN112085103A (zh) | 基于历史行为的数据增强方法、装置、设备以及存储介质 | |
CN113935338B (zh) | 基于层预测的语言翻译的方法、设备、装置和介质 | |
US20230012316A1 (en) | Automation of leave request process | |
US20220366188A1 (en) | Parameterized neighborhood memory adaptation | |
US20220044766A1 (en) | Class-dependent machine learning based inferences | |
Julian | Deep learning with pytorch quick start guide: learn to train and deploy neural network models in Python | |
US10585986B1 (en) | Entity structured representation and variant generation | |
Bailis et al. | Infrastructure for usable machine learning: The stanford dawn project | |
US20220383096A1 (en) | Explaining Neural Models by Interpretable Sample-Based Explanations | |
US20240112032A1 (en) | Transfer-learning for structured data with regard to journeys defined by sets of actions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |