增强神经网络以生成附加输出的制作方法

文档序号:12167317阅读:156来源:国知局
增强神经网络以生成附加输出的制作方法与工艺

本说明书涉及神经网络系统架构。

神经网络是采用非线性单元的一个或多个层来预测对所接收的输入的输出的机器学习模型。一些神经网络除输出层外,还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层的输入,网络中的下一层即为下一隐藏层或输出层。网络的每个层根据相应的参数集的当前值,根据接收的输入来生成输出。

一些神经网络是递归神经网络。递归神经网络是接收输入序列并且根据该输入序列生成输出序列的神经网络。具体地,递归神经网络能够在计算当前时间步骤的输出中,使用来自前一时间步骤的网络的一些或全部内部状态。递归神经网络的示例是包括一个或多个长短期记忆(LSTM)的记忆块的LSTM神经网络。每个LSTM记忆块可以包括一个或多个单元,每个单元包括输入门、遗忘门、和输出门,这允许该单元存储该单元的先前状态,例如用于生成当前活动或被提供给LSTM神经网络的其它组件。



技术实现要素:

本说明书描述涉及增强的神经网络系统的技术。通常,增强的神经网络系统包括被配置为接收神经网络输入并且对每个神经网络输入生成相应的神经网络输出的神经网络。增强的神经网络系统还包括序列处理子系统,其被配置为对系统输入序列中的每个系统输入,接收该系统输入并且根据该系统输入生成初始神经网络输入。序列处理子系统还被配置为使神经网络处理该初始神经网络输入以对该系统输入生成初始神经网络输出并且根据对于该系统输入的初始神经网络输入的第一部分,确定是否使神经网络生成对于该系统输入的一个或多个附加神经网络输出。

对被配置为执行特定操作或动作的一个或多个计算机的系统,是指该系统已经在其上安装软件、固件、硬件或它们的组合,在操作中,软件、固件、硬件或它们的组合使该系统执行操作或动作。对被配置为执行特定操作或动作的一个或多个计算机程序,是指该一个或多个程序包括指令,当由数据处理装置执行该指令时,该指令使该装置执行该操作或动作。

能够在特定实施例中实施本说明书中所述的主题以便实现下述一个或多个优点。通过允许增强的神经网络系统确定何时对给定的系统输入生成最终系统输出,通过允许神经网络对困难输入生成更精确输出,能够提高神经网络的性能。另外,在训练期间,或训练后,在运行时,在不显著地增加神经网络所需的处理时间或由其使用的计算资源的情况下,提高神经网络的性能。另外,增强的神经网络系统被配置为当由该系统生成的输出是最终系统输出时进行信号告知。通过这样做,该系统被给予准确地产生更复杂系统输出的时间,例如,以确保当还未完成时,不会为进一步处理而发出不完整的可变长度输出,从而提高了系统的性能。

在附图和下述描述中,阐述本说明书的主题的一个或多个实施例的细节。从说明书、附图和权利要求,该主题的其他特征、方面和优点将变得显而易见。

附图说明

图1示出示例增强的神经网络系统。

图2是用于根据系统输入生成系统输出的示例过程的流程图。

图3是用于对系统输入生成一个或多个神经网络输出的示例过程的流程图。

图4是用于根据系统输入生成系统输出的示例过程的流程图。

图5是用于根据神经网络输出的指定部分确定存储器存取权重的示例过程的流程图。

图6是用于对外部存储器的位置生成基于内容的权重的示例过程的流程图。

图7是用于将基于位置的调整应用于基于内容的权重的示例过程的流程图。

图8是根据擦除权重从外部存储器擦除的示例过程的流程图。

图9是根据写入权重写入到外部存储器的示例过程的流程图。

图10是根据读取权重从外部存储器读取的示例过程的流程图。

不同图中相同的数字和名称表示相同的元件。

具体实施方式

图1示出示例增强的神经网络系统100。该增强的神经网络系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中,实现下文所述的系统、组件和技术。

增强的神经网络系统100是接收系统输入序列并且根据该系统输入生成系统输出的序列的机器学习系统。例如,增强的神经网络系统100能够将系统输入x接收为输入序列的一部分并且生成包括在该系统输出的序列中的系统输出y。增强的神经网络系统100能够将生成的输出序列存储在输出数据库中或提供输出序列,以用于一些其他直接目。

增强的神经网络系统100能够被配置成接收任何种类的数字数据输入,并且基于输入生成任何种类的得分或分类输出。例如,如果增强的神经网络系统100的输入是已经从图像提取的图像或特征,由增强的神经网络系统100对于给定图像而生成的输出可以是对象类别集中的每个的得分,其中每个得分表示图像包含属于该类别的对象的图像的估计可能性。如另一示例,如果增强的神经网络系统100的输入是互联网资源(例如网页)、文档或文档的一部分或从互联网资源、文档或文档的一部分提取的特征,由增强的神经网络系统100对于给定的互联网资源、文档或文档的一部分而生成的输出可以是主题集中的每个的得分,其中每个得分表示互联网资源、文档或文档部分是有关该主题的估计可能性。如另一示例,如果增强的神经网络系统100的输入是用于特定广告的印象场境的特征,由增强的神经网络系统100生成的输出可以是表示将点击特定广告的估计可能性。如另一示例,如果增强的神经网络系统100的输入是对于用户的个性化推荐的特征,例如,特征化推荐场境的特征,例如,特征化由用户采取的在前动作的特征,由增强的神经网络系统100生成的输出可以是内容项集中的每个的得分,其中每个得分表示用户将顺利地响应被推荐的内容项的估计可能性。如另一示例,如果增强的神经网络系统100的输入是以一种语言的文本,由增强的神经网络系统100生成的输出可以是以另一种语言的几篇文本的集合中的每个的得分,其中每个得分表示以该另一语言的一篇文本是将输入文本适当翻译成该另一语言的估计可能性。如另一示例,如果增强的神经网络系统100的输入是说出的话语、说出的话语序列或由上述两个中的一个导出的特征,由增强的神经网络系统100生成的输出可以是几篇文本的集合中的每个的得分,每个得分表示一篇文本是话语或话语序列的正确转录的估计可能性。如另一示例,增强的神经网络系统100能够是语音合成系统的一部分。如另一示例,增强的神经网络系统100能够是视频处理系统的一部分。如另一示例,增强的神经网络系统100能够是对话系统的一部分。如另一示例,增强的神经网络系统100能够是自动完成系统的一部分。如另一示例,增强的神经网络系统100能够是文本处理系统的一部分。如另一示例,增强的神经网络系统100能够是强化学习系统的一部分。

具体地,增强的神经网络系统100包括神经网络102和序列处理子系统108。神经网络102可以是被配置为接收神经网络输入并且处理该神经网络输入以生成神经网络输出的前馈神经网络或递归神经网络。

序列处理子系统108接收系统输入x并且根据该系统输入x生成神经网络输入s。然后,序列处理子系统108使神经网络102处理该神经网络输入s以生成对于该神经网络输入的神经网络输出o1。此外,根据神经网络102生成的每个神经网络输入,序列处理子系统108确定是否使神经网络102生成对于当前系统输入的一个或多个附加神经网络输出。然后,序列处理子系统108根据神经网络102对于该系统输入x而生成的每个神经网络输出,确定对于该系统输入x的系统输出y。

即,序列处理子系统108根据神经网络102对于给定系统输入而生成的神经网络输出,确定何时生成对于该给定系统输入的最终系统输出,并且何时将根据下一系统输入生成的神经网络输入提供给神经网络以进行处理。在下文中,参考图2,更详细地描述了为生成系统输出而处理系统输入。在下文中,参考图3,更详细地描述了确定是否使神经网络生成对于给定系统输入的附加神经网络输出。

在一些实施方式中,还以外部存储器104和存储器接口子系统106来增强神经网络102。在这些实施方式中,神经网络102被配置为生成包括被提供给序列处理子系统108的输出o1和被提供给存储器接口子系统106的输出o2的神经网络输出。存储器接口子系统106接收由神经网络102生成的输出o2并且将接收到的输出转换成将在外部存储器104上执行的擦除、读取和写入操作。即,存储器接口子系统106从神经网络102接收输出o2,并且基于输出o2,从外部存储器104擦除数据e,将数据w写入外部存储器104以及从外部存储器104读取数据r。然后,将由存储器接口子系统106读取的数据r提供给序列处理子系统108,以用于被包括为后一神经网络输入的一部分,例如与系统输入一起作为后一神经网络输入的一部分。在下文中,将参考图4-10,更详细地描述包括外部存储器和存储器接口子系统的神经网络102。

图2是用于根据系统输入生成系统输出的示例过程200的流程图。为了方便,过程200将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的增强的神经网络系统——例如图1的增强的神经网络系统100,能够执行过程200。

系统接收系统输入序列(步骤202)。

系统对该序列中的每个系统输入,生成一个或多个神经网络输出(步骤204)。该系统通过使用例如图1的神经网络102的神经网络处理相应的神经网络输入,生成每个神经网络输出,该神经网络被配置为处理神经网络输入以根据该神经网络输入生成神经网络输出。

通常,对每个系统输入,该系统根据该系统输入生成初始神经网络输入并且使用该神经网络,处理该初始神经网络输入以生成初始神经网络输出。

然后,该系统根据初始神经网络输出的判定部分,确定对该系统输入是否应当生成另一神经网络输出。神经网络输出的判定部分是神经网络输出的预定部分,该预定部分已经由例如系统管理员指定为用来决定是否应当生成另一神经网络输出的神经网络输出的一部分,即,使得使用神经网络输出的同一部分来决定由神经网络生成的每个输出。通常,给定神经网络输出的判定部分是处于神经网络输出中的预定位置的值。如下文进一步所述,在一些实施方式中,神经网络被配置成使得该判定部分的可能值的范围包含性或排他性地在0和1之间。在下文中,将参考图3,更详细地描述生成对于系统输入的一个或多个神经网络输出。

系统根据对于该系统输入的神经网络输出,生成对于每个系统输入的相应的系统输出(步骤206)。当对给定系统输入,仅生成单个神经网络输出时,该系统根据该单个神经网络输出的系统输出部分,生成对于该系统输入的系统输出。神经网络输出的系统输出部分是不同于判定部分的神经网络输出的预定部分,并且该预订部分已经由例如系统管理员指定为将用来生成系统输出的部分,即,使得使用神经网络输出的同一部分来生成对于由神经网络生成的每个输出的系统输出。

在一些实施方式中,该系统将系统输出部分提供为用于系统输入的系统输出。然而,在一些其他实施方式中,该系统将一个或多个变换应用于系统输出部分以便生成系统输出。例如,系统输出部分可以被变换成控制机器人或不同数字接口的命令。

当对给定系统输入已经生成多个神经网络输出时,该系统能够以各种方式中的任何一个生成对于该系统输入的系统输出。

例如,该系统能够仅根据对该系统输入生成的最后一个神经网络输出的系统输出部分,生成系统输出。即,该系统对于该系统输入,删除除最后一个神经网络输出外的所有神经网络输出,然后,根据该最后一个神经网络输出生成系统输出。

如另一示例,该系统能够根据对于该系统输入的所有神经网络输出的系统输出部分,生成系统输出。具体地,该系统能够组合所有神经网络输入的系统输出部分以生成系统输出。在一些实施方式中,该系统计算系统输出部分的加权和。即,该系统能够将每个系统输出部分乘以相应判定部分的值来生成加权的系统输出部分,然后对加权的系统输出部分进行求和以生成系统输出。可选地,该系统例如通过将该总和除以判定部分的值的总和,对该加权和进行归一化。组合神经网络输出以生成系统输入的其他方式是可能的,例如通过计算神经网络输出的集中趋势的度量。

图3是用于根据系统输入生成一个或多个神经网络输出的示例过程300的流程图。为了方便,将过程300描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的增强的神经网络系统——例如图1的增强的神经网络系统100,能够执行该过程300。

该系统接收系统输入(步骤302)。该系统输入是由该系统接收的系统输入序列中的一个输入。

该系统根据该系统输入生成初始神经网络输入(步骤304)。在不以外部存储器增强神经网络的实施方式中,该系统能够将该系统输入提供为初始神经网络输入。在以外部存储器增强神经网络的实施方式中,该系统能够将由存储器接口子系统已经从外部存储器读取的当前一个或多个读取向量与系统输入结合——例如连结,来生成初始神经网络输入。

系统使用神经网络处理该初始神经网络输入,以根据该系统输入生成初始神经网络输出(步骤306)。取决于该实施方式,神经网络能够是例如卷积神经网络或另一种深度前馈神经网络的前馈神经网络,或例如LSTM神经网络的递归神经网络。如果神经网络是递归神经网络,那么递归神经网络还将来自由神经网络处理的在前神经网络输入的递归神经网络的内部状态用于处理当前神经网络输入,以生成神经网络输出。在一些实施方式中,神经网络包括递归和前馈层。

在以外部存储器增强神经网络的实施方式中,该系统还根据神经网络输出的指定部分,从外部存储器进行读取、写入和擦除。在下文中,将参考图4-10,描述从外部存储器进行读取、写入和擦除。

该系统根据神经网络输出的判定部分,确定是否对该系统输入生成附加神经网络输出(步骤308)。该系统能够以各种方式中的任何一个,根据神经网络输出的判定部分做出该决定。

例如,该系统能够确定神经网络输出的判定部分的值是否超出阈值,如果判定部分的值超出阈值,那么确定不应当对该系统输入再生成附加神经网络输出。

如另一示例,可以将判定部分的值配置为包含性或排他性地限定到0和1之间的范围。在该示例中,该系统能够将判定部分的值视为概率。即,该系统能够以等于判定部分的值的概率,决定不再生成附加神经网络输出,而以等于1减去判定部分的值的概率,决定生成附加神经网络输出。如果该值不被限定到该范围,那么该系统能够对该值进行归一化并且将归一化值视为概率。

如果系统决定不再生成附加神经网络输出,那么该系统前进到处理序列中的下一系统输入(步骤310)。如果该系统输入是序列中的最后一个系统输入,那么该系统输出所生成的系统输出序列以用于一些立即目的,或将输出序列存储在输出数据库中。

如果该系统确定生成附加神经网络输出,那么该系统生成附加神经网络输出(步骤312)。在不以外部存储器增强神经网络的实施方式中,该系统能够再次将该系统输入提供为附加神经网络输入。替选地,该系统能够将例如预定缺省值的输入向量的缺省输入提供为附加神经网络输入。

在以外部存储器增强神经网络的实施方式中,该系统能够将已经从外部存储器读取的——例如基于根据当前神经网络输出的读取部分从外部存储器读取的当前读取向量与系统输入或缺省输入相结合。

该系统能够使用神经网络来处理附加神经网络输入,以生成附加神经网络输出(步骤314)。因为当处理每个神经网络输入时神经网络的状态将通常不同于当处理初始神经网络输入时或处理每个其他附加神经网络输入时的神经网络的状态,因此,每个附加神经网络输出通常不同于每个其他附加神经网络输出和初始神经网络输出。例如,在以外部存储器增强神经网络的实施方式中,被提供给神经网络、作为每个神经网络输入的一部分的当前读取向量通常不同。如另一示例,当神经网络包括一个或多个递归层时,当处理每个神经网络输入时的神经网络的内部状态通常是不同的。

该系统根据神经网络输出的判定部分,确定是否对该系统输入生成附加神经网络输出(回到步骤308)。

在一些实施方式中,增强的神经网络系统能够包括多个神经网络,其中各自处理每个系统输入以生成相应的神经网络输出,结合由每个网络生成的神经网络输出的适当部分来生成对于该系统输入的系统输出。在这些情况下,该系统能够根据每个神经网络输入的判定部分确定是否生成对于该系统输入的附加神经网络输出,例如,如上所述,通过计算判定部分的集中趋势的度量,然后根据该度量做出决定。

对系统输入序列中的每个系统输入,执行过程200和300以生成对于该系统输入序列的系统输出序列。系统输入序列能够是对于其未知所需输出的序列,所需输出即为对该输入序列应当由系统生成的输出序列。该系统还能够对训练数据集的输入执行过程200和300,以便训练该系统——即,确定用于神经网络的参数的训练值,以及在以外部存储器增强神经网络的实施方式中,确定用在从外部存储器进行擦除、写入和读取中的过程的任何附加参数,训练数据集即为对于其已知应当由该系统预测的输出的输入集。在完全可区分系统的组件的实施方式中,例如,在系统通过将判定部分视为概率决定是否生成附加神经网络输入的情况下,能够对于从训练数据集中选择的输入,重复地执行过程200和300,以作为常规机器学习训练技术的一部分来训练该神经网络,例如,如果神经网络为递归神经网络,以沿时间反向传播而造成随机梯度下降的训练技术。

在一些实施方式中,优化的目标函数除惩罚生成不正确系统输出的系统的一个或多个项外,还包括惩罚为生成系统输出花费太长时间进行处理的系统的一个或多个项。即,目标函数包括在系统花费更长时间来对给定输入序列生成输出序列的情况下增加对该系统的惩罚的一个或多个项。能够例如根据在处理输入序列中生成的神经网络输出的数量,测量该时间。由此,通过使用抵消对于不正确系统输出的惩罚和对于花费太长时间进行处理的惩罚的目标函数来训练该系统,能够训练该神经网络对任何给定的系统输入,不生成过多的附加神经网络输出,由此,减少该系统处理给定输入序列所需的处理时间和计算资源的增加。

如上所述,在一些实施方式中,以外部存储器增强神经网络。接下列描述从外部存储器进行读取、写入和擦除。

图4是用于根据系统输入生成系统输出的示例性过程400的流程图。为了方便,将过程400描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的增强的神经网络系统——例如图1的增强的神经网络系统100,能够执行该过程400。

系统接收系统输入(步骤402)。系统输入是由该系统接收的系统输入的序列中的一个。

该系统获得通过从,如图1的外部存储器104的外部存储器进行读取而生成的读取数据向量(步骤404)。通常,通过在处理系统输入序列中的在前输入期间从外部存储器进行读取,由系统生成读取数据向量。

该系统通过结合该系统输入和从外部存储器读取的数据,生成神经网络输入(步骤406)。例如,该系统能够连结系统输入和读取数据向量来生成神经网络输入。对第一系统输入,该系统能够将该系统输入与例如神经网络的学习状态的预定向量相连结。

该系统使用例如图1的神经网络102的神经网络处理该神经网络输入,以根据该神经网络输入生成神经网络输出(步骤408)。取决于该实施方式,神经网络能够是例如卷积神经网络或另一种深度前馈神经网络的前馈神经网络,或例如LSTM神经网络的递归神经网络。如果神经网络是递归神经网络,递归神经网络还将来自序列中的前一神经网络输入的递归神经网络的内容状态用于处理当前神经网络输入,以生成神经网络输出。在一些实施方式中,神经网络包括递归和前馈层。

该系统根据神经网络输出的系统输出部分,生成对于该系统输入的系统输出(步骤410)。神经网络输出的系统输出部分例如是,由例如系统管理员已经将其指定为将用来生成系统输出的部分的神经网络输出的预定部分,即,使得使用神经网络输出的相同部分来生成对于由神经网络生成的每个输出的系统输出。

在一些实施方式中,该系统将系统输出部分提供为对于系统输入的系统输出。然而,在一些其他实施方式中,该系统将一个或多个变换应用于系统输出部分以便生成系统输出。例如,系统输出部分可以被变换成控制机器人或不同数字接口的命令。

系统使用神经网络输出的擦除部分,从外部存储器进行擦除(步骤412)。神经网络输出的擦除部分是已经将其指定为将用于从外部存储器进行擦除的部分的神经网络输出的预定部分。具体地,为了从外部存储器进行擦除,该系统使用神经网络输出的擦除部分,确定擦除权重。擦除权重是存储器存取权重,包括用于外部存储器中的每个位置的相应的权重并且定义在外部存储器中的位置上的分布。

然后,该系统根据擦除权重,从外部存储器中的每个位置进行擦除。在下文中,将参考图4,更详细地描述根据神经网络输出的指定部分确定例如擦除权重的存储器存取权重。在下文中,将参考图8,更详细地描述根据擦除权重从外部存储器进行擦除。

该系统使用神经网络输出的写入部分,写入到外部存储器(步骤414)。神经网络输出的写入部分是已经将其指定为将用于写入到外部存储器的部分的神经网络输出的预定部分。

具体地,为了写入到外部存储器,该系统使用神经网络输出的写入部分的指定子部分,确定写入权重。在一些实施方式中,写入权重与擦除权重相同,即,写入部分的指定子部分是神经网络输出的擦除部分。然而,在一些其他实施方式中,写入部分的指定子部分不同于擦除部分。在下文中,参考图5,更详细地描述根据神经网络输出的指定部分确定例如写入权重的存储器存取权重。该系统还根据写入权重,根据写入部分的不同指定子部分,确定将写入到外部存储器的写入向量,然后将该写入向量写入到外部存储器。在下文中,参考图9,描述确定写入向量和将写入向量写入到外部存储器。

该系统使用神经网络输出的读取部分,从外部存储器进行读取(步骤416)。神经网络输出的读取部分是已经将其指定为将用于从外部存储器进行读取的部分的神经网络输出的预定部分。

具体地,为了从外部存储器进行读取,该系统使用神经网络输出的读取部分确定读取权重,然后根据读取权重从外部存储器中的位置进行读取。在下文中,参考图5,更详细地描述根据神经网络输出的指定部分确定例如读取权重的存储器存取权重。在下文中,参考图10,描述从外部存储器进行读取。

在一些实施方式中,该系统对给定系统输入,执行多次擦除、读取和写入操作。例如,该系统能够操作集并行地或相互独立地执行多个集合,多个集合中的每个包括擦除操作、读取操作和写入操作。另外,如下文参考图8-10更详细所述,该系统能够将不同的存储器存取权重用于执行每个操作集,例如,这是因为该系统将神经网络输出的不同部分用于计算存储器存取权重的集合中的每个。

另外,该系统能够以任何顺序执行擦除、读取和写入操作。例如,在一些实施方式中,该系统先从外部存储器进行擦除,然后进行写入,然后再进行读取。然而,在其他实施方式中,该系统能够以不同的顺序执行这些操作。

能够对系统输入序列中的每个系统输入执行过程400以生成对于系统输入序列的系统输出序列。系统输入序列能够是对于其未知所需输出的序列,所需输出即为对该输入序列,应当由该系统生成的输出序列。该系统还能够对于训练数据集的输入执行过程400,以便训练该系统,即,确定用于神经网络的参数的训练值,以及用于从外部存储器进行擦除、写入和读取的过程的任何附加参数,训练数据集即为对于其已知应当由该系统预测的输出的输入集。因为完全可区分系统的组件,能够对于从训练数据集中选择的输入,重复地执行过程400,以作为常规机器学习训练技术的一部分来训练该神经网络,例如,如果神经网络为递归神经网络,随机梯度下降反向传播的训练技术。

图5是用于根据神经网络输出的指定部分,确定存储器存取权重的示例过程500的流程图。为了方便,过程500将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的增强的神经网络系统——例如图1的增强的神经网络系统100,能够执行过程500。

该系统接收神经网络输出的指定部分(步骤502)。即,如果由系统确定的存储器存取权重为擦除权重,那么该系统接收神经网络输出的擦除部分,如果由该系统确定的存储器存取权重为写入权重,那么该系统接收神经网络输出的写入部分的指定子部分,以及如果由系统确定的存储器存取权重为读取权重,那么该系统接收神经网络输出的读取部分。

该系统根据指定部分的基于内容的子部分,确定基于内容的权重(步骤504)。通常,为了确定基于内容的权重,该系统根据基于内容的子部分确定内容关键向量。然后,该系统将内容关键向量与在外部存储器的位置中存储的向量进行比较以便确定用于该位置的权重。在下文中,将参考图6,更详细地描述确定基于内容的权重。

该系统将基于位置的调整应用于基于内容的权重,以确定存储器存取权重(步骤506)。通常,该系统根据指定部分的基于位置的子部分确定移位向量,然后使用该移位向量来调整基于内容的权重,以便确定存储器存取权重。在下文中,参考图7,描述对基于内容的权重进行调整。

图6是用于对外部存储器中的位置生成基于内容的权重的示例过程600的流程图。为了方便,过程600将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的增强的神经网络系统——例如图1的增强的神经网络系统100,能够执行过程600。

该系统接收神经网络输出的指定部分的基于内容的子部分(步骤602)。

该系统根据基于内容的子部分,生成基于内容的关键向量(步骤604)。在一些实施方式中,该系统可以将基于内容的子部分用作基于内容的关键向量。在一些其他实施方式中,该系统将一个或多个变换应用于基于内容的子部分以便生成基于内容的关键向量。例如,该系统可以使用被配置为接收子部分并且生成基于内容的关键向量的、例如多层感知器(MLP)神经网络的神经网络,处理基于内容的子部分。

该系统计算基于内容的关键向量和在外部存储器中存储的向量之间的相似性度量(步骤606)。即,该系统计算基于内容的关键向量和在外部存储器中存储的每个向量之间的相应的相似性度量。例如,相似性度量可以是余弦相似性度量,基于内容的关键向量k(h,t)和位于外部存储器M中的第i位置处的给定向量M(i,·,t)之间的相似性K满足:

该系统使用相似性度量,计算对于外部存储器中的位置的基于内容的权重(步骤608)。通常,该系统计算该权重,使得具有与基于内容的关键向量较高相似性度量的位置被分配较高权重。例如,对于外部存储器M中的第i位置的基于内容的权重可以满足:

其中,β(h,t)是作为根据神经网络输出的指定部分导出的正值的“关键强度”并且该总和为外部存储器中的所有位置的总和。

图7是用于将基于位置的调整应用于基于内容的权重的示例过程700的流程图。为了方便,过程700将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的增强的神经网络系统——例如图1的增强的神经网络系统100,能够执行过程700。

该系统接收神经网络输出的指定部分的基于位置的子部分(步骤702)。

该系统根据基于内容的权重和由该系统生成的在前权重,生成临时权重(步骤704)。通常,由该系统生成的在前权重是在前系统输入的处理期间,由该系统生成的存储器存取权重。该系统通过结合基于内容的权重和在前权重,生成临时权重。例如,该临时权重可以是基于内容的权重和在前权重的内插,对第t+1系统输入,对于该外部存储器中的指定位置i的临时权重满足:

其中,gt(h,t+1)是0和1之间并且根据神经网络输出的指定部分导出的门输出,wc(i,h,t+1)是对于第t+1系统输入的基于内容的权重,以及w(i,h,t)是根据第t系统输入的存储器存取权重。

该系统根据基于位置的子部分,生成移位向量(步骤706)。在一些实施方式中,该系统可以将基于位置的子部分用作移位向量。在一些其他实施方式中,该系统将一个或多个变换应用于基于位置的子部分以便生成移位向量。例如,该系统可以使用被配置为接收该子部分并且生成移位向量的、例如MLP神经网络的神经网络,处理基于位置的子部分。

该系统使用移位向量来对临时权重进行移位,以生成存储器存取权重(步骤708)。具体地,该系统使用移位向量,将例如循环卷积的卷积应用于临时矢量,以生成存储器存取权重。例如,对于外部存储器中的位置i的权重w(i,h,t+1)可以满足:

其中,所有索引算法是所计算的模数N,以及其中,s(i-j,h,t+1)是对于存储器中的位置i-j的移位向量。

图8是根据擦除权重从外部存储器进行擦除的示例过程800的流程图。为了方便,过程800将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的增强的神经网络系统——例如图1的增强的神经网络系统100,能够执行过程800。

该系统生成擦除权重(步骤802)。该系统能够如上参考图4-6所述,生成擦除权重。

该系统生成擦除向量(步骤804)。在一些实施方式中,该系统可以将神经网络输出的指定部分用作擦除向量。在一些其他实施方式中,该系统将一个或多个变换应用于该部分以便生成擦除向量。例如,该系统可以使用被配置为接收该部分并且生成擦除向量的、例如多层感知器(MLP)神经网络的神经网络,处理该部分。

该系统使用擦除权重和擦除门向量,从外部存储器进行擦除(步骤806)。具体地,对存储在位于外部存储器中的位置i处的向量的向量元素j的值M(i,,j,t),该系统生成满足下述公式的擦除值

其中,we(i,h,t+1)是对于位置i的擦除权重以及ge(j,h,t+1)是擦除向量。

在该系统对给定系统输入例如如上所述并行地执行多次擦除操作的实施方式中,通过以用于擦除权重和擦除门向量的可选不同值来执行技术800,能够独立地执行每个擦除操作。例如,通过使用具有可能不同参数值的不同神经网络来生成擦除门向量,能够执行每个擦除操作。由此,并行执行的多个擦除操作的累积效果是倍增的。

图9是根据写入权重写入外部存储器的示例过程900的流程图。为了方便,过程900将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的增强的神经网络系统——例如图1的增强的神经网络系统100,能够执行过程900。

该系统生成写入权重(步骤902)。如上参考图4-6所述,该系统能够根据写入输出部分的指定子部分,生成写入权重。如上所述,在一些实施方式中,写入权重与擦除权重相同。

该系统根据写输入部分的不同指定部分生成写入向量(步骤904)。在一些实施方式中,该系统可以将不同指定子部分用作写入向量。在一些其他实施方式中,该系统将一个或多个变换应用于不同的指定子部分以便生成写入向量。例如,该系统可以使用被配置为接收该子部分并且生成写入向量的、例如MLP神经网络的神经网络,处理不同指定的子部分。

该系统使用写入权重,将写入向量写入到外部存储器(步骤906)。具体地,对存储在外部存储器的位置i处的向量的向量元素j的值M(i,,j,t),该系统生成满足下述公式的值M(i,j,t+1):

其中,ww(i,h,t+1)是对于位置i的写入权重,以及v(j,h,t+1)是写入向量的元素h处的值。在擦除操作后执行写入操作的实施方式中,并非修改值M(i,,j,t),而是该系统能够通过修改由上述擦除操作生成的值来生成值M(i,j,t+1)。

在该系统对给定系统输入例如如上所述并行地执行多次写入操作的实施方式中,通过以用于写入权重和写入向量的可选不同值来执行技术900,能够独立地执行每个写入操作。例如,通过使用具有可能不同的参数值的不同神经网络来生成写入向量,能够执行每个写入操作。由此,并行执行多次写入操作的累积效果是累加的。

图10是根据读取权重从外部存储器进行读取的示例过程1000的流程图。为了方便,过程1000将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的增强的神经网络系统——例如图1的增强的神经网络系统100,能够执行过程1000。

该系统生成读取权重(步骤1002)。该系统能够如上参考图5-7所述,根据读取输出部分生成读取权重。

该系统根据读取权重,从外部存储器中的位置进行读取(步骤1004)。具体地,该系统通过结合在外部存储器的每个位置处存储的值,生成读取数据向量。即,对读取数据向量的给定元素,该系统计算在那一元素处,外部存储器中存储的每个值的加权平均,每个值的权重是对于相应位置的读取权重。例如,元素j处的读取向量的值v(j,h,t+1)可以满足:

其中,wr(i,h,t+1)是对于位置i的读取权重,以及M(i,j,t+1)是存储器的位置i处存储的向量的元素j的值。

在该系统例对给定系统输入例如如上所述并行地执行多次读取操作的实施方式中,通过以用于读取权重的可选不同值来执行技术1000,能够独立地执行每个读取操作。在这些实施方式中,该系统能够例如通过连结向量,结合由每个读取操作生成的读取数据向量,以形成被提供为对神经网络的神经网络输入的一部分的最终读取数据向量。

取决于实施方式,该系统能够基于从神经网络接收到的输出,保持在外部存储器中存储的数据的各种永久度。例如,在一些实施方式中,在系统已经完全处理每个系统输入序列后,该系统重置外部存储器。如另一示例,在一些实施方式中,在外部存储器中存储的数据持续存在于输入序列之间。即,该系统不会从外部存储器中删除在系统输入序列之间的任何数据。在这些实施方式中,在完成分配给该系统的任务后以及在该系统开始不同的机器学习任务前,该系统可以重置外部存储器。替选地,该系统可以保持外部存储器,而不是在任务之间删除值。由此,当处理当前输入序列时,该系统可以能够利用当处理在前输入序列时或甚至当执行在前机器学习任务时,在存储器中存储的数据。

能够在数字电子电路中,或者在有形地体现的计算机软件、固件中,或者在包括在本说明书中公开的结构及其结构等效物的计算机硬件中,或者在它们中的一项或者多项的组合中实施在本说明书中描述的主题和功能操作的实施例。能够将在本说明书中描述的主题的实施例实施为一个或者多个计算机程序,即编码在有形非易失程序载体上的、用于由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或者多个模块。备选地或者附加地,能够在人为生成的传播的信号——例如,机器生成的电、光或者电磁信号上对程序指令进行编码,该信号被生成以用于对向适当接收器设备发送、以供数据处理装置执行的信息进行编码。计算机存储介质能够是机器可读存储设备、机器可读存储衬底、随机或者串行存取存储器设备或者它们中的一项或者多项的组合。

术语“数据处理装置”是指数据处理硬件并且涵盖各种用于处理数据的装置、设备和机器,举例而言包括可编程处理器、计算机、多处理器或计算机。该设备还能够是或进一步包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。该装置除了硬件之外,可选地,也能够包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一项或者多项的组合的代码。

能够用任何形式的编程语言来编写计算机程序(也可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或者代码),包括编译或者解译语言、或说明或者过程语言,并且能够用任何形式部署计算机程序,包括部署为独立程序或者部署为适合于在计算环境中使用的模块、组件、子例程或者其他单元。计算机程序可以,但是无需对应于文件系统中的文件。程序能够被存储于持有其他程序或者数据的文件的一部分中——例如存储于标记语言文档中的一个或者多个脚本、专用于讨论的程序的单个文件中,或者多个协同文件中——例如存储一个或者多个模块、子程序或者代码部分的文件。能够将计算机程序部署为在一个计算机上被执行,或者在位于一个站点或者跨多个站点分布并且由通信网络互连的多个计算机上被执行。

在本说明书中描述的过程和逻辑流程能够由一个或者多个可编程处理器执行,该一个或者多个可编程计算机执行一个或者多个计算机程序以通过对输入数据操作并且生成输出来执行功能。该过程和逻辑流也能够由例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)的专用逻辑电路执行,以及装置还能够被实现为该专用逻辑电路。

适合于执行计算机程序的计算机例如包括能够基于通用微处理器或者专用微处理器,或者其两者,或者任何其他种类的中央处理器。通常,中央处理器将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的必要元件是用于执行指令的中央处理器单元以及用于存储指令和数据的一个或者多个存储器设备。通常,计算机还将包括用于存储数据的一个或者多个海量存储装置——例如,磁盘、磁光盘或者光盘,或者被操作地耦合以从该一个或者多个海量存储设备接收数据或者向该一个或者多个海量存储设备发送数据或者接收和发送二者。然而,计算机无需具有这样的设备。另外,计算机能够被嵌入于另一设备中,聊举数例,例如,移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏控制台、全球定位系统(GPS)接收器或者便携式存储设备,例如,通用串行总线(USB)闪存驱动。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例而言包括半导体存储器设备,例如,EPROM、EEPROM和闪速存储器设备;磁盘,例如,内部硬盘或者可去除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充或者并入于专用逻辑电路中。

为了提供与用户的交互,能够在计算机上实施在本说明书中描述的主题的实施例,该计算机具有用于向用户显示信息的例如CRT(阴极射线管)或者LCD(液晶显示器)监视器的显示设备,以及用户能够用其向计算机提供输入的例如鼠标或者轨迹球的键盘和指向设备。其他种类的设备也能够用来提供与用户的交互;例如,向用户提供的反馈能够是任何形式的感官反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且能够用包括声音、语音或者触觉输入的任何形式接收来自用户的输入。此外,计算机能够通过向用户使用的设备发送文档和从该设备接收文档来与用户交互,例如,通过在用户的客户端设备上响应于从web浏览器接收到的请求向web浏览器发送网页来与用户交互。

能够在计算系统中实施在本说明书中描述的主题的实施例,该计算系统包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如具有关系图形用户界面或者Web浏览器的客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或者前端部件的任何组合,其中用户能够通过该客户端计算机与在本说明书中描述的主题的实现方式进行交互。能够通过任何数字数据通信形式或者介质(例如,通信网络)互连系统的组件。通信网络的示例包括局域网(LAN)和广域网(WAN),例如,因特网。

计算系统能够包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。客户端和服务器的关系借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序而产生。

尽管本说明书包含许多具体实现方式细节,但是不应将这些解释为限制任何发明的范围或可以要求保护的内容的范围,而是解释为对具体发明的具体实施例特有的特征的描述。在本说明书中在分开的实施例的场境中描述的某些特征也能够在单个实施例中以组合的方式被实施。相反地,在单个实施例的场境中描述的各种特征也能够在多个实施例中分开地或者在任何适当子组合中被实施。另外,虽然上文能够将特征描述为在某些组合中的动作并且甚至起初这样被要求保护,但是来自要求保护的组合的一个或者多个特征能够在一些情况下从该组合中被删除,并且要求保护的组合能够涉及子组合或者子组合的变型。

类似地,尽管在附图中以特定顺序描绘操作,但是这不应被理解为要求以所示特定顺序或者以依次的顺序执行这样的操作,或者执行所有所示操作以实现希望的结果。在某些境况中,多任务和并行处理会是有利的。另外,在上文描述的实施例中的各种系统模块和部件的分离不应被理解为在所有实施例中要求这样的分离,并且应当理解描述的程序组件和系统通常能够一起集成于单个软件产品中或者被封装到多个软件产品中。

描述了主题的具体实施例。其他实现方式在所附权利要求的范围内。例如,在权利要求中记载的动作能够按不同顺序被执行而仍然实现希望的结果。作为一个示例,在附图中描绘的过程未必需要所示特定顺序或者依次的顺序以实现希望的结果。在某些实施方式中,多任务和并行处理会是有利的。

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