CN108604311B - 利用层级式外部存储器的增强神经网络 - Google Patents
利用层级式外部存储器的增强神经网络 Download PDFInfo
- Publication number
- CN108604311B CN108604311B CN201680081167.2A CN201680081167A CN108604311B CN 108604311 B CN108604311 B CN 108604311B CN 201680081167 A CN201680081167 A CN 201680081167A CN 108604311 B CN108604311 B CN 108604311B
- Authority
- CN
- China
- Prior art keywords
- neural network
- node
- storage node
- storage
- sequence
- 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.)
- Active
Links
Images
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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Abstract
公开了用于使用增强型神经网络系统来从输入的序列生成输出的序列的系统、方法、设备和其他技术。一种增强型神经网络系统可包括控制器神经网络、层级式外部存储器和存储器访问子系统。控制器神经网络接收一系列时步的每一者处的神经网络输入,处理神经网络输入以为该时步生成存储键。外部存储器包括被布置为二叉树的一组存储节点。可以扩展神经网络系统考虑到输入序列中的长范围依赖关系的能力。另外,通过将外部存储器构造为二叉树,可以提高存储器访问效率。
Description
技术领域
本说明书涉及神经网络体系结构。
背景技术
神经网络是采用一层或多层非线性单元来为接收到的输入预测输出的机器学习模型。一些神经网络除了输出层以外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层(即,下一隐藏层或输出层)的输入。网络的每一层根据相应的一组参数的当前值从接收到的输入生成输出。
一些神经网络是递归神经网络。递归神经网络是接收输入序列并且从输入序列生成输出序列的神经网络。特别地,递归神经网络在计算当前时步处的输出时可使用来自先前时步的网络的内部状态中的一些或全部。
发明内容
本说明书描述了用于利用已利用层级式外部存储器增强的控制器神经网络来处理输入序列的系统、方法、设备和其他技术。
本文描述的主题的一些实现方式包括一种用于处理系统输入的序列以生成系统输出的序列的增强型神经网络系统。该系统可包括控制器神经网络、层级式外部存储器和存储器访问子系统。控制器神经网络可以是前馈神经网络或递归神经网络。一般而言,控制器神经网络被配置为接收一系列时步的每一者处的神经网络输入,并且处理神经网络输入以为该时步生成神经网络输出。神经网络输出可包括存储键,并且可选地包括其他数据(例如,系统输出部分)。层级式外部存储器不同于控制器神经网络并且包括被布置为二叉树的一组存储节点。为了提供控制器神经网络与外部存储器之间的接口,该系统包括存储器访问子系统,该存储器访问子系统被配置为对于该一系列时步的每一者,执行一个或多个操作来为该时步生成相应的系统输出。
这些和其他实现方式可以可选地包括以下特征中的一个或多个。
存储器访问子系统被配置为在该一系列时步的每一者处执行的操作可包括遍历二叉树以利用存储键来生成从二叉树中的根存储节点到二叉树中的特定叶存储节点的路径,读取该特定叶存储节点中存储的数据,并且利用存储键更新该特定叶存储节点中存储的数据。
更新特定叶存储节点中存储的数据可包括利用写入神经网络处理该特定叶存储节点中存储的数据和存储键以生成经更新的存储节点数据并且将经更新的存储节点数据写入到该特定叶存储节点。写入神经网络可被配置为处理特定叶存储节点中存储的数据和存储键以生成经更新的存储节点数据。
存储器访问子系统还可被配置为对于该一系列时步的每一者,按反向遍历顺序更新该路径上的除了该特定叶存储节点以外的存储单元中存储的数据。路径上的每个父存储节点中存储的相应数据可通过如下操作来按反向遍历顺序加以更新:利用连接神经网络处理该存储节点的在该路径上的子节点中存储的经更新的数据和不在该路径上的子节点中存储的数据以为该父节点生成经更新的数据。随后可利用存储器访问子系统将每个父节点的经更新的数据写入到该父节点。
存储器访问子系统可被配置为利用存储键来遍历层级式外部存储器的二叉树。存储器访问子系统可被配置为从二叉树的根节点开始遍历二叉树并且确定到特定叶存储节点的路径。在沿着该路径的每个存储节点处,存储器访问子系统可以(i)利用搜索神经网络处理该存储节点中存储的数据和存储键,其中搜索神经网络被配置为处理该存储节点中存储的数据和存储键以生成概率值p;(ii)遵循从该存储节点起的第一分支来以概率p向该路径添加新的子节点;并且(iii)遵循从该存储节点起的第二分支来以概率1–p向该路径添加新的子节点。
存储器访问子系统还可被配置为利用输入的序列或者用来得出输入的序列的系统输入的序列来初始化二叉树的叶存储节点中存储的数据。
存储器访问子系统还可被配置为通过以下操作来按自下而上的顺序初始化树中的除了叶存储节点以外的其他存储节点中存储的数据:对于其他节点的每一者:(i)利用连接神经网络处理该节点的子节点中存储的经更新的数据,其中连接神经网络被配置为处理一个子节点中存储的数据和另一子节点中存储的数据以为该一个子节点和该另一子节点的父节点生成经更新的数据;并且(ii)将经更新的数据写入到该节点。
该系统还可包括一个或多个输出层。输出层可被配置为,对于该一系列时步的每一者,处理对于该时步从外部存储器读取的数据来为该时步生成系统输出。
该一系列时步的每一者的神经网络输出还可包括系统输出部分,例如除了存储键以外还可包括系统输出部分。
存储器访问子系统还可被配置为,对于该一系列时步的每一者,提供从系统输出部分得出的输出来作为该时步的系统输出。
该系统还可包括一个或多个输出层,这些输出层被配置为,对于该一系列时步的每一者,对于该时步处理从外部存储器读取的数据和系统输出部分来为该时步生成系统输出。
每个时步的神经网络输入可以是来自系统输入的序列的相应系统输入。
存储器访问子系统还可被配置为,对于该一系列时步的每一者,组合从外部存储器读取的数据和来自系统输入的序列的相应系统输入来为后续时步生成后续神经网络输入。
本文描述的主题的一些实现方式包括一种由计算机实现的方法,例如一种用于处理输入的序列以生成输出的序列的方法,其中输入的序列包括一系列时步的每一者处的相应输入,输出的序列包括该一系列时步的每一者处的相应输出。该方法可由包括控制器神经网络和层级式外部存储器的增强型神经网络系统执行。该方法可包括:获得输入的序列,并且对于该一系列时步中的每个时步,利用控制器神经网络处理该时步处的相应输入以生成存储键,识别不同于控制器神经网络并且包括被布置成二叉树的一组存储节点的层级式存储器中存储的数据,并且利用二叉树的特定叶存储单元中存储的数据来为输出的序列提供该时步处的相应输出。该系统通过以下操作来识别特定叶存储节点中存储的数据:遍历二叉树以利用存储键生成从二叉树中的根存储节点到二叉树中的特定叶存储节点的路径,并且读取该特定叶存储节点中存储的数据。
本说明书还提供了一种包括机器可读指令的计算机程序,所述指令当被计算机装置执行时控制其执行上述方法。
这些和其他实现方式可以可选地包括以下特征中的一个或多个。
对于该一系列时步中的每个时步,该系统可通过利用写入神经网络处理特定叶存储节点中当前存储的数据和存储键来更新特定叶存储节点中存储的数据以生成经更新的存储节点数据。系统可将经更新的存储节点数据写入到该特定叶存储节点。
系统可利用嵌入神经网络处理输入的序列,或者用来得出输入的序列的系统输入的序列,以生成嵌入的序列,该嵌入的序列包括该一系列时步中的每个时步处的相应嵌入。系统随后利用嵌入的序列来初始化二叉树的该组存储节点中存储的数据。
控制器神经网络可以是前馈神经网络或递归神经网络。
本文描述的主题的一些实现方式在某些情况中可实现以下优点中的一个或多个。首先,通过利用外部存储器增强控制器神经网络,可以扩展神经网络系统考虑到输入序列中的长范围依赖关系的能力,同时仍限制控制器神经网络的大小(例如,参数的数目)。例如,外部存储器可允许前馈神经网络生成给定时步处的输出,该输出至少部分依赖于来自先前时步的一个或多个输入、输出或者这两者。并且,虽然未利用外部存储器增强的传统递归神经网络,例如长短期记忆(LSTM)神经网络,可维持隐藏状态作为内部存储器的一种形式,但这些网络一般不会良好地扩展到更大的内部存储器,因为网络的参数的数目倾向于随着网络的内部存储器的大小而大幅(例如,二次方地)增大。在一些实现方式中,通过提供外部存储器,可有利地使得存储器的大小独立于控制器神经网络的参数的数目,从而可在不过度增大控制器神经网络的大小的情况下采用更大的存储器。
其次,通过将外部存储器构造为二叉树,可以提高存储器访问效率。在一些实现方式中,访问层级式存储器中存储的所需数据能够以θ(log(n))复杂度来执行,其中n是存储器的大小(例如,二叉树中的节点的数目)。从而,利用层级式存储器可提高存储器访问效率,特别是随着存储器的大小增大时更是如此。
第三,利用外部存储器增强的神经网络系统在一些实现方式中可以良好地一般化到比训练期间看到的那些长得多的输入序列。
本领域普通技术人员根据这里的描述、附图和权利要求中公开的主题将会清楚额外的优点。
附图说明
图1是包括控制器神经网络和层级式外部存储器以及其他组件的示例增强型神经网络系统的框图。
图2A描绘了采取二叉树形式的层级式外部存储器的表示。图2B-2D描绘了可对存储在二叉树的存储单元中的数据执行的各种操作。
图3A和3B是用于利用具有控制器神经网络和层级式外部存储器的增强型神经网络系统从输入的序列生成输出的序列的示例过程的流程图。
具体实施方式
图1是示例增强型神经网络系统100的框图。系统100被配置为处理系统输入序列102并且生成系统输出序列104。一般而言,如下文进一步说明的,系统100包括控制器神经网络118和用来增强控制器神经网络118的层级式外部存储器106。存储器106提供或扩展控制器神经网络118的能力以生成给定的时步处的输出,这些输出至少部分受到一个或多个先前时步处的输入或输出的影响。另外,如下文进一步说明的,存储器106可被布置为二叉树,该二叉树允许了对存储在树的叶中的数据的高效访问。存储器106可存储被用作控制器神经网络的输入的数据,用来得出系统输出的数据,或者这两种数据都存储。
系统输入序列102包括时步的系列中的每个时步处的相应输入。类似地,系统输出序列104包括时步的系列中的每个时步处的相应输出。取决于系统100被配置为执行的任务,输入序列102和输出序列104可表示各种类型的数据中的任何一种。例如,如果系统100被训练为执行话音识别,则输入序列102中的每个输入可表示表征要被转录为文本的话语的相应一块音频信号,并且输出序列104中的每个输出可表示该话语的文本转录的相应一部分,例如字符、单词或短语。在另一示例中,如果系统100被训练为将文本从一种语言翻译成另一种,则输入序列102中的每个输入可以是第一语言的文本的一个或多个单词,并且输出序列104中的每个输出可以是第二语言的文本的一个或多个单词。一般而言,系统可被配置为接收任何种类的数字数据输入并且基于该输入生成任何种类的得分或分类输出。
系统100一般可被实现为一个或多个位置中的一个或多个计算机上的计算机程序。系统100包括被利用层级式外部存储器106增强了的控制器神经网络118。在一些实现方式中,存储器106允许了控制器神经网络118处理输入序列102中的包括短范围、中范围以及甚至长范围依赖关系的输入,同时限制控制器神经网络118的整体大小(例如,限制网络118的参数的数目)。
控制器神经网络118被配置为处理一系列时步的每一者处的神经网络输入的序列以生成每个时步处的神经网络输出。该输出可包括用于该时步的存储键,并且可选地包括额外的数据(例如,系统输出部分)。在一些实现方式中,神经网络输入的序列是系统输入序列102本身。在其他实现方式中,被提供到控制器神经网络118的神经网络输入的序列是至少部分从系统输入序列102得出的。例如,给定时步处的神经网络输入可通过组合该给定时步或先前时步处的相应系统输入和在该给定时步或先前时步从外部存储器106读取的数据来生成。控制器神经网络118可以是前馈神经网络或递归神经网络,例如长短期记忆(longshort-term memory,LSTM)神经网络。
系统100可包括系统输出子网络120。系统输出子网络120被配置为生成系统输出序列104的每个时步处的相应系统输出。在一些实现方式中,系统输出子网络120与控制器神经网络118不同并且独立于控制器神经网络118处理数据以生成系统输出。在其他实现方式中,系统输出子网络120被布置为控制器神经网络118的一个或多个输出层。例如,系统输出子网络120可以是控制器神经网络118的软最大(softmax)输出层。
控制器神经网络118被采用层级式外部存储器106来增强。外部存储器106包括被布置为二叉树的存储单元(也称为“节点”)的集合。存储器106的每个单元被配置为存储相应的数据集或数据项。
为了进一步说明外部存储器的二叉树,参考图2,图2图示了表征层级式外部存储器(例如,外部存储器106)的内容的示例二叉树200。在这个示例中,二叉树200包括十五个个体存储单元202a-o,以层级方式布置在四层上。位于树200的顶部的单个存储单元202a是根存储单元,即,没有祖先(例如,没有父存储单元)的存储单元。除了根存储单元202a以外,二叉树200中的每个其他单元202b-o具有一个父存储单元。存储单元202a-o的最底层是叶存储单元,即,没有孩子的存储单元。除了叶存储单元202h-o以外,每个其他单元202a-g具有两个子单元。对于给定的父存储单元,其孩子可被分别识别为左子存储单元和右子存储单元。作为示例,根存储单元202a具有左子存储单元202b和右子存储单元202c。二叉树200中的每个存储单元202a-o存储相应的数据,由符号hi表示。每个存储单元中存储的相应数据可以是实值或复值的向量。如下文更详细说明的,可利用来自控制器神经网络118的输出来计算存储单元202a-o中存储的数据。在一些实现方式中,所选存储单元中存储的数据可被用作控制器神经网络118的输入,或者控制器神经网络118的输入可至少部分从所选存储单元中存储的数据得出。
再次参考图1,神经网络系统100还包括存储器访问子系统108。存储器访问子系统108提供控制器神经网络118与层级式外部存储器106之间的接口。例如,存储器访问子系统108可读取给定时步处的神经网络输出,例如存储键,并且使用该神经网络输出来查询外部存储器106。在一些实现方式中,存储器访问子系统108从外部存储器106读取数据并且使用读取的数据来为控制器神经网络118生成神经网络输入。
存储器访问子系统108与一组模型110、112、114和116相接口以执行外部存储器106中的操作。模型110、112、114和116可各自是神经网络,例如,嵌入神经网络110、搜索神经网络112、连接神经网络114和写入神经网络116。
嵌入神经网络110是被配置为处理输入以生成嵌入输出的前馈神经网络。嵌入神经网络110可包括多层感知器,其中在所有的神经元中具有修正线性单元(rectifiedlinear unit,ReLU)激活函数。在一些实现方式中,存储器访问子系统108调用嵌入神经网络110以从系统输入序列102生成嵌入。子系统108随后利用由嵌入神经网络110生成的嵌入来初始化外部存储器106中的叶存储单元。图2B例如示出了如何通过为系统输入序列102中的每个系统输入x1-x5生成相应的嵌入来初始化二叉树200中的叶存储单元202h-l。例如,叶存储单元202h中存储的数据h8被用嵌入神经网络110通过处理系统输入102a生成的嵌入向量来初始化。二叉树200中的其余叶被以类似的方式通过利用嵌入神经网络110处理来自系统输入序列102的序列输入来初始化。对于由于叶存储单元的数目超过系统输入序列102中的输入的数目而没有匹配到来自系统输入序列102的输入的任何叶存储单元(例如,单元202m-o),这些单元可以用默认值(例如,零)来初始化。
搜索神经网络112是处理具有第一部分和第二部分的输入以生成表示概率p的搜索输出的前馈神经网络。搜索神经网络112可包括除了网络112的输出层以外在所有神经元中具有修正线性单元(ReLU)激活函数的多层感知器,这些感知器可使用S形激活函数来确保输出可被解读为概率。存储器子系统108可调用搜索神经网络来遍历穿过外部存储器106的二叉树的从根存储单元到特定叶存储单元的路径。
例如,图2C示出了存储器访问子系统108可如何遍历二叉树200中的从根存储单元202a到叶存储单元202m的路径(由虚线指示)。在一些实现方式中,为了遍历该路径,存储器访问子系统108开始于根存储单元202a并且调用搜索神经网络112来基于根存储单元202a中存储的数据h1和由控制器神经网络118生成的存储键来生成概率p。数据h1和存储键可被存储器访问子系统108组合(例如,串接)并且被提供作为对搜索神经网络112的输入以生成概率p。存储器访问子系统108随后向根存储单元202a与其右子单元202c之间的分支指派概率p,并且向根存储单元202a与其左子单元202b之间的分支指派概率1–p。在其他实现方式中,概率p被指派给父单元与左子单元之间的分支,而概率1–p被指派给父单元与右子单元之间的分支。存储器子系统108对于二叉树200中的每个父单元重复这些操作,例如通过将父单元中存储的相应数据与存储键相组合来生成搜索神经网络输入,利用搜索神经网络112处理该输入以生成概率p,将概率p指派给父单元与右子单元之间的分支,并且将概率1–p指派给父单元与左子单元之间的分支。存储器访问子系统108随后通过乘以被指派给各路径中的每个分支的概率来为从根存储单元202a到每个叶存储单元202h-o的各路径计算相应的路径概率。特定的叶单元随后可被存储器访问子系统108基于叶单元的相应路径概率来选择。在一些实现方式中,子系统108选择具有最高路径概率的特定叶单元。例如,图2C中的叶单元202m的路径概率可基于在单元202a和202c、单元202c和202f以及单元202f和202m之间指派的概率来确定。如果叶单元202m的路径概率大于其他叶单元的路径概率,则可以关注叶单元202m并且可以访问叶单元202m存储的数据h13,例如用来生成给定时步处的系统输出。
在其他实现方式中,存储器访问子系统108通过遵循从二叉树的根存储单元到特定叶存储单元的路径来选择特定的叶存储单元,其中该路径被定义为在每个父单元处遵循从该父单元到被指派更高概率的左子单元或右子单元的相应分支。作为示例,如图2C中所示,遍历过程可开始于根存储单元202a处。利用搜索神经网络112,概率p=0.95被指派给延伸到右子单元202c的右分支,并且概率0.05(即,1–p)被指派给延伸到左子单元202b的左分支。由于指派给右分支的概率大于指派给左分支的概率,所以存储器访问子系统108沿着从根单元202a到右子单元202c的右分支来延伸路径。子系统108在每个存储单元处重复这些操作,直到到达叶存储单元为止。例如,图2C中的路径从单元202a延伸到单元202c然后到单元202f,最终到叶存储单元202m。
连接神经网络114是被配置为通过处理具有第一部分和第二部分的输入来生成连接输出的前馈神经网络。连接神经网络114可包括多层感知器,其中在所有神经元中具有修正线性单元(ReLU)激活函数。在一些实现方式中,存储器访问子系统108调用连接神经网络114以在外部存储器106中的一对兄弟单元上执行连接操作。具体地,存储器访问子系统108获得左兄弟单元中存储的数据作为对连接神经网络114的输入的第一部分并且获得右兄弟单元中存储的数据作为对连接神经网络114的输入的第二部分。连接神经网络114随后通过处理输入的第一和第二部分来生成连接输出。存储器子系统108随后将该连接输出写入到该对兄弟单元的父单元。
图2B和2D图示了存储器访问子系统108可利用连接神经网络114在二叉树200中执行连接操作的两个不同情境。首先,图2B示出了存储器访问子系统108如何使用连接操作来初始化二叉树200中的存储单元。在已利用嵌入神经网络110生成的嵌入来初始化叶存储单元202h-o之后,可利用由连接神经网络114定义的连接操作来初始化剩余的存储单元202a-g。对于在二叉树200中已被初始化的每对兄弟单元,存储器子系统108通过以下操作来初始化相应的父存储单元:读取兄弟单元中存储的初始化数据,把从兄弟单元读取的初始化数据作为输入提供到连接神经网络114,接收由连接神经网络114生成的连接输出,然后将连接输出写入到父单元。连接操作在二叉树200中被反复执行,直到所有存储单元已被初始化为止。
图2D描绘了存储器访问子系统108使用连接神经网络114来在二叉树200中执行连接操作的第二情境。具体地,存储器访问子系统108可在二叉树200中执行连接操作以只更新沿着从根存储单元202a到特定叶存储单元(例如,存储单元202m)的路径的那些单元中存储的数据。例如,如下文参考图3A-3B所述,在处理系统输入102的序列时的每个时步处,存储器访问子系统108可更新二叉树中的叶存储单元之一。同样在该时步期间,存储器子系统108可对被更新的叶单元的每个祖先单元中存储的相应数据进行更新。例如,如果新数据被写入到叶存储单元202m,则存储器子系统208随着可通过将神经网络114的第一连接输出写入到存储单元202f,将神经网络114的第二连接输出写入到存储单元202c并且将神经网络114的第三连接输出写入到存储单元202a,来按反向遍历顺序更新单元202m的祖先。神经网络114处理单元202l的数据h12和单元202m的数据h13以生成第一连接输出,处理单元202f的数据h6和单元202g的数据h7以生成第二连接输出,并且处理单元202b的数据h2和单元202c的数据h3以生成第三连接输出。
系统100还包括写入神经网络116。写入神经网络116是被配置为处理具有第一部分和第二部分的输入以生成写入输出的前馈神经网络。写入神经网络116的参数定义把对网络116的输入变换成网络116生成的写入输出的写入操作。写入神经网络116可包括具有修正线性单元(ReLU)激活函数并且可选地在输出层中具有S形激活函数的多层感知器。在一些实现方式中,存储器访问子系统108使用写入神经网络116来更新外部存储器106的二叉树(例如,二叉树200)中的所选叶存储单元中存储的数据。为了更新叶存储单元中存储的数据,存储器访问子系统108在给定时步读取叶存储单元中存储的当前数据并且识别由控制器神经网络118生成的存储键。叶存储单元的当前数据被提供到写入神经网络116作为输入的第一部分。存储键被提供到写入神经网络116作为输入的第二部分。写入神经网络116处理输入以生成写入输出,存储器访问子系统308随后将该写入输出作为经更新的存储单元数据写入到叶存储单元。
图3A-3B描绘了用于处理系统输入的序列以生成系统输出的序列的示例过程300的流程图。过程300可由增强型神经网络系统(例如,增强型神经网络系统100)执行。
过程300开始于阶段302,此时增强型神经网络系统100获得系统输入的序列。系统输入的序列包括时步的系列中的每个时步处的相应输入。取决于系统被配置为执行的任务,系统接收的系统输入的序列和由系统生成的系统输出的序列可表示各种类型的数据中的任何一种。
例如,如果系统的输入是图像或从图像提取的特征,则系统对于给定的图像生成的输出可以是一组对象类别的每一者的得分,其中每个得分表示该图像包含属于该类别的对象的图像的估计可能性。
作为另一示例,如果系统的输入是互联网资源(例如,网页)、文档或文档的部分或者从互联网资源、文档或文档的部分提取的特征,则系统对于给定的互联网资源、文档或文档的部分生成的输出可以是一组主题的每一者的得分,其中每个得分表示该互联网资源、文档或文档部分是关于该主题的估计可能性。
作为另一示例,如果系统的输入是对用户的个性化推荐的特征,例如表征推荐的情境的特征,例如表征用户采取的先前动作的特征,则系统生成的输出可以是一组内容项的每一者的得分,其中每个得分表示用户对于被推荐该内容项将会做出积极反应的估计可能性。在这一些示例的某些中,系统是向用户提供内容推荐的强化学习系统的一部分。
作为另一示例,如果系统的输入是一种语言的文本,则系统生成的输出可以是另一语言的一组文本片段的每一者的得分,其中每个得分表示该另一语言的文本片段是输入文本到该另一语言的恰当翻译的估计可能性。
作为另一示例,如果系统的输入是说出的话语的特征,则系统生成的输出可以是一组文本片段的每一者的得分,每个得分表示该文本片段是话语的正确转录的估计可能性。
作为另一示例,如果系统的输入是图像,则系统生成的输出可以是一组文本片段的每一者的得分,每个得分表示该文本片段是存在于输入图像中的文本的估计可能性。
作为另一示例,如果系统的输入是来自计算机程序的代码片段,则系统生成的输出可识别该计算机程序的预测输出。
在阶段304,系统初始化层级式外部存储器,例如层级式外部存储器106。外部存储器可包括被布置为二叉树(例如,二叉树200)的存储单元的集合。系统通过将初始数据写入到二叉树的每个存储单元来初始化外部存储器。在一些实现方式中,系统首先基于系统输入的序列来初始化树的叶存储单元。例如,嵌入神经网络,例如嵌入神经网络110,可生成系统输入序列中的每个输入的嵌入。系统的存储器访问子系统,例如存储器访问子系统108,随后可将相应的嵌入写入到二叉树中的每个叶存储单元。二叉树一般至少具有与系统输入序列中的输入同样多的叶存储单元。如果树具有比系统输入序列中的输入的数目更多的叶子,则任何未用嵌入来初始化的叶单元可被初始化到零或另一默认值。一旦叶存储单元被初始化,系统随后就可利用连接操作来初始化树中的更高阶存储单元。对于已被初始化的每对兄弟单元,系统使用连接神经网络,例如连接神经网络114,来生成连接输出并且将连接输出写入到兄弟的相应父单元。这样,每个父单元被初始化,直到树中的所有存储单元已被初始化为止。
在阶段306,系统在输入序列的第一时步处选择系统输入序列的相应输入。
在阶段308,系统利用所选择的系统输入来生成神经网络输入。神经网络输入是被提供到系统的控制器神经网络(例如,控制器神经网络118)用于处理的输入。在一些实现方式中,当前时步处的系统输入被用作该时步处的神经网络输入。在其他实现方式中,当前时步处的神经网络输入是从以下两项得出的:(i)在先前时步处从外部存储器的特定叶存储单元读取的数据,以及(ii)在当前时步或先前时步处来自系统输入序列的相应系统输入。例如,存储器访问子系统可以把从特定叶存储单元读取的数据与相应的系统输入相组合来为当前时步生成神经网络输入。在这些实现方式中,对于第一时步,系统使用占位符数据来作为在先前时步处读取的数据。
在阶段310,控制器神经网络处理当前时步处的神经网络输入来为该时步生成神经网络输出。神经网络输出包括存储键310a,该存储键310a是系统用来在层级式外部存储器中执行搜索和写入操作的神经网络输出的至少一部分。在一些实现方式中,神经网络输出除了存储键310a以外还包括第二部分。第二部分在这里被称为系统输出部分,其在一些实现方式中被用于生成系统输出。
在阶段312,系统遍历一条经过外部存储器的二叉树的路径以选择特定的叶存储单元。在一些实现方式中,系统使用搜索神经网络,例如搜索神经网络112,来遍历经过树的路径。从二叉树的根存储单元处开始,在根单元的后代存储单元的至少某个子集的每一者处,系统处理存储键310a和该存储单元中存储的数据来生成概率p。概率p被指派给从父存储单元到右兄弟单元的分支,其中右兄弟单元也就是在二叉树中位于父单元的右侧的兄弟单元。概率1–p被指派给从父存储单元到左兄弟单元的分支,其中左兄弟单元也就是在二叉树中位于父单元的左侧的兄弟单元。系统随后基于指派给树的分支的概率来遵循从根存储单元到叶存储单元之一的路径。在一些实现方式中,系统向树中的每个分支指派概率并且基于各条路径到每个叶存储单元的累积概率来选择到特定叶存储单元的路径。系统可选择具有最高累积概率的路径(以及该路径的终端处的叶存储单元)。在其他实现方式中,系统通过从根存储单元开始并且沿着树向下移动到叶存储单元,在每个单元处基于指派给其各自分支的概率来评估是转到左子单元还是右子单元,从而来确定路径。例如,从根单元开始,如果指派给右子单元的分支具有比指派给左子单元的分支更大的概率,则系统可确定遵循到右子单元的路径。系统在每个存储单元处重复这些操作,直到到达叶存储单元为止。
在阶段314,存储器访问子系统读取所选的叶存储单元中存储的数据。
在阶段316,系统更新所选叶存储单元中存储的数据,并且可选地,更新所选叶存储单元的每个祖先存储单元中存储的数据。为了更新所选叶存储单元中存储的数据,所选叶存储单元中存储的当前数据和当前存储键310a被作为输入提供到写入神经网络,例如写入神经网络116。写入神经网络116处理输入并且生成输出,存储器访问子系统随后将该输出作为经更新的存储器数据写入到所选叶存储单元。为了更新祖先存储单元中存储的数据,系统使用连接神经网络,例如连接神经网络114,来生成作为所选叶存储单元的祖先的每个存储单元的输出,其方式是通过处理该存储单元的子单元中存储的相应数据。在更新叶存储单元之后,祖先单元被按与在遍历从根存储单元到叶存储单元的路径的同时识别单元的顺序相反的顺序来更新。从而,每个祖先单元仅在其子单元的更新数据已被确定之后才被更新。
在阶段318,系统为当前时步生成系统输出。系统输出可由系统的系统输出子网络生成,例如系统输出子网络120。取决于系统的特定实现方式,系统输出可采取不同的形式。在一些实现方式中,系统将控制器神经网络的该时步处的输出的系统输出部分,或者从系统输出部分得出的输出,提供作为该时步的系统输出。在其他实现方式中,系统把从所选叶存储单元读取的数据,或者根据从所选叶存储单元读取的数据得出的输出,提供作为该时步的系统输出。例如,从所选叶存储单元读取的数据(无论是单独的还是与其他数据一起)可被系统输出子网络120处理来为该时步生成系统输出。在其他的实现方式中,系统输出子网络处理(i)控制器神经网络的该时步处的输出的系统输出部分和(ii)在该时步从所选叶存储单元读取的数据,来为该时步生成系统输出。
在阶段320,系统选择系统输入序列的下一时步处的输入并且返回到阶段312,再次利用所选的输入执行针对阶段308-318描述的操作以生成系统输出序列中的下一系统输出。这些阶段312-318可对系统输入序列中的每个输入重复,直到系统输入序列的末尾为止,或者直到另一终止条件被检测到为止。
一般而言,因为增强型神经网络系统已经被描述为使用“硬”关注机制,其中在每个时步从特定的叶存储单元读取数据,所以存储器访问过程一般不是可微的(differentiable)操作。从而,训练系统可利用例如Williams,Ronald J.SimpleStatistical Gradient-Following Algorithms for Connectionist ReinforcementLearning,Machine Learning,8(3-4):229–256,1992中描述的REINFORCE算法那样的加强学习技术来训练增强型神经网络的各方面。例如,可利用加强学习技术一起训练控制器神经网络、嵌入神经网络、搜索神经网络、连接神经网络和写入神经网络以最大化接收到的返回。在一些实现方式中,接收到的返回可被建模为对数概率logp(y|A,x,θ),其中y表示系统输出序列,x表示对应的系统输入序列,θ表示模型的参数(例如,控制器、连接、嵌入、搜索和写入神经网络的参数),并且A表示在模型的整个执行期间在遍历二元存储树时是向左还是向右前进的所有决策的序列。
虽然以上的说明书描述了存储器访问子系统随机地访问存储器和向存储器写入,即,在给定的时步处使用存储键来仅从叶单元之一读取或仅向叶单元之一写入,但在一些其他实现方式中,存储器访问子系统在同一时步中从所有叶单元读取并且向所有叶单元写入。具体地,系统可利用存储键遍历去到给定叶单元的每条可能路径并且基于去到该叶单元的路径是在给定该存储键的情况下穿过二叉树的正确路径的可能性来为该叶单元确定权重。系统随后可根据其权重来组合从每个叶存储单元读取的数据以为该时步生成读取的数据。系统也可通过根据给定叶单元的权重在为该叶单元确定的更新数据和该叶单元中当前存储的数据之间进行插值来更新该给定叶单元中的数据,并且连接操作可被执行来根据子单元的权重生成对非叶单元的更新。
对于使用其中存储器访问过程可微的软关注机制的那些实现方式,可利用传统的机器学习技术来训练增强型神经网络系统,例如具有随着时间的反向传播的随机梯度下降。例如,训练系统可利用包括训练输入和训练目标输出的训练数据来训练系统的一个或多个神经网络。训练系统向神经网络提供每个训练输入,并且神经网络进而处理训练输入以生成估计的输出。训练系统随后计算目标训练输出与估计输出之间的误差,并且使用该误差来调整神经网络的参数的值以减小误差。例如,训练系统可反向传播梯度以调整神经网络系统的参数的当前值以优化损耗函数。
对于一个或多个计算机的系统被配置为执行特定操作或动作,这意味着系统在其软件、固件、硬件或其组合上安装了在操作中使得系统执行这些操作或动作。对于一个或多个计算机程序被配置为执行特定操作或动作,这意味着该一个或多个程序包括当被数据处理装置执行时使得该装置执行这些操作或动作的指令。
本说明书中描述的主题和功能操作的实施例可以用数字电子电路实现,用有形具现的(tangibly-embodied)计算机软件或固件实现,用计算机硬件实现(包括本说明书中公开的结构及其结构等同物),或者用它们中的一个或多个的组合来实现。本说明书中描述的主题的实施例可实现为一个或多个计算机程序,即,计算机程序指令的一个或多个模块,这些指令被编码在有形非暂态程序载体上,以供数据处理装置执行或者控制数据处理装置的操作。替换地或者额外地,程序指令可被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号上,该信号被生成来编码信息以便发送到适当的接收器装置,以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器设备或者它们之中的一个或多个的组合。然而,计算机存储介质不是传播的信号。
术语“数据处理装置”涵盖了用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或者多个处理器或计算机。装置可包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件外,装置还可包括为所关注的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(也可被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以用任何形式的编程语言来编写,所述语言包括经编译或解释的语言或者声明性或过程式语言,并且其可按任何形式来部署,包括被部署为独立程序或被部署为模块、组件、子例程或者适合用在计算环境中的其他单元。计算机程序可以但不是必须对应于文件系统中的文件。程序可被存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、存储在专用于所关注程序的单个文件中或者存储在多个协调的文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可被部署来在一个计算机或多个计算机上执行,所述多个计算机位于一个地点或分布在多个地点并由通信网络互连。
按照本说明书中使用的,“引擎”或“软件引擎”指的是提供与输入不同的输出的由软件实现的输入/输出系统。引擎可以是编码的功能块,例如库、平台、软件开发套件(software development kit,“SDK”)或者对象。每个引擎可实现在任何适当类型的包括一个或多个处理器和计算机可读介质的计算设备上,例如服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或桌面型计算机、PDA、智能电话或者其他固定或便携设备。此外,引擎之中的两个或更多个可实现在同一计算设备上,或者实现在不同的计算设备上。
本说明书中描述的过程和逻辑流可通过一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出而执行功能,从而来执行。过程和逻辑流也可由专用逻辑电路来执行,并且装置也可实现为专用逻辑电路,专用逻辑电路例如是FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适用于计算机程序的执行的计算机例如包括可基于通用或专用微处理器或者这两者,或者任何其他种类的中央处理单元。一般地,中央处理单元将从只读存储器或随机访问存储器或者这两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。一般地,计算机还将包括一个或多个大容量存储设备,或者操作性地耦合到一个或多个大容量存储设备以便从其接收数据或向其传递数据,或者既包括也操作性地耦合到一个或多个大容量存储设备,所述大容量存储设备用于存储数据,例如是磁盘、磁光盘或光盘。然而,计算机不是必须具有这种设备。另外,计算机可被嵌入在另一设备中,另一设备举例来说例如是移动电话、个人数字助理(personal digital assistant,PDA)、移动音频或视频播放器、游戏机、全球定位系统(Global Positioning System,GPS)接收机或者便携式存储设备,例如通用串行总线(universal serial bus,USB)快闪驱动器。
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和快闪存储器设备;磁盘,例如内部硬盘或可移除盘、磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可被专用逻辑电路所补充,或者被包含在专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可实现在计算机上,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示)监视器,以及用户可用来向计算机提供输入的键盘和指点设备,例如鼠标或跟踪球。其他种类的设备也可用于支持与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可按任何形式被接收,包括声响、话音或触觉输入。此外,计算机可通过向用户使用的设备发送文档并从该设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求而向用户的客户端设备上的web浏览器发送网页。
本说明书中描述的主题的实施例可在计算系统中实现,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有用户可通过其来与本说明书描述的主题的实现方式交互的图形用户界面或Web浏览器的客户端计算机,或者一个或多个这种后端、中间件或前端组件的任何组合。系统的组件可由任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(local area network,“LAN”)和广域网(wide area network,“WAN”),例如因特网。
计算系统可包括客户端和服务器。客户端和服务器一般可彼此远离并且通常通过通信网络来交互。客户端和服务器的关系是由于计算机程序在各计算机上运行且相互之间具有客户端-服务器关系而发生的。
虽然本说明书包含许多具体实现细节,但这些细节不应被解释为对任何发明的范围或可请求保护的范围的限制,而是对特定发明的特定实施例可能特有的特征的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可分开地或者按任何适当的子组合在多个实施例中实现。另外,虽然以上可将特征描述为按某些组合来动作,或者甚至最初权利要求是这样记载的,但来自要求保护的组合的一个或多个特征在一些情况下可被从该组合中删去,并且要求保护的组合可指向子组合或子组合的变体。
类似地,虽然操作在附图中是按特定顺序描绘的,但这不应当被理解为为了实现期望的结果要求这种操作按所示出的特定顺序或按先后顺序执行,或者要求所有示出的操作都被执行。在某些情况中,多任务和并行处理可能是有利的。另外,在以上描述的实施例中各种系统模块和组件的分离不应当被理解为在所有实施例中都要求这种分离,并且应当理解所描述的程序组件和系统一般可被一起集成在单个软件产品中或被封装到多个软件产品中。
已描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作可按不同的顺序执行,而仍实现期望的结果。作为一个示例,附图中描绘的过程要实现期望的结果并非必然要求所示出的特定顺序或者先后顺序。在某些实现方式中,多任务和并行处理可能是有利的。
Claims (20)
1.一种用于处理系统输入的序列以生成系统输出的序列的增强型神经网络系统,所述增强型神经网络系统包括:
控制器神经网络,被配置为在多个时步的每一者处接收神经网络输入并且处理所述神经网络输入以为该时步生成神经网络输出,其中每个神经网络输出包括:
存储键;
层级式外部存储器,包括被布置为二叉树的多个存储节点;以及
存储器访问子系统,其被配置为对于所述多个时步的每一者:
遍历所述二叉树以利用所述存储键生成从所述二叉树中的根存储节点到所述二叉树中的特定叶存储节点的路径,其中,基于沿着从所述二叉树中的根存储节点到所述二叉树中的特定叶存储节点的路径的每个父节点处生成的概率值来选择所述特定叶存储节点,并且每个父节点处的所述概率值基于当前存储在所述父节点中的数据和所述存储键生成,
读取所述特定叶存储节点中存储的数据,并且
利用所述存储键来更新所述特定叶存储节点中存储的数据。
2.如权利要求1所述的系统,其中,更新所述特定叶存储节点中存储的数据包括:
利用写入神经网络处理所述特定叶存储节点中存储的数据和所述存储键,其中所述写入神经网络被配置为处理所述特定叶存储节点中存储的数据和所述存储键以生成经更新的存储节点数据;并且
将所述经更新的存储节点数据写入到所述特定叶存储节点。
3.如权利要求2所述的系统,其中,所述存储器访问子系统还被配置为,对于所述多个时步的每一者:
通过以下操作来按反向遍历顺序更新所述路径上除了所述特定叶存储节点以外的其他存储节点中存储的数据,对于其他节点的每一者:
利用连接神经网络处理在所述路径上的该节点的子节点中存储的经更新的数据和不在所述路径上的子节点中存储的数据,其中所述连接神经网络被配置为处理一个子节点中存储的数据和另一子节点中存储的数据并且为该一个子节点和该另一子节点的父节点生成经更新的数据;并且
将经更新的数据写入到该节点。
4.如权利要求1-3的任何一者所述的系统,其中,利用所述存储键遍历所述二叉树包括,在直到所述特定叶存储节点为止的所述路径上的每个存储节点处:
利用搜索神经网络处理该存储节点中存储的数据和所述存储键,其中所述搜索神经网络被配置为处理该存储节点中存储的数据和所述存储键以生成概率值p;
遵循从该存储节点起的第一分支来以概率p向该路径添加新的子节点;并且
遵循从该存储节点起的第二分支来以概率1–p向该路径添加新的子节点。
5.如权利要求1-3的任何一者所述的系统,其中,所述存储器访问子系统还被配置为:
利用所述系统输入的序列来初始化所述二叉树的叶存储节点中存储的数据。
6.如权利要求5所述的系统,其中,所述存储器访问子系统还被配置为:
通过以下操作来按自下而上的顺序初始化所述树中的除了所述叶存储节点以外的其他存储节点中存储的数据:对于其他节点的每一者:
利用连接神经网络处理该节点的子节点中存储的经更新的数据,其中所述连接神经网络被配置为处理一个子节点中存储的数据和另一子节点中存储的数据以为该一个子节点和该另一子节点的父节点生成经更新的数据;并且
将经更新的数据写入到该节点。
7.如权利要求1-3的任何一者所述的系统,其中,所述系统还包括一个或多个输出层,并且其中,所述一个或多个输出层被配置为,对于所述多个时步的每一者:
处理对于该时步从所述外部存储器读取的数据来为该时步生成系统输出。
8.如权利要求1-3的任何一者所述的系统,其中,所述多个时步的每一者的神经网络输出还包括系统输出部分。
9.如权利要求8所述的系统,其中,所述存储器访问子系统还被配置为,对于所述多个时步的每一者,提供从所述系统输出部分得出的输出来作为该时步的系统输出。
10.如权利要求8所述的系统,其中,所述系统还包括一个或多个输出层,并且其中,所述一个或多个输出层被配置为,对于所述多个时步的每一者:
对于该时步处理从所述外部存储器读取的数据和所述系统输出部分来为该时步生成系统输出。
11.如权利要求1-3的任何一者所述的系统,其中,每个时步的神经网络输入是来自所述系统输入的序列的相应系统输入。
12.如权利要求1-3的任何一者所述的系统,其中,所述存储器访问子系统还被配置为,对于所述多个时步的每一者:
组合从所述外部存储器读取的数据和来自所述系统输入的序列的相应系统输入来为后续时步生成后续神经网络输入。
13.一种用于处理输入的序列以生成输出的序列的由计算机实现的方法,其中所述输入的序列包括多个时步的每一者处的相应输入,所述输出的序列包括所述多个时步的每一者处的相应输出,所述方法包括:
获得所述输入的序列;
对于所述多个时步中的每个时步:
利用控制器神经网络处理该时步处的相应输入以生成存储键;
识别不同于所述控制器神经网络并且包括被布置成二叉树的多个存储节点的层级式存储器中存储的数据,其中识别数据包括:
(i)遍历所述二叉树以利用所述存储键生成从所述二叉树中的根存储节点到所述二叉树中的特定叶存储节点的路径,其中,基于沿着从所述二叉树中的根存储节点到所述二叉树中的特定叶存储节点的路径的每个父节点处生成的概率值来选择所述特定叶存储节点,并且每个父节点处的所述概率值基于当前存储在所述父节点中的数据和所述存储键生成,并且
(ii)读取所述特定叶存储节点中存储的数据;并且
利用所述特定叶存储节点中存储的数据来为所述输出的序列提供该时步处的相应输出。
14.如权利要求13所述的方法,还包括,对于所述多个时步中的每个时步:
通过利用写入神经网络处理所述特定叶存储节点中当前存储的数据和所述存储键来更新所述特定叶存储节点中存储的数据以生成经更新的存储节点数据;并且
将所述经更新的存储节点数据写入到所述特定叶存储节点。
15.如权利要求13所述的方法,其中,利用所述存储键遍历所述二叉树包括,在直到所述特定叶存储节点为止的所述路径上的每个存储节点处:
利用搜索神经网络处理该存储节点中存储的数据和所述存储键,其中所述搜索神经网络被配置为处理该存储节点中存储的数据和所述存储键以生成概率值p;
遵循从该存储节点起的第一分支来以概率p向该路径添加新的子节点;并且
遵循从该存储节点起的第二分支来以概率1–p向该路径添加新的子节点。
16.如权利要求13所述的方法,还包括:
利用嵌入神经网络处理所述输入的序列,或者从其得出所述输入的序列的系统输入的序列,以生成嵌入的序列,所述嵌入的序列包括所述多个时步中的每个时步处的相应嵌入;并且
利用所述嵌入的序列来初始化所述二叉树的多个存储节点中存储的数据。
17.如权利要求13所述的方法,其中,所述控制器神经网络是前馈神经网络或递归神经网络之一。
18.编码有指令的一个计算机存储介质,所述指令当被一个或多个计算机执行时使得该一个或多个计算机执行用于处理输入的序列以生成输出的序列的操作,其中所述输入的序列包括多个时步的每一者处的相应输入,所述输出的序列包括所述多个时步的每一者处的相应输出,所述操作包括:
获得所述输入的序列;
对于所述多个时步中的每个时步:
利用控制器神经网络处理该时步处的相应输入以生成存储键;
识别不同于所述控制器神经网络并且包括被布置成二叉树的多个存储节点的层级式存储器中存储的数据,其中识别数据包括:
(i)遍历所述二叉树以利用所述存储键生成从所述二叉树中的根存储节点到所述二叉树中的特定叶存储节点的路径,其中,基于沿着从所述二叉树中的根存储节点到所述二叉树中的特定叶存储节点的路径的每个父节点处生成的概率值来选择所述特定叶存储节点,并且每个父节点处的所述概率值基于当前存储在所述父节点中的数据和所述存储键生成,并且
(ii)读取所述特定叶存储节点中存储的数据;并且
利用所述特定叶存储节点中存储的数据来为所述输出的序列提供该时步处的相应输出。
19.如权利要求18所述的计算机存储介质,其中,所述操作还包括,对于所述多个时步中的每个时步:
通过利用写入神经网络处理所述特定叶存储节点中当前存储的数据和所述存储键来更新所述特定叶存储节点中存储的数据以生成经更新的存储节点数据;并且
将所述经更新的存储节点数据写入到所述特定叶存储节点。
20.如权利要求18所述的计算机存储介质,其中,利用所述存储键遍历所述二叉树包括,在直到所述特定叶存储节点为止的所述路径上的每个存储节点处:
利用搜索神经网络处理该存储节点中存储的数据和所述存储键,其中所述搜索神经网络被配置为处理该存储节点中存储的数据和所述存储键以生成概率值p;
遵循从该存储节点起的第一分支来以概率p向该路径添加新的子节点;并且
遵循从该存储节点起的第二分支来以概率1–p向该路径添加新的子节点。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662291942P | 2016-02-05 | 2016-02-05 | |
US62/291,942 | 2016-02-05 | ||
PCT/US2016/069571 WO2017136081A1 (en) | 2016-02-05 | 2016-12-30 | Augmenting neural networks with hierarchical external memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108604311A CN108604311A (zh) | 2018-09-28 |
CN108604311B true CN108604311B (zh) | 2022-11-08 |
Family
ID=57838555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680081167.2A Active CN108604311B (zh) | 2016-02-05 | 2016-12-30 | 利用层级式外部存储器的增强神经网络 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11010664B2 (zh) |
EP (1) | EP3411835B1 (zh) |
CN (1) | CN108604311B (zh) |
WO (1) | WO2017136081A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3398119B1 (en) * | 2016-02-05 | 2022-06-22 | Deepmind Technologies Limited | Generative neural networks for generating images using a hidden canvas |
CN106557332A (zh) * | 2016-11-30 | 2017-04-05 | 上海寒武纪信息科技有限公司 | 一种指令生成过程的复用方法及装置 |
WO2019081623A1 (en) * | 2017-10-25 | 2019-05-02 | Deepmind Technologies Limited | SELF-REGRESSIVE NEURAL NETWORK SYSTEMS INCLUDING A SOFTWARE ATTENTION MECHANISM USING SUPPORT DATA CORRECTIVES |
WO2019084551A1 (en) * | 2017-10-27 | 2019-05-02 | Google Llc | NEURAL NETWORKS OF SEQUENCE TRANSDUCTION ONLY OF DECODER BASED ON ATTENTION |
CN108304265B (zh) * | 2018-01-23 | 2022-02-01 | 腾讯科技(深圳)有限公司 | 内存管理方法、装置及存储介质 |
KR20190123540A (ko) | 2018-04-24 | 2019-11-01 | 한국전자통신연구원 | 뉴럴 기억 컴퓨팅 시스템 및 방법 |
KR20190136431A (ko) | 2018-05-30 | 2019-12-10 | 삼성전자주식회사 | 뉴럴 네트워크 시스템, 이를 포함하는 어플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법 |
RU2755935C2 (ru) * | 2019-06-20 | 2021-09-23 | Сергей Александрович Шумский | Способ и система машинного обучения иерархически организованному целенаправленному поведению |
US11068773B2 (en) * | 2019-07-11 | 2021-07-20 | Capital One Services, Llc | Memory management in memory augmented deep neural networks |
US11720251B2 (en) * | 2019-07-22 | 2023-08-08 | EMC IP Holding Company LLC | Generating compressed representations of sorted arrays of identifiers |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101490715A (zh) * | 2006-07-28 | 2009-07-22 | 国际商业机器公司 | 具有最小存储器带宽要求的优化的光线编历算法的高速缓存利用 |
US8856138B1 (en) * | 2012-08-09 | 2014-10-07 | Google Inc. | Faster substring searching using hybrid range query data structures |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5263124A (en) * | 1991-02-27 | 1993-11-16 | Neural Systems Corporation | Method for producing a binary tree, pattern recognition and binary vector classification method using binary trees, and system for classifying binary vectors |
US5909681A (en) * | 1996-03-25 | 1999-06-01 | Torrent Systems, Inc. | Computer system and computerized method for partitioning data for parallel processing |
US6735595B2 (en) * | 2000-11-29 | 2004-05-11 | Hewlett-Packard Development Company, L.P. | Data structure and storage and retrieval method supporting ordinality based searching and data retrieval |
JP4581246B2 (ja) * | 2000-12-26 | 2010-11-17 | ソニー株式会社 | 情報処理システム、および情報処理方法、並びにプログラム記録媒体 |
KR100488414B1 (ko) * | 2000-12-30 | 2005-05-11 | 한국전자통신연구원 | 다중탐색 트리의 노드 생성 방법, 및 그에 따라 생성된 다중탐색 트리 구조의 자료 탐색 방법 |
JP2005286959A (ja) * | 2004-03-31 | 2005-10-13 | Sony Corp | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム |
JP2006086568A (ja) * | 2004-09-14 | 2006-03-30 | Sony Corp | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム |
US8996563B2 (en) * | 2010-04-06 | 2015-03-31 | Tokutek, Inc. | High-performance streaming dictionary |
US9965821B2 (en) * | 2012-03-09 | 2018-05-08 | Nvidia Corporation | Fully parallel in-place construction of 3D acceleration structures in a graphics processing unit |
US10181098B2 (en) * | 2014-06-06 | 2019-01-15 | Google Llc | Generating representations of input sequences using neural networks |
US10862690B2 (en) * | 2014-09-30 | 2020-12-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for handling data in a data network |
CN104850891A (zh) * | 2015-05-29 | 2015-08-19 | 厦门大学 | 一种时间序列预测的智能优化递归神经网络方法 |
-
2016
- 2016-12-30 EP EP16828904.9A patent/EP3411835B1/en active Active
- 2016-12-30 CN CN201680081167.2A patent/CN108604311B/zh active Active
- 2016-12-30 US US15/396,000 patent/US11010664B2/en active Active
- 2016-12-30 WO PCT/US2016/069571 patent/WO2017136081A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101490715A (zh) * | 2006-07-28 | 2009-07-22 | 国际商业机器公司 | 具有最小存储器带宽要求的优化的光线编历算法的高速缓存利用 |
US8856138B1 (en) * | 2012-08-09 | 2014-10-07 | Google Inc. | Faster substring searching using hybrid range query data structures |
Non-Patent Citations (1)
Title |
---|
一种基于不等纠错保护的图像传输方法;刘军清等;《电路与系统学报》;20100815(第04期);117-121 * |
Also Published As
Publication number | Publication date |
---|---|
CN108604311A (zh) | 2018-09-28 |
US11010664B2 (en) | 2021-05-18 |
US20170228643A1 (en) | 2017-08-10 |
EP3411835B1 (en) | 2023-07-05 |
EP3411835A1 (en) | 2018-12-12 |
WO2017136081A1 (en) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108604311B (zh) | 利用层级式外部存储器的增强神经网络 | |
US11423233B2 (en) | On-device projection neural networks for natural language understanding | |
US20230325657A1 (en) | Using embedding functions with a deep network | |
US11049500B2 (en) | Adversarial learning and generation of dialogue responses | |
US10937416B2 (en) | Cross-domain multi-task learning for text classification | |
US11550871B1 (en) | Processing structured documents using convolutional neural networks | |
US9818409B2 (en) | Context-dependent modeling of phonemes | |
CN109478248B (zh) | 使用比较集对输入样本进行分类的方法、系统和存储介质 | |
US11972365B2 (en) | Question responding apparatus, question responding method and program | |
US20180357240A1 (en) | Key-Value Memory Networks | |
CN109074517B (zh) | 全局归一化神经网络 | |
WO2021023440A1 (en) | Fine-tuning language models for supervised learning tasks via dataset preprocessing | |
WO2017100711A1 (en) | Augmenting neural networks with external memory | |
US11954594B1 (en) | Training recurrent neural networks to generate sequences | |
EP3295381A1 (en) | Augmenting neural networks with sparsely-accessed external memory | |
WO2019235103A1 (ja) | 質問生成装置、質問生成方法及びプログラム | |
CN110678882A (zh) | 使用机器学习从电子文档选择回答跨距 | |
CN113785314A (zh) | 使用标签猜测对机器学习模型进行半监督训练 | |
US10755171B1 (en) | Hiding and detecting information using neural networks | |
US20220382565A1 (en) | Machine-Learned Models for User Interface Prediction, Generation, and Interaction Understanding | |
EP3413218A1 (en) | Key-value memory networks | |
Yuan et al. | Deep learning from a statistical perspective | |
US20190147365A1 (en) | Deep vector table machine systems | |
Lamons et al. | Python Deep Learning Projects: 9 projects demystifying neural network and deep learning models for building intelligent systems | |
Im et al. | Cross-active connection for image-text multimodal feature fusion |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200410 Address after: England Atsushi Applicant after: DEEPMIND TECHNOLOGIES Ltd. Address before: California, USA Applicant before: GOOGLE Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |