记忆增强的生成时间模型

阅读:602发布:2020-05-14

专利汇可以提供记忆增强的生成时间模型专利检索,专利查询,专利分析的服务。并且方法、系统和装置,包括在计算机存储介质上编码的 计算机程序 ,用于生成例如图像的预测的观察的序列。在一个方面,一种系统,包括 控制器 循环神经网络和 解码器 神经网络,以处理潜变量集合以生成观察。外部 存储器 和存储器 接口 子系统被配置为,对于多个时间步中的每一个,从控制器接收更新的隐藏状态,通过使用更新的隐藏状态从外部存储器读取数据来生成存储器上下文向量,从存储器上下文向量确定潜变量集合,通过向解码器神经网络提供潜变量集合生成预测的观察,使用潜变量、更新的隐藏状态或两者将数据写入外部存储器,并且从潜变量生成后续时间步的控制器输入。,下面是记忆增强的生成时间模型专利的具体信息内容。

1.一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机实现:
控制器循环神经网络,其中控制器循环神经网络被配置为,对于多个时间步中的每一个:
接收所述时间步的控制器神经网络输入;以及
根据当前隐藏状态处理所述时间步的控制器神经网络输入,以生成所述时间步的更新的隐藏状态;
解码器神经网络,其中解码器神经网络被配置为:
接收解码器神经网络输入,所述解码器神经网络输入包括共同定义表征环境的观察的压缩表示的潜变量集合;以及
处理包括所述潜变量集合的解码器神经网络输入,以生成表征环境的观察;
外部存储器;以及
存储器接口子系统,被配置为对于每个时间步执行包括以下的操作:
接收所述时间步的更新的隐藏状态;
通过使用更新的隐藏状态从外部存储器读取数据来生成存储器上下文向量;
从至少所述存储器上下文向量确定所述时间步的潜变量集合;
通过将潜变量集合作为输入提供给解码器神经网络,生成所述时间步的预测的观察;
使用潜变量、更新的隐藏状态或两者将数据写入外部存储器;以及
从所述时间步的潜变量生成后续时间步的控制器神经网络输入。
2.如权利要求1所述的系统,其中将数据写入外部存储器包括:
将所述时间步的潜变量写入外部存储器。
3.如权利要求2所述的系统,其中将数据写入外部存储器包括:
将潜变量写入外部存储器中的指定位置
4.如权利要求1、2或3所述的系统,其中将数据写入外部存储器包括:
生成写入权重集合,其中写入权重集合包括外部存储器中的多个位置中的每一个的相应写入权重;以及
根据写入权重将由更新的隐藏状态定义的数据写入外部存储器中的位置。
5.如权利要求1-4中的任一项所述的系统,其中,通过使用所述更新的隐藏状态从所述外部存储器读取数据来生成存储器上下文向量包括对于一个或多个读取头中的每一个:
从所述更新的隐藏状态针对读取头生成读取权重集合,其中所述读取权重集合包括外部存储器中的多个位置中的每一个的相应读取权重;以及
根据读取权重从外部存储器中的所述多个位置读取数据。
6.如权利要求5所述的系统,其中所述读取权重是基于位置的寻址权重。
7.如权利要求5所述的系统,其中所述读取权重是基于内容的寻址权重。
8.如权利要求5所述的系统,其中所述读取权重是基于位置的寻址权重和基于内容的寻址权重的组合。
9.如权利要求1-8中的任一项所述的系统,其中确定所述时间步的潜变量集合包括:
对于潜变量中的每一个,使用先验映射将包括潜变量集合的先验映射输入映射到所述潜变量的可能潜变量值上的先验分布的参数;以及
根据分布参数从潜变量的先验分布中对潜变量进行采样
10.如权利要求9所述的系统,其中所述先验映射输入是所述潜变量集合和所述更新的隐藏状态的组合。
11.如权利要求10所述的系统,其中所述先验映射是被配置为将所述先验映射输入映射到所述分布参数的一个或多个线性神经网络层。
12.如权利要求1-8中的任一项所述的系统,其中确定所述时间步的潜变量集合包括:
接收所述时间步的实际观察;以及
使用后验映射神经网络处理存储器上下文向量和实际观察,以对于潜变量中的每一个生成所述潜变量的可能潜变量值上的后验分布的参数;以及
根据分布参数从潜变量的后验分布中对潜变量进行采样。
13.如权利要求1-12中的任一项所述的系统,其中,从所述时间步的潜变量生成后续时间步的控制器神经网络输入包括:
提供所述时间步的潜变量作为下一时间步的控制器神经网络输入。
14.如权利要求1-12中的任一项所述的系统,其中,从所述时间步的潜变量生成后续时间步的控制器神经网络输入包括:
将所述时间步的潜变量和外部上下文向量进行组合以生成下一时间步的控制器神经网络输入。
15.如权利要求1-12中的任一项所述的系统,其中,从所述时间步的潜变量生成后续时间步的控制器神经网络输入包括:
将所述时间步的潜变量和来自外部存储器的数据进行组合以生成下一时间步的控制器神经网络输入。
16.如权利要求1-12中的任一项所述的系统,其中,从所述时间步的潜变量生成后续时间步的控制器神经网络输入包括:
将所述时间步的潜变量、从外部存储器读取的数据和外部上下文向量进行组合以生成下一时间步的控制器神经网络输入。
17.如权利要求1-16中的任一项所述的系统,其中所述时间步的控制器神经网络输入包括之前时间步的潜变量和所述时间步的外部上下文向量。
18.如权利要求17所述的系统,其中所述外部上下文向量表示影响由所述系统生成的观察的特性的一个或多个外部变量。
19.一种方法,包括由权利要求1-18中的任一项所述的子系统执行的操作。
20.一个或多个存储指令的计算机存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机实现权利要求1-18中的任一项所述的系统。
21.一个或多个存储指令的计算机存储介质,所述指令在由一个或多个计算机执行时,使所述一个或多个计算机执行由权利要求1-18中的任一项所述的子系统执行的操作。

说明书全文

记忆增强的生成时间模型

技术领域

[0001] 本说明书涉及生成数据项的神经网络系统。

背景技术

[0002] 神经网络是机器学习模型,它采用一层或多层非线性单元来预测接收的输入的输出。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层(即下一个隐藏层或输出层)的输入。网络的每个层根据相应参数集合的当前值从接收到的输入生成输出。
[0003] 一些神经网络是循环神经网络。循环神经网络是接收输入序列并从输入序列生成输出序列的神经网络。具体地,循环神经网络可以使用来自先前时间步的网络的一些或全部内部状态来计算当前时间步的输出。循环神经网络的示例是包括一个或多个LSTM存储器的长短期(long short term,LSTM)神经网络。每个LSTM存储器块可以包括一个或多个单元,每个单元包括输入、忘记门(forget gate)和输出门,其允许单元存储单元的先前状态,例如,用于生成当前激活或被提供到LSTM神经网络的其他组件。发明内容
[0004] 本说明书描述了被实现为在一个或多个位置中的一个或多个计算机上是计算机程序的系统,其生成预测的观察的序列。
[0005] 这种类型的系统是许多机器学习和控制系统的核心组件。例如,预测的观察可以用在真实或模拟环境中的控制任务中,以预测环境中的计划的动作的结果。可以从源自一个或多个传感器的观察中学习预测;预测的观察可以包括仿佛在以后的时间从传感器生成的数据。更一般地,观察和预测的观察可以包括诸如音频数据、静止或运动图像数据、定义对象的状态或运动的数据、诸如生物标记数据的医学数据、与物理和/或化学过程有关的时空数据等的数据。
[0006] 因此,根据第一方面,提供了一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机实现控制器循环神经网络和解码器神经网络。所述控制器循环神经网络被配置为,对于多个时间步中的每一个:接收该时间步的控制器神经网络输入;以及根据当前隐藏状态处理该时间步的控制器神经网络输入,以生成该时间步的更新的隐藏状态。所述解码器神经网络被配置为:接收解码器神经网络输入,所述解码器神经网络输入包括共同定义表征环境的观察的压缩表示的潜变量(latent variable)集合;以及处理包括该潜变量集合的解码器神经网络输入,以生成表征环境的观察。
[0007] 所述系统还包括外部存储器和存储器接口子系统,该存储器接口子系统被配置为对于每个时间步执行包括以下的操作:接收该时间步的更新的隐藏状态;以及通过使用更新的隐藏状态从外部存储器读取数据来生成存储器上下文向量。所述操作还可以包括:例如,通过使用先验映射从存储器上下文向量映射到潜变量集合,从至少存储器上下文向量确定该时间步的潜变量集合。所述操作还可包括:通过将潜变量集合作为输入提供给解码器神经网络,生成该时间步的预测的观察。所述操作还可包括:使用(例如直接或间接由其确定)潜变量、更新的隐藏状态或两者将数据写入外部存储器。所述操作还可包括:从该时间步的潜变量生成后续时间步的控制器神经网络输入。
[0008] 如下面更详细描述的,这样的系统可以展现在观察中对于稀疏长期时间依赖性的高效调用。
[0009] 将数据写入外部存储器可包括:将该时间步的潜变量或潜变量的变换版本写入外部存储器。在一些实现方式中,这可以包括:将潜变量(或变换的潜变量)写入外部存储器中的指定位置,例如缓冲器中的下一位置。在一些实现方式中,例如,在采用基于内容的寻址的实现方式中,数据可以写到任何位置(并且从任何位置读取)。
[0010] 因此,在基于内容的寻址方式中,将数据写入外部存储器可以包括:生成写入权重集合,其中写入权重集合包括外部存储器中的多个位置中的每一个的相应写入权重;以及根据写入权重将由更新的隐藏状态定义的数据写入外部存储器中的位置。
[0011] 存储器上下文向量可以是从存储器中存储的数据得到的向量,所述存储器提供用于生成预测的观察的上下文。存储器上下文向量可以包括从外部存储器读取的数据,更具体地,从外部存储器读取的数据的加权和。因此,生成存储器上下文向量可以包括对于一个或多个读取头中的每一个:从更新的隐藏状态针对读取头生成读取权重集合,其中该读取权重集合包括外部存储器中的多个位置中的每一个的相应读取权重;以及根据读取权重从外部存储器中的所述多个位置读取数据。这里,“读取头”用于指读取权重的集合。在使用多个读取头的情况下,来自这些读取头的数据可以组合,例如,可以拼接以生成存储器上下文向量。
[0012] 所述读取权重可以是基于位置的寻址权重,用于基于位置(例如,地址位置计数)寻址外部存储器中的数据;或者,所述读取权重可以是基于内容的寻址权重,例如用于基于其内容与诸如一个或多个键的目标内容的相似度来寻址存储器位置。在一些实现方式中,可以通过基于位置的寻址权重和基于内容的寻址权重的组合来确定读取权重。类似地,将数据写入外部存储器可以包括基于位置的寻址和基于内容的寻址的组合、将潜变量(或潜变量的变换版本)的直接写入与如前所述的基于内容的寻址相组合。
[0013] 确定该时间步的潜变量集合可包括:对于潜变量中的每一个,使用先验映射(例如,先验生成神经网络)将包括潜变量集合的先验映射输入映射到对潜变量的可能潜变量值上的先验分布的参数。然后可以从先验分布中对潜变量进行采样。所述先验映射输入可以是控制器网络的更新的隐藏状态和潜变量集合的组合。所述先验生成神经网络可以包括用于将所述先验映射输入映射到所述分布参数的一个或多个线性神经网络层。
[0014] 在训练期间,确定该时间步的潜变量集合可以包括:接收该时间步的实际观察;以及使用后验映射神经网络处理存储器上下文向量和实际观察,以对于潜变量中的每一个生成潜变量的可能潜变量值上的后验分布的参数;以及根据分布参数从潜变量的后验分布中对潜变量进行采样。
[0015] 从该时间步的潜变量生成后续时间步的控制器神经网络输入可以包括:提供该时间步的潜变量作为下一时间步的控制器神经网络输入。可选地,该时间步的潜变量可以与外部上下文向量和/或从外部存储器读取的数据组合,以生成下一时间步的控制器神经网络输入。换句话说,该时间步的控制器神经网络输入可包括先前时间步的潜变量和该时间步的外部上下文向量。所述外部上下文向量可表示影响由所述系统生成的观察的特性的一个或多个外部变量。例如,外部上下文向量可以包括定义该环境中的代理的(计划的)位置和/或状态的数据;和/或定义该环境中的传感器的位置和/或状态的数据;和/或定义以后的时间和/或空间位置的数据。
[0016] 可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。
[0017] 本说明书中描述的生成系统使用外部存储器来存储信息以供将来在许多时间步中使用。通过使用外部存储器,本说明书中描述的生成系统将存储器存储与计算分开。相比而言,一些传统的生成系统使用例如长短期存储器(LSTM)网络的内部状态,用于存储器存储和计算两者。在这样的传统系统中,系统的参数复杂度(例如,有效执行系统的功能所需的参数的数量)可以与系统的存储器容量(例如,系统可以存储用于以后使用的信息量)成二次方地增长。例如,将存储器容量加倍可以导致模型参数数量增加4倍。由于本说明书中描述的生成系统将存储器存储与计算分开,因此增加其存储器容量导致系统的参数复杂度的对应恒定或线性增加(例如,将存储器容量加倍可导致模型参数的数量成比例地加倍)。因此,本说明书中描述的生成系统可以比传统的生成系统消耗更少的计算资源(例如,存储器资源和计算能)。此外,在将例如LSTM的内部状态既用于存储器存储又用于计算的传统系统中,传统系统需要使用LSTM的内部状态,以(i)以稳定的方式保存信息,以用于后来检索;和(ii)提取信息以供立即使用。使用LSTM的内部状态同时用于两种竞争目的会降低传统系统的性能(例如,通过使传统系统生成不太准确的预测的观察的序列)。由于本说明书中描述的生成系统将存储器存储与计算分开,因此它避免了这些性能降级效应,因此可以实现比一些传统系统更好的性能(例如,更准确的预测的观察的序列)。
[0018] 本说明书中描述的生成系统可以自适应地更新其外部存储器以丢弃不太有用的信息,并且存储捕获在许多时间步上的长程依赖性的有用信息。相反,一些传统模型基于以后的观察依赖于固定的预定数量的过去观察的假设生成观察序列。通过使用可以自适应地存储来自任何先前时间步的相关信息的外部存储器,本说明书中描述的生成系统可以生成预测的观察的序列,其比一些传统模型更好地捕获在许多时间步上的长程依赖性,并且因此实现更好的性能。
[0019] 在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,本主题的其他特征、方面和优点将变得明显。

附图说明

[0020] 图1示出了示例生成系统。
[0021] 图2是用于使用生成系统生成预测的观察的输出序列的示例过程的流程图
[0022] 图3是用于生成存储器上下文向量的示例过程的流程图。
[0023] 各个附图中相同的附图标记和名称指示相同的元件。

具体实施方式

[0024] 图1示出了示例生成系统100。生成系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中实现下面描述的系统、组件和技术。
[0025] 生成系统100在多个时间步中的每一个处生成环境128的预测的观察120。预测的观察120是表征环境128的预测的以后状态的数值的有序集合。
[0026] 如下面将更详细描述的,系统100通过生成潜变量116的序列(其是各个预测的观察的压缩表示)来生成预测观察序列120。系统通过处理从存储器110读取的数据随机地为每个时间步生成潜变量116。存储器110包括表征在先前时间步的环境的预测的观察的信息。系统还通过将数据写入存储器110来在每个时间步自适应地更新存储器110。系统100通过控制器循环神经网络106自适应地调停到存储器110的写入和从存储器110的读取。
[0027] 在一些实现方式中,环境128是由代理124执行动作126而与之交互的环境。例如,环境128可以是模拟环境,并且代理124可以实现为与模拟环境交互的一个或多个计算机程序。例如,模拟环境可以是视频游戏,并且代理124可以是玩视频游戏的模拟用户。作为另一示例,模拟环境可以是运动模拟环境,例如驾驶模拟或飞行模拟,并且代理124是通过运动模拟来导航的模拟车辆。在这些实现方式中,动作126可以是可能的控制输入的空间中的点,以控制模拟用户或模拟车辆。
[0028] 作为另一示例,环境128是现实世界环境,并且代理124是与现实世界环境交互的机械代理。例如,代理124可以是与环境交互以完成特定任务的机器人。作为另一示例,代理124可以是在环境中导航的自动或半自动车辆。
[0029] 在这些情况的一些情况下,预测的观察120使用表征环境128的状态的低维特征向量来表征环境128的预测的状态。在这些情况下,低维特征向量的不同维度的值可以有不同的范围。
[0030] 在这些情况的一些其他情况下,预测的观察120使用表征环境的状态的一个或多个图像的高维像素表示来表征环境128的预测的状态,例如,模拟环境的预测的图像或当机械代理的传感器与现实世界环境交互时由其捕获的预测的图像。
[0031] 因此,在一些实现方式中,系统可以在观察序列上被训练,然后可以预测新的观察,可选地以诸如代理位置、相机度等的外部上下文数据为条件。
[0032] 在一些其他实现方式中,环境128是用户特定的环境。例如,环境128可以是例如用于计算机辅助诊断的患者健康环境,并且预测的观察120可以是表征患者健康的预测的电子医疗数据。作为另一示例,环境128可以是推荐环境,并且预测的观察120可以是表征用户的预测的偏好和兴趣的特征向量。
[0033] 在一些其他实现方式中,环境128是艺术环境。例如,环境128可以是音乐环境,并且预测的观察120可以是一个或多个音符的序列。作为另一示例,环境128可以是视觉艺术环境,诸如绘画画布的表示,并且预测的观察120可以是例如画笔笔画(用特定颜色和画笔)。
[0034] 在一些情况下,系统100可用于异常检测。例如,系统100可以用于生成环境128的预测的观察的不同序列的数据库。如果与数据库中预测的观察的序列充分不同(根据一些适当的度量),则可以将环境的先前未见过的观察序列表征为异常。
[0035] 系统100包括存储器110。存储器110是逻辑数据存储区域或物理数据存储设备。存储在存储器110中的数据是可以表示为矩阵的数值的有序集合。如下面将更详细描述的,在多个时间步中的每一个处,系统100从存储器110读取(即,提取)数据并更新存储器110。通常,系统100使用存储器110来存储信息,用于在多个时间步使用。
[0036] 系统100包括关注神经网络130,其被配置为在每个时间步根据关注网络参数集合的当前值来处理针对该时间步的关注网络输入,以生成读取权重的一个或多个不同的集合作为输出。每个读取权重集合是数值的有序集合(例如,向量),在本说明书中称为读取头。每个读取头包括用于存储器110中的数据中的多个位置中的每一个的相应读取权重。例如,如果存储器110中的数据被表示为矩阵,则每个读取头可以包括用于存储器110中的多行数据中的每一个的相应读取权重。
[0037] 系统100处理每个读取头以使读取头具有单位范数(例如,相对于欧几里德范数)和非负值。在一些情况下,系统100通过用softmax函数处理每个读取头的值使得每个读取头具有非负值。
[0038] 关注神经网络130可以实现为任何适当的神经网络模型,例如,作为多层感知器或卷积神经网络
[0039] 在一些实现方式中,每个读取头的读取权重是基于位置的寻址权重,例如以基于存储器中的数据的位置来访问数据。在这些实现方式中,每个时间步的关注网络输入是对于该时间步的控制器循环神经网络106的更新的隐藏状态(将在下面更详细地描述),其由关注网络130处理以生成一个或多个读取头作为输出。在这些实现方式中,关注网络130在生成读取头时不直接处理存储器110中的数据。
[0040] 在一些实现方式中,每个读取头的读取权重是基于内容的寻址权重。在这些实现方式中,每个时间步的关注网络输入是该时间步的控制器网络106的更新的隐藏状态和该时间步的存储器110中的数据,其由关注网络130处理以生成一个或多个读取头作为输出。在这些实现方式中,关注网络130通过将来自存储器110中的数据的多个位置的数据的相似性与生成的提示进行比较来确定每个读取头(如将参考图3的描述进一步详细描述的)。
[0041] 在一些实现方式中,每个读取头的读取权重是基于位置的寻址权重和基于内容的寻址权重的组合。在美国专利申请No.14/885,086中描述了将基于位置的寻址权重和基于内容的寻址权重的变化进行组合的系统的示例。一些预测任务相比于基于位置的调用更适合基于内容的调用,反之亦然,并且使用基于位置和基于内容的寻址可以是有利的。
[0042] 系统100使用由关注网络130生成的读取头来从存储器110读取数据并生成该时间步的存储器上下文向量112。具体地,对于每个读取头,系统100生成不同的检索的存储器向量(其是数值的有序集合)并组合所检索的存储器向量以生成用于该时间步的存储器上下文向量112。存储器上下文向量112是数值的有序集合。参考图3描述用于生成存储器上下文向量的示例过程。
[0043] 系统100提供存储器上下文向量112作为先验(prior)生成网络114的输入。在一些实现方式中,系统100还提供先前时间步的潜变量116和/或该时间步的控制器网络106的更新隐藏状态(后面将描述两者)作为先验生成网络114的输入。先验生成网络114是神经网络,其被配置为根据先验生成网络参数集合的当前值来处理输入,以生成概率分布的参数(在本说明书中称为先验分布)作为输出。先验分布的参数定义了在本说明书中称为潜状态空间(latent state space)的多维欧几里德空间上的概率分布。例如,先验分布的参数可以是潜状态空间上的多维正态分布的平均向量和协方差矩阵的参数。先验生成网络114可以实现为任何适当的神经网络模型,例如卷积神经网络或多层感知器
[0044] 系统通过从由先验生成网络114对该时间步生成的先验分布中抽取随机样本来确定该时间步的潜变量116。通常,该时间步的潜变量是该时间步的预测的观察120的压缩表示,即潜状态空间中预测的观察120的表示。对于第一时间步,系统100可以通过从潜状态空间上的预定概率分布(例如,具有由单位矩阵给出的协方差矩阵和零均值的高斯分布)抽取随机样本来确定该时间步的潜变量116。
[0045] 系统提供该时间步的潜变量116作为解码器神经网络118的输入,解码器神经网络118被配置为根据解码器神经网络参数集合的当前值处理潜变量116以生成概率分布的参数作为输出(在本说明书中称为观察分布)。在一些实现方式中,解码器神经网络118还接收该时间步的控制器循环神经网络106的更新的隐藏状态(将在下面更详细地描述)以作为输入。观察分布的参数定义了在本说明书中被称为观察空间的多维欧几里得空间上的概率分布。例如对于图像的像素,例如,观察分布的参数可以是观察空间上的多维正态分布的均值向量和协方差矩阵的参数。解码器神经网络118可以实现为任何适当的神经网络模型,例如,实现为解卷积神经网络。
[0046] 系统通过从解码器神经网络118对该时间步生成的观察分布中抽取随机样本来确定该时间步的预测的观察120。例如,如果环境的预测的观察120是环境的预测的图像,则观察空间将是表示环境的所有可能图像的欧几里德空间,并且从观察分布中抽取随机样本与从观察分布中采样图像对应。
[0047] 系统100包括控制器循环神经网络106,其被配置为在多个时间步中的每一个处接收该时间步的控制器网络输入,并且根据控制器网络106的当前隐藏状态处理该时间步的控制器网络输入,以生成该时间步的控制器网络106的更新的隐藏状态。例如,关注神经网络130使用控制器网络106的更新的隐藏状态来确定该时间步从存储器110读取哪个数据。控制器网络106的隐藏状态是数值的有序集合(例如,向量或矩阵)。控制器网络106可以实现为任何适当的循环神经网络模型,例如,长短期存储器(LSTM)网络。
[0048] 在一些实现方式中,对于每个时间步,该时间步的控制器网络输入包括该时间步的潜变量116的集合。
[0049] 在一些实现方式中,对于每个时间步,该时间步的控制器网络输入包括外部上下文向量122。外部上下文向量122是数值的有序集合。通常,外部上下文向量122表示影响由系统100生成的预测的观察120的特性的一个或多个外部变量。例如,如果代理124通过执行来自预定的动作集合的动作126来与环境128交互,则该时间步的外部上下文向量122可以是代理124在该时间步要执行的被计划的动作的表示。在该示例中,外部上下文向量122可以是在该时间步的被计划的动作的单热向量表示(即,具有与预定动作集合的每个动作对应的条目的向量,其中与被计划的动作对应的条目具有值1,并且其余条目具有值零)。作为另一示例,如果环境128是音乐环境(即,在每个时间步以一个或多个音符的序列为特征的环境)并且预测的观察120是预测的音符序列,其共同表示特定流派的编曲,则外部上下文向量122可以是指示音乐流派(例如,爵士乐或摇滚乐)的向量。
[0050] 在一些实现方式中,对于每个时间步,该时间步的控制器网络输入包括存储器上下文向量112。
[0051] 在一些实现方式中,对于每个时间步,该时间步的控制器网络输入包括存储器110中的数据。
[0052] 在每个时间步,系统100使用该时间步的潜变量116、控制器网络106的更新的内部状态或两者来更新存储器110中的数据。
[0053] 在一些实现方式中,系统100通过将该时间步的潜变量116写入存储器110来更新时间步存储器110中的该时间步的数据。例如,存储器110中的数据可以表示为具有固定数量的位置的数据结构(例如,具有固定行数的矩阵),并且系统可以基于先进先出将潜变量116写入存储器110。具体地,在特定时间步写入存储器110的潜变量可以覆写存储器中的位置,其包含存储器110中的所有潜变量当中最早写入存储器的潜变量。将数据写入存储器
110中的位置指的是将数据的表示插入存储器110中的位置(可能覆写该位置中的现有数据)。在一些情况下,将数据写入存储器110中的位置包括将要写入存储器110中的位置的数据与当前位于存储器110中的位置的数据组合(例如,通过添加),并将组合后的数据写入存储器110中的位置。
[0054] 在一些实现方式中,系统100通过将存储器110中的数据作为输入提供给控制器网络106(以及将其他输入提供给控制器网络106)来更新时间步存储器110中的该时间步的数据,控制器网络106生成包括写入存储器110的更新的数据的输出。
[0055] 在一些实现方式中,系统100通过生成一个或多个不同的写入权重集合来更新存储器110中的数据。每个写入权重集合是数值的有序集合(例如,向量),在本说明书中称为写入头。每个写入头包括用于存储器110中的数据中的多个位置中的每一个的相应写入权重。例如,如果存储器110中的数据被表示为矩阵,则每个写入头可以包括用于存储器110中的数据的多行中的每一个的相应写入权重。在这些实现方式中,系统根据写入权重将由控制器网络106的更新的隐藏状态定义的数据写入外部存储器中的数据中的位置。
[0056] 在美国专利申请No.14/885,086、美国专利申请No.15/396,289、以及美国专利申请No.15/374,974中描述了通过生成读取和写入权重来从存储器读取数据和向存储器写入数据的系统的示例。
[0057] 系统100包括训练引擎102,训练引擎102被配置为训练系统100以生成预测的观察120的序列,其与训练数据104的集合中的环境128的实际观察的序列共享相似的属性。训练引擎102通过使用任何标准训练技术(例如,随机梯度下降)迭代地调整系统100的可学习参数(包括控制器网络106、解码器网络118、先验生成网络114、关注网络130和后验生成网络
132的参数)来训练系统100。
[0058] 后验生成网络132被配置为在多个时间步中的每一个处接收该时间步的存储器上下文向量112和该时间步的环境128的实际观察(来自训练数据104的实际观察的序列)作为输入。在一些实现方式中,后验生成网络132被配置为进一步接收针对先前时间步确定的潜变量116和/或控制器网络106的更新的隐藏状态作为输入。后验生成网络根据后验生成网络参数的集合的当前值处理输入,以生成概率分布(在本说明书中称为后验分布)的参数作为输出。后验分布的参数定义了潜状态空间上的概率分布。例如,类似于先验分布,后验分布的参数可以是潜状态空间上的多维正态分布的平均向量和协方差矩阵的参数。
[0059] 训练引擎102使用后验生成网络132在变分推理框架(variational inference framework)中训练系统100(将参考图2更详细地描述)。后验生成网络132可以实现为任何适当的神经网络模型,例如,卷积神经网络或多层感知器。
[0060] 图2是用于生成预测的观察的输出序列的示例过程的流程图。为方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,生成系统(例如根据本说明书适当编程的图1的生成系统100)可以执行过程200。系统在多个时间步中的每一个执行过程200。
[0061] 系统更新控制器网络的隐藏状态(201)。具体地,控制器网络接收该时间步的控制器网络输入,并根据控制器网络的当前隐藏状态处理控制器网络输入,以生成用于该时间步的控制器网络的更新的隐藏状态。控制器网络输入包括以下中的一个或多个:先前时间步的潜变量、该时间步的外部上下文向量、先前时间步的存储器上下文向量、以及存储器中的该时间步的数据。控制器网络可以实现为任何适当的循环神经网络模型,例如,长短期存储器(LSTM)网络。
[0062] 系统通过生成一个或多个读取头,通过基于读取头从存储器读取数据来生成检索的存储器向量,并将检索的存储器向量组合以生成存储器上下文向量,生成该时间步的存储器上下文向量(202)。参考图3描述用于生成存储器上下文向量的示例过程。
[0063] 系统确定该时间步的潜变量集合(204):
[0064] 在训练系统之后,系统提供该时间步的存储器上下文向量作为对先验生成网络的输入。在一些实现方式中,系统还提供对于先前时间步确定的潜变量和/或该时间步的控制器网络的更新的隐藏状态作为对先验生成网络的输入。先验生成网络被配置为根据先验生成网络参数集合的当前值来处理输入,以生成在潜状态空间上的先前分布的参数作为输出。例如,先验分布的参数可以是潜状态空间上的多维正态分布的平均向量和协方差矩阵的参数。系统通过从先验生成网络对该时间步生成的先前分布中抽取随机样本来确定该时间步的潜变量集合。
[0065] 当系统被训练时,系统提供该时间步的存储器上下文向量和该时间步的实际观察(从训练数据中已知)作为后验生成网络的输入。在一些实现方式中,系统还提供对先前时间步确定的潜变量和/或该时间步的控制器网络的更新的隐藏状态,作为后验生成网络的输入。后验生成网络被配置为根据后验生成网络参数的集合处理输入,以生成潜状态空间上的后验分布的参数作为输出。例如,后验分布的参数可以是潜状态空间上的多维正态分布的平均向量和协方差矩阵的参数。系统通过从后验生成网络对该时间步生成的后验分布中抽取随机样本来确定该时间步的潜变量集合。
[0066] 先验生成网络和后验生成网络可以实现为任何适当的神经网络模型,例如,卷积神经网络或多层感知器。
[0067] 系统生成该时间步的预测的观察(208)。例如,该时间步的预测的观察可以是环境的预测的图像或表征环境的预测的状态的特征向量。系统提供该时间步的潜变量作为解码器神经网络的输入,该解码器神经网络被配置为根据解码器神经网络参数集合的当前值处理输入,以生成观察空间上的观察分布的参数作为输出。例如,观察分布的参数可以是观察空间上的多维正态分布的平均向量和协方差矩阵的参数。在一些实现方式中,解码器神经网络还接收该时间步的控制器循环神经网络的更新的隐藏状态作为输入。系统通过从解码器神经网络对该时间步生成的观察分布中抽取随机样本时间步来确定该时间步的预测的观察。如果正在训练系统,则该系统生成该时间步的观察分布的参数,但实际上并不会对该时间步的预测的观察进行采样。
[0068] 解码器神经网络可以实现为任何适当的神经网络模型,例如,作为去卷积神经网络。
[0069] 系统确定当前时间步是否是最终时间步(210)。在一些情况下,如果当前时间步是预定数量的时间步的最后时间步,则系统可以确定当前时间步是最终时间步。在一些情况下,在每个时间步,解码器神经网络(或另一神经网络)生成指示当前时间步是否是最终时间步的输出。在这些情况下,系统基于此输出确定当前时间步是否是最终时间步。
[0070] 响应于确定当前时间步不是最终时间步,系统更新存储器中的数据(212)并返回201。
[0071] 在一些实现方式中,系统通过将该时间步的潜变量写入存储器来更新该时间步存储器中的数据。例如,存储器中的数据可以表示为具有固定数量的位置的数据结构(例如,具有固定行数的矩阵),并且系统可以基于先入先出将潜变量写入存储器。具体地,在特定时间步写入存储器的潜变量可以覆写存储器中的数据中的位置,其包含存储器中的所有潜变量当中最早写入存储器的潜变量。
[0072] 在一些实现方式中,系统通过将存储器中的数据作为输入提供给控制器网络来更新时间步存储器中的该时间步的数据,控制器网络接收存储器中的数据以及其他控制器神经网络输入(如在201中描述的),并且除了更新隐藏状态(如201中所述)之外,控制器网络还生成包括写入存储器的更新的数据的输出。
[0073] 在一些实现方式中,系统通过生成一个或多个不同的写入权重集合来更新存储器中的数据。每个写入权重集合是数值的有序集合(例如,向量),在本说明书中称为写入头。每个写入头包括用于存储器中的数据中的多个位置中的每一个的相应写入权重。例如,如果存储器中的数据被表示为矩阵,则每个写入头可以包括用于存储器中的多行数据中的每一行的相应写入权重。在这些实现方式中,系统根据写入权重将由控制器网络的更新的隐藏状态定义的数据写入存储器中的数据中的位置。
[0074] 如果正在训练系统,则响应于确定当前时间步是最终时间步,训练引擎通过反向传播目标函数的梯度来训练系统(216)。具体地,训练引擎训练系统以生成预测的观察的序列,其与该训练数据集合中的环境的实际观察的序列共享相似的属性。训练引擎通过使用任何标准训练技术(例如,随机梯度下降)迭代地调整系统的可学习参数(包括控制器网络、解码器网络、先验生成网络、关注网络和后验生成网络的参数)来训练系统。
[0075] 训练引擎反向传播梯度以使目标函数最大化。在一些情况下,目标函数由下式给出:
[0076]
[0077]
[0078] 其中qφ(z<t|x<t)=Πqφ(zτ|z<τ,x≤τ),
[0079] 并且,其中φ指后验生成网络的参数,θ指系统100的其他可学习参数(例如,控制器网络的参数),T是时间步的数量, 指概率期望,qφ(zt|z<t,x≤t)指后验生成网络132在时间步t生成的潜变量zt的后验分布,pθ(xt|z≤t,x<t)指根据解码器神经网络对于时间步t生成的观察分布的实际观察xt的概率,并且KL指Kullback-Leibler发散度量(Kullback-Leibler divergence measure)(即,概率分布之间距离的度量)。通过调整系统的参数以使该目标函数最大化,由系统的先验生成网络生成的先验分布变得更类似于由后验生成网络生成的后验分布,并且解码器网络生成观察分布(通过处理从后验分布中提取的潜变量),其将概率集中在类似于训练数据的实际观察的观察上。
[0080] 如果系统未被训练(即,因为它先前已被训练),则响应于确定当前时间步是最终时间步,系统输出多个时间步的预测观察序列(214)。
[0081] 图3是用于生成存储器上下文向量的示例过程的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,生成系统(例如根据本说明书适当编程的图1的生成系统100)可以执行过程300。
[0082] 系统生成读取头集合(302)。
[0083] 该系统向关注网络提供关注网络输入,该关注网络被配置为根据关注网络参数集合的当前值处理关注网络输入,以生成一个或多个不同的读取头作为输出(即,读取权重集合)。每个读取头包括用于存储器中的数据中的多个位置中的每个位置中的数据的相应读取权重。例如,如果存储器中的数据被表示为矩阵,则每个读取头可以包括存储器中的多行数据中的每一行的相应读取权重。系统处理每个读取头以使读取头具有单位范数(例如,相对于欧几里德范数)和非负值。
[0084] 在一些实现方式中,每个读取头的读取权重是基于位置的寻址权重。在这些实现方式中,该时间步的关注网络输入是该时间步的控制器循环神经网络的更新的隐藏状态,其由关注网络处理以生成一个或多个读取头作为输出。在这些实现方式中,关注网络在生成读取权重时不直接处理存储器中的数据。
[0085] 在一些实现方式中,每个读取头的读取权重是基于内容的寻址权重。在这些实现方式中,该时间步的关注网络输入是该时间步的控制器网络的更新的隐藏状态和存储器中的该时间步的数据,其由关注网络处理以生成一个或者多个读取头作为输出。具体地,关注网络处理输入以生成包括一个或多个键的中间输出。每个键是数值的有序集合(例如,向量)。关注网络通过将键与存储器中的多个位置中的数据进行比较来处理每个键,以生成相应的读取头作为输出。例如,对于给定的键,关注网络可以通过将读取头的每个读取权重确定为键与存储器中的数据的相应行(即,在存储器中的数据表示为矩阵的情况下)之间的余弦相似性度量来生成对应的读取头。
[0086] 在一些实现方式中,每个读取头的读取权重是基于位置的寻址权重和基于内容的寻址权重的组合。
[0087] 关注神经网络可以实现为任何适当的神经网络模型,例如,多层感知器或卷积神经网络。
[0088] 该系统使用由关注网络生成的读取头来从存储器读取数据(304)。具体地,对于每个读取头,系统生成不同的检索的存储器向量。每个检索的存储器向量是数值的有序集合。例如,系统可以根据以下关系生成检索的存储器向量:
[0089] φr=wr·M,r∈{1,…,R}
[0090] 其中R是读取头的数量,φr是第r个检索的存储器向量,wr是第r个读取头(表示为行向量),·指向量-矩阵乘法运算,并且M指在存储器中的该时间步的数据。
[0091] 在一些实现方式中,系统根据以下关系,基于该时间步的校正偏差来修改该时间步每个检索的存储器向量的重要性:
[0092] φr←φr⊙σ(gr),
[0093] 其中φr是第r个检索的存储器向量,σ是sigmoid函数,gr是该时间步的第r个检索的存储器向量的标量值校正偏差,←指分配操作,并且⊙指逐元素标量乘法操作。该时间步的校正偏差可以由校正偏差神经网络产生,该校正偏差神经网络被配置为接收该时间步的控制器网络的更新的内部状态,并且根据校正偏差神经网络参数集合的当前值处理控制器网络的更新状态。
[0094] 系统生成该时间步的存储器上下文向量(306)。在一些情况下,系统通过拼接该时间步的检索的存储器向量来生成该时间步的存储器上下文向量。在一些情况下,系统通过拼接该时间步的检索的存储器向量和控制器网络的更新的内部状态来生成该时间步的存储器上下文向量。
[0095] 本说明书使用与系统和计算机程序组件有关的术语“被配置”。对于将被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已在其上安装了软件固件硬件或它们的组合,其在操作中使系统执行操作或动作。对于将被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
[0096] 本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件中实现,包括本说明书中公开的结构及其结构等同物,或者以它们中的一个或多个的组合体现。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即,在有形的非暂时性存储介质上编码的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。可替代地或另外地,程序指令可以在例如机器生成的电、光或电磁信号的人工生成的传播信号上编码,其被生成以编码信息,用于传输到合适的接收器设备以由数据处理装置执行。
[0097] 术语“数据处理装置”指数据处理硬件并且包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置还可以是或者进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统操作系统、或者它们的一个或多个的组合的代码。
[0098] 也可以被称为或描述为程序、软件、软件应用、应用程序、模块、软件模块、脚本或代码的计算机程序,可以用任何形式的编程语言编写,包括编译或解释语言、或声明或过程性语言;并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适用于在计算环境中使用的其他单元。程序可以但不必与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本,专用于所讨论的程序的单个文件中,或者存储在多个协调文件中,所述协调文件例如存储一个或多个模块、子程序或代码部分的文件。可以部署计算机程序以在一个计算机上或在位于一个站点上或跨多个站点分布并通过数据通信网络互连的多个计算机上执行。
[0099] 在本说明书中,术语“引擎”广泛用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为在一个或多个位置中的一个或多个计算机上安装的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定的引擎;在其他情况下,可以在同一个或多个计算机上安装和运行多个引擎。
[0100] 本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如FPGA或ASIC)或专用逻辑电路和一个或多个编程计算机的组合来执行。
[0101] 适合于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合用于存储数据的一个或多个大容量存储设备接收数据以从该一个或多个大容量存储设备接收数据或将数据传输到该一个或多个大容量存储设备或两者,所述大容量存储设备例如磁盘、磁光盘或光盘。但是,计算机不必具有这样的设备。此外,计算机可以嵌入在例如移动电话个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)等的另一设备中。
[0102] 适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。
[0103] 为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,所述计算机具有:显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器,用于向用户显示信息;以及键盘和指示设备(例如,鼠标轨迹球),用户可通过其向计算机提供输入。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以包括声学、语音或触觉输入的任何形式接收来自用户的输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档,例如,通过响应于从web浏览器接收到的请求将网页发送到用户设备上的web浏览器,来与用户交互。此外,计算机可以通过向个人设备(例如,运行消息收发应用的智能电话)发送文本消息或其他形式的消息、并且从用户接收响应消息作为回复来与用户交互。
[0104] 用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或产生的公共和计算密集部分,即推断、工作负载。
[0105] 可以使用例如TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架的机器学习框架来实现和部署机器学习模型。
[0106] 本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括:后端组件,例如作为数据服务器;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如,具有图形用户界面、网络浏览器或应用程序的客户端计算机,用户可通过其与本说明书中描述的主题的实现进行交互;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过例如通信网络的数字数据通信的任何形式或介质互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
[0107] 计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且典型地通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)发送到用户设备,例如,用于向与作为客户端的设备交互的用户显示数据和从该用户接收用户输入的目的。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
[0108] 虽然本说明书包含许多具体的实现细节,但是这些不应被解释为对任何发明的范围或可以要求保护的范围的限制,而是作为可以特定于特定发明的特定实施例的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合中去除来自要求保护的组合的一个或多个特征,并且要求保护的组合可以针对子组合或子组合的变化。
[0109] 类似地,虽然以特定顺序在附图中描绘并且在权利要求中列举了操作,但是这不应当被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有示出的操作以达到期望的效果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种系统模块和组件的分离不应当被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。
[0110] 已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中列举的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或按顺序来实现期望的结果。在一些情况下,多任务处理和并行处理可以是有利的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈