本申请涉及将外部应用程序集成到深度神经网络中。在深度神经网络(DNN)的端到端训练期间,操作可微分的估计器子网以估计外部软件应用程序的功能。然后,在由所训练的DNN进行推理期间,通过启用DNN和外部软件应用程序之间的API通信,将可微分的估计器子网替换为外部软件应用程序的功能。
【技术实现步骤摘要】
将外部应用程序集成到深度神经网络中
本专利技术涉及深度神经网络(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可以执行上述技术以便通过外部应用程序的API112与外部应用程序110集成。外部应用程序可以是可微分的或不可微分的。计算系统100可以包括在功能上与一个或多个存储设备104相关联的一个或多个硬件处理器102。存储设备104可选地是存储可由硬件处理器102执行的指令的非暂态计算机可读存储介质。除其他之外,这些指令用于执行EstiNet106。I/O组件在该图中未示出但仍可选地包括在计算机系统100中,I/O组件诸如指示设备、键盘、显示器、触摸屏、网络接口卡(NIC)和/或类似物。计算机系统100和外部应用程序112可以通过计算机网络(例如局域网(LAN)或诸如因特网之类的广域网(WAN))进行通信。可替代地,外部应用程序112可以是计算机系统1本文档来自技高网...
【技术保护点】
1.一种方法,包括:/n在深度神经网络DNN的端到端训练期间,操作可微分的估计器子网以估计外部软件应用程序的功能。/n
【技术特征摘要】
20180614 US 16/008,0581.一种方法,包括:
在深度神经网络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的端到端训练期间,所述可...
【专利技术属性】
技术研发人员:B·卡尔梅丽,G·哈达什,E·科尔曼伊,O·拉维,G·雷维,O·萨尔沙尔罗姆,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。